File indexing completed on 2024-04-06 12:18:28
0001 #ifndef HLTfilters_HLTL1TSeed_h
0002 #define HLTfilters_HLTL1TSeed_h
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018 #include <string>
0019 #include <vector>
0020
0021
0022
0023
0024 #include "HLTrigger/HLTcore/interface/HLTStreamFilter.h"
0025 #include "DataFormats/HLTReco/interface/TriggerFilterObjectWithRefs.h"
0026
0027 #include "DataFormats/L1GlobalTrigger/interface/L1GlobalTriggerReadoutSetupFwd.h"
0028 #include "CondFormats/L1TObjects/interface/L1GtTriggerMenuFwd.h"
0029 #include "DataFormats/L1TGlobal/interface/GlobalLogicParser.h"
0030 #include "DataFormats/L1TGlobal/interface/GlobalObject.h"
0031 #include "DataFormats/L1TGlobal/interface/GlobalAlgBlk.h"
0032
0033 #include "FWCore/Utilities/interface/InputTag.h"
0034
0035
0036 class L1GtTriggerMenu;
0037 class L1GtTriggerMask;
0038 class L1GlobalTriggerReadoutRecord;
0039
0040 class GlobalObjectMapRecord;
0041 namespace edm {
0042 class ConfigurationDescriptions;
0043 }
0044
0045
0046 class HLTL1TSeed : public HLTStreamFilter {
0047 public:
0048
0049 explicit HLTL1TSeed(const edm::ParameterSet&);
0050
0051
0052 ~HLTL1TSeed() override;
0053
0054
0055 static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
0056
0057
0058 bool hltFilter(edm::Event&, const edm::EventSetup&, trigger::TriggerFilterObjectWithRefs& filterproduct) override;
0059
0060 private:
0061
0062
0063 void inline updateAlgoLogicParser(const L1GtTriggerMenu*, const AlgorithmMap&){};
0064
0065
0066
0067 void inline updateAlgoLogicParser(const std::vector<bool>& gtWord,
0068 const std::vector<unsigned int>& triggerMask,
0069 const int physicsDaqPartition){};
0070
0071
0072 bool seedsL1TriggerObjectMaps(edm::Event&, trigger::TriggerFilterObjectWithRefs&);
0073
0074
0075 void dumpTriggerFilterObjectWithRefs(trigger::TriggerFilterObjectWithRefs&) const;
0076
0077 private:
0078
0079 GlobalLogicParser m_l1AlgoLogicParser;
0080
0081
0082 std::vector<GlobalLogicParser::OperandToken> m_l1AlgoSeeds;
0083
0084
0085 std::vector<const std::vector<GlobalLogicParser::TokenRPN>*> m_l1AlgoSeedsRpn;
0086
0087
0088 std::vector<std::vector<const std::vector<l1t::GlobalObject>*> > m_l1AlgoSeedsObjType;
0089
0090 private:
0091
0092
0093 int m_l1NrBxInEvent;
0094
0095
0096
0097 std::string m_l1SeedsLogicalExpression;
0098
0099
0100 edm::InputTag m_l1GtObjectMapTag;
0101 edm::EDGetTokenT<GlobalObjectMapRecord> m_l1GtObjectMapToken;
0102
0103
0104 edm::InputTag m_l1GlobalTag;
0105 edm::EDGetTokenT<GlobalAlgBlkBxCollection> m_l1GlobalToken;
0106
0107
0108
0109 edm::InputTag m_l1MuonCollectionsTag;
0110 edm::InputTag m_l1MuonTag;
0111 edm::EDGetTokenT<l1t::MuonBxCollection> m_l1MuonToken;
0112
0113
0114 edm::InputTag m_l1MuonShowerCollectionsTag;
0115 edm::InputTag m_l1MuonShowerTag;
0116 edm::EDGetTokenT<l1t::MuonShowerBxCollection> m_l1MuonShowerToken;
0117
0118
0119 edm::InputTag m_l1EGammaCollectionsTag;
0120 edm::InputTag m_l1EGammaTag;
0121 edm::EDGetTokenT<l1t::EGammaBxCollection> m_l1EGammaToken;
0122
0123
0124 edm::InputTag m_l1JetCollectionsTag;
0125 edm::InputTag m_l1JetTag;
0126 edm::EDGetTokenT<l1t::JetBxCollection> m_l1JetToken;
0127
0128
0129 edm::InputTag m_l1TauCollectionsTag;
0130 edm::InputTag m_l1TauTag;
0131 edm::EDGetTokenT<l1t::TauBxCollection> m_l1TauToken;
0132
0133
0134 edm::InputTag m_l1EtSumCollectionsTag;
0135 edm::InputTag m_l1EtSumTag;
0136 edm::EDGetTokenT<l1t::EtSumBxCollection> m_l1EtSumToken;
0137
0138
0139 edm::InputTag m_l1EtSumZdcCollectionsTag;
0140 edm::InputTag m_l1EtSumZdcTag;
0141 edm::EDGetTokenT<l1t::EtSumBxCollection> m_l1EtSumZdcToken;
0142
0143
0144 bool m_l1GlobalDecision;
0145
0146
0147 bool m_isDebugEnabled;
0148 };
0149
0150 #endif