CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Member Functions | Private Attributes
HLTJetMETValidation Class Reference

#include <HLTJetMETValidation.h>

Inheritance diagram for HLTJetMETValidation:
edm::EDAnalyzer

Public Member Functions

 HLTJetMETValidation (const edm::ParameterSet &)
 
 ~HLTJetMETValidation ()
 
- Public Member Functions inherited from edm::EDAnalyzer
 EDAnalyzer ()
 
std::string workerType () const
 
virtual ~EDAnalyzer ()
 

Private Member Functions

virtual void analyze (const edm::Event &, const edm::EventSetup &)
 
virtual void beginRun (const edm::Run &, const edm::EventSetup &)
 
virtual void endJob ()
 
void getHLTResults (const edm::TriggerResults &, const edm::TriggerNames &triggerNames)
 

Private Attributes

std::vector< MonitorElement * > _meGenJetEta
 
std::vector< MonitorElement * > _meGenJetEtaTrg
 
std::vector< MonitorElement * > _meGenJetEtaTrgLow
 
std::vector< MonitorElement * > _meGenJetEtaTrgMC
 
std::vector< MonitorElement * > _meGenJetPhi
 
std::vector< MonitorElement * > _meGenJetPhiTrg
 
std::vector< MonitorElement * > _meGenJetPhiTrgLow
 
std::vector< MonitorElement * > _meGenJetPhiTrgMC
 
std::vector< MonitorElement * > _meGenJetPt
 
std::vector< MonitorElement * > _meGenJetPtTrg
 
std::vector< MonitorElement * > _meGenJetPtTrgLow
 
std::vector< MonitorElement * > _meGenJetPtTrgMC
 
std::vector< MonitorElement * > _meGenMET
 
std::vector< MonitorElement * > _meGenMETTrg
 
std::vector< MonitorElement * > _meGenMETTrgLow
 
std::vector< MonitorElement * > _meGenMETTrgMC
 
std::vector< MonitorElement * > _meRecoJetEta
 
std::vector< MonitorElement * > _meRecoJetEtaTrg
 
std::vector< MonitorElement * > _meRecoJetEtaTrgLow
 
std::vector< MonitorElement * > _meRecoJetEtaTrgMC
 
std::vector< MonitorElement * > _meRecoJetPhi
 
std::vector< MonitorElement * > _meRecoJetPhiTrg
 
std::vector< MonitorElement * > _meRecoJetPhiTrgLow
 
std::vector< MonitorElement * > _meRecoJetPhiTrgMC
 
std::vector< MonitorElement * > _meRecoJetPt
 
std::vector< MonitorElement * > _meRecoJetPtTrg
 
std::vector< MonitorElement * > _meRecoJetPtTrgLow
 
std::vector< MonitorElement * > _meRecoJetPtTrgMC
 
std::vector< MonitorElement * > _meRecoMET
 
std::vector< MonitorElement * > _meRecoMETTrg
 
std::vector< MonitorElement * > _meRecoMETTrgLow
 
std::vector< MonitorElement * > _meRecoMETTrgMC
 
MonitorElement_triggerResults
 
edm::InputTag CaloJetAlgorithm
 
edm::InputTag CaloMETColl
 
int evtCnt
 
edm::InputTag GenJetAlgorithm
 
edm::InputTag GenMETColl
 
HLTConfigProvider hltConfig_
 
bool HLTinit_
 
edm::InputTag HLTriggerResults
 
std::vector< std::string > hltTrgJet
 
std::vector< std::string > hltTrgJetLow
 
std::vector< std::string > hltTrgMet
 
std::vector< std::string > hltTrgMetLow
 
std::map< std::string, bool > hltTriggerMap
 
std::vector< bool > hlttrigs
 
std::string MyTrigger
 
std::string outFile_
 
std::string patternJetTrg_
 
std::string patternMetTrg_
 
std::string patternMuTrg_
 
DQMStorestore
 
std::map< std::string, bool >
::iterator 
trig_iter
 
edm::InputTag triggerEventObject_
 InputTag of TriggerEventWithRefs to analyze. More...
 
std::string triggerTag_
 
bool writeFile_
 

Additional Inherited Members

- Public Types inherited from edm::EDAnalyzer
typedef EDAnalyzer ModuleType
 
typedef WorkerT< EDAnalyzerWorkerType
 
- Static Public Member Functions inherited from edm::EDAnalyzer
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
- Protected Member Functions inherited from edm::EDAnalyzer
CurrentProcessingContext const * currentContext () const
 

Detailed Description

Definition at line 60 of file HLTJetMETValidation.h.

Constructor & Destructor Documentation

HLTJetMETValidation::HLTJetMETValidation ( const edm::ParameterSet ps)
explicit

Definition at line 5 of file HLTJetMETValidation.cc.

References evtCnt, and store.

5  :
7  CaloJetAlgorithm( ps.getUntrackedParameter<edm::InputTag>( "CaloJetAlgorithm" ) ),
8  GenJetAlgorithm( ps.getUntrackedParameter<edm::InputTag>( "GenJetAlgorithm" ) ),
9  CaloMETColl( ps.getUntrackedParameter<edm::InputTag>( "CaloMETCollection" ) ),
10  GenMETColl( ps.getUntrackedParameter<edm::InputTag>( "GenMETCollection" ) ),
11  HLTriggerResults( ps.getParameter<edm::InputTag>( "HLTriggerResults" ) ),
12  triggerTag_(ps.getUntrackedParameter<std::string>("DQMFolder","SingleJet")),
13  patternJetTrg_(ps.getUntrackedParameter<std::string>("PatternJetTrg","")),
14  patternMetTrg_(ps.getUntrackedParameter<std::string>("PatternMetTrg","")),
15  patternMuTrg_(ps.getUntrackedParameter<std::string>("PatternMuTrg","")),
16  outFile_(ps.getUntrackedParameter<std::string>("OutputFileName","")),
17  HLTinit_(false),
18  //JL
19  writeFile_(ps.getUntrackedParameter<bool>("WriteFile",false))
20 {
21  evtCnt=0;
22 
24 
25 }
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
edm::InputTag HLTriggerResults
edm::InputTag GenJetAlgorithm
edm::InputTag triggerEventObject_
InputTag of TriggerEventWithRefs to analyze.
edm::InputTag CaloJetAlgorithm
HLTJetMETValidation::~HLTJetMETValidation ( )

