CMS 3D CMS Logo

L1GlobalTriggerPSB.h

Go to the documentation of this file.
00001 #ifndef GlobalTrigger_L1GlobalTriggerPSB_h
00002 #define GlobalTrigger_L1GlobalTriggerPSB_h
00003 
00023 // system include files
00024 #include <vector>
00025 #include <boost/cstdint.hpp>
00026 
00027 // user include files
00028 #include "DataFormats/L1GlobalTrigger/interface/L1GlobalTriggerReadoutSetupFwd.h"
00029 #include "DataFormats/L1GlobalTrigger/interface/L1GlobalTriggerReadoutSetup.h"
00030 #include "DataFormats/L1GlobalTrigger/interface/L1GtTechnicalTriggerRecord.h"
00031 
00032 #include "DataFormats/Common/interface/Handle.h"
00033 
00034 #include "FWCore/Framework/interface/Event.h"
00035 #include "FWCore/ParameterSet/interface/InputTag.h"
00036 
00037 #include "CondFormats/L1TObjects/interface/L1GtFwd.h"
00038 #include "CondFormats/L1TObjects/interface/L1GtBoard.h"
00039 #include "CondFormats/L1TObjects/interface/L1GtBoardMaps.h"
00040 
00041 
00042 // forward declarations
00043 class L1GctCand;
00044 
00045 class L1GctEmCand;
00046 class L1GctJetCand;
00047 
00048 class L1GctEtMiss;
00049 class L1GctEtTotal;
00050 class L1GctEtHad;
00051 
00052 class L1GctJetCounts;
00053 class L1GctHFBitCounts;
00054 class L1GctHFRingEtSums;
00055 
00056 class L1GlobalTriggerReadoutRecord;
00057 
00058 // class declaration
00059 class L1GlobalTriggerPSB
00060 {
00061 
00062 public:
00063 
00064     // constructor
00065     L1GlobalTriggerPSB();
00066 
00067     // destructor
00068     virtual ~L1GlobalTriggerPSB();
00069 
00070 public:
00071 
00073     void init(const int nrL1NoIsoEG, const int nrL1IsoEG,
00074             const int nrL1CenJet, const int nrL1ForJet, const int nrL1TauJet,
00075             const int numberTechnicalTriggers);
00076 
00078     void receiveGctObjectData(
00079         edm::Event& iEvent,
00080         const edm::InputTag& caloGctInputTag, const int iBxInEvent,
00081         const bool receiveNoIsoEG, const int nrL1NoIsoEG,
00082         const bool receiveIsoEG, const int nrL1IsoEG,
00083         const bool receiveCenJet, const int nrL1CenJet,
00084         const bool receiveForJet, const int nrL1ForJet,
00085         const bool receiveTauJet, const int nrL1TauJet,
00086         const bool receiveETM, const bool receiveETT, const bool receiveHTT,
00087         const bool receiveJetCounts,
00088         const bool receiveHfBitCounts,
00089         const bool receiveHfRingEtSums);
00090 
00092     void receiveTechnicalTriggers(edm::Event& iEvent,
00093         const std::vector<edm::InputTag>& technicalTriggersInputTags,
00094         const int iBxInEvent, const bool receiveTechTr,
00095         const int nrL1TechTr);
00096 
00098     void fillPsbBlock(
00099         edm::Event& iEvent,
00100         const boost::uint16_t& activeBoardsGtDaq,
00101         const std::vector<L1GtBoard>& boardMaps,
00102         const int iBxInEvent,
00103         std::auto_ptr<L1GlobalTriggerReadoutRecord>& gtDaqReadoutRecord);
00104 
00106     void reset();
00107 
00109     void printGctObjectData(const int iBxInEvent) const;
00110 
00112     inline const std::vector<const L1GctCand*>* getCandL1NoIsoEG() const
00113     {
00114         return m_candL1NoIsoEG;
00115     }
00116 
00118     inline const std::vector<const L1GctCand*>* getCandL1IsoEG() const
00119     {
00120         return m_candL1IsoEG;
00121     }
00122 
00124     inline const std::vector<const L1GctCand*>* getCandL1CenJet() const
00125     {
00126         return m_candL1CenJet;
00127     }
00128 
00130     inline const std::vector<const L1GctCand*>* getCandL1ForJet() const
00131     {
00132         return m_candL1ForJet;
00133     }
00134 
00136     inline const std::vector<const L1GctCand*>* getCandL1TauJet() const
00137     {
00138         return m_candL1TauJet;
00139     }
00140 
00142     inline const L1GctEtMiss* getCandL1ETM() const
00143     {
00144         return m_candETM;
00145     }
00146 
00148     inline const L1GctEtTotal* getCandL1ETT() const
00149     {
00150         return m_candETT;
00151     }
00152 
00154     inline const L1GctEtHad* getCandL1HTT() const
00155     {
00156         return m_candHTT;
00157     }
00158 
00160     inline const L1GctJetCounts* getCandL1JetCounts() const
00161     {
00162         return m_candJetCounts;
00163     }
00164 
00166     inline const L1GctHFBitCounts* getCandL1HfBitCounts() const
00167     {
00168         return m_candHfBitCounts;
00169     }
00170 
00172     inline const L1GctHFRingEtSums* getCandL1HfRingEtSums() const
00173     {
00174         return m_candHfRingEtSums;
00175     }
00176 
00178     inline const std::vector<bool>* getGtTechnicalTriggers() const
00179     {
00180         return &m_gtTechnicalTriggers;
00181     }
00182 
00183 private:
00184 
00185     std::vector<const L1GctCand*>* m_candL1NoIsoEG;
00186     std::vector<const L1GctCand*>* m_candL1IsoEG;
00187     std::vector<const L1GctCand*>* m_candL1CenJet;
00188     std::vector<const L1GctCand*>* m_candL1ForJet;
00189     std::vector<const L1GctCand*>* m_candL1TauJet;
00190 
00191     const L1GctEtMiss*  m_candETM;
00192     const L1GctEtTotal* m_candETT;
00193     const L1GctEtHad*   m_candHTT;
00194 
00195     const L1GctJetCounts* m_candJetCounts;
00196 
00197     const L1GctHFBitCounts* m_candHfBitCounts;
00198     const L1GctHFRingEtSums* m_candHfRingEtSums;
00199 
00201     std::vector<bool> m_gtTechnicalTriggers;
00202 
00203 };
00204 
00205 #endif

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