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 |
> |
bool do_run_check=false; |
78 |
> |
|
79 |
> |
bool do_show_dibosons=true; |
80 |
> |
|
81 |
> |
bool do_efficiency_scan_in_susy_space=false; /// NOW OUTSOURCED TO T3 |
82 |
> |
bool requireZ=true; |
83 |
> |
|
84 |
|
//**** part 1 : peak finding |
85 |
|
float MCPeak=0,MCPeakError=0,DataPeak=0,DataPeakError=0,MCSigma=10,DataSigma=10; |
86 |
|
method=Kostasmethod;//Kostasmethod;//dogaus3sigma;// options: dogaus,doKM,dogaus2sigma,dogaus3sigma |
87 |
< |
if(do_peak_finding||calculate_pred_and_observed||do_all) find_peaks(MCPeak,MCPeakError, DataPeak, DataPeakError,MCSigma,DataSigma,resultsummary); |
87 |
> |
if(do_peak_finding||do_show_dibosons||calculate_pred_and_observed||do_all) find_peaks(MCPeak,MCPeakError, DataPeak, DataPeakError,MCSigma,DataSigma,resultsummary); |
88 |
|
|
89 |
|
stringstream datajzb; |
90 |
|
if(DataPeak>0) datajzb<<"("<<jzbvariabledata<<"-"<<TMath::Abs(DataPeak)<<")"; |
93 |
|
if(MCPeak>0) mcjzb<<"("<<jzbvariablemc<<"-"<<TMath::Abs(MCPeak)<<")"; |
94 |
|
else mcjzb<<"("<<jzbvariablemc<<"+"<<TMath::Abs(MCPeak)<<")"; |
95 |
|
|
96 |
< |
cout << "With peak correction, we get : " << endl; |
97 |
< |
cout << " Data : " << datajzb.str() << endl; |
98 |
< |
cout << " MC : " << datajzb.str() << endl; |
96 |
> |
dout << "With peak correction, we get : " << endl; |
97 |
> |
dout << " Data : " << datajzb.str() << endl; |
98 |
> |
dout << " MC : " << datajzb.str() << endl; |
99 |
|
|
100 |
|
if(do_find_sideband_definition) find_sideband_definition(); |
101 |
|
|
102 |
|
if(do_jzb_correction) { |
103 |
|
find_correction_factors(jzbvariabledata,jzbvariablemc); |
104 |
< |
cout << "Please update Modules/Setup.C to reflect the following values (round them first ... )" <<endl; |
105 |
< |
cout << "Corrected JZB variable definition " << endl << " Data: " << jzbvariabledata << " and MC: " << jzbvariablemc << endl; |
106 |
< |
cout << endl; |
107 |
< |
cout << "If you're feeling lazy, copy & paste this : " << endl; |
108 |
< |
cout << " string jzbvariabledata=\""<<jzbvariabledata<<"\";"<<endl; |
109 |
< |
cout << " string jzbvariablemc=\"" <<jzbvariablemc<<"\";"<<endl; |
104 |
> |
dout << "Please update Modules/Setup.C to reflect the following values (round them first ... )" <<endl; |
105 |
> |
dout << "Corrected JZB variable definition " << endl << " Data: " << jzbvariabledata << " and MC: " << jzbvariablemc << endl; |
106 |
> |
dout << endl; |
107 |
> |
dout << "If you're feeling lazy, copy & paste this : " << endl; |
108 |
> |
dout << " string jzbvariabledata=\""<<jzbvariabledata<<"\";"<<endl; |
109 |
> |
dout << " string jzbvariablemc=\"" <<jzbvariablemc<<"\";"<<endl; |
110 |
|
} |
111 |
|
|
112 |
|
if(study_sidebands) look_at_sidebands(mcjzb.str(),datajzb.str()); |
113 |
|
|
114 |
+ |
vector<float>jzb_limit_bins; |
115 |
+ |
jzb_limit_bins.push_back(50); |
116 |
+ |
//jzb_limit_bins.push_back(75);jzb_limit_bins.push_back(100); |
117 |
+ |
//jzb_limit_bins.push_back(150);jzb_limit_bins.push_back(200);jzb_limit_bins.push_back(500); |
118 |
+ |
|
119 |
+ |
|
120 |
+ |
if(do_ttbar_with_shapes) prepare_ttbar_limits(mcjzb.str(),datajzb.str(),DataPeakError,MCPeakError,jzb_limit_bins); |
121 |
+ |
|
122 |
+ |
if(do_upper_limits) calculate_upper_limits(mcjzb.str(),datajzb.str()); |
123 |
+ |
|
124 |
+ |
if(do_efficiency_scan_in_susy_space) efficiency_scan_in_susy_space(mcjzb.str(),datajzb.str(),requireZ,MCPeakError); |
125 |
+ |
|
126 |
|
if(do_pick_up_events) { |
127 |
|
|
128 |
< |
cout << "Observed: " << endl; |
128 |
> |
dout << "Observed: " << endl; |
129 |
|
pick_up_events((const char*)(cutmass&&cutOSSF&&cutnJets&&basiccut&&"((jzb[1]+0.06*pt-2.84727)>100)")); |
130 |
< |
cout << "Predicted (JZB<-100) OSSF" << endl; |
130 |
> |
dout << "Predicted (JZB<-100) OSSF" << endl; |
131 |
|
pick_up_events((const char*)(cutmass&&cutOSSF&&cutnJets&&basiccut&&"((jzb[1]+0.06*pt-2.84727)<-100)")); |
132 |
< |
cout << "Predicted (emu, JZB>100) OSOF" << endl; |
132 |
> |
dout << "Predicted (emu, JZB>100) OSOF" << endl; |
133 |
|
pick_up_events((const char*)(cutmass&&cutOSOF&&cutnJets&&basiccut&&"((jzb[1]+0.06*pt-2.84727)>100)")); |
134 |
< |
cout << "Predicted (emu, JZB<-100) OSOF" << endl; |
134 |
> |
dout << "Predicted (emu, JZB<-100) OSOF" << endl; |
135 |
|
pick_up_events((const char*)(cutmass&&cutOSOF&&cutnJets&&basiccut&&"((jzb[1]+0.06*pt-2.84727)<-100)")); |
136 |
< |
cout << "Predicted (SB emu, JZB>100) OSOF" << endl; |
136 |
> |
dout << "Predicted (SB emu, JZB>100) OSOF" << endl; |
137 |
|
pick_up_events((const char*)(sidebandcut&&cutOSOF&&cutnJets&&basiccut&&"((jzb[1]+0.06*pt-2.84727)>100)")); |
138 |
< |
cout << "Predicted (SB emu, JZB<-100) OSOF" << endl; |
138 |
> |
dout << "Predicted (SB emu, JZB<-100) OSOF" << endl; |
139 |
|
pick_up_events((const char*)(cutOSOF&&cutnJets&&basiccut&&sidebandcut&&"((jzb[1]+0.06*pt-2.84727)<-100)")); |
140 |
< |
cout << "Predicted (SB SF, JZB>100) OSSF" << endl; |
140 |
> |
dout << "Predicted (SB SF, JZB>100) OSSF" << endl; |
141 |
|
pick_up_events((const char*)(sidebandcut&&cutOSSF&&cutnJets&&basiccut&&"((jzb[1]+0.06*pt-2.84727)>100)")); |
142 |
< |
cout << "Predicted (SB SF, JZB<-100) OSSF" << endl; |
142 |
> |
dout << "Predicted (SB SF, JZB<-100) OSSF" << endl; |
143 |
|
pick_up_events((const char*)(sidebandcut&&cutOSSF&&cutnJets&&basiccut&&"((jzb[1]+0.06*pt-2.84727)<-100)")); |
144 |
|
} |
145 |
|
|
146 |
< |
if(do_test) test(); |
147 |
< |
|
146 |
> |
if(do_run_check) run_check(); |
147 |
> |
if(do_show_dibosons) show_dibosons(datajzb.str(),mcjzb.str()); |
148 |
|
|
149 |
+ |
if(do_test) test(); |
150 |
|
|
151 |
|
return 0; |
152 |
|
} |