Definition at line 27 of file HLTJetMETValidation.cc.

28 {
29 }

Member Function Documentation

void HLTJetMETValidation::analyze ( const edm::Event iEvent,
const edm::EventSetup iSetup 
)
privatevirtual

Implements edm::EDAnalyzer.

Definition at line 179 of file HLTJetMETValidation.cc.

References _meGenJetEta, _meGenJetEtaTrg, _meGenJetEtaTrgLow, _meGenJetEtaTrgMC, _meGenJetPhi, _meGenJetPhiTrg, _meGenJetPhiTrgLow, _meGenJetPhiTrgMC, _meGenJetPt, _meGenJetPtTrg, _meGenJetPtTrgLow, _meGenJetPtTrgMC, _meGenMET, _meGenMETTrg, _meGenMETTrgLow, _meGenMETTrgMC, _meRecoJetEta, _meRecoJetEtaTrg, _meRecoJetEtaTrgLow, _meRecoJetEtaTrgMC, _meRecoJetPhi, _meRecoJetPhiTrg, _meRecoJetPhiTrgLow, _meRecoJetPhiTrgMC, _meRecoJetPt, _meRecoJetPtTrg, _meRecoJetPtTrgLow, _meRecoJetPtTrgMC, _meRecoMET, _meRecoMETTrg, _meRecoMETTrgLow, _meRecoMETTrgMC, CaloJetAlgorithm, CaloMETColl, evtCnt, HcalObjRepresent::Fill(), GenJetAlgorithm, HepMCValidationHelper::genMet(), GenMETColl, edm::Event::getByLabel(), getHLTResults(), HLTriggerResults, hltTrgJet, hltTrgJetLow, hltTrgMet, hltTrgMetLow, hltTriggerMap, i, dt_dqm_sourceclient_common_cff::reco, trig_iter, triggerEventObject_, and edm::Event::triggerNames().

