CMS 3D CMS Logo

List of all members | Classes | Public Member Functions | Static Public Member Functions | Private Types | Private Attributes
TriggerSummaryProducerAOD Class Reference

#include <TriggerSummaryProducerAOD.h>

Inheritance diagram for TriggerSummaryProducerAOD:
edm::stream::EDProducer< edm::GlobalCache< GlobalInputTags > > edm::stream::EDProducerBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Classes

struct  OrderInputTag
 InputTag ordering class. More...
 

Public Member Functions

virtual void endStream () override
 
template<typename C >
void fillFilterObjectMember (const int &, const int &, const edm::Ref< C > &)
 
void fillFilterObjectMember (const int &, const int &, const edm::Ref< l1extra::L1HFRingsCollection > &)
 
void fillFilterObjectMember (const int &, const int &, const edm::Ref< l1extra::L1EtMissParticleCollection > &)
 
void fillFilterObjectMember (const int &, const int &, const edm::Ref< reco::PFMETCollection > &)
 
void fillFilterObjectMember (const int &, const int &, const edm::Ref< reco::CaloMETCollection > &)
 
void fillFilterObjectMember (const int &, const int &, const edm::Ref< reco::METCollection > &)
 
template<typename C >
void fillFilterObjectMembers (const edm::Event &, const edm::InputTag &tag, const trigger::Vids &, const std::vector< edm::Ref< C > > &)
 
template<typename T >
void fillTriggerObject (const T &)
 
void fillTriggerObject (const l1extra::L1HFRings &)
 
void fillTriggerObject (const l1extra::L1EtMissParticle &)
 
void fillTriggerObject (const reco::PFMET &)
 
void fillTriggerObject (const reco::CaloMET &)
 
void fillTriggerObject (const reco::MET &)
 
template<typename C >
void fillTriggerObjectCollections (const edm::Event &, edm::GetterOfProducts< C > &)
 
virtual void produce (edm::Event &, const edm::EventSetup &) override
 
 TriggerSummaryProducerAOD (const edm::ParameterSet &, const GlobalInputTags *)
 
 ~TriggerSummaryProducerAOD ()
 
- Public Member Functions inherited from edm::stream::EDProducer< edm::GlobalCache< GlobalInputTags > >
 EDProducer ()=default
 
- Public Member Functions inherited from edm::stream::EDProducerBase
 EDProducerBase ()
 
ModuleDescription const & moduleDescription () const
 
virtual ~EDProducerBase ()
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
std::vector< edm::ProductResolverIndex > const & indiciesForPutProducts (BranchType iBranchType) const
 
 ProducerBase ()
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription const &)> registrationCallback () const
 used by the fwk to register list of products More...
 
void resolvePutIndicies (BranchType iBranchType, std::unordered_multimap< std::string, edm::ProductResolverIndex > const &iIndicies, std::string const &moduleLabel)
 
virtual ~ProducerBase () noexcept(false)
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
 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
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
virtual ~EDConsumerBase () noexcept(false)
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 
static void globalEndJob (const GlobalInputTags *)
 
static std::unique_ptr< GlobalInputTagsinitializeGlobalCache (edm::ParameterSet const &)
 
- Static Public Member Functions inherited from edm::stream::EDProducerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 

Private Types

typedef std::set< edm::InputTag, OrderInputTagInputTagSet
 

Private Attributes

InputTagSet collectionTagsEvent_
 list of L3 collection tags More...
 
InputTagSet collectionTagsStream_
 
InputTagSet filterTagsEvent_
 list of L3 filter tags More...
 
InputTagSet filterTagsStream_
 
edm::GetterOfProducts< reco::CaloJetCollectiongetCaloJetCollection_
 
edm::GetterOfProducts< reco::CaloMETCollectiongetCaloMETCollection_
 
edm::GetterOfProducts< reco::CompositeCandidateCollectiongetCompositeCandidateCollection_
 
edm::GetterOfProducts< reco::ElectronCollectiongetElectronCollection_
 
edm::GetterOfProducts< reco::IsolatedPixelTrackCandidateCollectiongetIsolatedPixelTrackCandidateCollection_
 
edm::GetterOfProducts< l1extra::L1EmParticleCollectiongetL1EmParticleCollection_
 
edm::GetterOfProducts< l1extra::L1EtMissParticleCollectiongetL1EtMissParticleCollection_
 
edm::GetterOfProducts< l1extra::L1HFRingsCollectiongetL1HFRingsCollection_
 
edm::GetterOfProducts< l1extra::L1JetParticleCollectiongetL1JetParticleCollection_
 
edm::GetterOfProducts< l1extra::L1MuonParticleCollectiongetL1MuonParticleCollection_
 
edm::GetterOfProducts< l1t::EGammaBxCollectiongetL1TEGammaParticleCollection_
 
edm::GetterOfProducts< l1t::EtSumBxCollectiongetL1TEtSumParticleCollection_
 
edm::GetterOfProducts< l1t::JetBxCollectiongetL1TJetParticleCollection_
 
edm::GetterOfProducts< l1t::MuonBxCollectiongetL1TMuonParticleCollection_
 
edm::GetterOfProducts< l1t::TauBxCollectiongetL1TTauParticleCollection_
 
edm::GetterOfProducts< reco::METCollectiongetMETCollection_
 
edm::GetterOfProducts< reco::PFJetCollectiongetPFJetCollection_
 
edm::GetterOfProducts< reco::PFMETCollectiongetPFMETCollection_
 
edm::GetterOfProducts< reco::PFTauCollectiongetPFTauCollection_
 
edm::GetterOfProducts< reco::RecoChargedCandidateCollectiongetRecoChargedCandidateCollection_
 
edm::GetterOfProducts< reco::RecoEcalCandidateCollectiongetRecoEcalCandidateCollection_
 
edm::GetterOfProducts< trigger::TriggerFilterObjectWithRefsgetTriggerFilterObjectWithRefs_
 
trigger::Vids ids_
 ids More...
 
trigger::Keys keys_
 keys More...
 
std::vector< bool > maskFilters_
 packing decision More...
 
std::vector< std::regex > moduleLabelPatternsToMatch_
 module labels which should be avoided More...
 
std::vector< std::regex > moduleLabelPatternsToSkip_
 
std::map< edm::ProductID, unsigned int > offset_
 global map for indices into toc_: offset per input L3 collection More...
 
std::string pn_
 process name More...
 
std::vector< std::string > tags_
 
trigger::TriggerObjectCollection toc_
 trigger object collection More...
 

Additional Inherited Members

- Public Types inherited from edm::stream::EDProducer< edm::GlobalCache< GlobalInputTags > >
typedef CacheContexts< T... > CacheTypes
 
typedef CacheTypes::GlobalCache GlobalCache
 
typedef AbilityChecker< T... > HasAbility
 
typedef CacheTypes::LuminosityBlockCache LuminosityBlockCache
 
typedef LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCacheLuminosityBlockContext
 
typedef CacheTypes::LuminosityBlockSummaryCache LuminosityBlockSummaryCache
 
typedef CacheTypes::RunCache RunCache
 
typedef RunContextT< RunCache, GlobalCacheRunContext
 
typedef CacheTypes::RunSummaryCache RunSummaryCache
 
- Public Types inherited from edm::stream::EDProducerBase
typedef EDProducerAdaptorBase ModuleType
 
- Public Types inherited from edm::ProducerBase
typedef ProductRegistryHelper::TypeLabelList TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- 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

This class is an EDProducer making the HLT summary object for AOD

Author
Martin Grunewald

See header file for documentation

Author
Martin Grunewald

