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 & itemsToGetFromEvent () 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_, 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_, edm::Service< T >::isAvailable(), diffTwoXMLs::label, LogDebug, match(), moduleLabelPatternsToMatch_, moduleLabelPatternsToSkip_, and pn_.

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 ( )

Member Function Documentation

void TriggerSummaryProducerAOD::endStream ( )
overridevirtual

Reimplemented from edm::stream::EDProducerBase.

Definition at line 657 of file TriggerSummaryProducerAOD.cc.

References collectionTagsStream_, and filterTagsStream_.

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

Definition at line 217 of file TriggerSummaryProducerAOD.cc.

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

217  {
219  desc.add<std::string>("processName","@")->setComment("Process name to use when getting data. The value of '@' is used to denote the current process name.");
220  desc.add<std::vector<std::string>>("moduleLabelPatternsToMatch",std::vector<std::string>(1,"hlt*"))->setComment("glob patterns for module labels to get data.");
221  desc.add<std::vector<std::string>>("moduleLabelPatternsToSkip",std::vector<std::string>())->setComment("module labels for data products which should not be gotten.");
222  descriptions.add("triggerSummaryProducerAOD", desc);
223 }
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 567 of file TriggerSummaryProducerAOD.cc.

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

Referenced by fillFilterObjectMembers().

567  {
568 
569  keys_.push_back(offset+ref.key());
570  ids_.push_back(id);
571 
572  return;
573 }
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 575 of file TriggerSummaryProducerAOD.cc.

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

575  {
576 
577  using namespace trigger;
578 
579  if (id==TriggerL1HfBitCounts) {
580  keys_.push_back(offset+2*ref.key()+1);
581  } else { // if (ids[i]==TriggerL1HfRingEtSums) {
582  keys_.push_back(offset+2*ref.key()+0);
583  }
584  ids_.push_back(id);
585 
586  return;
587 }
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 589 of file TriggerSummaryProducerAOD.cc.

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

589  {
590 
591  using namespace trigger;
592 
593  if ( (id==TriggerL1ETT) || (id==TriggerL1HTT) ) {
594  keys_.push_back(offset+2*ref.key()+1);
595  } else {
596  keys_.push_back(offset+2*ref.key()+0);
597  }
598  ids_.push_back(id);
599 
600  return;
601 }
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 603 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.

603  {
604 
605  using namespace trigger;
606 
607  if ( (id==TriggerTHT) || (id==TriggerTET) ) {
608  keys_.push_back(offset+4*ref.key()+1);
609  } else if ( (id==TriggerMETSig) || (id==TriggerMHTSig) ) {
610  keys_.push_back(offset+4*ref.key()+2);
611  } else if ( (id==TriggerELongit) || (id==TriggerHLongit) ) {
612  keys_.push_back(offset+4*ref.key()+3);
613  } else {
614  keys_.push_back(offset+4*ref.key()+0);
615  }
616  ids_.push_back(id);
617 
618  return;
619 }
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 621 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.

621  {
622 
623  using namespace trigger;
624 
625  if ( (id==TriggerTHT) || (id==TriggerTET) ) {
626  keys_.push_back(offset+4*ref.key()+1);
627  } else if ( (id==TriggerMETSig) || (id==TriggerMHTSig) ) {
628  keys_.push_back(offset+4*ref.key()+2);
629  } else if ( (id==TriggerELongit) || (id==TriggerHLongit) ) {
630  keys_.push_back(offset+4*ref.key()+3);
631  } else {
632  keys_.push_back(offset+4*ref.key()+0);
633  }
634  ids_.push_back(id);
635 
636  return;
637 }
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 639 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.

639  {
640 
641  using namespace trigger;
642 
643  if ( (id==TriggerTHT) || (id==TriggerTET) ) {
644  keys_.push_back(offset+4*ref.key()+1);
645  } else if ( (id==TriggerMETSig) || (id==TriggerMHTSig) ) {
646  keys_.push_back(offset+4*ref.key()+2);
647  } else if ( (id==TriggerELongit) || (id==TriggerHLongit) ) {
648  keys_.push_back(offset+4*ref.key()+3);
649  } else {
650  keys_.push_back(offset+4*ref.key()+0);
651  }
652  ids_.push_back(id);
653 
654  return;
655 }
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 517 of file TriggerSummaryProducerAOD.cc.