180 {
181  using namespace std;
182  using namespace edm;
183  using namespace reco;
184  using namespace l1extra;
185  using namespace trigger;
186 
187  evtCnt++;
188  //get The triggerEvent
189 
191  iEvent.getByLabel(triggerEventObject_,trigEv);
192 
193 // get TriggerResults object
194 
195  bool gotHLT=true;
196  //bool myTrig=false;
197  //bool myTrigLow=false;
198  std::vector<bool> myTrigJ;
199  for (size_t it=0;it<hltTrgJet.size();it++) myTrigJ.push_back(false);
200  std::vector<bool> myTrigJLow;
201  for (size_t it=0;it<hltTrgJetLow.size();it++) myTrigJLow.push_back(false);
202  std::vector<bool> myTrigM;
203  for (size_t it=0;it<hltTrgMet.size();it++) myTrigM.push_back(false);
204  std::vector<bool> myTrigMLow;
205  for (size_t it=0;it<hltTrgMetLow.size();it++) myTrigMLow.push_back(false);
206 
207 
208  Handle<TriggerResults> hltresults,hltresultsDummy;
209  iEvent.getByLabel(HLTriggerResults,hltresults);
210  if (! hltresults.isValid() ) {
211  //std::cout << " -- No HLTRESULTS";
212  //if (evtCnt==1) edm::LogWarning("HLTJetMETValidation") << " -- No HLTRESULTS";
213  gotHLT=false;
214  }
215 
216  if (gotHLT) {
217  const edm::TriggerNames & triggerNames = iEvent.triggerNames(*hltresults);
218  getHLTResults(*hltresults, triggerNames);
219  // trig_iter=hltTriggerMap.find(MyTrigger);
220  //trig_iter=hltTriggerMap.find(_HLTPath.label());
221 
222  //---pick-up the jet trigger decisions
223  for (size_t it=0;it<hltTrgJet.size();it++) {
225  if (trig_iter==hltTriggerMap.end()){
226  //std::cout << "Could not find trigger path with name: " << _probefilter.label() << std::endl;
227  //if (evtCnt==1) edm::LogWarning("HLTJetMETValidation") << "Could not find trigger path with name: " << _probefilter.label();
228  }else{
229  myTrigJ[it]=trig_iter->second;
230  }
231  //std::cout<<hltTrgJet[it].c_str()<<" "<<myTrigJ[it]<<std::endl;
232  }
233  for (size_t it=0;it<hltTrgJetLow.size();it++) {
235  if (trig_iter==hltTriggerMap.end()){
236  //std::cout << "Could not find trigger path with name: " << _probefilter.label() << std::endl;
237  //if (evtCnt==1) edm::LogWarning("HLTJetMETValidation") << "Could not find trigger path with name: " << _probefilter.label();
238  }else{
239  myTrigJLow[it]=trig_iter->second;
240  }
241  //std::cout<<hltTrgJetLow[it].c_str()<<" "<<myTrigJLow[it]<<std::endl;
242  }
243  //---pick-up the met trigger decisions
244  for (size_t it=0;it<hltTrgMet.size();it++) {
246  if (trig_iter==hltTriggerMap.end()){
247  //std::cout << "Could not find trigger path with name: " << _probefilter.label() << std::endl;
248  //if (evtCnt==1) edm::LogWarning("HLTJetMETValidation") << "Could not find trigger path with name: " << _probefilter.label();
249  }else{
250  myTrigM[it]=trig_iter->second;
251  }
252  //std::cout<<hltTrgMet[it].c_str()<<" "<<myTrigM[it]<<std::endl;
253  }
254  for (size_t it=0;it<hltTrgMetLow.size();it++) {
256  if (trig_iter==hltTriggerMap.end()){
257  //std::cout << "Could not find trigger path with name: " << _probefilter.label() << std::endl;
258  //if (evtCnt==1) edm::LogWarning("HLTJetMETValidation") << "Could not find trigger path with name: " << _probefilter.label();
259  }else{
260  myTrigMLow[it]=trig_iter->second;
261  }
262  //std::cout<<hltTrgMetLow[it].c_str()<<" "<<myTrigMLow[it]<<std::endl;
263  }
264  }
265 
266  Handle<CaloJetCollection> caloJets,caloJetsDummy;
267  iEvent.getByLabel( CaloJetAlgorithm, caloJets );
268  double calJetPt=-1.;
269  double calJetEta=-999.;
270  double calJetPhi=-999.;
271  //double calHT=0;
272  if (caloJets.isValid()) {
273  //Loop over the CaloJets and fill some histograms
274  int jetInd = 0;
275  for( CaloJetCollection::const_iterator cal = caloJets->begin(); cal != caloJets->end(); ++ cal ) {
276  //std::cout << "CALO JET #" << jetInd << std::endl << cal->print() << std::endl;
277  if (jetInd == 0){
278  calJetPt=cal->pt();
279  calJetEta=cal->eta();
280  calJetPhi=cal->phi();
281  for (size_t it=0;it<hltTrgJet.size();it++) {
282  _meRecoJetPt[it]->Fill( calJetPt );
283  _meRecoJetEta[it]->Fill( calJetEta );
284  _meRecoJetPhi[it]->Fill( calJetPhi );
285  if (myTrigJ[it]) _meRecoJetPtTrgMC[it]->Fill( calJetPt );
286  if (myTrigJ[it]) _meRecoJetEtaTrgMC[it]->Fill( calJetEta );
287  if (myTrigJ[it]) _meRecoJetPhiTrgMC[it]->Fill( calJetPhi );
288  if (myTrigJ[it] && myTrigJLow[it]) _meRecoJetPtTrg[it]->Fill( calJetPt );
289  if (myTrigJ[it] && myTrigJLow[it]) _meRecoJetEtaTrg[it]->Fill( calJetEta );
290  if (myTrigJ[it] && myTrigJLow[it]) _meRecoJetPhiTrg[it]->Fill( calJetPhi );
291  if (myTrigJLow[it]) _meRecoJetPtTrgLow[it]->Fill( calJetPt );
292  if (myTrigJLow[it]) _meRecoJetEtaTrgLow[it]->Fill( calJetEta );
293  if (myTrigJLow[it]) _meRecoJetPhiTrgLow[it]->Fill( calJetPhi );
294  }
295  jetInd++;
296  }
297  /*
298  if (cal->pt()>30) {
299  calHT+=cal->pt();
300  }
301  */
302  }
303  /*
304  _meRecoHT->Fill( calHT );
305  if (myTrig) _meRecoHTTrg->Fill( calHT );
306  if (myTrigLow) _meRecoHTTrgLow->Fill( calHT );
307  */
308  }else{
309  //std::cout << " -- No CaloJets" << std::endl;
310  //if (evtCnt==1) edm::LogWarning("HLTJetMETValidation") << " -- No CaloJets";
311  }
312 
313  Handle<GenJetCollection> genJets,genJetsDummy;
314  iEvent.getByLabel( GenJetAlgorithm, genJets );
315  double genJetPt=-1.;
316  double genJetEta=-999.;
317  double genJetPhi=-999.;
318  //double genHT=0;
319  if (genJets.isValid()) {
320  //Loop over the GenJets and fill some histograms
321  int jetInd = 0;
322  for( GenJetCollection::const_iterator gen = genJets->begin(); gen != genJets->end(); ++ gen ) {
323  // std::cout << "CALO JET #" << jetInd << std::endl << cal->print() << std::endl;
324  if (jetInd == 0){
325  genJetPt=gen->pt();
326  genJetEta=gen->eta();
327  genJetPhi=gen->phi();
328  for (size_t it=0;it<hltTrgJet.size();it++) {
329  _meGenJetPt[it]->Fill( genJetPt );
330  _meGenJetEta[it]->Fill( genJetEta );
331  _meGenJetPhi[it]->Fill( genJetPhi );
332  if (myTrigJ[it]) _meGenJetPtTrgMC[it]->Fill( genJetPt );
333  if (myTrigJ[it]) _meGenJetEtaTrgMC[it]->Fill( genJetEta );
334  if (myTrigJ[it]) _meGenJetPhiTrgMC[it]->Fill( genJetPhi );
335  if (myTrigJ[it] && myTrigJLow[it]) _meGenJetPtTrg[it]->Fill( genJetPt );
336  if (myTrigJ[it] && myTrigJLow[it]) _meGenJetEtaTrg[it]->Fill( genJetEta );
337  if (myTrigJ[it] && myTrigJLow[it]) _meGenJetPhiTrg[it]->Fill( genJetPhi );
338  if (myTrigJLow[it]) _meGenJetPtTrgLow[it]->Fill( genJetPt );
339  if (myTrigJLow[it]) _meGenJetEtaTrgLow[it]->Fill( genJetEta );
340  if (myTrigJLow[it]) _meGenJetPhiTrgLow[it]->Fill( genJetPhi );
341  }
342  jetInd++;
343  }
344  /*
345  if (gen->pt()>30) {
346  genHT+=gen->pt();
347  }
348  */
349  }
350  /*
351  _meGenHT->Fill( genHT );
352  if (myTrig) _meGenHTTrg->Fill( genHT );
353  if (myTrigLow) _meGenHTTrgLow->Fill( genHT );
354  */
355  }else{
356  //std::cout << " -- No GenJets" << std::endl;
357  //if (evtCnt==1) edm::LogWarning("HLTJetMETValidation") << " -- No GenJets";
358  }
359 
360 
361  edm::Handle<CaloMETCollection> recmet, recmetDummy;
362  iEvent.getByLabel(CaloMETColl,recmet);
363 
364  double calMet=-1;
365  if (recmet.isValid()) {
366  typedef CaloMETCollection::const_iterator cmiter;
367  //std::cout << "Size of MET collection" << recmet.size() << std::endl;
368  for ( cmiter i=recmet->begin(); i!=recmet->end(); i++) {
369  calMet = i->pt();
370  for (size_t it=0;it<hltTrgMet.size();it++) {
371  _meRecoMET[it] -> Fill(calMet);
372  if (myTrigM[it]) _meRecoMETTrgMC[it] -> Fill(calMet);
373  if (myTrigM[it] && myTrigMLow[it]) _meRecoMETTrg[it] -> Fill(calMet);
374  if (myTrigMLow[it]) _meRecoMETTrgLow[it] -> Fill(calMet);
375  }
376  }
377  }else{
378  //std::cout << " -- No MET Collection with name: " << CaloMETColl << std::endl;
379  //if (evtCnt==1) edm::LogWarning("HLTJetMETValidation") << " -- No MET Collection with name: "<< CaloMETColl;
380  }
381 
382  edm::Handle<GenMETCollection> genmet, genmetDummy;
383  iEvent.getByLabel(GenMETColl,genmet);
384 
385  double genMet=-1;
386  if (genmet.isValid()) {
387  typedef GenMETCollection::const_iterator cmiter;
388  //std::cout << "Size of GenMET collection" << recmet.size() << std::endl;
389  for ( cmiter i=genmet->begin(); i!=genmet->end(); i++) {
390  genMet = i->pt();
391  for (size_t it=0;it<hltTrgMet.size();it++) {
392  _meGenMET[it] -> Fill(genMet);
393  if (myTrigM[it]) _meGenMETTrgMC[it] -> Fill(genMet);
394  if (myTrigM[it] && myTrigMLow[it]) _meGenMETTrg[it] -> Fill(genMet);
395  if (myTrigMLow[it]) _meGenMETTrgLow[it] -> Fill(genMet);
396  }
397  }
398  }else{
399  //std::cout << " -- No GenMET Collection with name: " << GenMETColl << std::endl;
400  //if (evtCnt==1) edm::LogWarning("HLTJetMETValidation") << " -- No GenMET Collection with name: "<< GenMETColl;
401  }
402 
403 }
std::vector< MonitorElement * > _meRecoMET
std::vector< std::string > hltTrgMet
std::vector< MonitorElement * > _meGenJetEtaTrgMC
std::vector< MonitorElement * > _meGenJetPt
int i
Definition: DBlmapReader.cc:9
virtual edm::TriggerNames const & triggerNames(edm::TriggerResults const &triggerResults) const
Definition: Event.cc:208
std::vector< MonitorElement * > _meGenJetPhiTrg
std::vector< std::string > hltTrgJet
std::map< std::string, bool > hltTriggerMap
std::vector< MonitorElement * > _meRecoJetPtTrgMC
std::vector< MonitorElement * > _meGenMET
std::vector< MonitorElement * > _meGenJetPtTrgMC
std::vector< MonitorElement * > _meGenMETTrgMC
std::vector< std::string > hltTrgMetLow
std::vector< MonitorElement * > _meGenJetPhiTrgMC
std::vector< MonitorElement * > _meGenMETTrgLow
std::vector< MonitorElement * > _meRecoJetPhiTrgLow
edm::InputTag HLTriggerResults
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
edm::InputTag GenJetAlgorithm
std::vector< MonitorElement * > _meRecoJetPt
std::vector< MonitorElement * > _meGenJetEtaTrg
std::vector< MonitorElement * > _meRecoJetEtaTrgMC
std::vector< MonitorElement * > _meRecoMETTrg
std::vector< MonitorElement * > _meGenJetPtTrg
std::vector< MonitorElement * > _meGenMETTrg
std::vector< MonitorElement * > _meRecoJetPhiTrgMC
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:355
std::vector< MonitorElement * > _meGenJetEtaTrgLow
void getHLTResults(const edm::TriggerResults &, const edm::TriggerNames &triggerNames)
std::vector< MonitorElement * > _meRecoJetPtTrg
std::vector< MonitorElement * > _meGenJetEta
std::vector< MonitorElement * > _meRecoJetPhiTrg
edm::InputTag triggerEventObject_
InputTag of TriggerEventWithRefs to analyze.
std::vector< MonitorElement * > _meRecoMETTrgMC
std::vector< MonitorElement * > _meGenJetPhi
std::vector< MonitorElement * > _meGenJetPtTrgLow
TLorentzVector genMet(const HepMC::GenEvent *all, double etamin=-9999., double etamax=9999.)
std::vector< MonitorElement * > _meRecoJetPtTrgLow
std::vector< MonitorElement * > _meRecoMETTrgLow
std::vector< std::string > hltTrgJetLow
std::vector< MonitorElement * > _meRecoJetEta
std::vector< MonitorElement * > _meGenJetPhiTrgLow
std::vector< MonitorElement * > _meRecoJetPhi
std::map< std::string, bool >::iterator trig_iter
std::vector< MonitorElement * > _meRecoJetEtaTrgLow
std::vector< MonitorElement * > _meRecoJetEtaTrg
edm::InputTag CaloJetAlgorithm
void HLTJetMETValidation::beginRun ( const edm::Run iRun,
const edm::EventSetup iSetup 
)
privatevirtual

