24 string out_dir =
"/net/top/homes/ald77/ra4_stats/wspaces";
39 int main(
int argc,
char *argv[]){
42 string hostname =
execute(
"echo $HOSTNAME");
43 string basefolder(
"/net/cms2/cms2r0/babymaker/");
44 if(
Contains(hostname,
"lxplus")) basefolder =
"/afs/cern.ch/user/m/manuelf/work/";
45 string foldermc(basefolder+
"babies/2017_01_27/mc/merged_mcbase_abcd/");
46 string foldersig(basefolder+
"babies/2017_02_22_grooming/T1tttt/merged_mcbase_abcd/");
47 string folderdata(basefolder+
"babies/2017_02_14/data/merged_database_abcd/");
50 string stitch_cuts(
"stitch_met&&pass");
53 foldermc+
"/*_TTJets*Lept*.root/tree" 56 {foldermc+
"/*_WJetsToLNu*.root/tree",
57 foldermc+
"/*_ST_*.root/tree",
58 foldermc+
"/*_TTW*.root/tree",
59 foldermc+
"/*_TTZ*.root/tree",
60 foldermc+
"/*DYJetsToLL*.root/tree",
61 foldermc+
"/*_ZJet*.root/tree",
62 foldermc+
"/*_ttHJetTobb*.root/tree",
63 foldermc+
"/*_TTGJets*.root/tree",
64 foldermc+
"/*_TTTT*.root/tree",
65 foldermc+
"/*_WH_HToBB*.root/tree",
66 foldermc+
"/*_ZH_HToBB*.root/tree",
67 foldermc+
"/*_WWTo*.root/tree",
68 foldermc+
"/*_WZ*.root/tree",
69 foldermc+
"/*_ZZ_*.root/tree",
70 foldermc+
"/*QCD_HT*0_Tune*.root/tree",
71 foldermc+
"/*QCD_HT*Inf_Tune*.root/tree"}
74 string data_cuts(
"trig_ra4&&pass");
77 {folderdata+
"/*.root/tree"}
81 {foldersig+
"/*SMS-T1tttt_mGluino-"+to_string(
mglu)+
"_mLSP-"+to_string(
mlsp)+
"_*.root/tree"}
82 },
"stitch",
false,
true};
84 Cut baseline(
"met/met_calo<5.&&pass_ra2_badmu&&st>500&&met>200&&nleps==1&&nbm>=1&&njets>=6&&mj14>250.");
86 string met =
"&&met>"+to_string(
met_low);
88 string njets_nbm =
"&&njets>"+to_string(
njets_low)+
"&&nbm>"+to_string(
nbm_low);
91 string tkveto =
"&&nveto==0";
93 Bin r1(
"r1",
"mt<=140.&&mj14<=400."+met+tkveto,
false);
94 Bin r2(
"r2",
"mt<=140.&&mj14>400."+met+njets_nbm+tkveto,
false);
95 Bin r3(
"r3",
"mt>140.&&mj14<=400."+met+tkveto,
false);
96 Bin r4(
"r4",
"mt>140.&&mj14>400."+met+njets_nbm+tkveto,
false);
98 set<Block> blocks = {{
"all", {{r1, r2}, {r3, r4}}}};
109 oss << setprecision(numeric_limits<double>::digits10) <<
out_dir <<
"/wspace_aggbin_" 114 oss <<
"_njets_" << ceil(
njets_low) <<
'_';
117 oss <<
"_nbm_" << ceil(
nbm_low) <<
'_';
122 string outname = oss.str();
123 if(!use_r4)
ReplaceAll(outname,
"wspace_aggbin_",
"wspace_aggbin_nor4_");
129 static struct option long_options[] = {
130 {
"out_dir", required_argument, 0, 0},
131 {
"syst_file", required_argument, 0, 0},
132 {
"lumi", required_argument, 0, 0},
133 {
"mglu", required_argument, 0, 0},
134 {
"mlsp", required_argument, 0, 0},
135 {
"do_track_veto", required_argument, 0, 0},
136 {
"met_low", required_argument, 0, 0},
137 {
"met_high", required_argument, 0, 0},
138 {
"njets_low", required_argument, 0, 0},
139 {
"njets_high", required_argument, 0, 0},
140 {
"nbm_low", required_argument, 0, 0},
141 {
"nbm_high", required_argument, 0, 0},
142 {
"no_r4", no_argument, 0, 0},
148 opt = getopt_long(argc, argv,
"", long_options, &option_index);
149 if( opt == -1)
break;
154 optname = long_options[option_index].name;
155 if(optname ==
"out_dir"){
157 }
else if(optname ==
"syst_file"){
159 }
else if(optname ==
"lumi"){
161 }
else if(optname ==
"do_track_veto"){
163 }
else if(optname ==
"met_low"){
165 }
else if(optname ==
"met_high"){
167 }
else if(optname ==
"njets_low"){
169 }
else if(optname ==
"njets_high"){
171 }
else if(optname ==
"nbm_low"){
173 }
else if(optname ==
"nbm_high"){
175 }
else if(optname ==
"mglu"){
177 }
else if(optname ==
"mlsp"){
179 }
else if(optname ==
"no_r4"){
182 printf(
"Bad option! Found option name %s\n", optname.c_str());
186 printf(
"Bad option! getopt_long returned character code 0%o\n", opt);
WorkspaceGenerator & SetLuminosity(double luminosity)
int main(int argc, char *argv[])
WorkspaceGenerator & SetRMax(double rmax)
WorkspaceGenerator & SetDoSystematics(bool do_systematics)
bool UseGausApprox() const
void ReplaceAll(std::string &str, const std::string &orig, const std::string &rep)
bool Contains(const std::string &str, const std::string &pat)
std::string execute(const std::string &cmd)
WorkspaceGenerator & SetKappaCorrected(bool do_kappa_correction)
void WriteToFile(const std::string &file_name)
SYSTEMATIC dilep PROCESSES ttbar
void GetOptions(int argc, char *argv[])