CMS 3D CMS Logo

L1GlobalTriggerGTL.h

Go to the documentation of this file.
00001 #ifndef GlobalTrigger_L1GlobalTriggerGTL_h
00002 #define GlobalTrigger_L1GlobalTriggerGTL_h
00003 
00021 // system include files
00022 #include <bitset>
00023 #include <vector>
00024 
00025 // user include files
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/ParameterSet/interface/InputTag.h"
00034 
00035 #include "FWCore/Framework/interface/EventSetup.h"
00036 
00037 // forward declarations
00038 class L1GlobalTriggerPSB;
00039 class L1GtTriggerMenu;
00040 class L1CaloGeometry;
00041 class L1MuTriggerScales;
00042 class L1GtEtaPhiConversions;
00043 
00044 // class declaration
00045 class L1GlobalTriggerGTL
00046 {
00047 
00048 public:
00049 
00050     // constructors
00051     L1GlobalTriggerGTL();
00052 
00053     // destructor
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         const bool receiveCastor,
00083         const edm::InputTag castorInputTag);
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 private:
00110     
00111     // cached stuff
00112 
00113     // trigger menu
00114     const L1GtTriggerMenu* m_l1GtMenu;
00115     unsigned long long m_l1GtMenuCacheID;
00116     
00117     // L1 scales (phi, eta) for Mu, Calo and EnergySum objects
00118     const L1CaloGeometry* m_l1CaloGeometry;
00119     unsigned long long m_l1CaloGeometryCacheID;
00120     
00121     const L1MuTriggerScales* m_l1MuTriggerScales;
00122     unsigned long long m_l1MuTriggerScalesCacheID;
00123     
00124     // conversions for eta and phi
00125     L1GtEtaPhiConversions* m_gtEtaPhiConversions;
00126 
00127 private:
00128 
00129     std::vector<const L1MuGMTCand*>* m_candL1Mu;
00130 
00131     std::bitset<L1GlobalTriggerReadoutSetup::NumberPhysTriggers> m_gtlAlgorithmOR;
00132     std::bitset<L1GlobalTriggerReadoutSetup::NumberPhysTriggers> m_gtlDecisionWord;
00133 
00134 
00135 };
00136 
00137 #endif

Generated on Tue Jun 9 17:40:13 2009 for CMSSW by  doxygen 1.5.4