References patCaloMETCorrections_cff::C, edm::InputTag::encode(), fillFilterObjectMember(), edm::Event::getProvenance(), 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().

517  {
518 
522 
523  using namespace std;
524  using namespace edm;
525  using namespace reco;
526  using namespace l1extra;
527  using namespace trigger;
528 
529  if (ids.size()!=refs.size()) {
530  LogError("TriggerSummaryProducerAOD") << "Vector length is different: "
531  << ids.size() << " " << refs.size();
532  }
533 
534  const unsigned int n(min(ids.size(),refs.size()));
535  for (unsigned int i=0; i!=n; ++i) {
536  const ProductID pid(refs[i].id());
537  if (!(pid.isValid())) {
538  LogError("TriggerSummaryProducerAOD")
539  << "Iinvalid pid: " << pid
540  << " FilterTag / Key: " << tag.encode()
541  << " / " << i << "of" << n
542  << " CollectionTag / Key: "
543  << " <Unrecoverable>"
544  << " / " << refs[i].key()
545  << " CollectionType: " << typeid(C).name();
546  } else if (offset_.find(pid)==offset_.end()) {
547  const string& label(iEvent.getProvenance(pid).moduleLabel());
548  const string& instance(iEvent.getProvenance(pid).productInstanceName());
549  const string& process(iEvent.getProvenance(pid).processName());
550  LogError("TriggerSummaryProducerAOD")
551  << "Uunknown pid: " << pid
552  << " FilterTag / Key: " << tag.encode()
553  << " / " << i << "of" << n
554  << " CollectionTag / Key: "
556  << " / " << refs[i].key()
557  << " CollectionType: " << typeid(C).name();
558  } else {
559  fillFilterObjectMember(offset_[pid],ids[i],refs[i]);
560  }
561  }
562  return;
563 
564 }
int i
Definition: DBlmapReader.cc:9
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 433 of file TriggerSummaryProducerAOD.cc.

References toc_.

Referenced by fillTriggerObjectCollections().

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

Definition at line 441 of file TriggerSummaryProducerAOD.cc.

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

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

Definition at line 460 of file TriggerSummaryProducerAOD.cc.

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

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

Definition at line 477 of file TriggerSummaryProducerAOD.cc.

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

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

Definition at line 490 of file TriggerSummaryProducerAOD.cc.

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

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

Definition at line 503 of file TriggerSummaryProducerAOD.cc.

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

503  {
504 
505  using namespace reco;
506  using namespace trigger;
507 
508  toc_.push_back( TriggerObject(object) );
509  toc_.push_back(TriggerObject(TriggerTHT ,object.sumEt() ,0.0,0.0,0.0));
510  toc_.push_back(TriggerObject(TriggerMHTSig ,object.mEtSig() ,0.0,0.0,0.0));
511  toc_.push_back(TriggerObject(TriggerHLongit,object.e_longitudinal(),0.0,0.0,0.0));
512 
513  return;
514 }
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 391 of file TriggerSummaryProducerAOD.cc.

References collectionTagsEvent_, edm::GetterOfProducts< T >::fillHandles(), fillTriggerObject(), 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_.

391  {
392 
396 
397  using namespace std;
398  using namespace edm;
399  using namespace reco;
400  using namespace l1extra;
401  using namespace trigger;
402  using namespace l1t;
403 
404  vector<Handle<C> > collections;
405  getter.fillHandles(iEvent, collections);
406  const unsigned int nc(collections.size());
407 
408  for (unsigned int ic=0; ic!=nc; ++ic) {
409  const Provenance& provenance(*(collections[ic].provenance()));
410  const string& label (provenance.moduleLabel());
411  const string& instance (provenance.productInstanceName());
412  const string& process (provenance.processName());
413  const InputTag collectionTag(label,instance,process);
414 
415  if (collectionTagsEvent_.find(collectionTag)!=collectionTagsEvent_.end()) {
416  const ProductID pid(collections[ic].provenance()->productID());
417  if (offset_.find(pid)!=offset_.end()) {
418  LogError("TriggerSummaryProducerAOD") << "Duplicate pid!";
419  }
420  offset_[pid]=toc_.size();
421  const unsigned int n(collections[ic]->size());
422  for (unsigned int i=0; i!=n; ++i) {
423  fillTriggerObject( (*collections[ic])[i] );
424  }
425  tags_.push_back(collectionTag.encode());
426  keys_.push_back(toc_.size());
427  }
428 
429  }
430 }
size
Write out results.
int i
Definition: DBlmapReader.cc:9
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 663 of file TriggerSummaryProducerAOD.cc.

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