Definition at line 84 of file TriggerSummaryProducerAOD.h.

Member Typedef Documentation

Definition at line 146 of file TriggerSummaryProducerAOD.h.

Constructor & Destructor Documentation

TriggerSummaryProducerAOD::TriggerSummaryProducerAOD ( const edm::ParameterSet ps,
const GlobalInputTags gt 
)
explicit

Definition at line 75 of file TriggerSummaryProducerAOD.cc.

References edm::ProducerBase::callWhenNewProductsRegistered(), collectionTagsEvent_, collectionTagsStream_, relativeConstraints::empty, filterTagsEvent_, filterTagsStream_, getCaloJetCollection_, getCaloMETCollection_, getCompositeCandidateCollection_, getElectronCollection_, getIsolatedPixelTrackCandidateCollection_, getL1EmParticleCollection_, getL1EtMissParticleCollection_, getL1HFRingsCollection_, getL1JetParticleCollection_, getL1MuonParticleCollection_, getL1TEGammaParticleCollection_, getL1TEtSumParticleCollection_, getL1TJetParticleCollection_, getL1TMuonParticleCollection_, getL1TTauParticleCollection_, getMETCollection_, getPFJetCollection_, getPFMETCollection_, getPFTauCollection_, edm::service::TriggerNamesService::getProcessName(), getRecoChargedCandidateCollection_, getRecoEcalCandidateCollection_, getTriggerFilterObjectWithRefs_, instance, edm::Service< T >::isAvailable(), diffTwoXMLs::label, LogDebug, match(), moduleLabelPatternsToMatch_, moduleLabelPatternsToSkip_, pn_, LaserDQM_cfg::process, AlCaHLTBitMon_QueryRunRegistry::string, GlobalPosition_Frontier_DevDB_cff::tag, and ~TriggerSummaryProducerAOD().

75  :
76  pn_(ps.getParameter<std::string>("processName")),
77  moduleLabelPatternsToMatch_(convertToRegex(ps.getParameter<std::vector<std::string>>("moduleLabelPatternsToMatch"))),
78  moduleLabelPatternsToSkip_(convertToRegex(ps.getParameter<std::vector<std::string>>("moduleLabelPatternsToSkip"))),
79  filterTagsEvent_(pn_!="*"),
80  filterTagsStream_(pn_!="*"),
83  toc_(),
84  tags_(),
85  offset_(),
86  keys_(),
87  ids_(),
88  maskFilters_()
89 {
90  if (pn_=="@") {
92  if (tns.isAvailable()) {
93  pn_ = tns->getProcessName();
94  } else {
95  edm::LogError("TriggerSummaryProducerAOD") << "HLT Error: TriggerNamesService not available!";
96  pn_="*";
97  }
98 
103  }
104  LogDebug("TriggerSummaryProducerAOD") << "Using process name: '" << pn_ <<"'";
105 
106  filterTagsStream_.clear();
107  collectionTagsStream_.clear();
108 
109  produces<trigger::TriggerEvent>();
110 
111  auto const* pProcessName = &pn_;
112  auto const& moduleLabelPatternsToMatch = moduleLabelPatternsToMatch_;
113  auto const& moduleLabelPatternsToSkip = moduleLabelPatternsToSkip_;
114  auto productMatch = [pProcessName,&moduleLabelPatternsToSkip,&moduleLabelPatternsToMatch](edm::BranchDescription const& iBranch) -> bool {
115  if(iBranch.processName() == *pProcessName || *pProcessName == "*") {
116  auto const& label = iBranch.moduleLabel();
117  for(auto& match: moduleLabelPatternsToMatch) {
118  if(std::regex_match(label,match)) {
119  //make sure this is not in the reject list
120  for(auto& reject: moduleLabelPatternsToSkip) {
121  if(std::regex_match(label,reject)) {
122  return false;
123  }
124  }
125  return true;
126  }
127  }
128  }
129  return false;
130  };
131 
154 
162  getMETCollection_(bd);
178  });
179 }
#define LogDebug(id)
T getParameter(std::string const &) const
void callWhenNewProductsRegistered(std::function< void(BranchDescription const &)> const &func)
Definition: ProducerBase.h:71
edm::GetterOfProducts< l1t::TauBxCollection > getL1TTauParticleCollection_
std::vector< std::regex > moduleLabelPatternsToSkip_
edm::GetterOfProducts< l1extra::L1JetParticleCollection > getL1JetParticleCollection_
edm::GetterOfProducts< reco::IsolatedPixelTrackCandidateCollection > getIsolatedPixelTrackCandidateCollection_
edm::GetterOfProducts< reco::RecoEcalCandidateCollection > getRecoEcalCandidateCollection_
std::string const & getProcessName() const
edm::GetterOfProducts< l1extra::L1MuonParticleCollection > getL1MuonParticleCollection_
trigger::TriggerObjectCollection toc_
trigger object collection
edm::GetterOfProducts< reco::PFTauCollection > getPFTauCollection_
std::vector< bool > maskFilters_
packing decision
edm::GetterOfProducts< reco::METCollection > getMETCollection_
edm::GetterOfProducts< l1t::JetBxCollection > getL1TJetParticleCollection_
std::set< edm::InputTag, OrderInputTag > InputTagSet
edm::GetterOfProducts< reco::CaloJetCollection > getCaloJetCollection_
edm::GetterOfProducts< l1extra::L1EtMissParticleCollection > getL1EtMissParticleCollection_
std::vector< std::string > tags_
edm::GetterOfProducts< reco::PFJetCollection > getPFJetCollection_
edm::GetterOfProducts< reco::RecoChargedCandidateCollection > getRecoChargedCandidateCollection_
edm::GetterOfProducts< l1extra::L1HFRingsCollection > getL1HFRingsCollection_
std::vector< std::regex > moduleLabelPatternsToMatch_
module labels which should be avoided
bool isAvailable() const
Definition: Service.h:46
std::map< edm::ProductID, unsigned int > offset_
global map for indices into toc_: offset per input L3 collection
edm::GetterOfProducts< l1t::MuonBxCollection > getL1TMuonParticleCollection_
edm::GetterOfProducts< reco::CaloMETCollection > getCaloMETCollection_
edm::GetterOfProducts< reco::ElectronCollection > getElectronCollection_
InputTagSet collectionTagsEvent_
list of L3 collection tags
edm::GetterOfProducts< reco::CompositeCandidateCollection > getCompositeCandidateCollection_
edm::GetterOfProducts< trigger::TriggerFilterObjectWithRefs > getTriggerFilterObjectWithRefs_
std::pair< typename Association::data_type::first_type, double > match(Reference key, Association association, bool bestMatchByMaxValue)
Generic matching function.
Definition: Utils.h:10
edm::GetterOfProducts< reco::PFMETCollection > getPFMETCollection_
InputTagSet filterTagsEvent_
list of L3 filter tags
edm::GetterOfProducts< l1t::EtSumBxCollection > getL1TEtSumParticleCollection_
edm::GetterOfProducts< l1extra::L1EmParticleCollection > getL1EmParticleCollection_
edm::GetterOfProducts< l1t::EGammaBxCollection > getL1TEGammaParticleCollection_
TriggerSummaryProducerAOD::~TriggerSummaryProducerAOD ( )
default

Member Function Documentation

void TriggerSummaryProducerAOD::endStream ( )
overridevirtual

Reimplemented from edm::stream::EDProducerBase.

Definition at line 655 of file TriggerSummaryProducerAOD.cc.

References collectionTagsStream_, and filterTagsStream_.

