6 #include <initializer_list> 18 #include "TDirectory.h" 59 int main(
int argc,
char *argv[]){
60 time_t begtime, endtime;
62 cout << fixed << setprecision(2);
65 cout<<endl<<
"You need to specify the input file with -f. Exiting"<<endl<<endl;
68 string midjets = to_string(atoi(
hijets.c_str())-1);
69 string minjets2l = to_string(atoi(
minjets.c_str())-1);
70 string midjets2l = to_string(atoi(midjets.c_str())-1);
72 string hostname =
execute(
"echo $HOSTNAME");
73 string basefolder(
"/net/cms2/cms2r0/babymaker/");
74 if(
Contains(hostname,
"lxplus")) basefolder =
"/afs/cern.ch/user/m/manuelf/work/";
75 string foldermc(basefolder+
"babies/2017_01_27/mc/merged_mcbase_abcd/");
76 string folderdata(basefolder+
"babies/2017_02_14/data/merged_database_abcd/");
78 cout<<
"binning is "<<
binning<<endl;
80 else cout<<
"no veto"<<endl;
82 cout<<
"mj is "<<
mjdef<<endl;
83 cout<<
"lumi is "<<to_string(
lumi)<<endl;
87 string stitch_cuts(
"stitch_met&&pass");
90 foldermc+
"/*_TTJets*Lept*.root/tree",
93 {foldermc+
"/*_WJetsToLNu*.root/tree",
94 foldermc+
"/*_ST_*.root/tree",
95 foldermc+
"/*_TTW*.root/tree",
96 foldermc+
"/*_TTZ*.root/tree",
97 foldermc+
"/*DYJetsToLL*.root/tree",
98 foldermc+
"/*_ZJet*.root/tree",
99 foldermc+
"/*_ttHJetTobb*.root/tree",
100 foldermc+
"/*_TTGJets*.root/tree",
101 foldermc+
"/*_TTTT*.root/tree",
102 foldermc+
"/*_WH_HToBB*.root/tree",
103 foldermc+
"/*_ZH_HToBB*.root/tree",
104 foldermc+
"/*_WWTo*.root/tree",
105 foldermc+
"/*_WZ*.root/tree",
106 foldermc+
"/*_ZZ_*.root/tree",
107 foldermc+
"/*QCD_HT*0_Tune*.root/tree",
108 foldermc+
"/*QCD_HT*Inf_Tune*.root/tree"}
112 },
"stitch",
false,
true};
113 Process injection{
"injection", {
115 },
"stitch",
false,
true};
117 string data_cuts(
"trig_ra4&&pass");
120 {folderdata+
"/*.root/tree"}
124 set<Process> backgrounds{
ttbar, other};
127 Cut baseline1b{
"met/met_calo<5.&&pass_ra2_badmu&&st>500&&met>200&&nleps==1&&nbm>=1&&njets>="+
minjets+
"&&"+
mjdef+
">"+
lowmjthresh};
132 set<Block> blocks_1bk;
138 Bin r2{
"r2",
"mt<=140&&"+
mjdef+
">"+
mjthresh+veto+
"&&met>350&&met<=500&&nbm==2&&njets>=6&&njets<=8",
142 Bin r4{
"r4",
"mt>140&&"+
mjdef+
">"+
mjthresh+veto+
"&&met>350&&met<=500&&nbm==2&&njets>=6&&njets<=8",
145 {
"inclusive", {{r1,r2},{r3,r4}}}
153 Bin r2_lowmet_lownj_1b{
"r2_lowmet_lownj_1b",
"mt<=140&&"+
mjdef+
">"+
mjthresh+
"&&met<="+
himet+
"&&njets<="+midjets+
"&&nbm==1",
155 Bin r2_lowmet_highnj_1b{
"r2_lowmet_highnj_1b",
"mt<=140&&"+
mjdef+
">"+
mjthresh+
"&&met<="+
himet+
"&&njets>"+midjets+
"&&nbm==1",
157 Bin r2_lowmet_lownj_2b{
"r2_lowmet_lownj_2b",
"mt<=140&&"+
mjdef+
">"+
mjthresh+
"&&met<="+
himet+
"&&njets<="+midjets+
"&&nbm==2",
159 Bin r2_lowmet_lownj_3b{
"r2_lowmet_lownj_3b",
"mt<=140&&"+
mjdef+
">"+
mjthresh+
"&&met<="+
himet+
"&&njets<="+midjets+
"&&nbm>2",
161 Bin r2_lowmet_highnj_2b{
"r2_lowmet_highnj_2b",
"mt<=140&&"+
mjdef+
">"+
mjthresh+
"&&met<="+
himet+
"&&njets>"+midjets+
"&&nbm==2",
163 Bin r2_lowmet_highnj_3b{
"r2_lowmet_highnj_3b",
"mt<=140&&"+
mjdef+
">"+
mjthresh+
"&&met<="+
himet+
"&&njets>"+midjets+
"&&nbm>2",
166 Bin r2_highmet_lownj_1b{
"r2_highmet_lownj_1b",
"mt<=140&&"+
mjdef+
">"+
mjthresh+
"&&met>"+
himet+
"&&njets<="+midjets+
"&&nbm==1",
168 Bin r2_highmet_highnj_1b{
"r2_highmet_highnj_1b",
"mt<=140&&"+
mjdef+
">"+
mjthresh+
"&&met>"+
himet+
"&&njets>"+midjets+
"&&nbm==1",
170 Bin r2_highmet_lownj_2b{
"r2_highmet_lownj_2b",
"mt<=140&&"+
mjdef+
">"+
mjthresh+
"&&met>"+
himet+
"&&njets<="+midjets+
"&&nbm>=2",
172 Bin r2_highmet_highnj_2b{
"r2_highmet_highnj_2b",
"mt<=140&&"+
mjdef+
">"+
mjthresh+
"&&met>"+
himet+
"&&njets>"+midjets+
"&&nbm>=2",
180 Bin r4_lowmet_lownj_1b{
"r4_lowmet_lownj_1b",
"mt>140&&"+
mjdef+
">"+
mjthresh+
"&&met<="+
himet+
"&&njets<="+midjets+
"&&nbm==1"+veto,
182 Bin r4_lowmet_highnj_1b{
"r4_lowmet_highnj_1b",
"mt>140&&"+
mjdef+
">"+
mjthresh+
"&&met<="+
himet+
"&&njets>"+midjets+
"&&nbm==1"+veto,
184 Bin r4_lowmet_lownj_2b{
"r4_lowmet_lownj_2b",
"mt>140&&"+
mjdef+
">"+
mjthresh+
"&&met<="+
himet+
"&&njets<="+midjets+
"&&nbm==2"+veto,
186 Bin r4_lowmet_lownj_3b{
"r4_lowmet_lownj_3b",
"mt>140&&"+
mjdef+
">"+
mjthresh+
"&&met<="+
himet+
"&&njets<="+midjets+
"&&nbm>2"+veto,
188 Bin r4_lowmet_highnj_2b{
"r4_lowmet_highnj_2b",
"mt>140&&"+
mjdef+
">"+
mjthresh+
"&&met<="+
himet+
"&&njets>"+midjets+
"&&nbm==2"+veto,
190 Bin r4_lowmet_highnj_3b{
"r4_lowmet_highnj_3b",
"mt>140&&"+
mjdef+
">"+
mjthresh+
"&&met<="+
himet+
"&&njets>"+midjets+
"&&nbm>2"+veto,
193 Bin r4_highmet_lownj_1b{
"r4_highmet_lownj_1b",
"mt>140&&"+
mjdef+
">"+
mjthresh+
"&&met>"+
himet+
"&&njets<="+midjets+
"&&nbm==1"+veto,
195 Bin r4_highmet_highnj_1b{
"r4_highmet_highnj_1b",
"mt>140&&"+
mjdef+
">"+
mjthresh+
"&&met>"+
himet+
"&&njets>"+midjets+
"&&nbm==1"+veto,
197 Bin r4_highmet_lownj_2b{
"r4_highmet_lownj_2b",
"mt>140&&"+
mjdef+
">"+
mjthresh+
"&&met>"+
himet+
"&&njets<="+midjets+
"&&nbm>=2"+veto,
199 Bin r4_highmet_highnj_2b{
"r4_highmet_highnj_2b",
"mt>140&&"+
mjdef+
">"+
mjthresh+
"&&met>"+
himet+
"&&njets>"+midjets+
"&&nbm>=2"+veto,
204 {
"lowmet", {{r1_lowmet_allnb, r2_lowmet_lownj_1b, r2_lowmet_highnj_1b, r2_lowmet_lownj_2b, r2_lowmet_highnj_2b,
205 r2_lowmet_lownj_3b, r2_lowmet_highnj_3b},
206 {r3_lowmet_allnb, r4_lowmet_lownj_1b, r4_lowmet_highnj_1b, r4_lowmet_lownj_2b, r4_lowmet_highnj_2b,
207 r4_lowmet_lownj_3b, r4_lowmet_highnj_3b}}},
208 {
"highmet", {{r1_highmet_allnb, r2_highmet_lownj_1b, r2_highmet_highnj_1b, r2_highmet_lownj_2b, r2_highmet_highnj_2b},
209 {r3_highmet_allnb, r4_highmet_lownj_1b, r4_highmet_highnj_1b, r4_highmet_lownj_2b, r4_highmet_highnj_2b}}}
221 Bin r2_lowmet_lownj_1b{
"r2_lowmet_lownj_1b",
"mt<=140&&"+
mjdef+
">"+
mjthresh+
"&&met<="+
medmet+
"&&njets<="+midjets+
"&&nbm==1"+veto,
223 Bin r2_lowmet_highnj_1b{
"r2_lowmet_highnj_1b",
"mt<=140&&"+
mjdef+
">"+
mjthresh+
"&&met<="+
medmet+
"&&njets>"+midjets+
"&&nbm==1"+veto,
225 Bin r2_lowmet_lownj_2b{
"r2_lowmet_lownj_2b",
"mt<=140&&"+
mjdef+
">"+
mjthresh+
"&&met<="+
medmet+
"&&njets<="+midjets+
"&&nbm==2"+veto,
227 Bin r2_lowmet_lownj_3b{
"r2_lowmet_lownj_3b",
"mt<=140&&"+
mjdef+
">"+
mjthresh+
"&&met<="+
medmet+
"&&njets<="+midjets+
"&&nbm>2"+veto,
229 Bin r2_lowmet_highnj_2b{
"r2_lowmet_highnj_2b",
"mt<=140&&"+
mjdef+
">"+
mjthresh+
"&&met<="+
medmet+
"&&njets>"+midjets+
"&&nbm==2"+veto,
231 Bin r2_lowmet_highnj_3b{
"r2_lowmet_highnj_3b",
"mt<=140&&"+
mjdef+
">"+
mjthresh+
"&&met<="+
medmet+
"&&njets>"+midjets+
"&&nbm>2"+veto,
235 Bin r2_medmet_lownj_1b{
"r2_medmet_lownj_1b",
"mt<=140&&"+
mjdef+
">"+
mjthresh+
"&&met<="+
vhimet+
"&&met>"+
medmet+
"&&njets<="+midjets+
"&&nbm==1"+veto,
237 Bin r2_medmet_highnj_1b{
"r2_medmet_highnj_1b",
"mt<=140&&"+
mjdef+
">"+
mjthresh+
"&&met<="+
vhimet+
"&&met>"+
medmet+
"&&njets>"+midjets+
"&&nbm==1"+veto,
239 Bin r2_medmet_lownj_2b{
"r2_medmet_lownj_2b",
"mt<=140&&"+
mjdef+
">"+
mjthresh+
"&&met<="+
vhimet+
"&&met>"+
medmet+
"&&njets<="+midjets+
"&&nbm==2"+veto,
241 Bin r2_medmet_lownj_3b{
"r2_medmet_lownj_3b",
"mt<=140&&"+
mjdef+
">"+
mjthresh+
"&&met<="+
vhimet+
"&&met>"+
medmet+
"&&njets<="+midjets+
"&&nbm>2"+veto,
243 Bin r2_medmet_highnj_2b{
"r2_medmet_highnj_2b",
"mt<=140&&"+
mjdef+
">"+
mjthresh+
"&&met<="+
vhimet+
"&&met>"+
medmet+
"&&njets>"+midjets+
"&&nbm==2"+veto,
245 Bin r2_medmet_highnj_3b{
"r2_medmet_highnj_3b",
"mt<=140&&"+
mjdef+
">"+
mjthresh+
"&&met<="+
vhimet+
"&&met>"+
medmet+
"&&njets>"+midjets+
"&&nbm>2"+veto,
248 Bin r2_highmet_lownj_1b{
"r2_highmet_lownj_1b",
"mt<=140&&"+
mjdef+
">"+
mjthresh+
"&&met>"+
vhimet+
"&&njets<="+midjets+
"&&nbm==1"+veto,
250 Bin r2_highmet_highnj_1b{
"r2_highmet_highnj_1b",
"mt<=140&&"+
mjdef+
">"+
mjthresh+
"&&met>"+
vhimet+
"&&njets>"+midjets+
"&&nbm==1"+veto,
252 Bin r2_highmet_lownj_2b{
"r2_highmet_lownj_2b",
"mt<=140&&"+
mjdef+
">"+
mjthresh+
"&&met>"+
vhimet+
"&&njets<="+midjets+
"&&nbm==2"+veto,
254 Bin r2_highmet_lownj_3b{
"r2_highmet_lownj_3b",
"mt<=140&&"+
mjdef+
">"+
mjthresh+
"&&met>"+
vhimet+
"&&njets<="+midjets+
"&&nbm>2"+veto,
256 Bin r2_highmet_highnj_2b{
"r2_highmet_highnj_2b",
"mt<=140&&"+
mjdef+
">"+
mjthresh+
"&&met>"+
vhimet+
"&&njets>"+midjets+
"&&nbm==2"+veto,
258 Bin r2_highmet_highnj_3b{
"r2_highmet_highnj_3b",
"mt<=140&&"+
mjdef+
">"+
mjthresh+
"&&met>"+
vhimet+
"&&njets>"+midjets+
"&&nbm>2"+veto,
268 Bin r4_lowmet_lownj_1b{
"r4_lowmet_lownj_1b",
"mt>140&&"+
mjdef+
">"+
mjthresh+
"&&met<="+
medmet+
"&&njets<="+midjets+
"&&nbm==1"+veto,
270 Bin r4_lowmet_highnj_1b{
"r4_lowmet_highnj_1b",
"mt>140&&"+
mjdef+
">"+
mjthresh+
"&&met<="+
medmet+
"&&njets>"+midjets+
"&&nbm==1"+veto,
272 Bin r4_lowmet_lownj_2b{
"r4_lowmet_lownj_2b",
"mt>140&&"+
mjdef+
">"+
mjthresh+
"&&met<="+
medmet+
"&&njets<="+midjets+
"&&nbm==2"+veto,
274 Bin r4_lowmet_lownj_3b{
"r4_lowmet_lownj_3b",
"mt>140&&"+
mjdef+
">"+
mjthresh+
"&&met<="+
medmet+
"&&njets<="+midjets+
"&&nbm>2"+veto,
276 Bin r4_lowmet_highnj_2b{
"r4_lowmet_highnj_2b",
"mt>140&&"+
mjdef+
">"+
mjthresh+
"&&met<="+
medmet+
"&&njets>"+midjets+
"&&nbm==2"+veto,
278 Bin r4_lowmet_highnj_3b{
"r4_lowmet_highnj_3b",
"mt>140&&"+
mjdef+
">"+
mjthresh+
"&&met<="+
medmet+
"&&njets>"+midjets+
"&&nbm>2"+veto,
282 Bin r4_medmet_lownj_1b{
"r4_medmet_lownj_1b",
"mt>140&&"+
mjdef+
">"+
mjthresh+
"&&met<="+
vhimet+
"&&met>"+
medmet+
"&&njets<="+midjets+
"&&nbm==1"+veto,
284 Bin r4_medmet_highnj_1b{
"r4_medmet_highnj_1b",
"mt>140&&"+
mjdef+
">"+
mjthresh+
"&&met<="+
vhimet+
"&&met>"+
medmet+
"&&njets>"+midjets+
"&&nbm==1"+veto,
286 Bin r4_medmet_lownj_2b{
"r4_medmet_lownj_2b",
"mt>140&&"+
mjdef+
">"+
mjthresh+
"&&met<="+
vhimet+
"&&met>"+
medmet+
"&&njets<="+midjets+
"&&nbm==2"+veto,
288 Bin r4_medmet_lownj_3b{
"r4_medmet_lownj_3b",
"mt>140&&"+
mjdef+
">"+
mjthresh+
"&&met<="+
vhimet+
"&&met>"+
medmet+
"&&njets<="+midjets+
"&&nbm>2"+veto,
290 Bin r4_medmet_highnj_2b{
"r4_medmet_highnj_2b",
"mt>140&&"+
mjdef+
">"+
mjthresh+
"&&met<="+
vhimet+
"&&met>"+
medmet+
"&&njets>"+midjets+
"&&nbm==2"+veto,
292 Bin r4_medmet_highnj_3b{
"r4_medmet_highnj_3b",
"mt>140&&"+
mjdef+
">"+
mjthresh+
"&&met<="+
vhimet+
"&&met>"+
medmet+
"&&njets>"+midjets+
"&&nbm>2"+veto,
295 Bin r4_highmet_lownj_1b{
"r4_highmet_lownj_1b",
"mt>140&&"+
mjdef+
">"+
mjthresh+
"&&met>"+
vhimet+
"&&njets<="+midjets+
"&&nbm==1"+veto,
297 Bin r4_highmet_highnj_1b{
"r4_highmet_highnj_1b",
"mt>140&&"+
mjdef+
">"+
mjthresh+
"&&met>"+
vhimet+
"&&njets>"+midjets+
"&&nbm==1"+veto,
299 Bin r4_highmet_lownj_2b{
"r4_highmet_lownj_2b",
"mt>140&&"+
mjdef+
">"+
mjthresh+
"&&met>"+
vhimet+
"&&njets<="+midjets+
"&&nbm==2"+veto,
301 Bin r4_highmet_lownj_3b{
"r4_highmet_lownj_3b",
"mt>140&&"+
mjdef+
">"+
mjthresh+
"&&met>"+
vhimet+
"&&njets<="+midjets+
"&&nbm>2"+veto,
303 Bin r4_highmet_highnj_2b{
"r4_highmet_highnj_2b",
"mt>140&&"+
mjdef+
">"+
mjthresh+
"&&met>"+
vhimet+
"&&njets>"+midjets+
"&&nbm==2"+veto,
305 Bin r4_highmet_highnj_3b{
"r4_highmet_highnj_3b",
"mt>140&&"+
mjdef+
">"+
mjthresh+
"&&met>"+
vhimet+
"&&njets>"+midjets+
"&&nbm>2"+veto,
309 {
"lowmet", {{r1_lowmet_allnb, r2_lowmet_lownj_1b, r2_lowmet_lownj_2b, r2_lowmet_lownj_3b, r2_lowmet_highnj_1b,
310 r2_lowmet_highnj_2b, r2_lowmet_highnj_3b},
311 {r3_lowmet_allnb, r4_lowmet_lownj_1b, r4_lowmet_lownj_2b, r4_lowmet_lownj_3b, r4_lowmet_highnj_1b,
312 r4_lowmet_highnj_2b, r4_lowmet_highnj_3b}}},
313 {
"medmet", {{r1_medmet_allnb, r2_medmet_lownj_1b, r2_medmet_lownj_2b, r2_medmet_lownj_3b, r2_medmet_highnj_1b,
314 r2_medmet_highnj_2b, r2_medmet_highnj_3b},
315 {r3_medmet_allnb, r4_medmet_lownj_1b, r4_medmet_lownj_2b, r4_medmet_lownj_3b, r4_medmet_highnj_1b,
316 r4_medmet_highnj_2b, r4_medmet_highnj_3b}}},
317 {
"highmet", {{r1_highmet_allnb, r2_highmet_lownj_1b, r2_highmet_lownj_2b, r2_highmet_lownj_3b, r2_highmet_highnj_1b,
318 r2_highmet_highnj_2b, r2_highmet_highnj_3b},
319 {r3_highmet_allnb, r4_highmet_lownj_1b, r4_highmet_lownj_2b, r4_highmet_lownj_3b, r4_highmet_highnj_1b,
320 r4_highmet_highnj_2b, r4_highmet_highnj_3b}}}
328 string glu_lsp(
"mGluino-"+to_string(mglu)+
"_mLSP-"+to_string(mlsp));
331 Cut *pbaseline(&baseline1b);
332 set<Block> *pblocks(&blocks_1bk);
333 string model =
"T1tttt";
335 string sysfolder =
"/net/cms2/cms2r0/babymaker/sys/2017_02_22/T1tttt_fakePU/";
337 if(
binning==
"nominal" &&
lumi < 3) sysfolder =
"/net/cms2/cms2r0/babymaker/sys/2016_01_11/scan/";
339 if(
Contains(hostname,
"lxplus")) sysfolder =
"txt/systematics/";
341 sysfolder =
"/net/cms2/cms2r0/babymaker/sys/2017_02_22/T5tttt_fakePU/";
345 sysfolder =
"/net/cms2/cms2r0/babymaker/sys/2016_02_09/T2tt/";
349 sysfolder =
"/net/cms2/cms2r0/babymaker/sys/2016_02_09/T6ttWW/";
352 cout<<
"sysfolder is "<<sysfolder<<endl;
355 string sysfile(sysfolder+
"sys_SMS-"+model+
"_"+glu_lsp+
"_35.9ifb");
356 if(
binning!=
"alternate") sysfile+=
"_nominal.txt";
358 if(
binning==
"nominal" &&
lumi < 3) sysfile = sysfolder+
"sys_SMS-"+model+
"_"+glu_lsp+
".txt";
360 cout<<
"sysfile is "<<sysfile<<endl;
363 if(stat (sysfile.c_str(), &buffer) != 0) {
364 cout<<endl<<
"WARNING: "<<sysfile<<
" does not exist. Using ";
365 sysfile =
"txt/systematics/m1bk_nc.txt";
366 cout<<sysfile<<
" instead"<<endl<<endl;
370 float xsec, xsec_unc;
374 if(mglu <= 1500 && mlsp <= 800){
376 if(mglu <= 1200 && mlsp <= 550){
378 if(mglu <= 900 && mlsp <= 350){
384 gSystem->mkdir(
outfolder.c_str(), kTRUE);
385 string outname(
outfolder+
"/wspace_"+model+
"_"+glu_lsp+
"_xsecNom.root");
431 cout<<
"Finding workspaces took "<<fixed<<setprecision(0)<<difftime(endtime, begtime)<<
" seconds"<<endl<<endl;
438 static struct option long_options[] = {
439 {
"sigfile", required_argument, 0,
'f'},
440 {
"lumi", required_argument, 0,
'l'},
441 {
"unblind", required_argument, 0,
'u'},
442 {
"no_syst", no_argument, 0, 0},
443 {
"lowj", required_argument, 0,
'j'},
444 {
"hij", required_argument, 0,
'h'},
445 {
"himet", required_argument, 0,
'm'},
446 {
"mj", required_argument, 0,
's'},
447 {
"lowmjthresh", required_argument, 0,
'a'},
448 {
"mj_var", required_argument, 0,
'd'},
449 {
"nokappa", no_argument, 0,
'k'},
450 {
"no_r4", no_argument, 0,
'4'},
451 {
"useVeto", required_argument, 0,
'v'},
452 {
"alt_binning", required_argument, 0,
'b'},
453 {
"toys", required_argument, 0, 0},
454 {
"sig_strength", required_argument, 0,
'g'},
455 {
"dummy_syst", required_argument, 0, 0},
456 {
"outfolder", required_argument, 0,
'o'},
457 {
"inject", required_argument, 0,
'i'},
458 {
"nominal", no_argument, 0,
'n'},
459 {
"poisson", no_argument, 0,
'p'},
465 opt = getopt_long(argc, argv,
"l:u:j:h:m:s:a:d:k4b:v:g:f:o:i:nc:p", long_options, &option_index);
467 if( opt == -1)
break;
478 if(
string(optarg)==
"all"){
480 }
else if(
string(optarg)==
"sideband"){
482 }
else if(
string(optarg)==
"1b"){
510 if(
string(optarg) ==
"on")
applyVeto =
true;
535 optname = long_options[option_index].name;
536 if(optname ==
"no_syst"){
538 }
else if(optname ==
"toys"){
540 }
else if(optname ==
"dummy_syst"){
544 printf(
"Bad option! Found option name %s\n", optname.c_str());
548 printf(
"Bad option! getopt_long returned character code 0%o\n", opt);
WorkspaceGenerator & SetLuminosity(double luminosity)
WorkspaceGenerator & SetRMax(double rmax)
WorkspaceGenerator & SetDoSystematics(bool do_systematics)
void parseMasses(const std::string &str, int &mglu, int &mlsp)
WorkspaceGenerator & SetInjectionModel(const Process &injection)
bool UseGausApprox() const
void ReplaceAll(std::string &str, const std::string &orig, const std::string &rep)
void stopCrossSection(int stop_mass, float &xsec, float &xsec_unc)
bool Contains(const std::string &str, const std::string &pat)
std::string execute(const std::string &cmd)
WorkspaceGenerator & SetKappaCorrected(bool do_kappa_correction)
int main(int argc, char *argv[])
void WriteToFile(const std::string &file_name)
void signalCrossSection(int glu_mass, float &xsec, float &xsec_unc)
SYSTEMATIC dilep PROCESSES ttbar
void GetOptions(int argc, char *argv[])
string lowmjthresh("250")
size_t AddToys(size_t num_toys=0)