CMS 3D CMS Logo

List of all members | Public Member Functions | Public Attributes | Private Member Functions | Private Attributes
L1Muon2RecoTreeProducer Class Reference
Inheritance diagram for L1Muon2RecoTreeProducer:
edm::EDAnalyzer edm::EDConsumerBase

Public Member Functions

void empty_hlt ()
 
 L1Muon2RecoTreeProducer (const edm::ParameterSet &)
 
double match_trigger (std::vector< int > &trigIndices, const trigger::TriggerObjectCollection &trigObjs, edm::Handle< trigger::TriggerEvent > &triggerEvent, const reco::Muon &mu)
 
 ~L1Muon2RecoTreeProducer () override
 
- Public Member Functions inherited from edm::EDAnalyzer
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 EDAnalyzer ()
 
SerialTaskQueueglobalLuminosityBlocksQueue ()
 
SerialTaskQueueglobalRunsQueue ()
 
ModuleDescription const & moduleDescription () const
 
std::string workerType () const
 
 ~EDAnalyzer () override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
virtual ~EDConsumerBase () noexcept(false)
 

Public Attributes

L1Analysis::L1AnalysisRecoMuon2muon
 
L1Analysis::L1AnalysisRecoMuon2DataFormatmuon_data
 

Private Member Functions

void analyze (const edm::Event &, const edm::EventSetup &) override
 
void beginJob (void) override
 
void beginRun (const edm::Run &, const edm::EventSetup &) override
 
void endJob () override
 

Private Attributes

edm::Service< TFileServicefs_
 
HLTConfigProvider hltConfig_
 
std::vector< int > isoTriggerIndices_
 
std::vector< std::string > isoTriggerNames_
 
edm::Handle< std::vector< std::string > > isoTriggerNamesToken_
 
edm::Handle< edm::TriggerResultsisoTriggerToken_
 
unsigned int maxMuon_
 
edm::EDGetTokenT< reco::PFMETCollectionmetToken_
 
edm::EDGetTokenT< reco::MuonCollectionMuonToken_
 
TTree * tree_
 
std::vector< int > triggerIndices_
 
bool triggerMatching_
 
double triggerMaxDeltaR_
 
std::vector< std::string > triggerNames_
 
std::string triggerProcessLabel_
 
edm::EDGetTokenT< edm::TriggerResultsTriggerResultsToken_
 
edm::EDGetTokenT< trigger::TriggerEventtriggerSummaryLabelToken_
 
edm::EDGetTokenT< reco::VertexCollectionVtxToken_
 

Additional Inherited Members

- Public Types inherited from edm::EDAnalyzer
typedef EDAnalyzer ModuleType
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from edm::EDAnalyzer
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &)
 
static bool wantsGlobalLuminosityBlocks ()
 
static bool wantsGlobalRuns ()
 
static bool wantsStreamLuminosityBlocks ()
 
static bool wantsStreamRuns ()
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 

Detailed Description

Definition at line 87 of file L1Muon2RecoTreeProducer.cc.

Constructor & Destructor Documentation

L1Muon2RecoTreeProducer::L1Muon2RecoTreeProducer ( const edm::ParameterSet iConfig)
explicit

Definition at line 149 of file L1Muon2RecoTreeProducer.cc.

References edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), and AlCaHLTBitMon_QueryRunRegistry::string.