655  {
656  globalCache()->collectionTagsGlobal_.insert(collectionTagsStream_.begin(),collectionTagsStream_.end());
657  globalCache()->filterTagsGlobal_.insert(filterTagsStream_.begin(),filterTagsStream_.end());
658  return;
659 }
void TriggerSummaryProducerAOD::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

Definition at line 215 of file TriggerSummaryProducerAOD.cc.

References edm::ConfigurationDescriptions::add(), edm::ParameterSetDescription::add(), edm::ParameterDescriptionNode::setComment(), and AlCaHLTBitMon_QueryRunRegistry::string.

215  {
217  desc.add<std::string>("processName","@")->setComment("Process name to use when getting data. The value of '@' is used to denote the current process name.");
218  desc.add<std::vector<std::string>>("moduleLabelPatternsToMatch",std::vector<std::string>(1,"hlt*"))->setComment("glob patterns for module labels to get data.");
219  desc.add<std::vector<std::string>>("moduleLabelPatternsToSkip",std::vector<std::string>())->setComment("module labels for data products which should not be gotten.");
220  descriptions.add("triggerSummaryProducerAOD", desc);
221 }
void setComment(std::string const &value)
ParameterDescriptionBase * add(U const &iLabel, T const &value)
void add(std::string const &label, ParameterSetDescription const &psetDescription)
template<typename C >
void TriggerSummaryProducerAOD::fillFilterObjectMember ( const int &  offset,
const int &  id,
const edm::Ref< C > &  ref 
)

Definition at line 565 of file TriggerSummaryProducerAOD.cc.

References ids_, edm::Ref< C, T, F >::key(), and keys_.

Referenced by fillFilterObjectMembers().

565  {
566 
567  keys_.push_back(offset+ref.key());
568  ids_.push_back(id);
569 
570  return;
571 }
key_type key() const
Accessor for product key.
Definition: Ref.h:264
void TriggerSummaryProducerAOD::fillFilterObjectMember ( const int &  offset,
const int &  id,
const edm::Ref< l1extra::L1HFRingsCollection > &  ref 
)

Definition at line 573 of file TriggerSummaryProducerAOD.cc.

References ids_, edm::Ref< C, T, F >::key(), keys_, and trigger::TriggerL1HfBitCounts.

573  {
574 
575  using namespace trigger;
576 
577  if (id==TriggerL1HfBitCounts) {
578  keys_.push_back(offset+2*ref.key()+1);
579  } else { // if (ids[i]==TriggerL1HfRingEtSums) {
580  keys_.push_back(offset+2*ref.key()+0);
581  }
582  ids_.push_back(id);
583 
584  return;
585 }
key_type key() const
Accessor for product key.
Definition: Ref.h:264
void TriggerSummaryProducerAOD::fillFilterObjectMember ( const int &  offset,
const int &  id,
const edm::Ref< l1extra::L1EtMissParticleCollection > &  ref 
)

Definition at line 587 of file TriggerSummaryProducerAOD.cc.

References ids_, edm::Ref< C, T, F >::key(), keys_, trigger::TriggerL1ETT, and trigger::TriggerL1HTT.

587  {
588 
589  using namespace trigger;
590 
591  if ( (id==TriggerL1ETT) || (id==TriggerL1HTT) ) {
592  keys_.push_back(offset+2*ref.key()+1);
593  } else {
594  keys_.push_back(offset+2*ref.key()+0);
595  }
596  ids_.push_back(id);
597 
598  return;
599 }
key_type key() const
Accessor for product key.
Definition: Ref.h:264
void TriggerSummaryProducerAOD::fillFilterObjectMember ( const int &  offset,
const int &  id,
const edm::Ref< reco::PFMETCollection > &  ref 
)

Definition at line 601 of file TriggerSummaryProducerAOD.cc.

References ids_, edm::Ref< C, T, F >::key(), keys_, trigger::TriggerELongit, trigger::TriggerHLongit, trigger::TriggerMETSig, trigger::TriggerMHTSig, trigger::TriggerTET, and trigger::TriggerTHT.

601  {
602 
603  using namespace trigger;
604 
605  if ( (id==TriggerTHT) || (id==TriggerTET) ) {
606  keys_.push_back(offset+4*ref.key()+1);
607  } else if ( (id==TriggerMETSig) || (id==TriggerMHTSig) ) {
608  keys_.push_back(offset+4*ref.key()+2);
609  } else if ( (id==TriggerELongit) || (id==TriggerHLongit) ) {
610  keys_.push_back(offset+4*ref.key()+3);
611  } else {
612  keys_.push_back(offset+4*ref.key()+0);
613  }
614  ids_.push_back(id);
615 
616  return;
617 }
key_type key() const
Accessor for product key.
Definition: Ref.h:264
void TriggerSummaryProducerAOD::fillFilterObjectMember ( const int &  offset,
const int &  id,
const edm::Ref< reco::CaloMETCollection > &  ref 
)

Definition at line 619 of file TriggerSummaryProducerAOD.cc.

References ids_, edm::Ref< C, T, F >::key(), keys_, trigger::TriggerELongit, trigger::TriggerHLongit, trigger::TriggerMETSig, trigger::TriggerMHTSig, trigger::TriggerTET, and trigger::TriggerTHT.

619  {
620 
621  using namespace trigger;
622 
623  if ( (id==TriggerTHT) || (id==TriggerTET) ) {
624  keys_.push_back(offset+4*ref.key()+1);
625  } else if ( (id==TriggerMETSig) || (id==TriggerMHTSig) ) {
626  keys_.push_back(offset+4*ref.key()+2);
627  } else if ( (id==TriggerELongit) || (id==TriggerHLongit) ) {
628  keys_.push_back(offset+4*ref.key()+3);
629  } else {
630  keys_.push_back(offset+4*ref.key()+0);
631  }
632  ids_.push_back(id);
633 
634  return;
635 }
key_type key() const
Accessor for product key.
Definition: Ref.h:264
void TriggerSummaryProducerAOD::fillFilterObjectMember ( const int &  offset,
const int &  id,
const edm::Ref< reco::METCollection > &  ref 
)

Definition at line 637 of file TriggerSummaryProducerAOD.cc.

References ids_, edm::Ref< C, T, F >::key(), keys_, trigger::TriggerELongit, trigger::TriggerHLongit, trigger::TriggerMETSig, trigger::TriggerMHTSig, trigger::TriggerTET, and trigger::TriggerTHT.

637  {
638 
639  using namespace trigger;
640 
641  if ( (id==TriggerTHT) || (id==TriggerTET) ) {
642  keys_.push_back(offset+4*ref.key()+1);
643  } else if ( (id==TriggerMETSig) || (id==TriggerMHTSig) ) {
644  keys_.push_back(offset+4*ref.key()+2);
645  } else if ( (id==TriggerELongit) || (id==TriggerHLongit) ) {
646  keys_.push_back(offset+4*ref.key()+3);
647  } else {
648  keys_.push_back(offset+4*ref.key()+0);
649  }
650  ids_.push_back(id);
651 
652  return;
653 }
key_type key() const
Accessor for product key.
Definition: Ref.h:264
template<typename C >
void TriggerSummaryProducerAOD::fillFilterObjectMembers ( const edm::Event iEvent,
const edm::InputTag tag,
const trigger::Vids ids,
const std::vector< edm::Ref< C > > &  refs 
)

this routine takes a vector of Ref<C>s and determines the corresponding vector of keys (i.e., indices) into the TriggerObjectCollection

Definition at line 515 of file TriggerSummaryProducerAOD.cc.

