#define timewalk2bset2_cxx #include "timewalk2bset2.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using namespace RooFit; //------------------------------------LANDAU FIT---------------------------------------------------- double fitlan(double *v,double *par) { double x; x=v[0]; double amp=par[0]; double mpv=par[1]+0.022278298; double sigma=par[2]; double result=amp*TMath::Landau(x,mpv,sigma); return result; } void timewalk2bset2::Loop(Int_t totevents) { // In a ROOT session, you can do: // Root > .L timewalk2bset2.C // Root > timewalk2bset2 t // Root > t.GetEntry(12); // Fill t data members with entry number 12 // Root > t.Show(); // Show values of entry 12 // Root > t.Show(16); // Read and show values of entry 16 // Root > t.Loop(); // Loop on all entries // // This is the loop skeleton where: // jentry is the global entry number in the chain // ientry is the entry number in the current Tree // Note that the argument to GetEntry must be: // jentry for TChain::GetEntry // ientry for TTree::GetEntry and TBranch::GetEntry // // To read only selected branches, Insert statements like: // METHOD1: // fChain->SetBranchStatus("*",0); // disable all branches // fChain->SetBranchStatus("branchname",1); // activate branchname // METHOD2: replace line // fChain->GetEntry(jentry); //read all branches //by b_branchname->GetEntry(ientry); //read only this branch if (fChain == 0) return; fio2b_set2=new TFile("timewalkcorrections2bset2.root","recreate"); Long64_t nentries = fChain->GetEntriesFast(); Long64_t nbytes = 0, nb = 0; // TH1F *h_risetime_1=new TH1F("risetime_10-90_adc1","risetime_1_check_adc1",5,0,3.5); //HISTOGRAM FOR FILLING RISETIME //for each event create a histogram for(int event=1;eventGetEntry(jentry); nbytes += nb; if(eventn_adc1>2000) h2b_set2_1->Fill(eventn_count,eventn_adc1_raw); // if (Cut(ientry) < 0) continue; } hists_offset<<"offset_set2"<Fit(hist_offset_set2,"Q","N",0.5,100.5); h2b_set2_1->Add(hist_offset_set2,-1); double binamplitude=h2b_set2_1->GetMaximumBin(); double x1=h2b_set2_1->GetXaxis()->GetBinCenter(binamplitude); f_set2->SetParameter(0,binamplitude); f_set2->SetParameter(1,x1); f_set2->SetParameter(2,1.0); h2b_set2_1->Fit(f_set2,"WL","N",40.5,70.5); //--------------------------------------------------------RISETIME---------------------------------------------------------------------------- /* double y1_max=f_set2->GetMaximum(40.5,70.5); // cout<<"the maximum amplitube value is y1= "<GetX(y1_max,40.5,70.5); // cout<<"the corresponding x-value is x= "<Write(); h2b_set2_1->Delete(); fio2b_set2->Write(); } }