150 {
151 
152  maxMuon_ = iConfig.getParameter<unsigned int>("maxMuon");
153  isoTriggerNames_ = iConfig.getParameter<std::vector<std::string>>("isoTriggerNames");
154  // isoTriggerToken_ = iConfig.getParameter<std::vector<std::string>>("isoTriggerNames");
155  // TriggerToken_ = iConfig.getParameter<std::vector<std::string>>("triggerNames");
156  MuonToken_ = consumes<reco::MuonCollection>(iConfig.getUntrackedParameter("MuonToken",edm::InputTag("muons")));
157  VtxToken_ = consumes<reco::VertexCollection>(iConfig.getUntrackedParameter("VertexToken",edm::InputTag("offlinePrimaryVertices")));
158 
159  TriggerResultsToken_ = consumes<edm::TriggerResults>(iConfig.getUntrackedParameter("TriggerResultsToken",edm::InputTag("TriggerResults","","HLT")));
160  triggerSummaryLabelToken_ = consumes<trigger::TriggerEvent>(iConfig.getUntrackedParameter("triggerSummaryLabelToken",edm::InputTag("hltTriggerSummaryAOD","","HLT")));
161  // TriggerResultsToken_ = consumes<edm::TriggerResults>(iConfig.getUntrackedParameter("TriggerResultsToken",edm::InputTag("triggerSummaryLabel")));
162  // triggerSummaryLabelToken_ = consumes<trigger::TriggerEvent>(iConfig.getUntrackedParameter("triggerSummaryLabelToken",edm::InputTag("triggerSummaryLabel")));
163  //iConfig.getParameter<edm::InputTag>("triggerSummaryLabel");
164  metToken_ = consumes<reco::PFMETCollection>(iConfig.getUntrackedParameter("metToken",edm::InputTag("pfMet")));
165 
166  muon = new L1Analysis::L1AnalysisRecoMuon2(iConfig);
167  muon_data = muon->getData();
168 
169  tree_=fs_->make<TTree>("Muon2RecoTree", "Muon2RecoTree");
170  tree_->Branch("Muon", "L1Analysis::L1AnalysisRecoMuon2DataFormat", &muon_data, 32000, 3);
171 
172  triggerMaxDeltaR_ = iConfig.getParameter<double>("triggerMaxDeltaR");
173  triggerMatching_ = iConfig.getUntrackedParameter<bool>("triggerMatching");
174  triggerProcessLabel_ = iConfig.getUntrackedParameter<std::string>("triggerProcessLabel");
175  isoTriggerNames_ = iConfig.getParameter<std::vector<std::string>>("isoTriggerNames");
176  triggerNames_ = iConfig.getParameter<std::vector<std::string>>("triggerNames");
177 
178  // triggerMatching_ = iConfig.getUntrackedParameter<bool>("triggerMatching");
179  // _ = iConfig.getParameter<edm::InputTag>("triggerSummaryLabel");
180  // triggerProcessLabel_ = iConfig.getUntrackedParameter<std::string>("triggerProcessLabel");
181  // triggerNames_ = iConfig.getParameter<std::vector<std::string> > ("triggerNames");
182  // isoTriggerNames_ = iConfig.getParameter<std::vector<std::string> > ("isoTriggerNames");
183  // triggerMaxDeltaR_ = iConfig.getParameter<double> ("triggerMaxDeltaR");
184 
185 }
L1Analysis::L1AnalysisRecoMuon2DataFormat * muon_data
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
T * make(const Args &...args) const
make new ROOT object
Definition: TFileService.h:64
edm::EDGetTokenT< reco::MuonCollection > MuonToken_
edm::Service< TFileService > fs_
edm::EDGetTokenT< edm::TriggerResults > TriggerResultsToken_
edm::EDGetTokenT< reco::VertexCollection > VtxToken_
edm::EDGetTokenT< trigger::TriggerEvent > triggerSummaryLabelToken_
std::vector< std::string > triggerNames_
edm::EDGetTokenT< reco::PFMETCollection > metToken_
std::vector< std::string > isoTriggerNames_
L1Muon2RecoTreeProducer::~L1Muon2RecoTreeProducer ( )
override

Definition at line 188 of file L1Muon2RecoTreeProducer.cc.

189 {
190 
191  // do anything here that needs to be done at desctruction time
192  // (e.g. close files, deallocate resources etc.)
193 
194 }

Member Function Documentation

void L1Muon2RecoTreeProducer::analyze ( const edm::Event iEvent,
const edm::EventSetup iSetup 
)
overrideprivate

Definition at line 202 of file L1Muon2RecoTreeProducer.cc.

References edm::HLTGlobalStatus::accept(), edm::Event::getByToken(), trigger::TriggerEvent::getObjects(), edm::HandleBase::isValid(), hltdqm::passTrig(), edm::TriggerNames::size(), AlCaHLTBitMon_QueryRunRegistry::string, edm::TriggerNames::triggerIndex(), edm::Event::triggerNames(), TriggerAnalyzer::triggerObjects, triggerResults, trigNames, and electrons_cff::vertices.

