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
25 
26 // base class
28 
30 
34 
36 
37 // forward declarations
38 class L1GtTriggerMenu;
39 class L1GtTriggerMask;
42 namespace edm {
44 }
45 
50 
51 // class declaration
53 {
54 
55 public:
56 
58  explicit HLTLevel1GTSeed(const edm::ParameterSet&);
59 
61  ~HLTLevel1GTSeed() override;
62 
64  static void fillDescriptions(edm::ConfigurationDescriptions & descriptions);
65 
67  bool hltFilter(edm::Event&, const edm::EventSetup&, trigger::TriggerFilterObjectWithRefs & filterproduct) override;
68 
69 private:
70 
72  const std::vector<L1GtObject>* objectTypeVec(const int chipNumber, const std::string& cndName) const;
73 
76  void updateAlgoLogicParser(const L1GtTriggerMenu*, const AlgorithmMap&);
77 
80  void updateAlgoLogicParser(const std::vector<bool>& gtWord,
81  const std::vector<unsigned int>& triggerMask, const int physicsDaqPartition);
82 
85  void convertStringToBitNumber();
86 
89  void debugPrint(bool) const;
90 
92  bool seedsL1TriggerObjectMaps(
93  edm::Event &,
95  const L1GtTriggerMask *,
97  const int physicsDaqPartition);
98 
104  bool seedsL1Extra(edm::Event &, trigger::TriggerFilterObjectWithRefs &) const;
105 
107  void dumpTriggerFilterObjectWithRefs(trigger::TriggerFilterObjectWithRefs &) const;
108 
109 
110 private:
111 
112  // cached stuff
113 
116  unsigned long long m_l1GtMenuCacheID;
117 
120 
122  std::vector<L1GtLogicParser::OperandToken> m_l1AlgoSeeds;
123 
125  std::vector< const std::vector<L1GtLogicParser::TokenRPN>* > m_l1AlgoSeedsRpn;
126 
128  std::vector< std::vector< const std::vector<L1GtObject>* > > m_l1AlgoSeedsObjType;
129 
130 
131 private:
132 
142 
146 
149 
152 
156 
160 
164 
167 
170 
191 
194 
197 };
198 
199 #endif // HLTfilters_HLTLevel1GTSeed_h
bool m_l1UseL1TriggerObjectMaps
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
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.
edm::EDGetTokenT< l1extra::L1EtMissParticleCollection > m_l1EtMissMETToken
edm::EDGetTokenT< L1GlobalTriggerReadoutRecord > m_l1GtReadoutRecordToken
std::vector< std::vector< const std::vector< L1GtObject > * > > m_l1AlgoSeedsObjType
vector of object-type vectors for each condition in the required algorithms for seeding ...
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
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
std::vector< const std::vector< L1GtLogicParser::TokenRPN > * > m_l1AlgoSeedsRpn
vector of Rpn vectors for the required algorithms for seeding
edm::InputTag m_l1NoIsoEGTag
edm::EDGetTokenT< l1extra::L1JetParticleCollection > m_l1TauJetToken
edm::EDGetTokenT< L1GlobalTriggerObjectMapRecord > m_l1GtObjectMapToken
edm::InputTag m_l1GtReadoutRecordTag
InputTag for the L1 Global Trigger DAQ readout record.
bool m_l1GlobalDecision
replace string "L1GlobalDecision" with bool to speed up the "if"
HLT enums.
edm::EDGetTokenT< l1extra::L1MuonParticleCollection > m_l1MuonToken
edm::EDGetTokenT< l1extra::L1EmParticleCollection > m_l1NoIsoEGToken
edm::InputTag m_l1MuonTag
L1GtLogicParser m_l1AlgoLogicParser
logic parser for m_l1SeedsLogicalExpression
edm::InputTag m_l1TauJetTag