Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:10:45

0001 #ifndef EventFilter_L1GlobalTriggerRawToDigi_L1GlobalTriggerRecordProducer_h
0002 #define EventFilter_L1GlobalTriggerRawToDigi_L1GlobalTriggerRecordProducer_h
0003 
0004 /**
0005  * \class L1GlobalTriggerRecordProducer
0006  * 
0007  * 
0008  * Description: L1GlobalTriggerRecord producer.  
0009  *
0010  * Implementation:
0011  *    <TODO: enter implementation details>
0012  *   
0013  * \author: Vasile Mihai Ghete - HEPHY Vienna 
0014  * 
0015  *
0016  */
0017 
0018 // system include files
0019 #include <memory>
0020 
0021 // user include files
0022 #include "FWCore/Framework/interface/Frameworkfwd.h"
0023 #include "FWCore/Framework/interface/stream/EDProducer.h"
0024 
0025 #include "FWCore/Framework/interface/Event.h"
0026 #include "FWCore/Framework/interface/MakerMacros.h"
0027 
0028 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0029 #include "FWCore/Utilities/interface/InputTag.h"
0030 #include "FWCore/Utilities/interface/ESGetToken.h"
0031 
0032 #include "DataFormats/L1GlobalTrigger/interface/L1GlobalTriggerReadoutRecord.h"
0033 #include "CondFormats/L1TObjects/interface/L1GtTriggerMask.h"
0034 #include "CondFormats/DataRecord/interface/L1GtTriggerMaskAlgoTrigRcd.h"
0035 #include "CondFormats/DataRecord/interface/L1GtTriggerMaskTechTrigRcd.h"
0036 
0037 // forward declarations
0038 class L1GtTriggerMask;
0039 
0040 // class declaration
0041 class L1GlobalTriggerRecordProducer : public edm::stream::EDProducer<> {
0042 public:
0043   /// constructor(s)
0044   explicit L1GlobalTriggerRecordProducer(const edm::ParameterSet&);
0045 
0046   /// destructor
0047   ~L1GlobalTriggerRecordProducer() override;
0048 
0049 private:
0050   void produce(edm::Event&, const edm::EventSetup&) override;
0051 
0052 private:
0053   /// cached stuff
0054 
0055   /// trigger masks
0056   const L1GtTriggerMask* m_l1GtTmAlgo;
0057   unsigned long long m_l1GtTmAlgoCacheID;
0058 
0059   const L1GtTriggerMask* m_l1GtTmTech;
0060   unsigned long long m_l1GtTmTechCacheID;
0061 
0062   std::vector<unsigned int> m_triggerMaskAlgoTrig;
0063   std::vector<unsigned int> m_triggerMaskTechTrig;
0064 
0065 private:
0066   /// InputTag for the L1 Global Trigger DAQ readout record
0067   edm::EDGetTokenT<L1GlobalTriggerReadoutRecord> m_l1GtReadoutRecordTag;
0068   /// EventSetup Token for l1GtTriggerMaskAlgo
0069   edm::ESGetToken<L1GtTriggerMask, L1GtTriggerMaskAlgoTrigRcd> m_l1GtTmAlgoToken;
0070   ///  EventSetupToken for L1GtTriggerMaskTech
0071   edm::ESGetToken<L1GtTriggerMask, L1GtTriggerMaskTechTrigRcd> m_l1GtTmTechToken;
0072 };
0073 
0074 #endif  // EventFilter_L1GlobalTriggerRawToDigi_L1GlobalTriggerRecordProducer_h