203 {
204 
205  muon->Reset();
207  iEvent.getByToken(MuonToken_, recoMuons);
208 
210  iEvent.getByToken(VtxToken_, vertices);
211 
213  iEvent.getByToken(TriggerResultsToken_, triggerResults);
214 
215  edm::Handle<trigger::TriggerEvent> triggerSummaryLabel_;
216  iEvent.getByToken(triggerSummaryLabelToken_, triggerSummaryLabel_);
217 
219  iEvent.getByToken(metToken_, metLabel_);
220 
221  int counter_met = 0;
222 
223  double METx = 0.;
224  double METy = 0.;
225 
226  for(reco::PFMETCollection::const_iterator imet = metLabel_->begin();
227  imet != metLabel_->end() && (unsigned) counter_met < 1; imet++) {
228 
229  METx = imet->px();
230  METy = imet->py();
231 
232  }
233 
234  if (recoMuons.isValid()) {
235  muon->SetMuon(iEvent, iSetup, recoMuons, vertices, METx, METy, maxMuon_);
236  }
237  else {
238 
239  }
240 
241 
242  int counter_mu = 0;
243  for(reco::MuonCollection::const_iterator imu = recoMuons->begin();
244  imu != recoMuons->end() && (unsigned) counter_mu < maxMuon_; imu++) {
245 
246  //---------------------------------------------------------------------
247  // TRIGGER MATCHING:
248  // if specified the reconstructed muons are matched to a trigger
249  //---------------------------------------------------------------------
250  if (triggerMatching_) {
251  double isoMatchDeltaR = 9999.;
252  double matchDeltaR = 9999.;
253  int hasIsoTriggered = 0;
254  int hasTriggered = 0;
255 
256  int passesSingleMuonFlag = 0;
257 
258  // first check if the trigger results are valid:
259  if (triggerResults.isValid()) {
260 
261  if (triggerSummaryLabel_.isValid()) {
262 
263  const edm::TriggerNames& trigNames = iEvent.triggerNames(*triggerResults);
264  // for(UInt_t iPath = 0 ; iPath < trigNames.size() ; ++iPath)
265  // {
266  // cout<<iPath<<": "<<trigNames.triggerName(iPath)<<endl;
267  // }
268 
269  for(UInt_t iPath = 0 ; iPath < isoTriggerNames_.size() ; ++iPath)
270  {
271  if(passesSingleMuonFlag==1) continue;
272  std::string pathName=isoTriggerNames_.at(iPath);
273 
274  bool passTrig=false;
275  //cout<<"testing pathName = "<<pathName<<endl;
276  //cout<<"trigNames.triggerIndex(pathName) = "<<trigNames.triggerIndex(pathName)<<endl;
277  // cout<<"trigNames.triggerIndex(pathName)<trigNames.size()= "<<(trigNames.triggerIndex(pathName)<trigNames.size())<<endl;
278 
279  if(trigNames.triggerIndex(pathName)<trigNames.size()) passTrig=triggerResults->accept(trigNames.triggerIndex(pathName));
280  // cout<<"pass = "<<passTrig<<endl;
281  if(passTrig) passesSingleMuonFlag=1;
282  }
283 
284  if (triggerSummaryLabel_.isValid()) {
285  // get trigger objects:
286  const trigger::TriggerObjectCollection triggerObjects = triggerSummaryLabel_->getObjects();
287 
288  matchDeltaR = match_trigger(triggerIndices_, triggerObjects, triggerSummaryLabel_, (*imu));
289  if (matchDeltaR < triggerMaxDeltaR_)
290  hasTriggered = 1;
291 
292  // cout<<"isoTriggerIndices_.size() = "<<isoTriggerIndices_.size()<<endl;
293  // cout<<"triggerObjects.size() = "<<triggerObjects.size()<<endl;
294  // cout<<"imu->eta() = "<<imu->eta()<<endl;
295 
296  isoMatchDeltaR = match_trigger(isoTriggerIndices_, triggerObjects, triggerSummaryLabel_, (*imu));
297  if (isoMatchDeltaR < triggerMaxDeltaR_)
298  hasIsoTriggered = 1;
299 
300  } // end if (triggerEvent.isValid())
301 
302  } // end if (triggerResults.isValid())
303 
304  } // end if (triggerResults.isValid())
305 
306  // fill trigger matching variables:
307  muon_data->hlt_isomu.push_back(hasIsoTriggered);
308  muon_data->hlt_mu.push_back(hasTriggered);
309  muon_data->hlt_isoDeltaR.push_back(isoMatchDeltaR);
310  muon_data->hlt_deltaR.push_back(matchDeltaR);
311  muon_data->passesSingleMuon.push_back(passesSingleMuonFlag);
312 
313  } else {
314  empty_hlt();
315  } // end if (triggerMatching_)
316  }
317 
318 
319  tree_->Fill();
320 
321 }
L1Analysis::L1AnalysisRecoMuon2DataFormat * muon_data
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:579
bool accept() const
Has at least one path accepted the event?
Strings::size_type size() const
Definition: TriggerNames.cc:39
double match_trigger(std::vector< int > &trigIndices, const trigger::TriggerObjectCollection &trigObjs, edm::Handle< trigger::TriggerEvent > &triggerEvent, const reco::Muon &mu)
edm::EDGetTokenT< reco::MuonCollection > MuonToken_
unsigned int triggerIndex(std::string const &name) const
Definition: TriggerNames.cc:32
const TriggerObjectCollection & getObjects() const
Definition: TriggerEvent.h:98
static std::string const triggerResults
Definition: EdmProvDump.cc:41
bool isValid() const
Definition: HandleBase.h:74
std::vector< TriggerObject > TriggerObjectCollection
collection of trigger physics objects (e.g., all isolated muons)
Definition: TriggerObject.h:81
static const char *const trigNames[]
Definition: EcalDumpRaw.cc:74
edm::EDGetTokenT< edm::TriggerResults > TriggerResultsToken_
edm::EDGetTokenT< reco::VertexCollection > VtxToken_
std::vector< int > isoTriggerIndices_
edm::EDGetTokenT< trigger::TriggerEvent > triggerSummaryLabelToken_
edm::TriggerNames const & triggerNames(edm::TriggerResults const &triggerResults) const override
Definition: Event.cc:301
edm::EDGetTokenT< reco::PFMETCollection > metToken_
bool passTrig(const float objEta, float objPhi, const trigger::TriggerEvent &trigEvt, const std::string &filterName, const std::string &processName)
Definition: UtilFuncs.h:14
std::vector< std::string > isoTriggerNames_
void L1Muon2RecoTreeProducer::beginJob ( void  )
overrideprivatevirtual