Reimplemented from edm::EDAnalyzer.

Definition at line 37 of file HLTJetMETValidation.cc.

References _meGenJetEta, _meGenJetEtaTrg, _meGenJetEtaTrgLow, _meGenJetEtaTrgMC, _meGenJetPhi, _meGenJetPhiTrg, _meGenJetPhiTrgLow, _meGenJetPhiTrgMC, _meGenJetPt, _meGenJetPtTrg, _meGenJetPtTrgLow, _meGenJetPtTrgMC, _meGenMET, _meGenMETTrg, _meGenMETTrgLow, _meGenMETTrgMC, _meRecoJetEta, _meRecoJetEtaTrg, _meRecoJetEtaTrgLow, _meRecoJetEtaTrgMC, _meRecoJetPhi, _meRecoJetPhiTrg, _meRecoJetPhiTrgLow, _meRecoJetPhiTrgMC, _meRecoJetPt, _meRecoJetPtTrg, _meRecoJetPtTrgLow, _meRecoJetPtTrgMC, _meRecoMET, _meRecoMETTrg, _meRecoMETTrgLow, _meRecoMETTrgMC, DQMStore::book1D(), hltConfig_, hltTrgJet, hltTrgJetLow, hltTrgMet, hltTrgMetLow, HLTConfigProvider::init(), j, patternJetTrg_, patternMetTrg_, patternMuTrg_, DQMStore::setCurrentFolder(), store, HLTConfigProvider::triggerNames(), and triggerTag_.

