19 |
|
|
20 |
|
using namespace PlottingSetup; |
21 |
|
|
22 |
< |
void fill_result_histos(float &zossfp, float &zosofp, float &zossfn, float &zosofn, float &sbossfp, float &sbosofp, float &sbossfn, float &sbosofn,string datajzb,float cut, int mcordata, float &result, vector<int> sel, samplecollection &sampleC) { |
22 |
> |
void fill_result_histos(float &zossfp, float &zosofp, float &zossfn, float &zosofn, float &sbossfp, float &sbosofp, float &sbossfn, float &sbosofn,string datajzb,float cut, int mcordata, float &result, vector<int> sel, samplecollection &sampleC, string addcut="") { |
23 |
|
string xlabel="JZB [GeV] -- for algoritm internal use only!"; |
24 |
|
bool dosignal=false; |
25 |
|
if(mcordata==mcwithsignal) { |
26 |
|
dosignal=true; |
27 |
|
mcordata=0; |
28 |
|
} |
29 |
< |
|
29 |
> |
TCut basiccutplus; |
30 |
> |
if(addcut=="") basiccutplus=basiccut; |
31 |
> |
else basiccutplus=basiccut&&addcut.c_str(); |
32 |
|
TH1F *ZOSSFP; |
33 |
|
TH1F *ZOSOFP; |
34 |
|
TH1F *ZOSSFN; |
40 |
|
TH1F *SBOSOFN; |
41 |
|
|
42 |
|
if(mcordata==mc||mcordata==data||mcordata==mcwithsignal) { |
43 |
< |
ZOSSFP = sampleC.Draw("ZOSSFP",datajzb,1,cut,14000, xlabel, "events",cutmass&&cutOSSF&&cutnJets&&basiccut,mcordata,luminosity,dosignal); |
44 |
< |
ZOSOFP = sampleC.Draw("ZOSOFP",datajzb,1,cut,14000, xlabel, "events",cutmass&&cutOSOF&&cutnJets&&basiccut,mcordata,luminosity,dosignal); |
45 |
< |
ZOSSFN = sampleC.Draw("ZOSSFN","-"+datajzb,1,cut,14000, xlabel, "events",cutmass&&cutOSSF&&cutnJets&&basiccut,mcordata,luminosity,dosignal); |
46 |
< |
ZOSOFN = sampleC.Draw("ZOSOFN","-"+datajzb,1,cut,14000, xlabel, "events",cutmass&&cutOSOF&&cutnJets&&basiccut,mcordata,luminosity,dosignal); |
43 |
> |
ZOSSFP = sampleC.Draw("ZOSSFP",datajzb,1,cut,14000, xlabel, "events",cutmass&&cutOSSF&&cutnJets&&basiccutplus,mcordata,luminosity,dosignal); |
44 |
> |
ZOSOFP = sampleC.Draw("ZOSOFP",datajzb,1,cut,14000, xlabel, "events",cutmass&&cutOSOF&&cutnJets&&basiccutplus,mcordata,luminosity,dosignal); |
45 |
> |
ZOSSFN = sampleC.Draw("ZOSSFN","-"+datajzb,1,cut,14000, xlabel, "events",cutmass&&cutOSSF&&cutnJets&&basiccutplus,mcordata,luminosity,dosignal); |
46 |
> |
ZOSOFN = sampleC.Draw("ZOSOFN","-"+datajzb,1,cut,14000, xlabel, "events",cutmass&&cutOSOF&&cutnJets&&basiccutplus,mcordata,luminosity,dosignal); |
47 |
|
|
48 |
< |
SBOSSFP = sampleC.Draw("SBOSSFP",datajzb,1,cut,14000, xlabel, "events",cutOSSF&&cutnJets&&basiccut&&sidebandcut,mcordata,luminosity,dosignal); |
49 |
< |
SBOSOFP = sampleC.Draw("SBOSOFP",datajzb,1,cut,14000, xlabel, "events",cutOSOF&&cutnJets&&basiccut&&sidebandcut,mcordata,luminosity,dosignal); |
50 |
< |
SBOSSFN = sampleC.Draw("SBOSSFN","-"+datajzb,1,cut,14000, xlabel, "events",cutOSSF&&cutnJets&&basiccut&&sidebandcut,mcordata,luminosity,dosignal); |
51 |
< |
SBOSOFN = sampleC.Draw("SBOSOFN","-"+datajzb,1,cut,14000, xlabel, "events",cutOSOF&&cutnJets&&basiccut&&sidebandcut,mcordata,luminosity,dosignal); |
48 |
> |
SBOSSFP = sampleC.Draw("SBOSSFP",datajzb,1,cut,14000, xlabel, "events",cutOSSF&&cutnJets&&basiccutplus&&sidebandcut,mcordata,luminosity,dosignal); |
49 |
> |
SBOSOFP = sampleC.Draw("SBOSOFP",datajzb,1,cut,14000, xlabel, "events",cutOSOF&&cutnJets&&basiccutplus&&sidebandcut,mcordata,luminosity,dosignal); |
50 |
> |
SBOSSFN = sampleC.Draw("SBOSSFN","-"+datajzb,1,cut,14000, xlabel, "events",cutOSSF&&cutnJets&&basiccutplus&&sidebandcut,mcordata,luminosity,dosignal); |
51 |
> |
SBOSOFN = sampleC.Draw("SBOSOFN","-"+datajzb,1,cut,14000, xlabel, "events",cutOSOF&&cutnJets&&basiccutplus&&sidebandcut,mcordata,luminosity,dosignal); |
52 |
|
} else { |
53 |
|
//doing signal only! |
54 |
< |
ZOSSFP = sampleC.Draw("ZOSSFP",datajzb,1,cut,14000, xlabel, "events",cutmass&&cutOSSF&&cutnJets&&basiccut,mcordata,luminosity,sel); |
55 |
< |
ZOSOFP = sampleC.Draw("ZOSOFP",datajzb,1,cut,14000, xlabel, "events",cutmass&&cutOSOF&&cutnJets&&basiccut,mcordata,luminosity,sel); |
56 |
< |
ZOSSFN = sampleC.Draw("ZOSSFN","-"+datajzb,1,cut,14000, xlabel, "events",cutmass&&cutOSSF&&cutnJets&&basiccut,mcordata,luminosity,sel); |
57 |
< |
ZOSOFN = sampleC.Draw("ZOSOFN","-"+datajzb,1,cut,14000, xlabel, "events",cutmass&&cutOSOF&&cutnJets&&basiccut,mcordata,luminosity,sel); |
54 |
> |
ZOSSFP = sampleC.Draw("ZOSSFP",datajzb,1,cut,14000, xlabel, "events",cutmass&&cutOSSF&&cutnJets&&basiccutplus,mcordata,luminosity,sel); |
55 |
> |
ZOSOFP = sampleC.Draw("ZOSOFP",datajzb,1,cut,14000, xlabel, "events",cutmass&&cutOSOF&&cutnJets&&basiccutplus,mcordata,luminosity,sel); |
56 |
> |
ZOSSFN = sampleC.Draw("ZOSSFN","-"+datajzb,1,cut,14000, xlabel, "events",cutmass&&cutOSSF&&cutnJets&&basiccutplus,mcordata,luminosity,sel); |
57 |
> |
ZOSOFN = sampleC.Draw("ZOSOFN","-"+datajzb,1,cut,14000, xlabel, "events",cutmass&&cutOSOF&&cutnJets&&basiccutplus,mcordata,luminosity,sel); |
58 |
|
|
59 |
< |
SBOSSFP = sampleC.Draw("SBOSSFP",datajzb,1,cut,14000, xlabel, "events",cutOSSF&&cutnJets&&basiccut&&sidebandcut,mcordata,luminosity,sel); |
60 |
< |
SBOSOFP = sampleC.Draw("SBOSOFP",datajzb,1,cut,14000, xlabel, "events",cutOSOF&&cutnJets&&basiccut&&sidebandcut,mcordata,luminosity,sel); |
61 |
< |
SBOSSFN = sampleC.Draw("SBOSSFN","-"+datajzb,1,cut,14000, xlabel, "events",cutOSSF&&cutnJets&&basiccut&&sidebandcut,mcordata,luminosity,sel); |
62 |
< |
SBOSOFN = sampleC.Draw("SBOSOFN","-"+datajzb,1,cut,14000, xlabel, "events",cutOSOF&&cutnJets&&basiccut&&sidebandcut,mcordata,luminosity,sel); |
59 |
> |
SBOSSFP = sampleC.Draw("SBOSSFP",datajzb,1,cut,14000, xlabel, "events",cutOSSF&&cutnJets&&basiccutplus&&sidebandcut,mcordata,luminosity,sel); |
60 |
> |
SBOSOFP = sampleC.Draw("SBOSOFP",datajzb,1,cut,14000, xlabel, "events",cutOSOF&&cutnJets&&basiccutplus&&sidebandcut,mcordata,luminosity,sel); |
61 |
> |
SBOSSFN = sampleC.Draw("SBOSSFN","-"+datajzb,1,cut,14000, xlabel, "events",cutOSSF&&cutnJets&&basiccutplus&&sidebandcut,mcordata,luminosity,sel); |
62 |
> |
SBOSOFN = sampleC.Draw("SBOSOFN","-"+datajzb,1,cut,14000, xlabel, "events",cutOSOF&&cutnJets&&basiccutplus&&sidebandcut,mcordata,luminosity,sel); |
63 |
|
} |
64 |
|
|
65 |
|
zossfp=ZOSSFP->Integral(); |
85 |
|
result = zossfn + (1.0/3)*(zosofp-zosofn)+ (1.0/3)*(sbossfp-sbossfn)+ (1.0/3)*(sbosofp-sbosofn); |
86 |
|
} |
87 |
|
|
88 |
< |
void fill_result_histos(float &zossfp, float &zosofp, float &zossfn, float &zosofn, float &sbossfp, float &sbosofp, float &sbossfn, float &sbosofn,string datajzb,float cut, int mcordata, float &result) { |
88 |
> |
void fill_result_histos(float &zossfp, float &zosofp, float &zossfn, float &zosofn, float &sbossfp, float &sbosofp, float &sbossfn, float &sbosofn,string datajzb,float cut, int mcordata, float &result, string addcut="") { |
89 |
|
vector<int> emptyvector; |
90 |
< |
fill_result_histos(zossfp, zosofp, zossfn, zosofn, sbossfp, sbosofp, sbossfn, sbosofn,datajzb,cut,mcordata,result,emptyvector,allsamples); |
90 |
> |
fill_result_histos(zossfp, zosofp, zossfn, zosofn, sbossfp, sbosofp, sbossfn, sbosofn,datajzb,cut,mcordata,result,emptyvector,allsamples,addcut); |
91 |
|
} |
92 |
|
|
93 |
|
|
100 |
|
if(mcordata==data) fill_result_histos(zossfp, zosofp, zossfn, zosofn, sbossfp, sbosofp, sbossfn, sbosofn,datajzb,cut,mcordata,result); |
101 |
|
if(mcordata==mcwithsignal) fill_result_histos(zossfp, zosofp, zossfn, zosofn, sbossfp, sbosofp, sbossfn, sbosofn,mcjzb,cut,mcordata,result); |
102 |
|
|
103 |
+ |
float zossfpee, zosofpee, zossfnee, zosofnee, sbossfpee, sbosofpee, sbossfnee, sbosofnee,resultee; |
104 |
+ |
float zossfpmm, zosofpmm, zossfnmm, zosofnmm, sbossfpmm, sbosofpmm, sbossfnmm, sbosofnmm,resultmm; |
105 |
+ |
if(mcordata==data) { |
106 |
+ |
fill_result_histos(zossfpee, zosofpee, zossfnee, zosofnee, sbossfpee, sbosofpee, sbossfnee, sbosofnee,datajzb,cut,mcordata,resultee,"id1==0"); |
107 |
+ |
fill_result_histos(zossfpmm, zosofpmm, zossfnmm, zosofnmm, sbossfpmm, sbosofpmm, sbossfnmm, sbosofnmm,datajzb,cut,mcordata,resultmm,"id1==1"); |
108 |
+ |
} |
109 |
+ |
|
110 |
|
float ppzossfp, ppzosofp, ppzossfn, ppzosofn, ppsbossfp, ppsbosofp, ppsbossfn, ppsbosofn, ppresult; |
111 |
|
if(mcordata==mc) fill_result_histos(ppzossfp, ppzosofp, ppzossfn, ppzosofn, ppsbossfp, ppsbosofp, ppsbossfn, ppsbosofn,newjzbexpression(mcjzb,jzbpeakerrorMC),cut,mcordata,ppresult); |
112 |
|
if(mcordata==data) fill_result_histos(ppzossfp, ppzosofp, ppzossfn, ppzosofn, ppsbossfp, ppsbosofp, ppsbossfn, ppsbosofn,newjzbexpression(datajzb,jzbpeakerrorData),cut,mcordata,ppresult); |
137 |
|
staterr=TMath::Sqrt(zossfn + (1.0/9)*(zosofp+zosofn)+ (1.0/9)*(sbossfp+sbossfn)+ (1.0/9)*(sbosofp+sbosofn)); |
138 |
|
if(dopoisson) advanced_poisson(zossfn,zosofp,zosofn,sbossfp,sbossfn,sbosofp,sbosofn,poissonstaterrdown,poissonstaterrup); |
139 |
|
|
140 |
+ |
float e_to_emu=0.5; |
141 |
+ |
float m_to_emu=0.5; |
142 |
+ |
|
143 |
|
if(mcordata==mc) dout << " MC :: "; |
144 |
|
if(mcordata==mcwithsignal) dout << " MC with S :: "; |
145 |
|
if(mcordata==data) dout << " "; |
146 |
|
dout << "Observed : " << zossfp << endl; |
147 |
+ |
if(mcordata==data) dout << " Composition: " << zossfpee << " (ee), " << zossfpmm << " (mm) " << endl; |
148 |
+ |
|
149 |
|
if(mcordata==mc) dout << " MC :: "; |
150 |
|
if(mcordata==mcwithsignal) dout << " MC with S :: "; |
151 |
|
if(mcordata==data) dout << " "; |
153 |
|
dout << zossfn + (1.0/3)*(zosofp-zosofn)+ (1.0/3)*(sbossfp-sbossfn)+ (1.0/3)*(sbosofp-sbosofn)<< " +/- " << peakerr << " (peak ) " << " +/- " << syserr << " (sys) +/- " << staterr << " (stat)" << endl; |
154 |
|
if(dopoisson) dout << " stat error with Poisson : +" << poissonstaterrup << " - " << poissonstaterrdown << endl; |
155 |
|
|
156 |
+ |
if(mcordata==data) { |
157 |
+ |
dout << " Composition: (ee)" << zossfnee << " + (1/3)*(" << e_to_emu*zosofp << "-" << e_to_emu*zosofn<<") ["<<e_to_emu<<"*e&mu]+ (1/3)*(" << sbossfpee << "-" << sbossfnee<<") [SF,SB]+ (1/3)*(" << sbosofp*e_to_emu << "-" << sbosofn*e_to_emu<<") ["<<e_to_emu<<"*OF,SB] = "; |
158 |
+ |
dout << zossfnee + (1.0/3)*(e_to_emu*zosofp-e_to_emu*zosofn)+ (1.0/3)*(sbossfpee-sbossfnee) + (1.0/3)*(sbosofp*e_to_emu - sbosofn*e_to_emu) << endl; |
159 |
+ |
dout << " (mm)" << zossfnmm << " + (1/3)*(" << m_to_emu*zosofp << "-" << m_to_emu*zosofn<<") ["<<m_to_emu<<"*e&mu]+ (1/3)*(" << sbossfpmm << "-" << sbossfnmm<<") [SF,SB]+ (1/3)*(" << sbosofp*m_to_emu << "-" << sbosofn*m_to_emu<<") ["<<m_to_emu<<"*OF,SB] = "; |
160 |
+ |
dout << zossfnmm + (1.0/3)*(m_to_emu*zosofp - m_to_emu*zosofn) + (1.0/3)*(sbossfpmm -sbossfnmm)+ (1.0/3)*(sbosofp*m_to_emu-sbosofn*e_to_emu) << endl; |
161 |
+ |
} |
162 |
+ |
|
163 |
|
if(chatty) { |
164 |
|
dout << " Pred(ZJets ) \t " << zossfn << endl; |
165 |
|
dout << " Pred(eμ]) \t " << zosofp << "-" << zosofn << " = " << zosofp-zosofn<<endl; |