Reimplemented from edm::EDAnalyzer.

Definition at line 325 of file L1Muon2RecoTreeProducer.cc.

326 {
327 }
void L1Muon2RecoTreeProducer::beginRun ( const edm::Run run,
const edm::EventSetup eventSetup 
)
overrideprivate

Definition at line 380 of file L1Muon2RecoTreeProducer.cc.

References gather_cfg::cout, DEFINE_FWK_MODULE, and createfilelist::int.

380  {
381  // Prepare for trigger matching for each new run:
382  // Look up triggetIndices in the HLT config for the different paths
383  if (triggerMatching_) {
384  bool changed = true;
385  if (!hltConfig_.init(run, eventSetup, triggerProcessLabel_, changed)) {
386  // if you can't initialize hlt configuration, crash!
387  std::cout << "Error: didn't find process" << triggerProcessLabel_ << std::endl;
388  assert(false);
389  }
390 
391  bool enableWildcard = true;
392  for (size_t iTrig = 0; iTrig < triggerNames_.size(); ++iTrig) {
393  // prepare for regular expression (with wildcards) functionality:
394  TString tNameTmp = TString(triggerNames_[iTrig]);
395  TRegexp tNamePattern = TRegexp(tNameTmp, enableWildcard);
396  int tIndex = -1;
397  // find the trigger index:
398  for (unsigned ipath = 0; ipath < hltConfig_.size(); ++ipath) {
399  // use TString since it provides reg exp functionality:
400  TString tmpName = TString(hltConfig_.triggerName(ipath));
401  if (tmpName.Contains(tNamePattern)) {
402  tIndex = int(ipath);
403  triggerIndices_.push_back(tIndex);
404  }
405  }
406  if (tIndex < 0) { // if can't find trigger path at all, give warning:
407  std::cout << "Warning: Could not find trigger" << triggerNames_[iTrig] << std::endl;
408  //assert(false);
409  }
410  } // end for triggerNames
411  for (size_t iTrig = 0; iTrig < isoTriggerNames_.size(); ++iTrig) {
412 
413  // prepare for regular expression functionality:
414  TString tNameTmp = TString(isoTriggerNames_[iTrig]);
415  TRegexp tNamePattern = TRegexp(tNameTmp, enableWildcard);
416  int tIndex = -1;
417  // find the trigger index:
418  for (unsigned ipath = 0; ipath < hltConfig_.size(); ++ipath) {
419  // use TString since it provides reg exp functionality:
420  TString tmpName = TString(hltConfig_.triggerName(ipath));
421  if (tmpName.Contains(tNamePattern)) {
422  tIndex = int(ipath);
423  isoTriggerIndices_.push_back(tIndex);
424  }
425  }
426  if (tIndex < 0) { // if can't find trigger path at all, give warning:
427  std::cout << "Warning: Could not find trigger" << isoTriggerNames_[iTrig] << std::endl;
428  //assert(false);
429  }
430  } // end for isoTriggerNames
431  } // end if (triggerMatching_)
432 
433  muon->init(eventSetup);
434 }
unsigned int size() const
number of trigger paths in trigger table
const std::string & triggerName(unsigned int triggerIndex) const
bool init(const edm::Run &iRun, const edm::EventSetup &iSetup, const std::string &processName, bool &changed)
d&#39;tor
std::vector< int > isoTriggerIndices_
std::vector< std::string > triggerNames_
std::vector< std::string > isoTriggerNames_
void L1Muon2RecoTreeProducer::empty_hlt ( )