References patCaloMETCorrections_cff::C, edm::InputTag::encode(), fillFilterObjectMember(), edm::Event::getProvenance(), mps_fire::i, instance, edm::ProductID::isValid(), diffTwoXMLs::label, min(), edm::Provenance::moduleLabel(), gen::n, dataset::name, offset_, sysUtil::pid, LaserDQM_cfg::process, edm::Provenance::processName(), and edm::Provenance::productInstanceName().

Referenced by produce().

515  {
516 
520 
521  using namespace std;
522  using namespace edm;
523  using namespace reco;
524  using namespace l1extra;
525  using namespace trigger;
526 
527  if (ids.size()!=refs.size()) {
528  LogError("TriggerSummaryProducerAOD") << "Vector length is different: "
529  << ids.size() << " " << refs.size();
530  }
531 
532  const unsigned int n(min(ids.size(),refs.size()));
533  for (unsigned int i=0; i!=n; ++i) {
534  const ProductID pid(refs[i].id());
535  if (!(pid.isValid())) {
536  LogError("TriggerSummaryProducerAOD")
537  << "Iinvalid pid: " << pid
538  << " FilterTag / Key: " << tag.encode()
539  << " / " << i << "of" << n
540  << " CollectionTag / Key: "
541  << " <Unrecoverable>"
542  << " / " << refs[i].key()
543  << " CollectionType: " << typeid(C).name();
544  } else if (offset_.find(pid)==offset_.end()) {
545  const string& label(iEvent.getProvenance(pid).moduleLabel());
546  const string& instance(iEvent.getProvenance(pid).productInstanceName());
547  const string& process(iEvent.getProvenance(pid).processName());
548  LogError("TriggerSummaryProducerAOD")
549  << "Uunknown pid: " << pid
550  << " FilterTag / Key: " << tag.encode()
551  << " / " << i << "of" << n
552  << " CollectionTag / Key: "
554  << " / " << refs[i].key()
555  << " CollectionType: " << typeid(C).name();
556  } else {
557  fillFilterObjectMember(offset_[pid],ids[i],refs[i]);
558  }
559  }
560  return;
561 
562 }
static PFTauRenderPlugin instance
void fillFilterObjectMember(const int &, const int &, const edm::Ref< C > &)
std::string const & processName() const
Definition: Provenance.h:52
std::string encode() const
Definition: InputTag.cc:165
std::map< edm::ProductID, unsigned int > offset_
global map for indices into toc_: offset per input L3 collection
T min(T a, T b)
Definition: MathUtil.h:58
std::string const & moduleLabel() const
Definition: Provenance.h:50
fixed size matrix
HLT enums.
std::string const & productInstanceName() const
Definition: Provenance.h:53
Provenance getProvenance(BranchID const &theID) const
Definition: Event.cc:81
template<typename T >
void TriggerSummaryProducerAOD::fillTriggerObject ( const T object)

Definition at line 431 of file TriggerSummaryProducerAOD.cc.

References toc_.

Referenced by fillTriggerObjectCollections().

431  {
432 
433  using namespace trigger;
434  toc_.push_back( TriggerObject(object) );
435 
436  return;
437 }
trigger::TriggerObjectCollection toc_
trigger object collection
void TriggerSummaryProducerAOD::fillTriggerObject ( const l1extra::L1HFRings object)

Definition at line 439 of file TriggerSummaryProducerAOD.cc.

References toc_, trigger::TriggerL1HfBitCounts, and trigger::TriggerL1HfRingEtSums.

439  {
440 
441  using namespace l1extra;
442  using namespace trigger;
443 
445  object.hfEtSum(L1HFRings::kRing1PosEta),
446  object.hfEtSum(L1HFRings::kRing1NegEta),
447  object.hfEtSum(L1HFRings::kRing2PosEta),
448  object.hfEtSum(L1HFRings::kRing2NegEta) ) );
450  object.hfBitCount(L1HFRings::kRing1PosEta),
451  object.hfBitCount(L1HFRings::kRing1NegEta),
452  object.hfBitCount(L1HFRings::kRing2PosEta),
453  object.hfBitCount(L1HFRings::kRing2NegEta) ) );
454 
455  return;
456 }
trigger::TriggerObjectCollection toc_
trigger object collection
void TriggerSummaryProducerAOD::fillTriggerObject ( const l1extra::L1EtMissParticle object)

Definition at line 458 of file TriggerSummaryProducerAOD.cc.

References toc_, trigger::TriggerL1ETT, and trigger::TriggerL1HTT.

458  {
459 
460  using namespace l1extra;
461  using namespace trigger;
462 
463  toc_.push_back( TriggerObject(object) );
464  if (object.type()==L1EtMissParticle::kMET) {
465  toc_.push_back(TriggerObject(TriggerL1ETT,object.etTotal(),0.0,0.0,0.0));
466  } else if (object.type()==L1EtMissParticle::kMHT) {
467  toc_.push_back(TriggerObject(TriggerL1HTT,object.etTotal(),0.0,0.0,0.0));
468  } else {
469  toc_.push_back(TriggerObject(0, object.etTotal(),0.0,0.0,0.0));
470  }
471 
472  return;
473 }
type
Definition: HCALResponse.h:21
trigger::TriggerObjectCollection toc_
trigger object collection
void TriggerSummaryProducerAOD::fillTriggerObject ( const reco::PFMET object)

Definition at line 475 of file TriggerSummaryProducerAOD.cc.

References objects.METAnalyzer::sumEt, toc_, trigger::TriggerELongit, trigger::TriggerMETSig, and trigger::TriggerTET.

475  {
476 
477  using namespace reco;
478  using namespace trigger;
479 
480  toc_.push_back( TriggerObject(object) );
481  toc_.push_back(TriggerObject(TriggerTET ,object.sumEt() ,0.0,0.0,0.0));
482  toc_.push_back(TriggerObject(TriggerMETSig ,object.mEtSig() ,0.0,0.0,0.0));
483  toc_.push_back(TriggerObject(TriggerELongit,object.e_longitudinal(),0.0,0.0,0.0));
484 
485  return;
486 }
trigger::TriggerObjectCollection toc_
trigger object collection
fixed size matrix
void TriggerSummaryProducerAOD::fillTriggerObject ( const reco::CaloMET object)

Definition at line 488 of file TriggerSummaryProducerAOD.cc.

References objects.METAnalyzer::sumEt, toc_, trigger::TriggerELongit, trigger::TriggerMETSig, and trigger::TriggerTET.

488  {
489 
490  using namespace reco;
491  using namespace trigger;
492 
493  toc_.push_back( TriggerObject(object) );
494  toc_.push_back(TriggerObject(TriggerTET ,object.sumEt() ,0.0,0.0,0.0));
495  toc_.push_back(TriggerObject(TriggerMETSig ,object.mEtSig() ,0.0,0.0,0.0));
496  toc_.push_back(TriggerObject(TriggerELongit,object.e_longitudinal(),0.0,0.0,0.0));
497 
498  return;
499 }
trigger::TriggerObjectCollection toc_
trigger object collection
fixed size matrix
void TriggerSummaryProducerAOD::fillTriggerObject ( const reco::MET object)

Definition at line 501 of file TriggerSummaryProducerAOD.cc.

References objects.METAnalyzer::sumEt, toc_, trigger::TriggerHLongit, trigger::TriggerMHTSig, and trigger::TriggerTHT.

