Go to the documentation of this file.00001 #ifndef GlobalTrigger_L1GlobalTriggerGTL_h
00002 #define GlobalTrigger_L1GlobalTriggerGTL_h
00003
00021
00022 #include <bitset>
00023 #include <vector>
00024
00025
00026 #include "DataFormats/L1GlobalTrigger/interface/L1GlobalTriggerReadoutSetupFwd.h"
00027 #include "DataFormats/L1GlobalTrigger/interface/L1GlobalTriggerReadoutSetup.h"
00028 #include "DataFormats/L1GlobalTrigger/interface/L1GlobalTriggerObjectMapRecord.h"
00029 #include "L1Trigger/GlobalTrigger/interface/L1GtAlgorithmEvaluation.h"
00030
00031
00032 #include "DataFormats/L1GlobalMuonTrigger/interface/L1MuGMTCand.h"
00033
00034 #include "FWCore/Framework/interface/Event.h"
00035 #include "FWCore/Utilities/interface/InputTag.h"
00036
00037 #include "FWCore/Framework/interface/EventSetup.h"
00038
00039
00040 class L1GlobalTriggerPSB;
00041 class L1GtTriggerMenu;
00042 class L1CaloGeometry;
00043 class L1MuTriggerScales;
00044 class L1GtEtaPhiConversions;
00045
00046
00047 class L1GlobalTriggerGTL
00048 {
00049
00050 public:
00051
00052
00053 L1GlobalTriggerGTL();
00054
00055
00056 virtual ~L1GlobalTriggerGTL();
00057
00058 public:
00059
00061 void receiveGmtObjectData(
00062 edm::Event&,
00063 const edm::InputTag&, const int iBxInEvent,
00064 const bool receiveMu, const int nrL1Mu);
00065
00066
00068 void init(const int nrL1Mu, const int numberPhysTriggers);
00069
00071 void run(edm::Event& iEvent, const edm::EventSetup& evSetup,
00072 const L1GlobalTriggerPSB* ptrGtPSB, const bool produceL1GtObjectMapRecord,
00073 const int iBxInEvent, std::auto_ptr<L1GlobalTriggerObjectMapRecord>& gtObjectMapRecord,
00074 const unsigned int numberPhysTriggers,
00075 const int nrL1Mu,
00076 const int nrL1NoIsoEG,
00077 const int nrL1IsoEG,
00078 const int nrL1CenJet,
00079 const int nrL1ForJet,
00080 const int nrL1TauJet,
00081 const int nrL1JetCounts,
00082 const int ifMuEtaNumberBits,
00083 const int ifCaloEtaNumberBits);
00084
00086 void reset();
00087
00089 void printGmtData(const int iBxInEvent) const;
00090
00092 inline const std::bitset<L1GlobalTriggerReadoutSetup::NumberPhysTriggers>& getDecisionWord() const
00093 {
00094 return m_gtlDecisionWord;
00095 }
00096
00098 inline const std::bitset<L1GlobalTriggerReadoutSetup::NumberPhysTriggers>& getAlgorithmOR() const
00099 {
00100 return m_gtlAlgorithmOR;
00101 }
00102
00104 inline const std::vector<const L1MuGMTCand*>* getCandL1Mu() const
00105 {
00106 return m_candL1Mu;
00107 }
00108
00109 public:
00110
00111 inline void setVerbosity(const int verbosity) {
00112 m_verbosity = verbosity;
00113 }
00114
00115 private:
00116
00117
00118
00119
00120 const L1GtTriggerMenu* m_l1GtMenu;
00121 unsigned long long m_l1GtMenuCacheID;
00122
00123
00124 const L1CaloGeometry* m_l1CaloGeometry;
00125 unsigned long long m_l1CaloGeometryCacheID;
00126
00127 const L1MuTriggerScales* m_l1MuTriggerScales;
00128 unsigned long long m_l1MuTriggerScalesCacheID;
00129
00130
00131 L1GtEtaPhiConversions* m_gtEtaPhiConversions;
00132
00133 private:
00134
00135 std::vector<const L1MuGMTCand*>* m_candL1Mu;
00136
00137 std::bitset<L1GlobalTriggerReadoutSetup::NumberPhysTriggers> m_gtlAlgorithmOR;
00138 std::bitset<L1GlobalTriggerReadoutSetup::NumberPhysTriggers> m_gtlDecisionWord;
00139
00140
00141 std::vector<L1GtAlgorithmEvaluation::ConditionEvaluationMap> m_conditionResultMaps;
00142
00143
00144 private:
00145
00147 int m_verbosity;
00148 bool m_isDebugEnabled;
00149
00150
00151 };
00152
00153 #endif