37  {
38 
39 
40  bool foundMuTrg = false;
41  std::string trgMuNm;
42  bool changedConfig;
43  //--define search patterns
44  /*
45  TPRegexp patternJet("HLT_Jet([0-9]*)?(_v[0-9]*)?$");
46  TPRegexp patternMet("HLT_(PF*)?M([E,H]*)?T([0-9]*)?(_v[0-9]*)?$");
47  TPRegexp patternMu("HLT_Mu([0-9]*)?(_v[0-9]*)?$");
48  */
49  TPRegexp patternJet(patternJetTrg_);
50  TPRegexp patternMet(patternMetTrg_);
51  TPRegexp patternMu(patternMuTrg_);
52 
53  if (!hltConfig_.init(iRun, iSetup, "HLT", changedConfig)) {
54  edm::LogError("HLTJetMET") << "Initialization of HLTConfigProvider failed!!";
55  return;
56  }
57  std::vector<std::string> validTriggerNames = hltConfig_.triggerNames();
58  for (size_t j = 0; j < validTriggerNames.size(); j++) {
59  //---find the muon path
60  if (TString(validTriggerNames[j]).Contains(patternMu)) {
61  //std::cout <<validTriggerNames[j].c_str()<<std::endl;
62  if (!foundMuTrg) trgMuNm = validTriggerNames[j].c_str();
63  foundMuTrg = true;
64  }
65  //---find the jet paths
66  if (TString(validTriggerNames[j]).Contains(patternJet)) {
67  hltTrgJet.push_back(validTriggerNames[j]);
68  }
69  //---find the met paths
70  if (TString(validTriggerNames[j]).Contains(patternMet)) {
71  hltTrgMet.push_back(validTriggerNames[j]);
72  }
73  }
74 
75  //----set the denominator paths
76  for (size_t it=0;it<hltTrgJet.size();it++) {
77  if (it==0 && foundMuTrg) hltTrgJetLow.push_back(trgMuNm);//--lowest threshold uses muon path
78  if (it==0 && !foundMuTrg) hltTrgJetLow.push_back(hltTrgJet[it]);//---if no muon then itself
79  if (it!=0) hltTrgJetLow.push_back(hltTrgJet[it-1]);
80  //std::cout<<hltTrgJet[it].c_str()<<" "<<hltTrgJetLow[it].c_str()<<std::endl;
81  }
82  int itm(0), itpm(0), itmh(0), itpmh(0);
83  for (size_t it=0;it<hltTrgMet.size();it++) {
84  if (TString(hltTrgMet[it]).Contains("PF")) {
85  if (TString(hltTrgMet[it]).Contains("MHT")) {
86  if (itpmh==0 && foundMuTrg) hltTrgMetLow.push_back(trgMuNm);
87  if (itpmh==0 && !foundMuTrg) hltTrgMetLow.push_back(hltTrgMet[it]);
88  if (itpmh!=0) hltTrgMetLow.push_back(hltTrgMet[it-1]);
89  itpmh++;
90  }
91  if (TString(hltTrgMet[it]).Contains("MET")) {
92  if (itpm==0 && foundMuTrg) hltTrgMetLow.push_back(trgMuNm);
93  if (itpm==0 && !foundMuTrg) hltTrgMetLow.push_back(hltTrgMet[it]);
94  if (itpm!=0) hltTrgMetLow.push_back(hltTrgMet[it-1]);
95  itpm++;
96  }
97  }
98  else {
99  if (TString(hltTrgMet[it]).Contains("MHT")) {
100  if (itmh==0 && foundMuTrg) hltTrgMetLow.push_back(trgMuNm);
101  if (itmh==0 && !foundMuTrg) hltTrgMetLow.push_back(hltTrgMet[it]);
102  if (itmh!=0) hltTrgMetLow.push_back(hltTrgMet[it-1]);
103  itmh++;
104  }
105  if (TString(hltTrgMet[it]).Contains("MET")) {
106  if (itm==0 && foundMuTrg) hltTrgMetLow.push_back(trgMuNm);
107  if (itm==0 && !foundMuTrg) hltTrgMetLow.push_back(hltTrgMet[it]);
108  if (itm!=0) hltTrgMetLow.push_back(hltTrgMet[it-1]);
109  itm++;
110  }
111  }
112  //std::cout<<hltTrgMet[it].c_str()<<" "<<hltTrgMetLow[it].c_str()<<std::endl;
113  }
114 
115  //----define dqm folders and elements
116  for (size_t it=0;it<hltTrgJet.size();it++) {
117  //std::cout<<hltTrgJet[it].c_str()<<" "<<hltTrgJetLow[it].c_str()<<std::endl;
119  //_meRecoJetPt= store->book1D("_meRecoJetPt","Single Reconstructed Jet Pt",100,0,500);
120  _meRecoJetPt.push_back(store->book1D("_meRecoJetPt","Single Reconstructed Jet Pt",100,0,500));
121  _meRecoJetPtTrgMC.push_back(store->book1D("_meRecoJetPtTrgMC","Single Reconstructed Jet Pt -- HLT Triggered",100,0,500));
122  _meRecoJetPtTrg.push_back(store->book1D("_meRecoJetPtTrg","Single Reconstructed Jet Pt -- HLT Triggered",100,0,500));
123  _meRecoJetPtTrgLow.push_back(store->book1D("_meRecoJetPtTrgLow","Single Reconstructed Jet Pt -- HLT Triggered Low",100,0,500));
124 
125  _meRecoJetEta.push_back(store->book1D("_meRecoJetEta","Single Reconstructed Jet Eta",100,-10,10));
126  _meRecoJetEtaTrgMC.push_back(store->book1D("_meRecoJetEtaTrgMC","Single Reconstructed Jet Eta -- HLT Triggered",100,-10,10));
127  _meRecoJetEtaTrg.push_back(store->book1D("_meRecoJetEtaTrg","Single Reconstructed Jet Eta -- HLT Triggered",100,-10,10));
128  _meRecoJetEtaTrgLow.push_back(store->book1D("_meRecoJetEtaTrgLow","Single Reconstructed Jet Eta -- HLT Triggered Low",100,-10,10));
129 
130  _meRecoJetPhi.push_back(store->book1D("_meRecoJetPhi","Single Reconstructed Jet Phi",100,-4.,4.));
131  _meRecoJetPhiTrgMC.push_back(store->book1D("_meRecoJetPhiTrgMC","Single Reconstructed Jet Phi -- HLT Triggered",100,-4.,4.));
132  _meRecoJetPhiTrg.push_back(store->book1D("_meRecoJetPhiTrg","Single Reconstructed Jet Phi -- HLT Triggered",100,-4.,4.));
133  _meRecoJetPhiTrgLow.push_back(store->book1D("_meRecoJetPhiTrgLow","Single Reconstructed Jet Phi -- HLT Triggered Low",100,-4.,4.));
134 
135  _meGenJetPt.push_back(store->book1D("_meGenJetPt","Single Generated Jet Pt",100,0,500));
136  _meGenJetPtTrgMC.push_back(store->book1D("_meGenJetPtTrgMC","Single Generated Jet Pt -- HLT Triggered",100,0,500));
137  _meGenJetPtTrg.push_back(store->book1D("_meGenJetPtTrg","Single Generated Jet Pt -- HLT Triggered",100,0,500));
138  _meGenJetPtTrgLow.push_back(store->book1D("_meGenJetPtTrgLow","Single Generated Jet Pt -- HLT Triggered Low",100,0,500));
139 
140  _meGenJetEta.push_back(store->book1D("_meGenJetEta","Single Generated Jet Eta",100,-10,10));
141  _meGenJetEtaTrgMC.push_back(store->book1D("_meGenJetEtaTrgMC","Single Generated Jet Eta -- HLT Triggered",100,-10,10));
142  _meGenJetEtaTrg.push_back(store->book1D("_meGenJetEtaTrg","Single Generated Jet Eta -- HLT Triggered",100,-10,10));
143  _meGenJetEtaTrgLow.push_back(store->book1D("_meGenJetEtaTrgLow","Single Generated Jet Eta -- HLT Triggered Low",100,-10,10));
144 
145  _meGenJetPhi.push_back(store->book1D("_meGenJetPhi","Single Generated Jet Phi",100,-4.,4.));
146  _meGenJetPhiTrgMC.push_back(store->book1D("_meGenJetPhiTrgMC","Single Generated Jet Phi -- HLT Triggered",100,-4.,4.));
147  _meGenJetPhiTrg.push_back(store->book1D("_meGenJetPhiTrg","Single Generated Jet Phi -- HLT Triggered",100,-4.,4.));
148  _meGenJetPhiTrgLow.push_back(store->book1D("_meGenJetPhiTrgLow","Single Generated Jet Phi -- HLT Triggered Low",100,-4.,4.));
149 
150  }
151  for (size_t it=0;it<hltTrgMet.size();it++) {
152  //std::cout<<hltTrgMet[it].c_str()<<" "<<hltTrgMetLow[it].c_str()<<std::endl;
154  _meRecoMET.push_back(store->book1D("_meRecoMET","Reconstructed Missing ET",100,0,500));
155  _meRecoMETTrgMC.push_back(store->book1D("_meRecoMETTrgMC","Reconstructed Missing ET -- HLT Triggered",100,0,500));
156  _meRecoMETTrg.push_back(store->book1D("_meRecoMETTrg","Reconstructed Missing ET -- HLT Triggered",100,0,500));
157  _meRecoMETTrgLow.push_back(store->book1D("_meRecoMETTrgLow","Reconstructed Missing ET -- HLT Triggered Low",100,0,500));
158 
159  _meGenMET.push_back(store->book1D("_meGenMET","Generated Missing ET",100,0,500));
160  _meGenMETTrgMC.push_back(store->book1D("_meGenMETTrgMC","Generated Missing ET -- HLT Triggered",100,0,500));
161  _meGenMETTrg.push_back(store->book1D("_meGenMETTrg","Generated Missing ET -- HLT Triggered",100,0,500));
162  _meGenMETTrgLow.push_back(store->book1D("_meGenMETTrgLow","Generated Missing ET -- HLT Triggered Low",100,0,500));
163  }
164 }
std::vector< MonitorElement * > _meRecoMET
std::vector< std::string > hltTrgMet
std::vector< MonitorElement * > _meGenJetEtaTrgMC
std::vector< MonitorElement * > _meGenJetPt
std::vector< MonitorElement * > _meGenJetPhiTrg
std::vector< std::string > hltTrgJet
MonitorElement * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
Definition: DQMStore.cc:514
const std::vector< std::string > & triggerNames() const
names of trigger paths
std::vector< MonitorElement * > _meRecoJetPtTrgMC
std::vector< MonitorElement * > _meGenMET
std::vector< MonitorElement * > _meGenJetPtTrgMC
std::vector< MonitorElement * > _meGenMETTrgMC
std::vector< std::string > hltTrgMetLow
std::vector< MonitorElement * > _meGenJetPhiTrgMC
std::vector< MonitorElement * > _meGenMETTrgLow
std::vector< MonitorElement * > _meRecoJetPhiTrgLow
std::vector< MonitorElement * > _meRecoJetPt
int j
Definition: DBlmapReader.cc:9
std::vector< MonitorElement * > _meGenJetEtaTrg
std::vector< MonitorElement * > _meRecoJetEtaTrgMC
std::vector< MonitorElement * > _meRecoMETTrg
std::vector< MonitorElement * > _meGenJetPtTrg
std::vector< MonitorElement * > _meGenMETTrg
std::vector< MonitorElement * > _meRecoJetPhiTrgMC
std::vector< MonitorElement * > _meGenJetEtaTrgLow
std::vector< MonitorElement * > _meRecoJetPtTrg
std::vector< MonitorElement * > _meGenJetEta
std::vector< MonitorElement * > _meRecoJetPhiTrg
std::vector< MonitorElement * > _meRecoMETTrgMC
bool init(const edm::Run &iRun, const edm::EventSetup &iSetup, const std::string &processName, bool &changed)
std::vector< MonitorElement * > _meGenJetPhi
std::vector< MonitorElement * > _meGenJetPtTrgLow
std::vector< MonitorElement * > _meRecoJetPtTrgLow
HLTConfigProvider hltConfig_
std::vector< MonitorElement * > _meRecoMETTrgLow
std::vector< std::string > hltTrgJetLow
std::vector< MonitorElement * > _meRecoJetEta
std::vector< MonitorElement * > _meGenJetPhiTrgLow
std::vector< MonitorElement * > _meRecoJetPhi
std::vector< MonitorElement * > _meRecoJetEtaTrgLow
std::vector< MonitorElement * > _meRecoJetEtaTrg
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:232
void HLTJetMETValidation::endJob ( void  )
privatevirtual