501  {
502 
503  using namespace reco;
504  using namespace trigger;
505 
506  toc_.push_back( TriggerObject(object) );
507  toc_.push_back(TriggerObject(TriggerTHT ,object.sumEt() ,0.0,0.0,0.0));
508  toc_.push_back(TriggerObject(TriggerMHTSig ,object.mEtSig() ,0.0,0.0,0.0));
509  toc_.push_back(TriggerObject(TriggerHLongit,object.e_longitudinal(),0.0,0.0,0.0));
510 
511  return;
512 }
trigger::TriggerObjectCollection toc_
trigger object collection
fixed size matrix
template<typename C >
void TriggerSummaryProducerAOD::fillTriggerObjectCollections ( const edm::Event iEvent,
edm::GetterOfProducts< C > &  getter 
)

this routine accesses the original (L3) collections (with C++ typename C), extracts 4-momentum and id of each collection member, and packs this up

end loop over handles

Definition at line 389 of file TriggerSummaryProducerAOD.cc.

References collectionTagsEvent_, edm::GetterOfProducts< T >::fillHandles(), fillTriggerObject(), mps_fire::i, instance, keys_, diffTwoXMLs::label, edm::Provenance::moduleLabel(), gen::n, offset_, sysUtil::pid, LaserDQM_cfg::process, edm::Provenance::processName(), edm::Provenance::productInstanceName(), findQualityFiles::size, tags_, and toc_.

389  {
390 
394 
395  using namespace std;
396  using namespace edm;
397  using namespace reco;
398  using namespace l1extra;
399  using namespace trigger;
400  using namespace l1t;
401 
402  vector<Handle<C> > collections;
403  getter.fillHandles(iEvent, collections);
404  const unsigned int nc(collections.size());
405 
406  for (unsigned int ic=0; ic!=nc; ++ic) {
407  const Provenance& provenance(*(collections[ic].provenance()));
408  const string& label (provenance.moduleLabel());
409  const string& instance (provenance.productInstanceName());
410  const string& process (provenance.processName());
411  const InputTag collectionTag(label,instance,process);
412 
413  if (collectionTagsEvent_.find(collectionTag)!=collectionTagsEvent_.end()) {
414  const ProductID pid(collections[ic].provenance()->productID());
415  if (offset_.find(pid)!=offset_.end()) {
416  LogError("TriggerSummaryProducerAOD") << "Duplicate pid!";
417  }
418  offset_[pid]=toc_.size();
419  const unsigned int n(collections[ic]->size());
420  for (unsigned int i=0; i!=n; ++i) {
421  fillTriggerObject( (*collections[ic])[i] );
422  }
423  tags_.push_back(collectionTag.encode());
424  keys_.push_back(toc_.size());
425  }
426 
427  }
428 }
size
Write out results.
trigger::TriggerObjectCollection toc_
trigger object collection
static PFTauRenderPlugin instance
delete x;
Definition: CaloConfig.h:22
std::vector< std::string > tags_
std::map< edm::ProductID, unsigned int > offset_
global map for indices into toc_: offset per input L3 collection
fixed size matrix
HLT enums.
InputTagSet collectionTagsEvent_
list of L3 collection tags
void fillHandles(edm::Event const &event, std::vector< edm::Handle< T > > &handles) const
void TriggerSummaryProducerAOD::globalEndJob ( const GlobalInputTags globalInputTags)
static

Definition at line 661 of file TriggerSummaryProducerAOD.cc.

References GlobalInputTags::collectionTagsGlobal_, SoftLeptonByDistance_cfi::distance, benchmark_cfg::fb, and GlobalInputTags::filterTagsGlobal_.

661  {
662 
663  using namespace std;
664  using namespace edm;
665  using namespace trigger;
666 
667  LogVerbatim("TriggerSummaryProducerAOD") << endl;
668  LogVerbatim("TriggerSummaryProducerAOD") << "TriggerSummaryProducerAOD::globalEndJob - accumulated tags:" << endl;
669 
670  InputTagSet filterTags(false);
671  InputTagSet collectionTags(false);
672 
673  filterTags.insert(globalInputTags->filterTagsGlobal_.begin(),globalInputTags->filterTagsGlobal_.end());
674  collectionTags.insert(globalInputTags->collectionTagsGlobal_.begin(),globalInputTags->collectionTagsGlobal_.end());
675 
676  const unsigned int nc(collectionTags.size());
677  const unsigned int nf(filterTags.size());
678  LogVerbatim("TriggerSummaryProducerAOD") << " Overall number of Collections/Filters: "
679  << nc << "/" << nf << endl;
680 
681  LogVerbatim("TriggerSummaryProducerAOD") << " The collections: " << nc << endl;
682  const InputTagSet::const_iterator cb(collectionTags.begin());
683  const InputTagSet::const_iterator ce(collectionTags.end());
684  for ( InputTagSet::const_iterator ci=cb; ci!=ce; ++ci) {
685  LogVerbatim("TriggerSummaryProducerAOD") << " " << distance(cb,ci) << " " << ci->encode() << endl;
686  }
687 
688  LogVerbatim("TriggerSummaryProducerAOD") << " The filters:" << nf << endl;
689  const InputTagSet::const_iterator fb(filterTags.begin());
690  const InputTagSet::const_iterator fe(filterTags.end());
691  for ( InputTagSet::const_iterator fi=fb; fi!=fe; ++fi) {
692  LogVerbatim("TriggerSummaryProducerAOD") << " " << distance(fb,fi) << " " << fi->encode() << endl;
693  }
694 
695  LogVerbatim("TriggerSummaryProducerAOD") << "TriggerSummaryProducerAOD::endJob." << endl;
696  LogVerbatim("TriggerSummaryProducerAOD") << endl;
697 
698  return;
699 
700 }
std::set< edm::InputTag, OrderInputTag > InputTagSet
tbb::concurrent_unordered_set< edm::InputTag, InputTagHash > filterTagsGlobal_
HLT enums.
tbb::concurrent_unordered_set< edm::InputTag, InputTagHash > collectionTagsGlobal_
static std::unique_ptr<GlobalInputTags> TriggerSummaryProducerAOD::initializeGlobalCache ( edm::ParameterSet const &  )
inlinestatic

Definition at line 95 of file TriggerSummaryProducerAOD.h.

References GlobalPosition_Frontier_DevDB_cff::tag.

95  {
96  return std::unique_ptr<GlobalInputTags> (new GlobalInputTags());
97  };
void TriggerSummaryProducerAOD::produce ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
overridevirtual

check whether collection tags are recorded in filterobjects; if so, these are L3 collections to be packed up, and the corresponding filter is a L3 filter also to be packed up. Record the InputTags of those L3 filters and L3 collections.

check uniqueness count

accumulate for endJob printout

debug printout

event-by-event tags

Now the processing: first trigger objects from L3 collections, then L3 filter objects

create trigger objects, fill triggerobjectcollection and offset map

construct single AOD product, reserving capacity

fill trigger object collection

fill the L3 filter objects

Definition at line 225 of file TriggerSummaryProducerAOD.cc.

References collectionTagsEvent_, collectionTagsStream_, SoftLeptonByDistance_cfi::distance, benchmark_cfg::fb, fillFilterObjectMembers(), edm::GetterOfProducts< T >::fillHandles(), filterTagsEvent_, filterTagsStream_, getCaloJetCollection_, getCaloMETCollection_, getCompositeCandidateCollection_, getElectronCollection_, getIsolatedPixelTrackCandidateCollection_, getL1EmParticleCollection_, getL1EtMissParticleCollection_, getL1HFRingsCollection_, getL1JetParticleCollection_, getL1MuonParticleCollection_, getL1TEGammaParticleCollection_, getL1TEtSumParticleCollection_, getL1TJetParticleCollection_, getL1TMuonParticleCollection_, getL1TTauParticleCollection_, getMETCollection_, getPFJetCollection_, getPFMETCollection_, getPFTauCollection_, getRecoChargedCandidateCollection_, getRecoEcalCandidateCollection_, getTriggerFilterObjectWithRefs_, ids_, iEvent, instance, edm::isDebugEnabled(), keys_, diffTwoXMLs::label, LogDebug, LogTrace, maskFilters_, eostools::move(), create_public_lumi_plots::ncol, offset_, pn_, LaserDQM_cfg::process, modifiedElectrons_cfi::processName, trigger::TriggerEvent::sizeFilters(), trigger::TriggerEvent::sizeObjects(), tags_, and toc_.

