// -------------------------------------------------------------------- // counts different events for a cut long int cntEvt(TTree *t1, TString cut, TString var="ev") { float fbev; int ibev; TBranch *br = t1->GetBranch(var); if (br==0) return 0; TString tit = br->GetTitle(); // should end with '/I' or '/F' t1->SetEventList(0); t1->Draw(">>el",cut); TEventList *el=(TEventList*)gROOT->FindObject("el"); t1->SetBranchStatus("*",0); t1->SetBranchStatus(var,1); // int or float branch bool isint=tit.EndsWith("/I"); if (isint) t1->SetBranchAddress(var,&ibev); else t1->SetBranchAddress(var,&fbev); // last and current event number; counter int lev = -1, cev=-1, cnt=0; for (int i=0;iGetN();++i) { t1->GetEvent(el->GetEntry(i)); cev = isint ? ibev : fbev; if (lev!=cev) cnt++; lev = cev; } t1->SetBranchStatus("*",1); return cnt; } // -------------------------------------------------------------------- void confgraph(TGraph *g, TString tit, int col=1, int marker=20) { g->GetHistogram()->SetTitle(tit); g->GetHistogram()->SetMinimum(0); g->SetLineColor(col); g->SetMarkerColor(col); g->SetMarkerStyle(marker); g->SetMarkerSize(1); g->SetLineWidth(2); } // -------------------------------------------------------------------- TH1F* createHistoGraph(TGraph *g, TString tit="", double xmin=0, double xmax=0) { static int cnt=0; if (tit=="") tit=g->GetTitle(); double ymax = TMath::MaxElement(g->GetN(), g->GetY()); double dymax = g->GetErrorY(TMath::LocMax(g->GetN(), g->GetEY())); if (xmin>=xmax) { xmin = TMath::MinElement(g->GetN(), g->GetX()); xmax = TMath::MaxElement(g->GetN(), g->GetX()); } TH1F *h=new TH1F(Form("h%03d",cnt++),tit,g->GetN(),xmin-0.5*(xmax-xmin)/g->GetN(), xmax+0.5*(xmax-xmin)/g->GetN()); h->GetXaxis()->SetLabelSize(0.05); h->GetXaxis()->SetTitleSize(0.05); h->GetYaxis()->SetLabelSize(0.05); h->GetYaxis()->SetTitleSize(0.05); h->GetYaxis()->SetTitleOffset(1.4); h->SetMaximum((ymax+dymax)*1.05); h->SetMinimum(0); h->SetStats(0); return h; } // -------------------------------------------------------------------- void analyse_etac1_slc(TString fname="ntp5_slc_etac1_A.root", TString cut="chi24c<50", int sigmode=300, TString tit="") { //--------------------------------------------------------------------------------------------------------------------------------- //Processing analyse_etac1_slc.C("ntp5_slc_etac1_A.root","chi24c<50",300, "Setup A, #bar{p}p#rightarrow#tilde{#eta_{c1}}#eta")... //--------------------------------------------------------------------------------------------------------------------------------- //i | S0 | B0 | S | B | fS | fB | S* | B* | //----+----------+------------+----------+--------+----------+-----------+---------+---------+ //0 | 100000 | 2.691 G | 17743 | 17 | 0.0098 | 95.2150 | 173 | 1619 | //8 | 100000 | 2.690 G | 142 | 4 | 0.0098 | 95.2268 | 1 | 381 | //--------------------------------------------------------------------------------------------------------------------------------- //Processing analyse_etac1_slc.C("ntp5_slc_etac1_B.root","chi24c<50",320, "Setup B, #bar{p}p#rightarrow#tilde{#eta_{c1}}#eta")... //----+----------+------------+----------+--------+----------+-----------+---------+---------+ //0 | 100000 | 2.675 G | 3503 | 11 | 0.0098 | 95.7917 | 34 | 1054 | //8 | 100000 | 2.819 G | 2 | 1 | 0.0098 | 90.8956 | 0 | 91 | //###################################################################### //--------------------------------------------------------------------------------------------------------------------------------- //Processing analyse_etac1.C("ntp5_etac1_A.root","chi24c<50",300, "Setup A, #bar{p}p#rightarrow#tilde{#eta_{c1}}#eta")... //--------------------------------------------------------------------------------------------------------------------------------- //i | S0 | B0 | S | B | fS | fB | S* | B* | //----+----------+------------+----------+--------+----------+-----------+---------+---------+ //0 | 100000 | 2.866 G | 17744 | 12 | 0.0098 | 89.3904 | 173 | 1073 | //7 | 100000 | 2.706 G | 131 | 1 | 0.0098 | 94.6622 | 1 | 95 | //--------------------------------------------------------------------------------------------------------------------------------- //Processing analyse_etac1.C("ntp5_etac1_B.root","chi24c<50",320, "Setup B, #bar{p}p#rightarrow#tilde{#eta_{c1}}#eta")... //----+----------+------------+----------+--------+----------+-----------+---------+---------+ //0 | 100000 | 2.931 G | 3617 | 14 | 0.0098 | 87.4188 | 35 | 1224 | //7 | 100000 | 2.739 G | 5 | 1 | 0.0098 | 93.5508 | 0 | 94 | //data/DPMetac1_A_SLC1 ( 168/ 200 files) = 2690752186 //data/DPMetac1_A_SLC2 ( 182/ 200 files) = 2914674237 //data/DPMetac1_A_SLC3 ( 174/ 200 files) = 2786406995 //data/DPMetac1_A_SLC4 ( 171/ 200 files) = 2738298947 //data/DPMetac1_A_SLC5 ( 176/ 200 files) = 2818739807 //data/DPMetac1_A_SLC6 ( 179/ 200 files) = 2866193988 //data/DPMetac1_A_SLC7 ( 169/ 200 files) = 2706488227 //data/DPMetac1_A_SLC8 ( 175/ 200 files) = 2801957793 //data/DPMetac1_A_SLC9 ( 168/ 200 files) = 2690419363 //-------------------- //data/DPMetac1_B_SLC1 ( 167/ 200 files) = 2674554579 //data/DPMetac1_B_SLC2 ( 172/ 200 files) = 2754101731 //data/DPMetac1_B_SLC3 ( 172/ 200 files) = 2754649841 //data/DPMetac1_B_SLC4 ( 171/ 200 files) = 2738459876 //data/DPMetac1_B_SLC5 ( 177/ 200 files) = 2834829596 //data/DPMetac1_B_SLC6 ( 173/ 200 files) = 2770416159 //data/DPMetac1_B_SLC7 ( 175/ 200 files) = 2802568964 //data/DPMetac1_B_SLC8 ( 174/ 200 files) = 2786802048 //data/DPMetac1_B_SLC9 ( 176/ 200 files) = 2818616809 std::map evcnts = { {1300, 2690752186}, {1301, 2914674237}, {1302, 2786406995}, {1303, 2738298947}, {1304, 2818739807}, {1305, 2866193988}, {1306, 2706488227}, {1307, 2801957793}, {1308, 2690419363}, // Setup A, pbp -> J/psi (-> e+ e-) pi+ pi- {1320, 2674554579}, {1321, 2754101731}, {1322, 2754649841}, {1323, 2738459876}, {1324,2834829596 }, {1325, 2770416159}, {1326, 2802568964}, {1327, 2786802048}, {1328, 2818616809} }; // we merge the values at 0% and 100% from both studies by hand... // **** from theta study //data/DPMetac1_A_EMC1 ( 179/ 199 files) = 2866079091 //data/DPMetac1_A_EMC8 ( 169/ 199 files) = 2706466096 //-------------------- //data/DPMetac1_B_EMC1 ( 183/ 198 files) = 2930718917 //data/DPMetac1_B_EMC8 ( 171/ 198 files) = 2738620309 evcnts[1300] += 2866079091; evcnts[1320] += 2706466096; evcnts[1308] += 2930718917; evcnts[1328] += 2738620309; std::map mrgB = { {1300, 17+12}, {1308, 4+1}, {1320, 11+14}, {1328, 1+1} }; //for ( auto x:evcnts) cout <<"mode "<19) bkgmode+=1; TFile *f = new TFile(fname); TTree *t = (TTree*)f->Get("ntp5"); TFile fana("ana_etac_slc.root","UPDATE"); int Nred = 9; TGraphErrors *g[4]; g[0] = new TGraphErrors(Nred); g[1] = new TGraphErrors(Nred); g[2] = new TGraphErrors(Nred); g[3] = new TGraphErrors(Nred); confgraph(g[0], "signal to noise"); confgraph(g[1], "significance"); confgraph(g[2], "signal efficiency"); confgraph(g[3], "background efficiency"); TF1 *f1=new TF1("f1","0.5*[0]*(1.0-TMath::Erf((x-[1])/[2]))+[3]",0,100.); //TF1 *f1=new TF1("f1","0.5*[0]*(1.0-TMath::Erf((x-[1])/[2]))+pol2(3)",0,100.); //f1->SetParLimits(2,15,300); // ------------------------------------------------------------------- // 8x2 phi slices, symmetric // ------------------------------------------------------------------- // missing fraction in [%] of EMC = [ 1.0 - (tht_max - 22°)/118° ]* 100 double emc_rmv[9] = { 0., 12.5, 25., 37.5, 50., 62.5, 75., 87.5, 100. }; //TString lab[4] = { ";supermodules missing;S/B", ";supermodules missing;significance [#sigma]", ";supermodules missing;signal efficiency [%]", ";supermodules missing;background efficiency [%]"}; TString lab[4] = { ";EMC missing [%];signal efficiency (#phi) [%]", ";EMC missing (#phi) [%];background efficiency [%]", ";EMC missing (#phi) [%];S/B", ";EMC missing (#phi) [%];significance [#sigma]"}; TCanvas *c1 = new TCanvas("c1","c1",1000,800); c1->Divide(2,2,0.0001,0.0001); double sig_S = 20; double sig_B = 42e6; double Lint = 1220*5; double fBR = 0.06*0.339*0.394; // BR_J * BR_chic * BR_eta double S_dat = sig_S * fBR * Lint; double B_dat = sig_B * Lint; cout <<"S:B = "< S*"<cd(i+1); gPad->SetTopMargin(0.10); h[i] = createHistoGraph(g[i],tit+lab[i]); h[i]->Draw(); g[i]->Draw("P same"); f1->SetParameters(TMath::MaxElement(g[i]->GetN(), g[i]->GetY()),70, 10, TMath::MinElement(g[i]->GetN(), g[i]->GetY())); f1->SetParLimits(2,50,200); //if (i==1) //{ //f1->SetParameters(TMath::MaxElement(g[i]->GetN(), g[i]->GetY()),120, -10, TMath::MinElement(g[i]->GetN(), g[i]->GetY())); //f1->SetParLimits(1,110,200); //} //if (i<3) //if (i>0) g[i]->Fit("f1","q"); //else g[i]->Fit("f1","q","",0,95); //else g[i]->Fit("f2"); g[i]->SetName(plotnam[i]+"_"+((TString)fname(9,7))); g[i]->Write(); } fname.ReplaceAll(".root",""); cut.ReplaceAll("&&","_AND_"); cut.ReplaceAll("||","_OR_"); cut.ReplaceAll("!","_NOT_"); cut.ReplaceAll(">","_lg_"); cut.ReplaceAll("<","_sm_"); cut.ReplaceAll(".","_"); c1->SaveAs(Form("fig/%s__%03d__%s.gif",fname.Data(), sigmode, cut.Data())); c1->SaveAs(Form("fig/%s__%03d__%s.C",fname.Data(), sigmode, cut.Data())); fana.Close(); } /* Found 244 files with pattern data/DPMetac1_A_EMC1 containing event info Sum of events = 781589138 Found 243 files with pattern data/DPMetac1_A_EMC2 containing event info Sum of events = 778264034 Found 247 files with pattern data/DPMetac1_A_EMC3 containing event info Sum of events = 791030134 Found 244 files with pattern data/DPMetac1_A_EMC4 containing event info Sum of events = 781662143 Found 248 files with pattern data/DPMetac1_A_EMC5 containing event info Sum of events = 794307759 Found 243 files with pattern data/DPMetac1_A_EMC6 containing event info Sum of events = 778257467 Found 242 files with pattern data/DPMetac1_A_EMC7 containing event info Sum of events = 775037895 Found 242 files with pattern data/DPMetac1_A_EMC8 containing event info Sum of events = 775095496 -------------------- Found 241 files with pattern data/DPMetac1_B_EMC1 containing event info Sum of events = 771776262 Found 242 files with pattern data/DPMetac1_B_EMC2 containing event info Sum of events = 775016383 Found 244 files with pattern data/DPMetac1_B_EMC3 containing event info Sum of events = 781427165 Found 235 files with pattern data/DPMetac1_B_EMC4 containing event info Sum of events = 752754673 Found 247 files with pattern data/DPMetac1_B_EMC5 containing event info Sum of events = 791054235 Found 242 files with pattern data/DPMetac1_B_EMC6 containing event info Sum of events = 775064262 Found 241 files with pattern data/DPMetac1_B_EMC7 containing event info Sum of events = 771961964 Found 244 files with pattern data/DPMetac1_B_EMC8 containing event info Sum of events = 781628321 */ //data/DPMetac1_A_SLC1 ( 82/ 100 files) = 1313354597 //data/DPMetac1_A_SLC2 ( 86/ 100 files) = 1377489004 //data/DPMetac1_A_SLC3 ( 85/ 100 files) = 1361147492 //data/DPMetac1_A_SLC4 ( 87/ 100 files) = 1393104477 //data/DPMetac1_A_SLC5 ( 86/ 100 files) = 1377270184 //data/DPMetac1_A_SLC6 ( 86/ 98 files) = 1376947715 //data/DPMetac1_A_SLC7 ( 84/ 96 files) = 1345215200 //data/DPMetac1_A_SLC8 ( 83/ 95 files) = 1328843629 //data/DPMetac1_A_SLC9 ( 83/ 100 files) = 1329393334 //-------------------- //data/DPMetac1_B_SLC1 ( 87/ 100 files) = 1393415089 //data/DPMetac1_B_SLC2 ( 89/ 100 files) = 1425022249 //data/DPMetac1_B_SLC3 ( 84/ 100 files) = 1345470462 //data/DPMetac1_B_SLC4 ( 82/ 99 files) = 1313202603 //data/DPMetac1_B_SLC5 ( 86/ 100 files) = 1377424566 //data/DPMetac1_B_SLC6 ( 81/ 97 files) = 1297113544 //data/DPMetac1_B_SLC7 ( 87/ 98 files) = 1393303719 //data/DPMetac1_B_SLC8 ( 84/ 100 files) = 1345397603 //data/DPMetac1_B_SLC9 ( 86/ 98 files) = 1377182415 //std::map evcnts = //{ {1300, 1313354597}, {1301, 1377489004}, {1302, 1361147492}, {1303, 1393104477}, {1304, 1377270184}, {1305, 1376947715}, {1306, 1345215200}, {1307, 1328843629}, {1308, 1329393334}, // Setup A, pbp -> J/psi (-> e+ e-) pi+ pi- //{1320, 1393415089}, {1321, 1425022249}, {1322, 1345470462}, {1323, 1313202603}, {1324, 1377424566}, {1325, 1297113544}, {1326, 1393303719}, {1327, 1345397603}, {1328, 1377182415} //};