CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_5_3_14/src/L1Trigger/GlobalTrigger/interface/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 #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 // forward declarations
00040 class L1GlobalTriggerPSB;
00041 class L1GtTriggerMenu;
00042 class L1CaloGeometry;
00043 class L1MuTriggerScales;
00044 class L1GtEtaPhiConversions;
00045 
00046 // class declaration
00047 class L1GlobalTriggerGTL
00048 {
00049 
00050 public:
00051 
00052     // constructors
00053     L1GlobalTriggerGTL();
00054 
00055     // destructor
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     // cached stuff
00118 
00119     // trigger menu
00120     const L1GtTriggerMenu* m_l1GtMenu;
00121     unsigned long long m_l1GtMenuCacheID;
00122 
00123     // L1 scales (phi, eta) for Mu, Calo and EnergySum objects
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     // conversions for eta and phi
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   // cache of maps
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