226 {
227  using namespace std;
228  using namespace edm;
229  using namespace reco;
230  using namespace l1extra;
231  using namespace trigger;
232  using namespace l1t;
233 
234  std::vector<edm::Handle<trigger::TriggerFilterObjectWithRefs> > fobs;
236 
237  const unsigned int nfob(fobs.size());
238  LogTrace("TriggerSummaryProducerAOD") << "Number of filter objects found: " << nfob;
239 
240  string tagLabel,tagInstance,tagProcess;
241 
247  maskFilters_.clear();
248  maskFilters_.resize(nfob);
249  filterTagsEvent_.clear();
250  collectionTagsEvent_.clear();
251  unsigned int nf(0);
252  for (unsigned int ifob=0; ifob!=nfob; ++ifob) {
253  maskFilters_[ifob]=false;
254  const vector<string>& collectionTags_(fobs[ifob]->getCollectionTagsAsStrings());
255  const unsigned int ncol(collectionTags_.size());
256  if (ncol>0) {
257  nf++;
258  maskFilters_[ifob]=true;
259  const string& label (fobs[ifob].provenance()->moduleLabel());
260  const string& instance (fobs[ifob].provenance()->productInstanceName());
261  const string& process (fobs[ifob].provenance()->processName());
263  for (unsigned int icol=0; icol!=ncol; ++icol) {
264  // overwrite process name (usually not set)
265  tokenizeTag(collectionTags_[icol],tagLabel,tagInstance,tagProcess);
266  collectionTagsEvent_.insert(InputTag(tagLabel,tagInstance,pn_));
267  }
268  }
269  }
271  if (filterTagsEvent_.size()!=nf) {
272  LogError("TriggerSummaryProducerAOD")
273  << "Mismatch in number of filter tags: "
274  << filterTagsEvent_.size() << "!=" << nf ;
275  }
276 
280 
282  if (isDebugEnabled()) {
283 
285  const unsigned int nc(collectionTagsEvent_.size());
286  LogTrace("TriggerSummaryProducerAOD") << "Number of unique collections requested " << nc;
287  const InputTagSet::const_iterator cb(collectionTagsEvent_.begin());
288  const InputTagSet::const_iterator ce(collectionTagsEvent_.end());
289  for ( InputTagSet::const_iterator ci=cb; ci!=ce; ++ci) {
290  LogTrace("TriggerSummaryProducerAOD") << distance(cb,ci) << " " << ci->encode();
291  }
292  const unsigned int nf(filterTagsEvent_.size());
293  LogTrace("TriggerSummaryProducerAOD") << "Number of unique filters requested " << nf;
294  const InputTagSet::const_iterator fb(filterTagsEvent_.begin());
295  const InputTagSet::const_iterator fe(filterTagsEvent_.end());
296  for ( InputTagSet::const_iterator fi=fb; fi!=fe; ++fi) {
297  LogTrace("TriggerSummaryProducerAOD") << distance(fb,fi) << " " << fi->encode();
298  }
299 
300  }
301 
307  toc_.clear();
308  tags_.clear();
309  keys_.clear();
310  offset_.clear();
311  fillTriggerObjectCollections< RecoEcalCandidateCollection>(iEvent, getRecoEcalCandidateCollection_);
312  fillTriggerObjectCollections< ElectronCollection>(iEvent, getElectronCollection_);
313  fillTriggerObjectCollections< RecoChargedCandidateCollection>(iEvent, getRecoChargedCandidateCollection_);
314  fillTriggerObjectCollections< CaloJetCollection>(iEvent, getCaloJetCollection_);
315  fillTriggerObjectCollections< CompositeCandidateCollection>(iEvent, getCompositeCandidateCollection_);
316  fillTriggerObjectCollections< METCollection>(iEvent, getMETCollection_);
317  fillTriggerObjectCollections< CaloMETCollection>(iEvent, getCaloMETCollection_);
318  fillTriggerObjectCollections<IsolatedPixelTrackCandidateCollection>(iEvent, getIsolatedPixelTrackCandidateCollection_);
320  fillTriggerObjectCollections< L1EmParticleCollection>(iEvent, getL1EmParticleCollection_);
321  fillTriggerObjectCollections< L1MuonParticleCollection>(iEvent, getL1MuonParticleCollection_);
322  fillTriggerObjectCollections< L1JetParticleCollection>(iEvent, getL1JetParticleCollection_);
323  fillTriggerObjectCollections< L1EtMissParticleCollection>(iEvent, getL1EtMissParticleCollection_);
324  fillTriggerObjectCollections< L1HFRingsCollection>(iEvent, getL1HFRingsCollection_);
325  fillTriggerObjectCollections< MuonBxCollection>(iEvent, getL1TMuonParticleCollection_);
326  fillTriggerObjectCollections< EGammaBxCollection>(iEvent, getL1TEGammaParticleCollection_);
327  fillTriggerObjectCollections< JetBxCollection>(iEvent, getL1TJetParticleCollection_);
328  fillTriggerObjectCollections< TauBxCollection>(iEvent, getL1TTauParticleCollection_);
329  fillTriggerObjectCollections< EtSumBxCollection>(iEvent, getL1TEtSumParticleCollection_);
331  fillTriggerObjectCollections< PFJetCollection>(iEvent, getPFJetCollection_);
332  fillTriggerObjectCollections< PFTauCollection>(iEvent, getPFTauCollection_);
333  fillTriggerObjectCollections< PFMETCollection>(iEvent, getPFMETCollection_);
335  const unsigned int nk(tags_.size());
336  LogDebug("TriggerSummaryProducerAOD") << "Number of collections found: " << nk;
337  const unsigned int no(toc_.size());
338  LogDebug("TriggerSummaryProducerAOD") << "Number of physics objects found: " << no;
339 
342  unique_ptr<TriggerEvent> product(new TriggerEvent(pn_,nk,no,nf));
343 
345  product->addCollections(tags_,keys_);
346  product->addObjects(toc_);
347 
349  for (unsigned int ifob=0; ifob!=nfob; ++ifob) {
350  if (maskFilters_[ifob]) {
351  const string& label (fobs[ifob].provenance()->moduleLabel());
352  const string& instance (fobs[ifob].provenance()->productInstanceName());
353  const string& process (fobs[ifob].provenance()->processName());
354  const edm::InputTag filterTag(label,instance,process);
355  ids_.clear();
356  keys_.clear();
357  fillFilterObjectMembers(iEvent,filterTag,fobs[ifob]->photonIds() ,fobs[ifob]->photonRefs());
358  fillFilterObjectMembers(iEvent,filterTag,fobs[ifob]->electronIds() ,fobs[ifob]->electronRefs());
359  fillFilterObjectMembers(iEvent,filterTag,fobs[ifob]->muonIds() ,fobs[ifob]->muonRefs());
360  fillFilterObjectMembers(iEvent,filterTag,fobs[ifob]->jetIds() ,fobs[ifob]->jetRefs());
361  fillFilterObjectMembers(iEvent,filterTag,fobs[ifob]->compositeIds(),fobs[ifob]->compositeRefs());
362  fillFilterObjectMembers(iEvent,filterTag,fobs[ifob]->basemetIds() ,fobs[ifob]->basemetRefs());
363  fillFilterObjectMembers(iEvent,filterTag,fobs[ifob]->calometIds() ,fobs[ifob]->calometRefs());
364  fillFilterObjectMembers(iEvent,filterTag,fobs[ifob]->pixtrackIds() ,fobs[ifob]->pixtrackRefs());
365  fillFilterObjectMembers(iEvent,filterTag,fobs[ifob]->l1emIds() ,fobs[ifob]->l1emRefs());
366  fillFilterObjectMembers(iEvent,filterTag,fobs[ifob]->l1muonIds() ,fobs[ifob]->l1muonRefs());
367  fillFilterObjectMembers(iEvent,filterTag,fobs[ifob]->l1jetIds() ,fobs[ifob]->l1jetRefs());
368  fillFilterObjectMembers(iEvent,filterTag,fobs[ifob]->l1etmissIds() ,fobs[ifob]->l1etmissRefs());
369  fillFilterObjectMembers(iEvent,filterTag,fobs[ifob]->l1hfringsIds(),fobs[ifob]->l1hfringsRefs());
370  fillFilterObjectMembers(iEvent,filterTag,fobs[ifob]->l1tmuonIds() ,fobs[ifob]->l1tmuonRefs());
371  fillFilterObjectMembers(iEvent,filterTag,fobs[ifob]->l1tegammaIds(),fobs[ifob]->l1tegammaRefs());
372  fillFilterObjectMembers(iEvent,filterTag,fobs[ifob]->l1tjetIds() ,fobs[ifob]->l1tjetRefs());
373  fillFilterObjectMembers(iEvent,filterTag,fobs[ifob]->l1ttauIds() ,fobs[ifob]->l1ttauRefs());
374  fillFilterObjectMembers(iEvent,filterTag,fobs[ifob]->l1tetsumIds() ,fobs[ifob]->l1tetsumRefs());
375  fillFilterObjectMembers(iEvent,filterTag,fobs[ifob]->pfjetIds() ,fobs[ifob]->pfjetRefs());
376  fillFilterObjectMembers(iEvent,filterTag,fobs[ifob]->pftauIds() ,fobs[ifob]->pftauRefs());
377  fillFilterObjectMembers(iEvent,filterTag,fobs[ifob]->pfmetIds() ,fobs[ifob]->pfmetRefs());
378  product->addFilter(filterTag,ids_,keys_);
379  }
380  }
381 
382  OrphanHandle<TriggerEvent> ref = iEvent.put(std::move(product));
383  LogTrace("TriggerSummaryProducerAOD") << "Number of physics objects packed: " << ref->sizeObjects();
384  LogTrace("TriggerSummaryProducerAOD") << "Number of filter objects packed: " << ref->sizeFilters();
385 
386 }
#define LogDebug(id)
bool isDebugEnabled()
edm::GetterOfProducts< l1t::TauBxCollection > getL1TTauParticleCollection_
edm::GetterOfProducts< l1extra::L1JetParticleCollection > getL1JetParticleCollection_
edm::GetterOfProducts< reco::IsolatedPixelTrackCandidateCollection > getIsolatedPixelTrackCandidateCollection_
edm::GetterOfProducts< reco::RecoEcalCandidateCollection > getRecoEcalCandidateCollection_
edm::GetterOfProducts< l1extra::L1MuonParticleCollection > getL1MuonParticleCollection_
The single EDProduct to be saved for each event (AOD case)
Definition: TriggerEvent.h:25
trigger::size_type sizeFilters() const
Definition: TriggerEvent.h:135
trigger::TriggerObjectCollection toc_
trigger object collection
edm::GetterOfProducts< reco::PFTauCollection > getPFTauCollection_
static PFTauRenderPlugin instance
std::vector< bool > maskFilters_
packing decision
edm::GetterOfProducts< reco::METCollection > getMETCollection_
edm::GetterOfProducts< l1t::JetBxCollection > getL1TJetParticleCollection_
edm::GetterOfProducts< reco::CaloJetCollection > getCaloJetCollection_
delete x;
Definition: CaloConfig.h:22
edm::GetterOfProducts< l1extra::L1EtMissParticleCollection > getL1EtMissParticleCollection_
std::vector< std::string > tags_
edm::GetterOfProducts< reco::PFJetCollection > getPFJetCollection_
int iEvent
Definition: GenABIO.cc:230
edm::GetterOfProducts< reco::RecoChargedCandidateCollection > getRecoChargedCandidateCollection_
edm::GetterOfProducts< l1extra::L1HFRingsCollection > getL1HFRingsCollection_
std::map< edm::ProductID, unsigned int > offset_
global map for indices into toc_: offset per input L3 collection
void fillFilterObjectMembers(const edm::Event &, const edm::InputTag &tag, const trigger::Vids &, const std::vector< edm::Ref< C > > &)
edm::GetterOfProducts< l1t::MuonBxCollection > getL1TMuonParticleCollection_
#define LogTrace(id)
trigger::size_type sizeObjects() const
Definition: TriggerEvent.h:134
edm::GetterOfProducts< reco::CaloMETCollection > getCaloMETCollection_
edm::GetterOfProducts< reco::ElectronCollection > getElectronCollection_
fixed size matrix
HLT enums.
InputTagSet collectionTagsEvent_
list of L3 collection tags
void fillHandles(edm::Event const &event, std::vector< edm::Handle< T > > &handles) const
edm::GetterOfProducts< reco::CompositeCandidateCollection > getCompositeCandidateCollection_
edm::GetterOfProducts< trigger::TriggerFilterObjectWithRefs > getTriggerFilterObjectWithRefs_
edm::GetterOfProducts< reco::PFMETCollection > getPFMETCollection_
InputTagSet filterTagsEvent_
list of L3 filter tags
edm::GetterOfProducts< l1t::EtSumBxCollection > getL1TEtSumParticleCollection_
edm::GetterOfProducts< l1extra::L1EmParticleCollection > getL1EmParticleCollection_
def move(src, dest)
Definition: eostools.py:510
edm::GetterOfProducts< l1t::EGammaBxCollection > getL1TEGammaParticleCollection_

