9 |
|
#include "Modules/GeneralToolBox.C" |
10 |
|
#include "Modules/SampleClass.C" |
11 |
|
#include "Modules/PeakFinder.C" |
12 |
– |
#include "Modules/HistoDB.C" |
12 |
|
#include "Modules/Poisson_Calculator.C" |
13 |
|
#include "Modules/setTDRStyle.C" |
14 |
|
#include "Modules/ActiveSamples.C" |
15 |
|
#include "Modules/UpperLimitsWithShape.C" |
16 |
|
#include "Modules/Setup.C" |
17 |
+ |
#include "Modules/external/cl95cms.c" |
18 |
|
#include "Modules/Plotting_Functions.C" //also included for peak finding etc. |
19 |
|
#include "Modules/StudyModule.C" //also included for peak finding etc. |
20 |
+ |
#include "Modules/ExperimentalModule.C" |
21 |
+ |
#include "Modules/ResultModule.C" |
22 |
+ |
#include "Modules/LimitCalculation.C" |
23 |
+ |
#include "Modules/Systematics.C" |
24 |
+ |
#include "Modules/SUSYScan.C" |
25 |
|
|
26 |
|
#include <TCut.h> |
27 |
|
#include <TROOT.h> |
53 |
|
gStyle->SetTextFont(42); |
54 |
|
bool showList=false; |
55 |
|
set_treename("events");//you can set the treename here to be used; options are "events" (for reco) for "PFevents" (for particle flow) |
56 |
< |
define_samples(showList,allsamples,signalsamples); |
56 |
> |
define_samples(showList,allsamples,signalsamples,scansample); |
57 |
|
setlumi(luminosity); |
58 |
|
do_png(true); |
59 |
< |
do_pdf(false); |
60 |
< |
do_eps(false); |
61 |
< |
do_C(false); |
59 |
> |
do_pdf(true); |
60 |
> |
do_eps(true); |
61 |
> |
do_C(true); |
62 |
|
set_directory("summer_mc");//here you can give it a name, for instance "1234pb" or whatever you like :-) |
63 |
|
setessentialcut(essential);//this sets the essential cut; this one is used in the draw command so it is AUTOMATICALLY applied everywhere. IMPORTANT: Do NOT store weights here! |
64 |
|
stringstream resultsummary; |
71 |
|
bool do_test=false;/// DONE (just any test you wish) |
72 |
|
bool do_jzb_correction=false; //use this to find out the correction factor; originally this was done automatically but now you should do this separately and update Modules/Setup.C |
73 |
|
bool do_find_sideband_definition=false; |
74 |
< |
bool do_pick_up_events=true; ///DONE |
75 |
< |
|
74 |
> |
bool do_pick_up_events=false; ///DONE |
75 |
> |
bool do_ttbar_with_shapes=false; |
76 |
> |
bool do_upper_limits=false; |
77 |
> |
|
78 |
> |
bool do_efficiency_scan_in_susy_space=false; /// NOW OUTSOURCED TO T3 |
79 |
> |
bool requireZ=true; |
80 |
> |
|
81 |
|
//**** part 1 : peak finding |
82 |
|
float MCPeak=0,MCPeakError=0,DataPeak=0,DataPeakError=0,MCSigma=10,DataSigma=10; |
83 |
|
method=Kostasmethod;//Kostasmethod;//dogaus3sigma;// options: dogaus,doKM,dogaus2sigma,dogaus3sigma |
90 |
|
if(MCPeak>0) mcjzb<<"("<<jzbvariablemc<<"-"<<TMath::Abs(MCPeak)<<")"; |
91 |
|
else mcjzb<<"("<<jzbvariablemc<<"+"<<TMath::Abs(MCPeak)<<")"; |
92 |
|
|
93 |
< |
cout << "With peak correction, we get : " << endl; |
94 |
< |
cout << " Data : " << datajzb.str() << endl; |
95 |
< |
cout << " MC : " << datajzb.str() << endl; |
93 |
> |
dout << "With peak correction, we get : " << endl; |
94 |
> |
dout << " Data : " << datajzb.str() << endl; |
95 |
> |
dout << " MC : " << datajzb.str() << endl; |
96 |
|
|
97 |
|
if(do_find_sideband_definition) find_sideband_definition(); |
98 |
|
|
99 |
|
if(do_jzb_correction) { |
100 |
|
find_correction_factors(jzbvariabledata,jzbvariablemc); |
101 |
< |
cout << "Please update Modules/Setup.C to reflect the following values (round them first ... )" <<endl; |
102 |
< |
cout << "Corrected JZB variable definition " << endl << " Data: " << jzbvariabledata << " and MC: " << jzbvariablemc << endl; |
103 |
< |
cout << endl; |
104 |
< |
cout << "If you're feeling lazy, copy & paste this : " << endl; |
105 |
< |
cout << " string jzbvariabledata=\""<<jzbvariabledata<<"\";"<<endl; |
106 |
< |
cout << " string jzbvariablemc=\"" <<jzbvariablemc<<"\";"<<endl; |
101 |
> |
dout << "Please update Modules/Setup.C to reflect the following values (round them first ... )" <<endl; |
102 |
> |
dout << "Corrected JZB variable definition " << endl << " Data: " << jzbvariabledata << " and MC: " << jzbvariablemc << endl; |
103 |
> |
dout << endl; |
104 |
> |
dout << "If you're feeling lazy, copy & paste this : " << endl; |
105 |
> |
dout << " string jzbvariabledata=\""<<jzbvariabledata<<"\";"<<endl; |
106 |
> |
dout << " string jzbvariablemc=\"" <<jzbvariablemc<<"\";"<<endl; |
107 |
|
} |
108 |
|
|
109 |
|
if(study_sidebands) look_at_sidebands(mcjzb.str(),datajzb.str()); |
110 |
|
|
111 |
+ |
vector<float>jzb_limit_bins; |
112 |
+ |
jzb_limit_bins.push_back(50); |
113 |
+ |
//jzb_limit_bins.push_back(75);jzb_limit_bins.push_back(100); |
114 |
+ |
//jzb_limit_bins.push_back(150);jzb_limit_bins.push_back(200);jzb_limit_bins.push_back(500); |
115 |
+ |
|
116 |
+ |
|
117 |
+ |
if(do_ttbar_with_shapes) prepare_ttbar_limits(mcjzb.str(),datajzb.str(),DataPeakError,MCPeakError,jzb_limit_bins); |
118 |
+ |
|
119 |
+ |
if(do_upper_limits) calculate_upper_limits(mcjzb.str(),datajzb.str()); |
120 |
+ |
|
121 |
+ |
if(do_efficiency_scan_in_susy_space) efficiency_scan_in_susy_space(mcjzb.str(),datajzb.str(),requireZ,MCPeakError); |
122 |
+ |
|
123 |
|
if(do_pick_up_events) { |
124 |
|
|
125 |
< |
cout << "Observed: " << endl; |
125 |
> |
dout << "Observed: " << endl; |
126 |
|
pick_up_events((const char*)(cutmass&&cutOSSF&&cutnJets&&basiccut&&"((jzb[1]+0.06*pt-2.84727)>100)")); |
127 |
< |
cout << "Predicted (JZB<-100) OSSF" << endl; |
127 |
> |
dout << "Predicted (JZB<-100) OSSF" << endl; |
128 |
|
pick_up_events((const char*)(cutmass&&cutOSSF&&cutnJets&&basiccut&&"((jzb[1]+0.06*pt-2.84727)<-100)")); |
129 |
< |
cout << "Predicted (emu, JZB>100) OSOF" << endl; |
129 |
> |
dout << "Predicted (emu, JZB>100) OSOF" << endl; |
130 |
|
pick_up_events((const char*)(cutmass&&cutOSOF&&cutnJets&&basiccut&&"((jzb[1]+0.06*pt-2.84727)>100)")); |
131 |
< |
cout << "Predicted (emu, JZB<-100) OSOF" << endl; |
131 |
> |
dout << "Predicted (emu, JZB<-100) OSOF" << endl; |
132 |
|
pick_up_events((const char*)(cutmass&&cutOSOF&&cutnJets&&basiccut&&"((jzb[1]+0.06*pt-2.84727)<-100)")); |
133 |
< |
cout << "Predicted (SB emu, JZB>100) OSOF" << endl; |
133 |
> |
dout << "Predicted (SB emu, JZB>100) OSOF" << endl; |
134 |
|
pick_up_events((const char*)(sidebandcut&&cutOSOF&&cutnJets&&basiccut&&"((jzb[1]+0.06*pt-2.84727)>100)")); |
135 |
< |
cout << "Predicted (SB emu, JZB<-100) OSOF" << endl; |
135 |
> |
dout << "Predicted (SB emu, JZB<-100) OSOF" << endl; |
136 |
|
pick_up_events((const char*)(cutOSOF&&cutnJets&&basiccut&&sidebandcut&&"((jzb[1]+0.06*pt-2.84727)<-100)")); |
137 |
< |
cout << "Predicted (SB SF, JZB>100) OSSF" << endl; |
137 |
> |
dout << "Predicted (SB SF, JZB>100) OSSF" << endl; |
138 |
|
pick_up_events((const char*)(sidebandcut&&cutOSSF&&cutnJets&&basiccut&&"((jzb[1]+0.06*pt-2.84727)>100)")); |
139 |
< |
cout << "Predicted (SB SF, JZB<-100) OSSF" << endl; |
139 |
> |
dout << "Predicted (SB SF, JZB<-100) OSSF" << endl; |
140 |
|
pick_up_events((const char*)(sidebandcut&&cutOSSF&&cutnJets&&basiccut&&"((jzb[1]+0.06*pt-2.84727)<-100)")); |
141 |
|
} |
142 |
|
|
143 |
|
if(do_test) test(); |
144 |
|
|
123 |
– |
|
124 |
– |
|
145 |
|
return 0; |
146 |
|
} |
147 |
|
|