Definition at line 334 of file L1Muon2RecoTreeProducer.cc.

334  {
335 
336  muon_data->hlt_isomu.push_back(-9999);
337  muon_data->hlt_mu.push_back(-9999);
338  muon_data->hlt_isoDeltaR.push_back(-9999);
339  muon_data->hlt_deltaR.push_back(-9999);
340 
341 }
L1Analysis::L1AnalysisRecoMuon2DataFormat * muon_data
void L1Muon2RecoTreeProducer::endJob ( void  )
overrideprivatevirtual

Reimplemented from edm::EDAnalyzer.

Definition at line 331 of file L1Muon2RecoTreeProducer.cc.

331  {
332 }
double L1Muon2RecoTreeProducer::match_trigger ( std::vector< int > &  trigIndices,
const trigger::TriggerObjectCollection trigObjs,
edm::Handle< trigger::TriggerEvent > &  triggerEvent,
const reco::Muon mu 
)

Definition at line 343 of file L1Muon2RecoTreeProducer.cc.

References deltaR(), trigger::TriggerEvent::filterIds(), trigger::TriggerEvent::filterIndex(), and trigger::TriggerEvent::filterKeys().

347 {
348  double matchDeltaR = 9999;
349 
350  for(size_t iTrigIndex = 0; iTrigIndex < trigIndices.size(); ++iTrigIndex) {
351  int triggerIndex = trigIndices[iTrigIndex];
352  const std::vector<std::string> moduleLabels(hltConfig_.moduleLabels(triggerIndex));
353  // find index of the last module:
354  const unsigned moduleIndex = hltConfig_.size(triggerIndex)-2;
355  // find index of HLT trigger name:
356  const unsigned hltFilterIndex = triggerEvent->filterIndex( edm::InputTag ( moduleLabels[moduleIndex], "", triggerProcessLabel_ ) );
357 
358  if (hltFilterIndex < triggerEvent->sizeFilters()) {
359  const trigger::Keys triggerKeys(triggerEvent->filterKeys(hltFilterIndex));
360  const trigger::Vids triggerVids(triggerEvent->filterIds(hltFilterIndex));
361 
362  const unsigned nTriggers = triggerVids.size();
363  for (size_t iTrig = 0; iTrig < nTriggers; ++iTrig) {
364  // loop over all trigger objects:
365  const trigger::TriggerObject trigObject = trigObjs[triggerKeys[iTrig]];
366 
367  double dRtmp = deltaR( mu, trigObject );
368 
369  if ( dRtmp < matchDeltaR ) {
370  matchDeltaR = dRtmp;
371  }
372 
373  } // loop over different trigger objects
374  } // if trigger is in event (should apply hltFilter with used trigger...)
375  } // loop over muon candidates
376 
377  return matchDeltaR;
378 }
unsigned int size() const
number of trigger paths in trigger table
const Keys & filterKeys(trigger::size_type index) const
Definition: TriggerEvent.h:111
trigger::size_type filterIndex(const edm::InputTag &filterTag) const
find index of filter in data-member vector from filter tag
Definition: TriggerEvent.h:123
Single trigger physics object (e.g., an isolated muon)
Definition: TriggerObject.h:22
const Vids & filterIds(trigger::size_type index) const
Definition: TriggerEvent.h:110
const std::vector< std::string > & moduleLabels(unsigned int trigger) const
label(s) of module(s) on a trigger path
double deltaR(double eta1, double eta2, double phi1, double phi2)
Definition: TreeUtility.cc:17
std::vector< size_type > Keys
std::vector< int > Vids