Member Data Documentation

InputTagSet TriggerSummaryProducerAOD::collectionTagsEvent_
private

list of L3 collection tags

Definition at line 153 of file TriggerSummaryProducerAOD.h.

Referenced by fillTriggerObjectCollections(), produce(), and TriggerSummaryProducerAOD().

InputTagSet TriggerSummaryProducerAOD::collectionTagsStream_
private

Definition at line 154 of file TriggerSummaryProducerAOD.h.

Referenced by endStream(), produce(), and TriggerSummaryProducerAOD().

InputTagSet TriggerSummaryProducerAOD::filterTagsEvent_
private

list of L3 filter tags

Definition at line 149 of file TriggerSummaryProducerAOD.h.

Referenced by produce(), and TriggerSummaryProducerAOD().

InputTagSet TriggerSummaryProducerAOD::filterTagsStream_
private

Definition at line 150 of file TriggerSummaryProducerAOD.h.

Referenced by endStream(), produce(), and TriggerSummaryProducerAOD().

edm::GetterOfProducts<reco::CaloJetCollection> TriggerSummaryProducerAOD::getCaloJetCollection_
private

Definition at line 174 of file TriggerSummaryProducerAOD.h.

Referenced by produce(), and TriggerSummaryProducerAOD().

edm::GetterOfProducts<reco::CaloMETCollection> TriggerSummaryProducerAOD::getCaloMETCollection_
private

