ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/cbrown/AnalysisFramework/Plotting/Modules/ResultModule.C
(Generate patch)

Comparing UserCode/cbrown/AnalysisFramework/Plotting/Modules/ResultModule.C (file contents):
Revision 1.1 by buchmann, Mon Jul 11 18:05:23 2011 UTC vs.
Revision 1.2 by buchmann, Mon Jul 11 21:05:57 2011 UTC

# Line 19 | Line 19 | using namespace std;
19  
20   using namespace PlottingSetup;
21  
22 + string newjzbexpression(string oldexpression,float shift) {
23 +  stringstream ss;
24 +  if(shift>0) ss<<oldexpression<<"+"<<shift;
25 +  if(shift<0) ss<<oldexpression<<shift;
26 +  if(shift==0) ss<<oldexpression;
27 +  return ss.str();
28 + }
29    
30 < void get_result_above_one_fixed_jzb_value(float cut ,string mcjzb,string datajzb, int mcordata,float jzbpeakerrorMC, float jzbpeakerrorData, TCanvas *rescan, bool chatty=false) {
24 <  rescan->cd();
25 <  if(mcordata!=mc) cout << "Crunching the numbers for JZB>" << cut << endl;
26 <  
30 > 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) {
31    string xlabel="JZB (GeV) -- for algoritm internal use only!";
32    TH1F *ZOSSFP = allsamples.Draw("ZOSSFP",datajzb,1,cut,14000, xlabel, "events",cutmass&&cutOSSF&&cutnJets&&basiccut,mcordata,luminosity);
33    TH1F *ZOSOFP = allsamples.Draw("ZOSOFP",datajzb,1,cut,14000, xlabel, "events",cutmass&&cutOSOF&&cutnJets&&basiccut,mcordata,luminosity);
# Line 34 | Line 38 | void get_result_above_one_fixed_jzb_valu
38    TH1F *SBOSOFP = allsamples.Draw("SBOSOFP",datajzb,1,cut,14000, xlabel, "events",cutOSOF&&cutnJets&&basiccut&&sidebandcut,mcordata,luminosity);
39    TH1F *SBOSSFN = allsamples.Draw("SBOSSFN","-"+datajzb,1,cut,14000, xlabel, "events",cutOSSF&&cutnJets&&basiccut&&sidebandcut,mcordata,luminosity);
40    TH1F *SBOSOFN = allsamples.Draw("SBOSOFN","-"+datajzb,1,cut,14000, xlabel, "events",cutOSOF&&cutnJets&&basiccut&&sidebandcut,mcordata,luminosity);
41 +
42 +  zossfp=ZOSSFP->Integral();
43 +  zosofp=ZOSOFP->Integral();
44 +  zossfn=ZOSSFN->Integral();
45 +  zosofn=ZOSOFN->Integral();
46 +  sbossfp=SBOSSFP->Integral();
47 +  sbosofp=SBOSOFP->Integral();
48 +  sbossfn=SBOSSFN->Integral();
49 +  sbosofn=SBOSOFN->Integral();
50 +  
51 +  result = zossfn + (1.0/3)*(zosofp-zosofn)+ (1.0/3)*(sbossfp-sbossfn)+ (1.0/3)*(sbosofp-sbosofn);
52 +  delete ZOSSFP;
53 +  delete ZOSOFP;
54 +  delete ZOSSFN;
55 +  delete ZOSOFN;
56 +  
57 +  delete SBOSSFP;
58 +  delete SBOSOFP;
59 +  delete SBOSSFN;
60 +  delete SBOSOFN;
61 +
62 + }
63 +  
64 +  
65 + void get_result_above_one_fixed_jzb_value(float cut ,string mcjzb,string datajzb, int mcordata,float jzbpeakerrorMC, float jzbpeakerrorData, TCanvas *rescan, bool chatty=false) {
66 +  rescan->cd();
67 +  if(mcordata!=mc) cout << "Crunching the numbers for JZB>" << cut << endl;
68 +  
69 +  float zossfp, zosofp, zossfn, zosofn, sbossfp, sbosofp, sbossfn, sbosofn,result;
70 +  if(mcordata==mc) fill_result_histos(zossfp, zosofp, zossfn, zosofn, sbossfp, sbosofp, sbossfn, sbosofn,mcjzb,cut,mcordata,result);
71 +  if(mcordata==data) fill_result_histos(zossfp, zosofp, zossfn, zosofn, sbossfp, sbosofp, sbossfn, sbosofn,datajzb,cut,mcordata,result);
72 +
73 +  
74 +  float ppzossfp, ppzosofp, ppzossfn, ppzosofn, ppsbossfp, ppsbosofp, ppsbossfn, ppsbosofn, ppresult;
75 +  if(mcordata==mc) fill_result_histos(ppzossfp, ppzosofp, ppzossfn, ppzosofn, ppsbossfp, ppsbosofp, ppsbossfn, ppsbosofn,newjzbexpression(mcjzb,jzbpeakerrorMC),cut,mcordata,ppresult);
76 +  if(mcordata==data) fill_result_histos(ppzossfp, ppzosofp, ppzossfn, ppzosofn, ppsbossfp, ppsbosofp, ppsbossfn, ppsbosofn,newjzbexpression(datajzb,jzbpeakerrorData),cut,mcordata,ppresult);
77 +  
78 +  float pnzossfp, pnzosofp, pnzossfn, pnzosofn, pnsbossfp, pnsbosofp, pnsbossfn, pnsbosofn, pnresult;
79 +  if(mcordata==mc) fill_result_histos(pnzossfp, pnzosofp, pnzossfn, pnzosofn, pnsbossfp, pnsbosofp, pnsbossfn, pnsbosofn,newjzbexpression(mcjzb,-jzbpeakerrorMC),cut,mcordata,pnresult);
80 +  if(mcordata==data) fill_result_histos(pnzossfp, pnzosofp, pnzossfn, pnzosofn, pnsbossfp, pnsbosofp, pnsbossfn, pnsbosofn,newjzbexpression(datajzb,-jzbpeakerrorData),cut,mcordata,pnresult);
81    
82    float syserr=0;
83    float peakerr=0;
84    float staterr=0;
85    
86 +  if(fabs(result-pnresult)>fabs(result-ppresult)) peakerr=fabs(result-pnresult); else peakerr=fabs(result-ppresult);
87 +  
88 +  syserr = -999;
89 +  staterr=TMath::Sqrt(zossfn*zossfn + (1.0/3)*(zosofp-zosofn)*(zosofp-zosofn)+ (1.0/3)*(sbossfp-sbossfn)*(sbossfp-sbossfn)+ (1.0/3)*(sbosofp-sbosofn)*(sbosofp-sbosofn));
90 +  
91    if(mcordata==mc) cout << "    MC :: ";
92    else cout << "   ";
93 <  cout << "Observed : " << ZOSSFP->Integral() << endl;
93 >  cout << "Observed : " << zossfp << endl;
94    if(mcordata==mc) cout << "    MC :: ";
95    else cout << "   ";
96 <  cout << "Predicted: " << ZOSSFN->Integral() << " + (1/3)*(" << ZOSOFP->Integral() << "-" << ZOSOFN->Integral()<<") [e&mu]+ (1/3)*(" << SBOSSFP->Integral() << "-" << SBOSSFN->Integral()<<") [SF,SB]+ (1/3)*(" << SBOSOFP->Integral() << "-" << SBOSOFN->Integral()<<") [OF,SB] = ";
97 <  cout << ZOSSFN->Integral() + (1.0/3)*(ZOSOFP->Integral()-ZOSOFN->Integral())+ (1.0/3)*(SBOSSFP->Integral()-SBOSSFN->Integral())+ (1.0/3)*(SBOSOFP->Integral()-SBOSOFN->Integral())<< " +/- " << peakerr << " (peak ) " << " +/- " << syserr << " (sys) +/- " << staterr << " (stat)" << endl;
96 >  cout << "Predicted: " << zossfn << " + (1/3)*(" << zosofp << "-" << zosofn<<") [e&mu]+ (1/3)*(" << sbossfp << "-" << sbossfn<<") [SF,SB]+ (1/3)*(" << sbosofp << "-" << sbosofn<<") [OF,SB] = ";
97 >  cout << zossfn + (1.0/3)*(zosofp-zosofn)+ (1.0/3)*(sbossfp-sbossfn)+ (1.0/3)*(sbosofp-sbosofn)<< " +/- " << peakerr << " (peak ) " << " +/- " << syserr << " (sys) +/- " << staterr << " (stat)" << endl;
98    
99    if(chatty) {
100 <  cout << "        Pred(ZJets ) \t " << ZOSSFN->Integral() << endl;
101 <  cout << "        Pred(e&mu;]) \t " << ZOSOFP->Integral() << "-" << ZOSOFN->Integral() << " = " << ZOSOFP->Integral()-ZOSOFN->Integral()<<endl;
102 <  cout << "        Pred(ossf,sb]) \t " << SBOSSFP->Integral() << "-" << SBOSSFN->Integral()<<" = "<<SBOSSFP->Integral()-SBOSSFN->Integral()<<endl;
103 <  cout << "        Pred(osof,sb]) \t " << SBOSOFP->Integral() << "-" << SBOSOFN->Integral()<<" = "<<SBOSOFP->Integral()-SBOSOFN->Integral()<<endl;
100 >  cout << "        Pred(ZJets ) \t " << zossfn << endl;
101 >  cout << "        Pred(e&mu;]) \t " << zosofp << "-" << zosofn << " = " << zosofp-zosofn<<endl;
102 >  cout << "        Pred(ossf,sb]) \t " << sbossfp << "-" << sbossfn<<" = "<<sbossfp-sbossfn<<endl;
103 >  cout << "        Pred(osof,sb]) \t " << sbosofp << "-" << sbosofn<<" = "<<sbosofp-sbosofn<<endl;
104    }
56  
57  delete ZOSSFP;
58  delete ZOSOFP;
59  delete ZOSSFN;
60  delete ZOSOFN;
61  
62  delete SBOSSFP;
63  delete SBOSOFP;
64  delete SBOSSFN;
65  delete SBOSOFN;
105   }
106  
107    

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines