CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_5_3_14/src/L1Trigger/GlobalTrigger/interface/L1GlobalTrigger.h

Go to the documentation of this file.
00001 #ifndef GlobalTrigger_L1GlobalTrigger_h
00002 #define GlobalTrigger_L1GlobalTrigger_h
00003 
00024 // system include files
00025 #include <string>
00026 #include <vector>
00027 
00028 #include <boost/cstdint.hpp>
00029 
00030 // user include files
00031 
00032 #include "CondFormats/L1TObjects/interface/L1GtFwd.h"
00033 #include "CondFormats/L1TObjects/interface/L1GtBoard.h"
00034 
00035 #include "FWCore/Framework/interface/Frameworkfwd.h"
00036 #include "FWCore/Framework/interface/EDProducer.h"
00037 
00038 #include "FWCore/Framework/interface/Event.h"
00039 #include "FWCore/Framework/interface/EventSetup.h"
00040 
00041 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00042 #include "FWCore/Utilities/interface/InputTag.h"
00043 
00044 // forward classes
00045 class L1GlobalTriggerPSB;
00046 class L1GlobalTriggerGTL;
00047 class L1GlobalTriggerFDL;
00048 
00049 class L1GtStableParameters;
00050 class L1GtParameters;
00051 class L1GtBoardMaps;
00052 
00053 class L1GtPrescaleFactors;
00054 class L1GtTriggerMask;
00055 
00056 // class declaration
00057 class L1GlobalTrigger : public edm::EDProducer
00058 {
00059 
00060 public:
00061 
00062     explicit L1GlobalTrigger(const edm::ParameterSet&);
00063     ~L1GlobalTrigger();
00064 
00065     virtual void produce(edm::Event&, const edm::EventSetup&);
00066 
00067     // return pointer to PSB
00068     inline const L1GlobalTriggerPSB* gtPSB() const
00069     {
00070         return m_gtPSB;
00071     }
00072 
00073     // return pointer to GTL
00074     inline const L1GlobalTriggerGTL* gtGTL() const
00075     {
00076         return m_gtGTL;
00077     }
00078 
00079     // return pointer to FDL
00080     inline const L1GlobalTriggerFDL* gtFDL() const
00081     {
00082         return m_gtFDL;
00083     }
00084 
00085 private:
00086 
00088 
00090     const L1GtStableParameters* m_l1GtStablePar;
00091     unsigned long long m_l1GtStableParCacheID;
00092 
00094     unsigned int m_numberPhysTriggers;
00095 
00097     unsigned int m_numberTechnicalTriggers;
00098 
00100     unsigned int m_numberDaqPartitions;
00101 
00104     int m_nrL1Mu;
00105 
00106     int m_nrL1NoIsoEG;
00107     int m_nrL1IsoEG;
00108 
00109     int m_nrL1CenJet;
00110     int m_nrL1ForJet;
00111     int m_nrL1TauJet;
00112 
00113     int m_nrL1JetCounts;
00114 
00115     // ... the rest of the objects are global
00116 
00117     int m_ifMuEtaNumberBits;
00118     int m_ifCaloEtaNumberBits;
00119 
00120 
00122     const L1GtParameters* m_l1GtPar;
00123     unsigned long long m_l1GtParCacheID;
00124 
00126     int m_totalBxInEvent;
00127 
00129     boost::uint16_t m_activeBoardsGtDaq;
00130     boost::uint16_t m_activeBoardsGtEvm;
00131 
00133     unsigned int m_bstLengthBytes;
00134 
00136     const L1GtBoardMaps* m_l1GtBM;
00137     unsigned long long m_l1GtBMCacheID;
00138 
00139 
00141     const L1GtPrescaleFactors* m_l1GtPfAlgo;
00142     unsigned long long m_l1GtPfAlgoCacheID;
00143 
00144     const L1GtPrescaleFactors* m_l1GtPfTech;
00145     unsigned long long m_l1GtPfTechCacheID;
00146 
00147     const std::vector<std::vector<int> >* m_prescaleFactorsAlgoTrig;
00148     const std::vector<std::vector<int> >* m_prescaleFactorsTechTrig;
00149 
00151     const L1GtTriggerMask* m_l1GtTmAlgo;
00152     unsigned long long m_l1GtTmAlgoCacheID;
00153 
00154     const L1GtTriggerMask* m_l1GtTmTech;
00155     unsigned long long m_l1GtTmTechCacheID;
00156 
00157     const L1GtTriggerMask* m_l1GtTmVetoAlgo;
00158     unsigned long long m_l1GtTmVetoAlgoCacheID;
00159 
00160     const L1GtTriggerMask* m_l1GtTmVetoTech;
00161     unsigned long long m_l1GtTmVetoTechCacheID;
00162 
00163     std::vector<unsigned int> m_triggerMaskAlgoTrig;
00164     std::vector<unsigned int> m_triggerMaskTechTrig;
00165 
00166     std::vector<unsigned int> m_triggerMaskVetoAlgoTrig;
00167     std::vector<unsigned int> m_triggerMaskVetoTechTrig;
00168 
00169 private:
00170 
00171 
00172     L1GlobalTriggerPSB* m_gtPSB;
00173     L1GlobalTriggerGTL* m_gtGTL;
00174     L1GlobalTriggerFDL* m_gtFDL;
00175 
00177     edm::InputTag m_muGmtInputTag;
00178 
00180     edm::InputTag m_caloGctInputTag;
00181 
00183     edm::InputTag m_castorInputTag;
00184 
00186     std::vector<edm::InputTag> m_technicalTriggersInputTags;
00187 
00189     bool m_produceL1GtDaqRecord;
00190 
00192     bool m_produceL1GtEvmRecord;
00193 
00195     bool m_produceL1GtObjectMapRecord;
00196 
00198     bool m_writePsbL1GtDaqRecord;
00199 
00201     bool m_readTechnicalTriggerRecords;
00202 
00207     int m_emulateBxInEvent;
00208 
00212     std::vector<int> m_recordLength;
00213 
00216     unsigned int m_alternativeNrBxBoardDaq;
00217 
00220     unsigned int m_alternativeNrBxBoardEvm;
00221 
00223     int m_psBstLengthBytes;
00224 
00228     bool m_algorithmTriggersUnprescaled;
00229 
00232     bool m_algorithmTriggersUnmasked;
00233 
00237     bool m_technicalTriggersUnprescaled;
00238 
00241     bool m_technicalTriggersUnmasked;
00242 
00245     bool m_technicalTriggersVetoUnmasked;
00246 
00247 
00248 private:
00249 
00251     int m_verbosity;
00252     bool m_isDebugEnabled;
00253 
00254 };
00255 
00256 #endif /*GlobalTrigger_L1GlobalTrigger_h*/