663  {
664 
665  using namespace std;
666  using namespace edm;
667  using namespace trigger;
668 
669  LogVerbatim("TriggerSummaryProducerAOD") << endl;
670  LogVerbatim("TriggerSummaryProducerAOD") << "TriggerSummaryProducerAOD::globalEndJob - accumulated tags:" << endl;
671 
672  InputTagSet filterTags(false);
673  InputTagSet collectionTags(false);
674 
675  filterTags.insert(globalInputTags->filterTagsGlobal_.begin(),globalInputTags->filterTagsGlobal_.end());
676  collectionTags.insert(globalInputTags->collectionTagsGlobal_.begin(),globalInputTags->collectionTagsGlobal_.end());
677 
678  const unsigned int nc(collectionTags.size());
679  const unsigned int nf(filterTags.size());
680  LogVerbatim("TriggerSummaryProducerAOD") << " Overall number of Collections/Filters: "
681  << nc << "/" << nf << endl;
682 
683  LogVerbatim("TriggerSummaryProducerAOD") << " The collections: " << nc << endl;
684  const InputTagSet::const_iterator cb(collectionTags.begin());
685  const InputTagSet::const_iterator ce(collectionTags.end());
686  for ( InputTagSet::const_iterator ci=cb; ci!=ce; ++ci) {
687  LogVerbatim("TriggerSummaryProducerAOD") << " " << distance(cb,ci) << " " << ci->encode() << endl;
688  }
689 
690  LogVerbatim("TriggerSummaryProducerAOD") << " The filters:" << nf << endl;
691  const InputTagSet::const_iterator fb(filterTags.begin());
692  const InputTagSet::const_iterator fe(filterTags.end());
693  for ( InputTagSet::const_iterator fi=fb; fi!=fe; ++fi) {
694  LogVerbatim("TriggerSummaryProducerAOD") << " " << distance(fb,fi) << " " << fi->encode() << endl;
695  }
696 
697  LogVerbatim("TriggerSummaryProducerAOD") << "TriggerSummaryProducerAOD::endJob." << endl;
698  LogVerbatim("TriggerSummaryProducerAOD") << endl;
699 
700  return;
701 
702 }
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 227 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_.