Reimplemented from edm::EDAnalyzer.

Definition at line 167 of file HLTJetMETValidation.cc.

References outFile_, and writeFile_.

168 {
169 
170  //Write DQM thing..
171  if(outFile_.size()>0)
172  if (&*edm::Service<DQMStore>() && writeFile_) {
174  }
175 
176 }
void HLTJetMETValidation::getHLTResults ( const edm::TriggerResults hltresults,
const edm::TriggerNames triggerNames 
)
private

Definition at line 405 of file HLTJetMETValidation.cc.

References accept(), edm::HLTGlobalStatus::accept(), HLTinit_, hltTriggerMap, edm::HLTGlobalStatus::size(), trig_iter, and edm::TriggerNames::triggerName().

Referenced by analyze().

406  {
407 
408  int ntrigs=hltresults.size();
409  if (! HLTinit_){
410  HLTinit_=true;
411 
412  //if (writeFile_) std::cout << "Number of HLT Paths: " << ntrigs << std::endl;
413  for (int itrig = 0; itrig != ntrigs; ++itrig){
414  std::string trigName = triggerNames.triggerName(itrig);
415  // std::cout << "trigger " << itrig << ": " << trigName << std::endl;
416  }
417  }
418 
419  for (int itrig = 0; itrig != ntrigs; ++itrig){
420  std::string trigName = triggerNames.triggerName(itrig);
421  bool accept=hltresults.accept(itrig);
422 
423  //if (accept) _triggerResults->Fill(float(itrig));
424 
425  // fill the trigger map
427  trig_iter=hltTriggerMap.find(trigName);
428  if (trig_iter==hltTriggerMap.end())
429  hltTriggerMap.insert(valType(trigName,accept));
430  else
431  trig_iter->second=accept;
432  }
433 }
std::map< std::string, bool > hltTriggerMap
bool accept() const
Has at least one path accepted the event?
bool accept(const edm::Event &event, const edm::TriggerResults &triggerTable, const std::string &triggerPath)
Definition: TopDQMHelpers.h:21
unsigned int size() const
Get number of paths stored.
Container::value_type value_type
std::string const & triggerName(unsigned int index) const
Definition: TriggerNames.cc:27
std::map< std::string, bool >::iterator trig_iter

