CMS 3D CMS Logo

HLTLevel1GTSeed.h
Go to the documentation of this file.
1 #ifndef HLTfilters_HLTLevel1GTSeed_h
2 #define HLTfilters_HLTLevel1GTSeed_h
3 
20 // system include files
21 #include <string>
22 #include <vector>
23 
24 // user include files
36 
37 // forward declarations
40 namespace edm {
42 }
43 
48 
49 // class declaration
51 public:
53  explicit HLTLevel1GTSeed(const edm::ParameterSet &);
54 
56  ~HLTLevel1GTSeed() override;
57 
59  static void fillDescriptions(edm::ConfigurationDescriptions &descriptions);
60 
62  bool hltFilter(edm::Event &, const edm::EventSetup &, trigger::TriggerFilterObjectWithRefs &filterproduct) override;
63 
64 private:
66  const std::vector<L1GtObject> *objectTypeVec(const int chipNumber, const std::string &cndName) const;
67 
70  void updateAlgoLogicParser(const L1GtTriggerMenu *, const AlgorithmMap &);
71 
74  void updateAlgoLogicParser(const std::vector<bool> &gtWord,
75  const std::vector<unsigned int> &triggerMask,
76  const int physicsDaqPartition);
77 
81 
84  void debugPrint(bool) const;
85 
89  const L1GtTriggerMask *,
91  const int physicsDaqPartition);
92 
99 
102 
103 private:
104  // cached stuff
105 
108  unsigned long long m_l1GtMenuCacheID;
109 
110  // trigger records
114 
117 
119  std::vector<L1GtLogicParser::OperandToken> m_l1AlgoSeeds;
120 
122  std::vector<const std::vector<L1GtLogicParser::TokenRPN> *> m_l1AlgoSeedsRpn;
123 
125  std::vector<std::vector<const std::vector<L1GtObject> *> > m_l1AlgoSeedsObjType;
126 
127 private:
137 
141 
144 
147 
151 
155 
159 
162 
165 
186 
189 
192 };
193 
194 #endif // HLTfilters_HLTLevel1GTSeed_h
bool m_l1UseL1TriggerObjectMaps
std::vector< std::vector< const std::vector< L1GtObject > * > > m_l1AlgoSeedsObjType
vector of object-type vectors for each condition in the required algorithms for seeding ...
void dumpTriggerFilterObjectWithRefs(trigger::TriggerFilterObjectWithRefs &) const
detailed print of filter content
std::vector< const std::vector< L1GtLogicParser::TokenRPN > * > m_l1AlgoSeedsRpn
vector of Rpn vectors for the required algorithms for seeding
edm::ESGetToken< L1GtTriggerMenu, L1GtTriggerMenuRcd > const m_l1GtTriggerMenuToken
const L1GtTriggerMenu * m_l1GtMenu
trigger menu
std::map< std::string, L1GtAlgorithm > AlgorithmMap
map containing the algorithms
edm::InputTag m_l1EtMissMETTag
edm::EDGetTokenT< l1extra::L1EtMissParticleCollection > m_l1EtMissMHTToken
const std::vector< L1GtObject > * objectTypeVec(const int chipNumber, const std::string &cndName) const
get the vector of object types for a condition cndName on the GTL chip chipNumber ...
std::vector< L1GtLogicParser::OperandToken > m_l1AlgoSeeds
list of required algorithms for seeding
bool m_l1UseAliasesForSeeding
seeding uses algorithm aliases instead of algorithm names, if value is "true"
edm::InputTag m_l1IsoTauJetTag
edm::EDGetTokenT< l1extra::L1JetParticleCollection > m_l1ForJetToken
edm::InputTag m_l1ExtraTag
cached InputTags
bool m_l1TechTriggerSeeding
seeding done via technical trigger bits, if value is "true"
edm::InputTag m_l1EtMissMHTTag
edm::InputTag m_l1GtObjectMapTag
InputTag for L1 Global Trigger object maps.
bool hltFilter(edm::Event &, const edm::EventSetup &, trigger::TriggerFilterObjectWithRefs &filterproduct) override
filter the event
edm::EDGetTokenT< l1extra::L1EtMissParticleCollection > m_l1EtMissMETToken
edm::EDGetTokenT< L1GlobalTriggerReadoutRecord > m_l1GtReadoutRecordToken
edm::EDGetTokenT< l1extra::L1JetParticleCollection > m_l1IsoTauJetToken
edm::InputTag m_l1CollectionsTag
Meta InputTag for L1 particle collections (except muon)
edm::InputTag m_l1MuonCollectionTag
Meta InputTag for L1 muon collection.
edm::EDGetTokenT< l1extra::L1JetParticleCollection > m_l1CenJetToken
void updateAlgoLogicParser(const L1GtTriggerMenu *, const AlgorithmMap &)
edm::EDGetTokenT< l1extra::L1EmParticleCollection > m_l1IsoEGToken
std::string m_l1SeedsLogicalExpression
edm::InputTag m_l1IsoEGTag
unsigned long long m_l1GtMenuCacheID
edm::InputTag m_l1ForJetTag
bool m_isDebugEnabled
cache edm::isDebugEnabled()
edm::InputTag m_l1CenJetTag
edm::InputTag m_l1NoIsoEGTag
void convertStringToBitNumber()
edm::EDGetTokenT< l1extra::L1JetParticleCollection > m_l1TauJetToken
edm::EDGetTokenT< L1GlobalTriggerObjectMapRecord > m_l1GtObjectMapToken
void debugPrint(bool) const
edm::InputTag m_l1GtReadoutRecordTag
InputTag for the L1 Global Trigger DAQ readout record.
edm::ESGetToken< L1GtTriggerMask, L1GtTriggerMaskTechTrigRcd > const m_l1GtTriggerMaskTechTrigRcdToken
bool m_l1GlobalDecision
replace string "L1GlobalDecision" with bool to speed up the "if"
HLT enums.
edm::EDGetTokenT< l1extra::L1MuonParticleCollection > m_l1MuonToken
HLTLevel1GTSeed(const edm::ParameterSet &)
constructor
bool seedsL1Extra(edm::Event &, trigger::TriggerFilterObjectWithRefs &) const
edm::ESGetToken< L1GtTriggerMask, L1GtTriggerMaskAlgoTrigRcd > const m_l1GtTriggerMaskAlgoTrigRcdToken
edm::EDGetTokenT< l1extra::L1EmParticleCollection > m_l1NoIsoEGToken
bool seedsL1TriggerObjectMaps(edm::Event &, trigger::TriggerFilterObjectWithRefs &, const L1GtTriggerMask *, const L1GlobalTriggerReadoutRecord *, const int physicsDaqPartition)
seeding is done via L1 trigger object maps, considering the objects which fired in L1 ...
edm::InputTag m_l1MuonTag
L1GtLogicParser m_l1AlgoLogicParser
logic parser for m_l1SeedsLogicalExpression
edm::InputTag m_l1TauJetTag
~HLTLevel1GTSeed() override
destructor
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
parameter description