DESY Hbb Analysis Framework
macro_config.h
Go to the documentation of this file.
1 #ifndef Analysis_Tools_macro_config_h_
2 #define Analysis_Tools_macro_config_h_
3 
4 #include "boost/program_options.hpp"
5 #include "boost/algorithm/string.hpp"
6 #include <string>
7 #include <iostream>
8 #include <fstream>
9 #include <vector>
10 
11 int macro_config(int argc, char * argv[]);
12 
13 std::string cfg_;
14 
16 int nlumis_;
17 int runmin_;
18 int runmax_;
19 bool isMC_;
21 std::string inputlist_;
22 std::string outputRoot_;
23 std::string json_;
24 
25 int seed_;
26 std::string seedfile_;
27 
28 //
32 bool psweight_;
33 float psnorm_;
34 bool trigemul_;
35 
36 
37 // triggerobjects emulation
38 int tonmin_[10];
39 std::vector<float> toptmin_[10];
40 std::vector<float> toetamax_[10];
41 
42 int torefnmin_[10];
43 std::vector<float> torefptmin_[10];
44 std::vector<float> torefetamax_[10];
45 
46 
47 // jets
48 
52 std::vector<float> jetsptmin_;
53 std::vector<float> jetsptmax_;
54 std::vector<float> jetsetamax_;
55 std::vector<float> jetsbtagmin_;
56 std::string jetsid_;
57 
59 std::vector<float> l1tjetsptmin_;
60 std::vector<float> l1tjetsetamax_;
61 
63 std::vector<float> l1tjetsrefptmin_;
64 std::vector<float> l1tjetsrefetamax_;
65 
66 // btag SF csv file
67 std::string btagsf_;
68 
69 // JER resolution and scale factors from txt file
70 std::string jerpt_;
71 std::string jersf_;
72 
73 
74 // muons
75 
77 std::vector<float> muonsptmin_;
78 std::vector<float> muonsptmax_;
79 std::vector<float> muonsetamax_;
80 std::string muonsid_;
81 
83 std::vector<float> l1tmuonsptmin_;
84 std::vector<float> l1tmuonsetamax_;
85 
87 std::vector<float> l1tmuonsrefptmin_;
88 std::vector<float> l1tmuonsrefetamax_;
89 
90 
91 // additional cuts of unidentified objects or for extra selections
92 int nmin_;
93 int nmax_;
94 std::vector<float> ptmin_;
95 std::vector<float> ptmax_;
96 std::vector<float> etamax_;
97 
98 
99 float drmin_;
100 float drmax_;
101 float detamax_;
102 float dphimin_;
103 
105 
106 std::string btagalgo_;
107 std::string btagwp_;
111 //float btagwp_;
113 
114 
115 std::string hltPath_;
116 std::string l1Seed_;
117 std::string hltPathRef_;
118 std::string l1SeedRef_;
119 std::vector<std::string> triggerObjects_;
120 std::vector<int> triggerObjectsMatches_;
121 std::vector<int> triggerObjectsMatchesRank_;
122 std::vector<std::string> triggerObjectsRef_;
123 std::vector<std::string> hltPaths_;
124 std::string hltPathsLogic_;
125 std::vector<std::string> hltPaths2_;
126 std::string hltPathsLogic2_;
127 std::vector<std::string> triggerObjectsJets_;
128 std::vector<std::string> triggerObjectsMuons_;
129 
130 // ntuples collections
131 std::string treePath_;
132 std::string jetsCol_;
133 std::string muonsCol_;
134 std::string l1tjetsCol_;
135 std::string l1tmuonsCol_;
136 std::string triggerCol_;
137 std::string genParticleCol_;
138 std::string genjetsCol_;
139 std::string triggerObjDir_;
140 
141 //Prescale across eras
142 std::vector<float> prescaleEra_;
143 
144 
145 int macro_config(int argc, char * argv[])
146 {
147  try
148  {
149  namespace po = boost::program_options;
150  po::options_description desc("Options");
151  desc.add_options()
152  ("help,h","Show help messages")
153  ("config,c",po::value<std::string>(&cfg_),"Configuration file name");
154 
155  po::options_description config("Configuration");
156  config.add_options()
157  ("ntuplesList",po::value <std::string> (&inputlist_)->default_value("rootFileList.txt"),"File with list of ntuples")
158  ("nEventsMax",po::value <int> (&nevtmax_)->default_value(-1), "Maximum number of events")
159  ("nLumiSections",po::value <int> (&nlumis_)->default_value(-1), "Number of lumi sections processed")
160  ("runMin",po::value <int> (&runmin_)->default_value(-1), "Minimum run number")
161  ("runMax",po::value <int> (&runmax_)->default_value(-1), "Minimum run number")
162  ("output",po::value <std::string> (&outputRoot_)->default_value("histograms.root"),"Output root file")
163  ("json",po::value <std::string> (&json_)->default_value("no_json.txt"),"JSON file for data")
164  ("seedFile",po::value <std::string> (&seedfile_)->default_value("seed.txt"),"File containing a seed value for random number generator")
165  ("seed",po::value <int> (&seed_)->default_value(1), "Seed value for random number generator")
166  ("btagSF",po::value <std::string> (&btagsf_)->default_value("DeepCSV.csv"),"b-tagging scale factor in CSV format")
167  ("jerPT",po::value <std::string> (&jerpt_)->default_value("JERPT.txt"),"JER pt resolution in txt format")
168  ("jerSF",po::value <std::string> (&jersf_)->default_value("JERSF.txt"),"JER scale factor in txt format")
169 //
170  ("nJetsMin",po::value <int> (&njetsmin_)->default_value(0),"Minimum number of jets")
171  ("nJetsMax",po::value <int> (&njetsmax_)->default_value(100),"Maximum number of jets")
172  ("nBJetsMin",po::value <int> (&nbjetsmin_)->default_value(0),"Minimum number of btgaged jets")
173  ("jetsPtMin", po::value<std::vector<float> >(&jetsptmin_)->multitoken(),"Mimium pt of the jets")
174  ("jetsPtMax", po::value<std::vector<float> >(&jetsptmax_)->multitoken(),"Maximum pt of the jets")
175  ("jetsEtaMax", po::value<std::vector<float> >(&jetsetamax_)->multitoken(),"Maximum |eta| of the jets")
176  ("jetsBtagMin", po::value<std::vector<float> >(&jetsbtagmin_)->multitoken(),"Minimum btag of the jets; if < 0 -> reverse btag")
177  ("jetsId",po::value <std::string> (&jetsid_)->default_value("TIGHT"),"Jets id criteria for all jets")
178 
179  ("l1tJetsNMin",po::value <int> (&l1tjetsnmin_)->default_value(0),"Minimum number of L1T jets")
180  ("l1tJetsPtMin", po::value<std::vector<float> >(&l1tjetsptmin_)->multitoken(),"Mimium pt of the L1T jets")
181  ("l1tJetsEtaMax", po::value<std::vector<float> >(&l1tjetsetamax_)->multitoken(),"Maximum |eta| of the L1T jets")
182  ("l1tJetsRefNMin",po::value <int> (&l1tjetsrefnmin_)->default_value(0),"Minimum number of L1T jets for reference trigger")
183  ("l1tJetsRefPtMin", po::value<std::vector<float> >(&l1tjetsrefptmin_)->multitoken(),"Mimium pt of the L1T jets for reference trigger")
184  ("l1tJetsRefEtaMax", po::value<std::vector<float> >(&l1tjetsrefetamax_)->multitoken(),"Maximum |eta| of the L1T jets for reference trigger")
185 
186 //
187  ("nMuonsMin",po::value <int> (&nmuonsmin_)->default_value(0),"Minimum number of muons")
188  ("muonsPtMin", po::value<std::vector<float> >(&muonsptmin_)->multitoken(),"Mimium pt of the muons")
189  ("muonsPtMax", po::value<std::vector<float> >(&muonsptmax_)->multitoken(),"Maximum pt of the muons")
190  ("muonsEtaMax", po::value<std::vector<float> >(&muonsetamax_)->multitoken(),"Maximum |eta| of the muons")
191  ("muonsId",po::value <std::string> (&muonsid_)->default_value("LOOSE"),"muons id criteria for all muons")
192 
193  ("l1tMuonsNMin",po::value <int> (&l1tmuonsnmin_)->default_value(0),"Minimum number of L1T muons")
194  ("l1tMuonsPtMin", po::value<std::vector<float> >(&l1tmuonsptmin_)->multitoken(),"Mimium pt of the L1T muons")
195  ("l1tMuonsEtaMax", po::value<std::vector<float> >(&l1tmuonsetamax_)->multitoken(),"Maximum |eta| of the L1T muons")
196  ("l1tMuonsRefNMin",po::value <int> (&l1tmuonsrefnmin_)->default_value(0),"Minimum number of L1T muons for reference trigger")
197  ("l1tMuonsRefPtMin", po::value<std::vector<float> >(&l1tmuonsrefptmin_)->multitoken(),"Mimium pt of the L1T muons for reference trigger")
198  ("l1tMuonsRefEtaMax", po::value<std::vector<float> >(&l1tmuonsrefetamax_)->multitoken(),"Maximum |eta| of the L1T muons for reference trigger")
199 
200 //
201  ("nMin",po::value <int> (&nmin_)->default_value(0),"Minimum number objects")
202  ("nMax",po::value <int> (&nmax_)->default_value(0),"Maximum number objects")
203  ("ptMin", po::value<std::vector<float> >(&ptmin_)->multitoken(),"Mimium pt of an object")
204  ("ptMax", po::value<std::vector<float> >(&ptmax_)->multitoken(),"Maximum pt of an object")
205  ("etaMax", po::value<std::vector<float> >(&etamax_)->multitoken(),"Maximum |eta| of an object")
206 //
207  ("dRMin",po::value <float> (&drmin_)->default_value(0.),"Minimum delta R between candidates")
208  ("dRMax",po::value <float> (&drmax_)->default_value(0.),"Maximum delta R between candidates")
209  ("dEtaMax",po::value <float> (&detamax_)->default_value(10.),"Maximum delta eta between candidates")
210  ("dPhiMin",po::value <float> (&dphimin_)->default_value(0.),"Minimum delta phi between candidates")
211  ("ptImbalanceMax",po::value <float> (&ptimbalmax_)->default_value(1000.),"Maximum relative imbalance between two candidates")
212 //
213  ("isMC",po::value <bool> (&isMC_)->default_value(true),"Flag for MC dataset")
214  ("signalRegion",po::value <bool> (&signalregion_)->default_value(true),"Flag for signal region")
215  ("hltPath",po::value <std::string> (&hltPath_),"HLT path name")
216  ("l1Seed",po::value <std::string> (&l1Seed_)->default_value(""),"L1 seed name")
217  ("hltPathReference",po::value <std::string> (&hltPathRef_),"HLT path name for reference trigger for trigger efficiency")
218  ("l1SeedReference",po::value <std::string> (&l1SeedRef_)->default_value(""),"L1 seed name for reference trigger")
219  ("triggerObjects", po::value<std::vector<std::string> >(&triggerObjects_)->multitoken(),"Trigger objects")
220  ("triggerObjectsMatches", po::value<std::vector<int> >(&triggerObjectsMatches_)->multitoken(),"Number of trigger objects matches")
221  ("triggerObjectsMatchesRank", po::value<std::vector<int> >(&triggerObjectsMatchesRank_)->multitoken(),"Rank of offline object the trigger objects matches")
222  ("triggerObjectsReference", po::value<std::vector<std::string> >(&triggerObjectsRef_)->multitoken(),"Trigger objects reference trigger")
223  ("hltPathsList", po::value<std::vector<std::string> >(&hltPaths_)->multitoken(),"HLT paths list")
224  ("hltPathsLogic",po::value <std::string> (&hltPathsLogic_)->default_value("OR"),"HLT paths logic (OR/AND)")
225  ("hltPathsList2", po::value<std::vector<std::string> >(&hltPaths2_)->multitoken(),"HLT paths second list")
226  ("hltPathsLogic2",po::value <std::string> (&hltPathsLogic2_)->default_value("OR"),"HLT paths logic (OR/AND) for second list")
227  ("triggerObjectsJets", po::value<std::vector<std::string> >(&triggerObjectsJets_)->multitoken(),"Trigger objects for jets")
228  ("triggerObjectsMuons", po::value<std::vector<std::string> >(&triggerObjectsMuons_)->multitoken(),"Trigger objects for muons")
229 //
230  ("btagAlgorithm",po::value <std::string> (&btagalgo_)->default_value("csvivf"),"BTag algorithm")
231  ("btagWorkingPoint",po::value <std::string> (&btagwp_)->default_value("tight"),"BTag working point")
232  ("btagWPLoose",po::value <float> (&btagwploose_)->default_value(0.46),"BTag working point LOOSE")
233  ("btagWPMedium",po::value <float> (&btagwpmedium_)->default_value(0.84),"BTag working point MEDIUM")
234  ("btagWPTight",po::value <float> (&btagwptight_)->default_value(0.92),"BTag working point TIGHT")
235 //
236 // ("btagWP",po::value <float> (&btagwp_)->default_value(0.8484),"Btag working point")
237  ("nonbtagWP",po::value <float> (&nonbtagwp_)->default_value(0.46),"non-Btag working point")
238 
239 //
240  ("matchOnlineOffline",po::value <bool> (&matchonoff_)->default_value(true),"Flag for doing matching online offline objects")
241  ("matchOnlineOfflineDeltaRMax",po::value <float> (&matchonoffdrmax_)->default_value(0.4),"DeltaR max for matching online-offline")
242  ("matchOnlineOfflineReference",po::value <bool> (&matchonoffref_)->default_value(true),"Flag for doing matching online offline objects when using a reference trigger")
243  ("prescaleWeight",po::value <bool> (&psweight_)->default_value(false),"Flag for weighting histograms with prescale")
244  ("prescaleNormalisation",po::value <float> (&psnorm_)->default_value(1.),"Normalisation factor of prescale weight")
245  ("triggerEmulation",po::value <bool> (&trigemul_)->default_value(false),"Flag for using trigger emulation")
246 
247  ("jetsCollection",po::value <std::string> (&jetsCol_)->default_value("slimmedJets"),"Name of the jets collection")
248  ("muonsCollection",po::value <std::string> (&muonsCol_)->default_value("slimmedMuons"),"Name of the muons collection")
249  ("l1tJetsCollection",po::value <std::string> (&l1tjetsCol_)->default_value("l1tJets"),"Name of the L1T jets collection")
250  ("l1tMuonsCollection",po::value <std::string> (&l1tmuonsCol_)->default_value("l1tMuons"),"Name of the L1T muons collection")
251  ("genParticleCollection",po::value <std::string> (&genParticleCol_)->default_value("prunedGenParticles"),"Name of the gen particle collection")
252  ("genjetsCollection",po::value <std::string> (&genjetsCol_)->default_value("slimmedGenJets"),"Name of the gen jets collection")
253 
254  ("triggerResultsCollection",po::value <std::string> (&triggerCol_)->default_value("TriggerResults"),"Name of the trigger results collection")
255  ("triggerObjectsDirectory",po::value <std::string> (&triggerObjDir_)->default_value("slimmedPatTrigger"),"Name of the trigger objects directory")
256  ("collectionsTreePath",po::value <std::string> (&treePath_)->default_value("Events"),"Name of the tree path for the event collections.")
257  ("prescaleEra",po::value <std::vector<float> >(&prescaleEra_)->multitoken(),"Prescale CR by # events in SR in each era");
258 
259 
260  for ( int i = 0 ; i < 10 ; ++i )
261  {
262  config.add_options()
263  (Form("triggerObject%dNMin",i),po::value <int> (&(tonmin_[i]))->default_value(0),Form("Minimum number of trigger objects #%d",i))
264  (Form("triggerObject%dPtMin",i),po::value<std::vector<float> >(&(toptmin_[i]))->multitoken(),Form("Minimum pT of trigger objects #%d",i))
265  (Form("triggerObject%dEtaMax",i),po::value<std::vector<float> >(&(toetamax_[i]))->multitoken(),Form("Minimum eta of trigger objects #%d",i))
266  (Form("triggerObject%dRefNMin",i),po::value <int> (&(torefnmin_[i]))->default_value(0),Form("Minimum number of trigger objects #%d for reference trigger",i))
267  (Form("triggerObject%dRefPtMin",i),po::value<std::vector<float> >(&(torefptmin_[i]))->multitoken(),Form("Minimum pT of trigger objects #%d for reference trigger",i))
268  (Form("triggerObject%dRefEtaMax",i),po::value<std::vector<float> >(&(torefetamax_[i]))->multitoken(),Form("Minimum eta of trigger objects #%d for reference trigger",i));
269  }
270 
271  po::variables_map vm;
272  try
273  {
274  po::store(po::parse_command_line(argc, argv, desc), vm); // can throw
275  // --help option
276 
277  if ( vm.count("help") )
278  {
279  std::cout << "SimpleBjetsAnalysis macro" << std::endl
280  << desc << std::endl
281  << config << std::endl;
282  return 1;
283  }
284  po::notify(vm);
285 
286  std::ifstream cfg_s(cfg_.c_str());
287  po::store(po::parse_config_file(cfg_s, config), vm); // can throw
288  if ( vm.count("config") )
289  {
290 
291  }
292  po::notify(vm);
293  boost::algorithm::to_upper(jetsid_);
294  if ( (int)jetsptmin_.size() != njetsmin_ )
295  {
296  std::cout << "Config Error *** Jet minimum pt were not defined or the definition does not match the minimum number of jets" <<std::endl;
297  return -1;
298  }
299  if ( (int)jetsptmax_.size() != njetsmin_ && !jetsptmax_.empty() )
300  {
301  std::cout << "Config Error *** Jet maximum pt has been defined and does not match the minimum number of jets" <<std::endl;
302  return -1;
303  }
304  if ( (int)jetsetamax_.size() != njetsmin_ )
305  {
306  std::cout << "Config Error *** Jet maximum |eta| were not defined or the definition does not match the minimum number of jets" <<std::endl;
307  return -1;
308  }
309  if ( (int)jetsbtagmin_.size() != nbjetsmin_ && !jetsbtagmin_.empty() )
310  {
311  std::cout << "Config Error *** Jet minimum btag has been defined and does not match the minimum number of btagged jets" <<std::endl;
312  return -1;
313  }
314 
315 
316  if ( (int)muonsptmin_.size() != nmuonsmin_ )
317  {
318  std::cout << "Config Error *** Muon minimum pt were not defined or the definition does not match the minimum number of muons" <<std::endl;
319  return -1;
320  }
321  if ( (int)muonsptmax_.size() != nmuonsmin_ && !muonsptmax_.empty() )
322  {
323  std::cout << "Config Error *** Muon maximum pt has been defined and does not match the minimum number of muons" <<std::endl;
324  return -1;
325  }
326  if ( (int)muonsetamax_.size() != nmuonsmin_ )
327  {
328  std::cout << "Config Error *** Muon maximum |eta| were not defined or the definition does not match the minimum number of muons" <<std::endl;
329  return -1;
330  }
331 
332 // if ( (int)prescaleEra_.size() != 4 )
333 // {
334 // std::cout << "Config Error *** The prescales for the CR in each era were not defined or the definition does not match the number of eras" <<std::endl;
335 // return -1;
336 // }
337 
338  std::transform(btagalgo_.begin(), btagalgo_.end(), btagalgo_.begin(), ::tolower);
339  std::transform(btagwp_.begin(), btagwp_.end(), btagwp_.begin(), ::tolower);
340 
341 
342  }
343  catch(po::error& e)
344  {
345  std::cerr << "ERROR: " << e.what() << std::endl << std::endl;
346  std::cerr << desc << std::endl;
347  return -1;
348  }
349 
350  }
351  catch(std::exception& e)
352  {
353  std::cerr << "ERROR: " << e.what() << std::endl << std::endl;
354  return -1;
355  }
356 
357  return 0;
358 }
359 
360 
361 #endif
int l1tjetsrefnmin_
Definition: macro_config.h:62
std::string muonsCol_
Definition: macro_config.h:133
std::vector< float > torefetamax_[10]
Definition: macro_config.h:44
std::string hltPathRef_
Definition: macro_config.h:117
std::vector< float > l1tmuonsrefetamax_
Definition: macro_config.h:88
int njetsmax_
Definition: macro_config.h:50
int torefnmin_[10]
Definition: macro_config.h:42
std::vector< std::string > hltPaths_
Definition: macro_config.h:123
std::vector< std::string > triggerObjectsRef_
Definition: macro_config.h:122
std::vector< float > jetsbtagmin_
Definition: macro_config.h:55
std::vector< float > muonsptmax_
Definition: macro_config.h:78
float ptimbalmax_
Definition: macro_config.h:104
std::string jetsCol_
Definition: macro_config.h:132
int nlumis_
Definition: macro_config.h:16
std::string l1tjetsCol_
Definition: macro_config.h:134
std::vector< float > jetsetamax_
Definition: macro_config.h:54
std::string jersf_
Definition: macro_config.h:71
std::vector< float > torefptmin_[10]
Definition: macro_config.h:43
std::vector< int > triggerObjectsMatches_
Definition: macro_config.h:120
std::vector< float > l1tmuonsetamax_
Definition: macro_config.h:84
std::vector< float > toetamax_[10]
Definition: macro_config.h:40
std::string jetsid_
Definition: macro_config.h:56
int nmuonsmin_
Definition: macro_config.h:76
int macro_config(int argc, char *argv[])
Definition: macro_config.h:145
std::vector< float > toptmin_[10]
Definition: macro_config.h:39
bool psweight_
Definition: macro_config.h:32
std::string json_
Definition: macro_config.h:23
std::vector< float > ptmin_
Definition: macro_config.h:94
bool matchonoff_
Definition: macro_config.h:29
int njetsmin_
Definition: macro_config.h:49
int l1tmuonsrefnmin_
Definition: macro_config.h:86
std::vector< float > muonsptmin_
Definition: macro_config.h:77
float matchonoffdrmax_
Definition: macro_config.h:30
float btagwploose_
Definition: macro_config.h:108
std::string triggerObjDir_
Definition: macro_config.h:139
float detamax_
Definition: macro_config.h:101
bool isMC_
Definition: macro_config.h:19
std::vector< float > etamax_
Definition: macro_config.h:96
std::vector< float > l1tjetsrefetamax_
Definition: macro_config.h:64
std::string seedfile_
Definition: macro_config.h:26
std::string jerpt_
Definition: macro_config.h:70
std::vector< float > muonsetamax_
Definition: macro_config.h:79
bool trigemul_
Definition: macro_config.h:34
std::string treePath_
Definition: macro_config.h:131
int runmin_
Definition: macro_config.h:17
std::vector< std::string > hltPaths2_
Definition: macro_config.h:125
std::string cfg_
Definition: macro_config.h:13
float psnorm_
Definition: macro_config.h:33
std::vector< std::string > triggerObjectsJets_
Definition: macro_config.h:127
std::string hltPathsLogic_
Definition: macro_config.h:124
std::string l1Seed_
Definition: macro_config.h:116
std::string inputlist_
Definition: macro_config.h:21
int nmin_
Definition: macro_config.h:92
std::vector< float > jetsptmax_
Definition: macro_config.h:53
int nmax_
Definition: macro_config.h:93
std::vector< float > l1tmuonsrefptmin_
Definition: macro_config.h:87
std::string l1tmuonsCol_
Definition: macro_config.h:135
std::vector< float > jetsptmin_
Definition: macro_config.h:52
std::string btagwp_
Definition: macro_config.h:107
int runmax_
Definition: macro_config.h:18
std::vector< float > prescaleEra_
Definition: macro_config.h:142
std::vector< std::string > triggerObjectsMuons_
Definition: macro_config.h:128
std::string genParticleCol_
Definition: macro_config.h:137
std::string genjetsCol_
Definition: macro_config.h:138
bool matchonoffref_
Definition: macro_config.h:31
std::vector< float > l1tjetsetamax_
Definition: macro_config.h:60
int nbjetsmin_
Definition: macro_config.h:51
std::vector< float > l1tjetsptmin_
Definition: macro_config.h:59
std::string hltPath_
Definition: macro_config.h:115
bool signalregion_
Definition: macro_config.h:20
float dphimin_
Definition: macro_config.h:102
std::vector< std::string > triggerObjects_
Definition: macro_config.h:119
std::vector< float > ptmax_
Definition: macro_config.h:95
int nevtmax_
Definition: macro_config.h:15
int l1tmuonsnmin_
Definition: macro_config.h:82
std::vector< float > l1tjetsrefptmin_
Definition: macro_config.h:63
float drmin_
Definition: macro_config.h:99
int tonmin_[10]
Definition: macro_config.h:38
std::string l1SeedRef_
Definition: macro_config.h:118
std::string muonsid_
Definition: macro_config.h:80
int seed_
Definition: macro_config.h:25
int l1tjetsnmin_
Definition: macro_config.h:58
float drmax_
Definition: macro_config.h:100
std::string btagalgo_
Definition: macro_config.h:106
std::vector< int > triggerObjectsMatchesRank_
Definition: macro_config.h:121
std::string btagsf_
Definition: macro_config.h:67
float btagwpmedium_
Definition: macro_config.h:109
std::string outputRoot_
Definition: macro_config.h:22
std::vector< float > l1tmuonsptmin_
Definition: macro_config.h:83
float btagwptight_
Definition: macro_config.h:110
std::string triggerCol_
Definition: macro_config.h:136
std::string hltPathsLogic2_
Definition: macro_config.h:126
float nonbtagwp_
Definition: macro_config.h:112