228 {
229  using namespace std;
230  using namespace edm;
231  using namespace reco;
232  using namespace l1extra;
233  using namespace trigger;
234  using namespace l1t;
235 
236  std::vector<edm::Handle<trigger::TriggerFilterObjectWithRefs> > fobs;
238 
239  const unsigned int nfob(fobs.size());
240  LogTrace("TriggerSummaryProducerAOD") << "Number of filter objects found: " << nfob;
241 
242  string tagLabel,tagInstance,tagProcess;
243 
249  maskFilters_.clear();
250  maskFilters_.resize(nfob);
251  filterTagsEvent_.clear();
252  collectionTagsEvent_.clear();
253  unsigned int nf(0);
254  for (unsigned int ifob=0; ifob!=nfob; ++ifob) {
255  maskFilters_[ifob]=false;
256  const vector<string>& collectionTags_(fobs[ifob]->getCollectionTagsAsStrings());
257  const unsigned int ncol(collectionTags_.size());
258  if (ncol>0) {
259  nf++;
260  maskFilters_[ifob]=true;
261  const string& label (fobs[ifob].provenance()->moduleLabel());
262  const string& instance (fobs[ifob].provenance()->productInstanceName());
263  const string& process (fobs[ifob].provenance()->processName());
265  for (unsigned int icol=0; icol!=ncol; ++icol) {
266  // overwrite process name (usually not set)
267  tokenizeTag(collectionTags_[icol],tagLabel,tagInstance,tagProcess);
268  collectionTagsEvent_.insert(InputTag(tagLabel,tagInstance,pn_));
269  }
270  }
271  }
273  if (filterTagsEvent_.size()!=nf) {
274  LogError("TriggerSummaryProducerAOD")
275  << "Mismatch in number of filter tags: "
276  << filterTagsEvent_.size() << "!=" << nf ;
277  }
278 
282 
284  if (isDebugEnabled()) {
285 
287  const unsigned int nc(collectionTagsEvent_.size());
288  LogTrace("TriggerSummaryProducerAOD") << "Number of unique collections requested " << nc;
289  const InputTagSet::const_iterator cb(collectionTagsEvent_.begin());
290  const InputTagSet::const_iterator ce(collectionTagsEvent_.end());
291  for ( InputTagSet::const_iterator ci=cb; ci!=ce; ++ci) {
292  LogTrace("TriggerSummaryProducerAOD") << distance(cb,ci) << " " << ci->encode();
293  }
294  const unsigned int nf(filterTagsEvent_.size());
295  LogTrace("TriggerSummaryProducerAOD") << "Number of unique filters requested " << nf;
296  const InputTagSet::const_iterator fb(filterTagsEvent_.begin());
297  const InputTagSet::const_iterator fe(filterTagsEvent_.end());
298  for ( InputTagSet::const_iterator fi=fb; fi!=fe; ++fi) {
299  LogTrace("TriggerSummaryProducerAOD") << distance(fb,fi) << " " << fi->encode();
300  }
301 
302  }
303 
309  toc_.clear();
310  tags_.clear();
311  keys_.clear();
312  offset_.clear();
313  fillTriggerObjectCollections< RecoEcalCandidateCollection>(iEvent, getRecoEcalCandidateCollection_);
314  fillTriggerObjectCollections< ElectronCollection>(iEvent, getElectronCollection_);
315  fillTriggerObjectCollections< RecoChargedCandidateCollection>(iEvent, getRecoChargedCandidateCollection_);
316  fillTriggerObjectCollections< CaloJetCollection>(iEvent, getCaloJetCollection_);
317  fillTriggerObjectCollections< CompositeCandidateCollection>(iEvent, getCompositeCandidateCollection_);
318  fillTriggerObjectCollections< METCollection>(iEvent, getMETCollection_);
319  fillTriggerObjectCollections< CaloMETCollection>(iEvent, getCaloMETCollection_);
320  fillTriggerObjectCollections<IsolatedPixelTrackCandidateCollection>(iEvent, getIsolatedPixelTrackCandidateCollection_);
322  fillTriggerObjectCollections< L1EmParticleCollection>(iEvent, getL1EmParticleCollection_);
323  fillTriggerObjectCollections< L1MuonParticleCollection>(iEvent, getL1MuonParticleCollection_);
324  fillTriggerObjectCollections< L1JetParticleCollection>(iEvent, getL1JetParticleCollection_);
325  fillTriggerObjectCollections< L1EtMissParticleCollection>(iEvent, getL1EtMissParticleCollection_);
326  fillTriggerObjectCollections< L1HFRingsCollection>(iEvent, getL1HFRingsCollection_);
327  fillTriggerObjectCollections< MuonBxCollection>(iEvent, getL1TMuonParticleCollection_);
328  fillTriggerObjectCollections< EGammaBxCollection>(iEvent, getL1TEGammaParticleCollection_);
329  fillTriggerObjectCollections< JetBxCollection>(iEvent, getL1TJetParticleCollection_);
330  fillTriggerObjectCollections< TauBxCollection>(iEvent, getL1TTauParticleCollection_);
331  fillTriggerObjectCollections< EtSumBxCollection>(iEvent, getL1TEtSumParticleCollection_);
333  fillTriggerObjectCollections< PFJetCollection>(iEvent, getPFJetCollection_);
334  fillTriggerObjectCollections< PFTauCollection>(iEvent, getPFTauCollection_);
335  fillTriggerObjectCollections< PFMETCollection>(iEvent, getPFMETCollection_);
337  const unsigned int nk(tags_.size());
338  LogDebug("TriggerSummaryProducerAOD") << "Number of collections found: " << nk;
339  const unsigned int no(toc_.size());
340  LogDebug("TriggerSummaryProducerAOD") << "Number of physics objects found: " << no;
341 
344  unique_ptr<TriggerEvent> product(new TriggerEvent(pn_,nk,no,nf));
345 
347  product->addCollections(tags_,keys_);
348  product->addObjects(toc_);
349 
351  for (unsigned int ifob=0; ifob!=nfob; ++ifob) {
352  if (maskFilters_[ifob]) {
353  const string& label (fobs[ifob].provenance()->moduleLabel());
354  const string& instance (fobs[ifob].provenance()->productInstanceName());
355  const string& process (fobs[ifob].provenance()->processName());
356  const edm::InputTag filterTag(label,instance,process);
357  ids_.clear();
358  keys_.clear();
359  fillFilterObjectMembers(iEvent,filterTag,fobs[ifob]->photonIds() ,fobs[ifob]->photonRefs());
360  fillFilterObjectMembers(iEvent,filterTag,fobs[ifob]->electronIds() ,fobs[ifob]->electronRefs());
361  fillFilterObjectMembers(iEvent,filterTag,fobs[ifob]->muonIds() ,fobs[ifob]->muonRefs());
362  fillFilterObjectMembers(iEvent,filterTag,fobs[ifob]->jetIds() ,fobs[ifob]->jetRefs());
363  fillFilterObjectMembers(iEvent,filterTag,fobs[ifob]->compositeIds(),fobs[ifob]->compositeRefs());
364  fillFilterObjectMembers(iEvent,filterTag,fobs[ifob]->basemetIds() ,fobs[ifob]->basemetRefs());
365  fillFilterObjectMembers(iEvent,filterTag,fobs[ifob]->calometIds() ,fobs[ifob]->calometRefs());
366  fillFilterObjectMembers(iEvent,filterTag,fobs[ifob]->pixtrackIds() ,fobs[ifob]->pixtrackRefs());
367  fillFilterObjectMembers(iEvent,filterTag,fobs[ifob]->l1emIds() ,fobs[ifob]->l1emRefs());
368  fillFilterObjectMembers(iEvent,filterTag,fobs[ifob]->l1muonIds() ,fobs[ifob]->l1muonRefs());
369  fillFilterObjectMembers(iEvent,filterTag,fobs[ifob]->l1jetIds() ,fobs[ifob]->l1jetRefs());
370  fillFilterObjectMembers(iEvent,filterTag,fobs[ifob]->l1etmissIds() ,fobs[ifob]->l1etmissRefs());
371  fillFilterObjectMembers(iEvent,filterTag,fobs[ifob]->l1hfringsIds(),fobs[ifob]->l1hfringsRefs());
372  fillFilterObjectMembers(iEvent,filterTag,fobs[ifob]->l1tmuonIds() ,fobs[ifob]->l1tmuonRefs());
373  fillFilterObjectMembers(iEvent,filterTag,fobs[ifob]->l1tegammaIds(),fobs[ifob]->l1tegammaRefs());
374  fillFilterObjectMembers(iEvent,filterTag,fobs[ifob]->l1tjetIds() ,fobs[ifob]->l1tjetRefs());
375  fillFilterObjectMembers(iEvent,filterTag,fobs[ifob]->l1ttauIds() ,fobs[ifob]->l1ttauRefs());
376  fillFilterObjectMembers(iEvent,filterTag,fobs[ifob]->l1tetsumIds() ,fobs[ifob]->l1tetsumRefs());
377  fillFilterObjectMembers(iEvent,filterTag,fobs[ifob]->pfjetIds() ,fobs[ifob]->pfjetRefs());
378  fillFilterObjectMembers(iEvent,filterTag,fobs[ifob]->pftauIds() ,fobs[ifob]->pftauRefs());
379  fillFilterObjectMembers(iEvent,filterTag,fobs[ifob]->pfmetIds() ,fobs[ifob]->pfmetRefs());
380  product->addFilter(filterTag,ids_,keys_);
381  }
382  }
383 
384  OrphanHandle<TriggerEvent> ref = iEvent.put(std::move(product));
385  LogTrace("TriggerSummaryProducerAOD") << "Number of physics objects packed: " << ref->sizeObjects();
386  LogTrace("TriggerSummaryProducerAOD") << "Number of filter objects packed: " << ref->sizeFilters();
387 
388 }
#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().