Member Data Documentation

std::vector<MonitorElement*> HLTJetMETValidation::_meGenJetEta
private

Definition at line 104 of file HLTJetMETValidation.h.

Referenced by analyze(), and beginRun().

std::vector<MonitorElement*> HLTJetMETValidation::_meGenJetEtaTrg
private

Definition at line 106 of file HLTJetMETValidation.h.

Referenced by analyze(), and beginRun().

std::vector<MonitorElement*> HLTJetMETValidation::_meGenJetEtaTrgLow
private

Definition at line 107 of file HLTJetMETValidation.h.

Referenced by analyze(), and beginRun().

std::vector<MonitorElement*> HLTJetMETValidation::_meGenJetEtaTrgMC
private

Definition at line 105 of file HLTJetMETValidation.h.

Referenced by analyze(), and beginRun().

std::vector<MonitorElement*> HLTJetMETValidation::_meGenJetPhi
private

Definition at line 108 of file HLTJetMETValidation.h.

Referenced by analyze(), and beginRun().

std::vector<MonitorElement*> HLTJetMETValidation::_meGenJetPhiTrg
private

Definition at line 110 of file HLTJetMETValidation.h.

Referenced by analyze(), and beginRun().

std::vector<MonitorElement*> HLTJetMETValidation::_meGenJetPhiTrgLow
private

Definition at line 111 of file HLTJetMETValidation.h.

Referenced by analyze(), and beginRun().

std::vector<MonitorElement*> HLTJetMETValidation::_meGenJetPhiTrgMC
private

Definition at line 109 of file HLTJetMETValidation.h.

Referenced by analyze(), and beginRun().

std::vector<MonitorElement*> HLTJetMETValidation::_meGenJetPt
private

Definition at line 100 of file HLTJetMETValidation.h.

Referenced by analyze(), and beginRun().

std::vector<MonitorElement*> HLTJetMETValidation::_meGenJetPtTrg
private

Definition at line 102 of file HLTJetMETValidation.h.

Referenced by analyze(), and beginRun().

std::vector<MonitorElement*> HLTJetMETValidation::_meGenJetPtTrgLow
private

Definition at line 103 of file HLTJetMETValidation.h.

Referenced by analyze(), and beginRun().

std::vector<MonitorElement*> HLTJetMETValidation::_meGenJetPtTrgMC
private

Definition at line 101 of file HLTJetMETValidation.h.

Referenced by analyze(), and beginRun().

std::vector<MonitorElement*> HLTJetMETValidation::_meGenMET
private

Definition at line 117 of file HLTJetMETValidation.h.

Referenced by analyze(), and beginRun().

std::vector<MonitorElement*> HLTJetMETValidation::_meGenMETTrg
private

Definition at line 119 of file HLTJetMETValidation.h.

Referenced by analyze(), and beginRun().

std::vector<MonitorElement*> HLTJetMETValidation::_meGenMETTrgLow
private

Definition at line 120 of file HLTJetMETValidation.h.

Referenced by analyze(), and beginRun().

std::vector<MonitorElement*> HLTJetMETValidation::_meGenMETTrgMC
private

Definition at line 118 of file HLTJetMETValidation.h.

Referenced by analyze(), and beginRun().

std::vector<MonitorElement*> HLTJetMETValidation::_meRecoJetEta
private

Definition at line 91 of file HLTJetMETValidation.h.

Referenced by analyze(), and beginRun().

std::vector<MonitorElement*> HLTJetMETValidation::_meRecoJetEtaTrg
private

Definition at line 93 of file HLTJetMETValidation.h.

Referenced by analyze(), and beginRun().

std::vector<MonitorElement*> HLTJetMETValidation::_meRecoJetEtaTrgLow
private

Definition at line 94 of file HLTJetMETValidation.h.

Referenced by analyze(), and beginRun().

std::vector<MonitorElement*> HLTJetMETValidation::_meRecoJetEtaTrgMC
private

Definition at line 92 of file HLTJetMETValidation.h.

Referenced by analyze(), and beginRun().

std::vector<MonitorElement*> HLTJetMETValidation::_meRecoJetPhi
private