Definition at line 177 of file TriggerSummaryProducerAOD.h.

Referenced by produce(), and TriggerSummaryProducerAOD().

edm::GetterOfProducts<reco::CompositeCandidateCollection> TriggerSummaryProducerAOD::getCompositeCandidateCollection_
private

Definition at line 175 of file TriggerSummaryProducerAOD.h.

Referenced by produce(), and TriggerSummaryProducerAOD().

edm::GetterOfProducts<reco::ElectronCollection> TriggerSummaryProducerAOD::getElectronCollection_
private

Definition at line 172 of file TriggerSummaryProducerAOD.h.

Referenced by produce(), and TriggerSummaryProducerAOD().

edm::GetterOfProducts<reco::IsolatedPixelTrackCandidateCollection> TriggerSummaryProducerAOD::getIsolatedPixelTrackCandidateCollection_
private

Definition at line 179 of file TriggerSummaryProducerAOD.h.

Referenced by produce(), and TriggerSummaryProducerAOD().

edm::GetterOfProducts<l1extra::L1EmParticleCollection> TriggerSummaryProducerAOD::getL1EmParticleCollection_
private

Definition at line 180 of file TriggerSummaryProducerAOD.h.

Referenced by produce(), and TriggerSummaryProducerAOD().

edm::GetterOfProducts<l1extra::L1EtMissParticleCollection> TriggerSummaryProducerAOD::getL1EtMissParticleCollection_
private

Definition at line 183 of file TriggerSummaryProducerAOD.h.

Referenced by produce(), and TriggerSummaryProducerAOD().

edm::GetterOfProducts<l1extra::L1HFRingsCollection> TriggerSummaryProducerAOD::getL1HFRingsCollection_
private

Definition at line 184 of file TriggerSummaryProducerAOD.h.

Referenced by produce(), and TriggerSummaryProducerAOD().

edm::GetterOfProducts<l1extra::L1JetParticleCollection> TriggerSummaryProducerAOD::getL1JetParticleCollection_
private

Definition at line 182 of file TriggerSummaryProducerAOD.h.

Referenced by produce(), and TriggerSummaryProducerAOD().

edm::GetterOfProducts<l1extra::L1MuonParticleCollection> TriggerSummaryProducerAOD::getL1MuonParticleCollection_
private

Definition at line 181 of file TriggerSummaryProducerAOD.h.

Referenced by produce(), and TriggerSummaryProducerAOD().

edm::GetterOfProducts<l1t::EGammaBxCollection> TriggerSummaryProducerAOD::getL1TEGammaParticleCollection_
private

Definition at line 188 of file TriggerSummaryProducerAOD.h.

Referenced by produce(), and TriggerSummaryProducerAOD().

edm::GetterOfProducts<l1t::EtSumBxCollection> TriggerSummaryProducerAOD::getL1TEtSumParticleCollection_
private

Definition at line 191 of file TriggerSummaryProducerAOD.h.

Referenced by produce(), and TriggerSummaryProducerAOD().

edm::GetterOfProducts<l1t::JetBxCollection> TriggerSummaryProducerAOD::getL1TJetParticleCollection_
private

Definition at line 189 of file TriggerSummaryProducerAOD.h.

Referenced by produce(), and TriggerSummaryProducerAOD().

edm::GetterOfProducts<l1t::MuonBxCollection> TriggerSummaryProducerAOD::getL1TMuonParticleCollection_
private

Definition at line 187 of file TriggerSummaryProducerAOD.h.

Referenced by produce(), and TriggerSummaryProducerAOD().

edm::GetterOfProducts<l1t::TauBxCollection> TriggerSummaryProducerAOD::getL1TTauParticleCollection_
private

Definition at line 190 of file TriggerSummaryProducerAOD.h.

Referenced by produce(), and TriggerSummaryProducerAOD().

edm::GetterOfProducts<reco::METCollection> TriggerSummaryProducerAOD::getMETCollection_
private

Definition at line 176 of file TriggerSummaryProducerAOD.h.

Referenced by produce(), and TriggerSummaryProducerAOD().

edm::GetterOfProducts<reco::PFJetCollection> TriggerSummaryProducerAOD::getPFJetCollection_
private

Definition at line 185 of file TriggerSummaryProducerAOD.h.

Referenced by produce(), and TriggerSummaryProducerAOD().

edm::GetterOfProducts<reco::PFMETCollection> TriggerSummaryProducerAOD::getPFMETCollection_
private

Definition at line 178 of file TriggerSummaryProducerAOD.h.

Referenced by produce(), and TriggerSummaryProducerAOD().

edm::GetterOfProducts<reco::PFTauCollection> TriggerSummaryProducerAOD::getPFTauCollection_
private

Definition at line 186 of file TriggerSummaryProducerAOD.h.

Referenced by produce(), and TriggerSummaryProducerAOD().

edm::GetterOfProducts<reco::RecoChargedCandidateCollection> TriggerSummaryProducerAOD::getRecoChargedCandidateCollection_
private

Definition at line 173 of file TriggerSummaryProducerAOD.h.

Referenced by produce(), and TriggerSummaryProducerAOD().

edm::GetterOfProducts<reco::RecoEcalCandidateCollection> TriggerSummaryProducerAOD::getRecoEcalCandidateCollection_
private

Definition at line 171 of file TriggerSummaryProducerAOD.h.

Referenced by produce(), and TriggerSummaryProducerAOD().

edm::GetterOfProducts<trigger::TriggerFilterObjectWithRefs> TriggerSummaryProducerAOD::getTriggerFilterObjectWithRefs_
private

Definition at line 170 of file TriggerSummaryProducerAOD.h.

Referenced by produce(), and TriggerSummaryProducerAOD().

trigger::Vids TriggerSummaryProducerAOD::ids_
private

ids

Definition at line 165 of file TriggerSummaryProducerAOD.h.

Referenced by fillFilterObjectMember(), and produce().

trigger::Keys TriggerSummaryProducerAOD::keys_
private
std::vector<bool> TriggerSummaryProducerAOD::maskFilters_
private

packing decision

Definition at line 168 of file TriggerSummaryProducerAOD.h.

Referenced by produce().

std::vector<std::regex> TriggerSummaryProducerAOD::moduleLabelPatternsToMatch_
private

module labels which should be avoided

Definition at line 125 of file TriggerSummaryProducerAOD.h.

Referenced by TriggerSummaryProducerAOD().

std::vector<std::regex> TriggerSummaryProducerAOD::moduleLabelPatternsToSkip_
private

Definition at line 126 of file TriggerSummaryProducerAOD.h.

Referenced by TriggerSummaryProducerAOD().

std::map<edm::ProductID,unsigned int> TriggerSummaryProducerAOD::offset_
private

global map for indices into toc_: offset per input L3 collection

Definition at line 160 of file TriggerSummaryProducerAOD.h.

Referenced by fillFilterObjectMembers(), fillTriggerObjectCollections(), and produce().

std::string TriggerSummaryProducerAOD::pn_
private

process name

Definition at line 123 of file TriggerSummaryProducerAOD.h.

Referenced by produce(), and TriggerSummaryProducerAOD().

std::vector<std::string> TriggerSummaryProducerAOD::tags_
private

Definition at line 158 of file TriggerSummaryProducerAOD.h.

Referenced by fillTriggerObjectCollections(), and produce().

trigger::TriggerObjectCollection TriggerSummaryProducerAOD::toc_
private

trigger object collection

Definition at line 157 of file TriggerSummaryProducerAOD.h.

Referenced by fillTriggerObject(), fillTriggerObjectCollections(), and produce().