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
00030 #include "DataFormats/L1GlobalMuonTrigger/interface/L1MuGMTCand.h"
00031
00032 #include "FWCore/Framework/interface/Event.h"
00033 #include "FWCore/Utilities/interface/InputTag.h"
00034
00035 #include "FWCore/Framework/interface/EventSetup.h"
00036
00037
00038 class L1GlobalTriggerPSB;
00039 class L1GtTriggerMenu;
00040 class L1CaloGeometry;
00041 class L1MuTriggerScales;
00042 class L1GtEtaPhiConversions;
00043
00044
00045 class L1GlobalTriggerGTL
00046 {
00047
00048 public:
00049
00050
00051 L1GlobalTriggerGTL();
00052
00053
00054 virtual ~L1GlobalTriggerGTL();
00055
00056 public:
00057
00059 void receiveGmtObjectData(
00060 edm::Event&,
00061 const edm::InputTag&, const int iBxInEvent,
00062 const bool receiveMu, const int nrL1Mu);
00063
00064
00066 void init(const int nrL1Mu, const int numberPhysTriggers);
00067
00069 void run(edm::Event& iEvent, const edm::EventSetup& evSetup,
00070 const L1GlobalTriggerPSB* ptrGtPSB, const bool produceL1GtObjectMapRecord,
00071 const int iBxInEvent, std::auto_ptr<L1GlobalTriggerObjectMapRecord>& gtObjectMapRecord,
00072 const unsigned int numberPhysTriggers,
00073 const int nrL1Mu,
00074 const int nrL1NoIsoEG,
00075 const int nrL1IsoEG,
00076 const int nrL1CenJet,
00077 const int nrL1ForJet,
00078 const int nrL1TauJet,
00079 const int nrL1JetCounts,
00080 const int ifMuEtaNumberBits,
00081 const int ifCaloEtaNumberBits);
00082
00084 void reset();
00085
00087 void printGmtData(const int iBxInEvent) const;
00088
00090 inline const std::bitset<L1GlobalTriggerReadoutSetup::NumberPhysTriggers>& getDecisionWord() const
00091 {
00092 return m_gtlDecisionWord;
00093 }
00094
00096 inline const std::bitset<L1GlobalTriggerReadoutSetup::NumberPhysTriggers>& getAlgorithmOR() const
00097 {
00098 return m_gtlAlgorithmOR;
00099 }
00100
00102 inline const std::vector<const L1MuGMTCand*>* getCandL1Mu() const
00103 {
00104 return m_candL1Mu;
00105 }
00106
00107 public:
00108
00109 inline void setVerbosity(const int verbosity) {
00110 m_verbosity = verbosity;
00111 }
00112
00113 private:
00114
00115
00116
00117
00118 const L1GtTriggerMenu* m_l1GtMenu;
00119 unsigned long long m_l1GtMenuCacheID;
00120
00121
00122 const L1CaloGeometry* m_l1CaloGeometry;
00123 unsigned long long m_l1CaloGeometryCacheID;
00124
00125 const L1MuTriggerScales* m_l1MuTriggerScales;
00126 unsigned long long m_l1MuTriggerScalesCacheID;
00127
00128
00129 L1GtEtaPhiConversions* m_gtEtaPhiConversions;
00130
00131 private:
00132
00133 std::vector<const L1MuGMTCand*>* m_candL1Mu;
00134
00135 std::bitset<L1GlobalTriggerReadoutSetup::NumberPhysTriggers> m_gtlAlgorithmOR;
00136 std::bitset<L1GlobalTriggerReadoutSetup::NumberPhysTriggers> m_gtlDecisionWord;
00137
00138 private:
00139
00141 int m_verbosity;
00142 bool m_isDebugEnabled;
00143
00144
00145 };
00146
00147 #endif