Definition at line 95 of file HLTJetMETValidation.h.

Referenced by analyze(), and beginRun().

std::vector<MonitorElement*> HLTJetMETValidation::_meRecoJetPhiTrg
private

Definition at line 97 of file HLTJetMETValidation.h.

Referenced by analyze(), and beginRun().

std::vector<MonitorElement*> HLTJetMETValidation::_meRecoJetPhiTrgLow
private

Definition at line 98 of file HLTJetMETValidation.h.

Referenced by analyze(), and beginRun().

std::vector<MonitorElement*> HLTJetMETValidation::_meRecoJetPhiTrgMC
private

Definition at line 96 of file HLTJetMETValidation.h.

Referenced by analyze(), and beginRun().

std::vector<MonitorElement*> HLTJetMETValidation::_meRecoJetPt
private

Definition at line 87 of file HLTJetMETValidation.h.

Referenced by analyze(), and beginRun().

std::vector<MonitorElement*> HLTJetMETValidation::_meRecoJetPtTrg
private

Definition at line 89 of file HLTJetMETValidation.h.

Referenced by analyze(), and beginRun().

std::vector<MonitorElement*> HLTJetMETValidation::_meRecoJetPtTrgLow
private

Definition at line 90 of file HLTJetMETValidation.h.

Referenced by analyze(), and beginRun().

std::vector<MonitorElement*> HLTJetMETValidation::_meRecoJetPtTrgMC
private

Definition at line 88 of file HLTJetMETValidation.h.

Referenced by analyze(), and beginRun().

std::vector<MonitorElement*> HLTJetMETValidation::_meRecoMET
private

Definition at line 113 of file HLTJetMETValidation.h.

Referenced by analyze(), and beginRun().

std::vector<MonitorElement*> HLTJetMETValidation::_meRecoMETTrg
private

Definition at line 115 of file HLTJetMETValidation.h.

Referenced by analyze(), and beginRun().

std::vector<MonitorElement*> HLTJetMETValidation::_meRecoMETTrgLow
private

Definition at line 116 of file HLTJetMETValidation.h.

Referenced by analyze(), and beginRun().

std::vector<MonitorElement*> HLTJetMETValidation::_meRecoMETTrgMC
private

Definition at line 114 of file HLTJetMETValidation.h.

Referenced by analyze(), and beginRun().

MonitorElement* HLTJetMETValidation::_triggerResults
private

Definition at line 124 of file HLTJetMETValidation.h.

edm::InputTag HLTJetMETValidation::CaloJetAlgorithm
private

Definition at line 75 of file HLTJetMETValidation.h.

Referenced by analyze().

edm::InputTag HLTJetMETValidation::CaloMETColl
private

Definition at line 75 of file HLTJetMETValidation.h.

Referenced by analyze().

int HLTJetMETValidation::evtCnt
private

Definition at line 128 of file HLTJetMETValidation.h.

Referenced by analyze(), and HLTJetMETValidation().

edm::InputTag HLTJetMETValidation::GenJetAlgorithm
private

Definition at line 75 of file HLTJetMETValidation.h.

Referenced by analyze().

edm::InputTag HLTJetMETValidation::GenMETColl
private

Definition at line 75 of file HLTJetMETValidation.h.

Referenced by analyze().

HLTConfigProvider HLTJetMETValidation::hltConfig_
private

Definition at line 130 of file HLTJetMETValidation.h.

Referenced by beginRun().

bool HLTJetMETValidation::HLTinit_
private

Definition at line 141 of file HLTJetMETValidation.h.

Referenced by getHLTResults().

edm::InputTag HLTJetMETValidation::HLTriggerResults
private

Definition at line 75 of file HLTJetMETValidation.h.

Referenced by analyze().

std::vector<std::string> HLTJetMETValidation::hltTrgJet
private

Definition at line 131 of file HLTJetMETValidation.h.

Referenced by analyze(), and beginRun().

std::vector<std::string> HLTJetMETValidation::hltTrgJetLow
private

Definition at line 132 of file HLTJetMETValidation.h.

Referenced by analyze(), and beginRun().

std::vector<std::string> HLTJetMETValidation::hltTrgMet
private

Definition at line 133 of file HLTJetMETValidation.h.

Referenced by analyze(), and beginRun().

std::vector<std::string> HLTJetMETValidation::hltTrgMetLow
private

Definition at line 134 of file HLTJetMETValidation.h.

Referenced by analyze(), and beginRun().

std::map<std::string,bool> HLTJetMETValidation::hltTriggerMap
private

Definition at line 138 of file HLTJetMETValidation.h.

Referenced by analyze(), and getHLTResults().

std::vector<bool> HLTJetMETValidation::hlttrigs
private

Definition at line 137 of file HLTJetMETValidation.h.

std::string HLTJetMETValidation::MyTrigger
private

Definition at line 78 of file HLTJetMETValidation.h.

std::string HLTJetMETValidation::outFile_
private

Definition at line 83 of file HLTJetMETValidation.h.

Referenced by endJob().

std::string HLTJetMETValidation::patternJetTrg_
private

Definition at line 78 of file HLTJetMETValidation.h.

Referenced by beginRun().

std::string HLTJetMETValidation::patternMetTrg_
private

Definition at line 78 of file HLTJetMETValidation.h.

Referenced by beginRun().

std::string HLTJetMETValidation::patternMuTrg_
private

Definition at line 78 of file HLTJetMETValidation.h.

Referenced by beginRun().

DQMStore* HLTJetMETValidation::store
private

Definition at line 85 of file HLTJetMETValidation.h.

Referenced by beginRun(), and HLTJetMETValidation().

std::map<std::string,bool>::iterator HLTJetMETValidation::trig_iter
private

Definition at line 139 of file HLTJetMETValidation.h.

Referenced by analyze(), and getHLTResults().

edm::InputTag HLTJetMETValidation::triggerEventObject_
private

InputTag of TriggerEventWithRefs to analyze.

Definition at line 74 of file HLTJetMETValidation.h.

Referenced by analyze().

std::string HLTJetMETValidation::triggerTag_
private

Definition at line 78 of file HLTJetMETValidation.h.

Referenced by beginRun().

bool HLTJetMETValidation::writeFile_
private

Definition at line 144 of file HLTJetMETValidation.h.

Referenced by endJob().