Member Data Documentation

edm::Service<TFileService> L1Muon2RecoTreeProducer::fs_
private

Definition at line 111 of file L1Muon2RecoTreeProducer.cc.

HLTConfigProvider L1Muon2RecoTreeProducer::hltConfig_
private

Definition at line 133 of file L1Muon2RecoTreeProducer.cc.

std::vector<int> L1Muon2RecoTreeProducer::isoTriggerIndices_
private

Definition at line 142 of file L1Muon2RecoTreeProducer.cc.

std::vector<std::string> L1Muon2RecoTreeProducer::isoTriggerNames_
private

Definition at line 140 of file L1Muon2RecoTreeProducer.cc.

edm::Handle<std::vector<std::string> > L1Muon2RecoTreeProducer::isoTriggerNamesToken_
private

Definition at line 130 of file L1Muon2RecoTreeProducer.cc.

edm::Handle<edm::TriggerResults> L1Muon2RecoTreeProducer::isoTriggerToken_
private

Definition at line 129 of file L1Muon2RecoTreeProducer.cc.

unsigned int L1Muon2RecoTreeProducer::maxMuon_
private

Definition at line 136 of file L1Muon2RecoTreeProducer.cc.

edm::EDGetTokenT<reco::PFMETCollection> L1Muon2RecoTreeProducer::metToken_
private

Definition at line 121 of file L1Muon2RecoTreeProducer.cc.

L1Analysis::L1AnalysisRecoMuon2* L1Muon2RecoTreeProducer::muon

Definition at line 100 of file L1Muon2RecoTreeProducer.cc.

L1Analysis::L1AnalysisRecoMuon2DataFormat* L1Muon2RecoTreeProducer::muon_data

Definition at line 102 of file L1Muon2RecoTreeProducer.cc.

edm::EDGetTokenT<reco::MuonCollection> L1Muon2RecoTreeProducer::MuonToken_
private

Definition at line 117 of file L1Muon2RecoTreeProducer.cc.

TTree* L1Muon2RecoTreeProducer::tree_
private

Definition at line 114 of file L1Muon2RecoTreeProducer.cc.

std::vector<int> L1Muon2RecoTreeProducer::triggerIndices_
private

Definition at line 143 of file L1Muon2RecoTreeProducer.cc.

bool L1Muon2RecoTreeProducer::triggerMatching_
private

Definition at line 138 of file L1Muon2RecoTreeProducer.cc.

double L1Muon2RecoTreeProducer::triggerMaxDeltaR_
private

Definition at line 137 of file L1Muon2RecoTreeProducer.cc.

std::vector<std::string> L1Muon2RecoTreeProducer::triggerNames_
private

Definition at line 141 of file L1Muon2RecoTreeProducer.cc.

std::string L1Muon2RecoTreeProducer::triggerProcessLabel_
private

Definition at line 139 of file L1Muon2RecoTreeProducer.cc.

edm::EDGetTokenT<edm::TriggerResults> L1Muon2RecoTreeProducer::TriggerResultsToken_
private

Definition at line 118 of file L1Muon2RecoTreeProducer.cc.

edm::EDGetTokenT<trigger::TriggerEvent> L1Muon2RecoTreeProducer::triggerSummaryLabelToken_
private

Definition at line 119 of file L1Muon2RecoTreeProducer.cc.

edm::EDGetTokenT<reco::VertexCollection> L1Muon2RecoTreeProducer::VtxToken_
private

Definition at line 120 of file L1Muon2RecoTreeProducer.cc.