Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2023-03-17 10:55:13

0001 #ifndef L1TSTAGE2UGT_H
0002 #define L1TSTAGE2UGT_H
0003 
0004 /**
0005  * \class L1TStage2uGT
0006  *
0007  * Description: DQM for L1 Micro Global Trigger.
0008  *
0009  * \author Mateusz Zarucki 2016
0010  * \author J. Berryhill, I. Mikulec
0011  * \author Vasile Mihai Ghete - HEPHY Vienna
0012  *
0013  */
0014 
0015 // System include files
0016 #include <memory>
0017 #include <vector>
0018 #include <utility>
0019 // User include files
0020 #include "FWCore/Framework/interface/Frameworkfwd.h"
0021 #include "FWCore/Framework/interface/Event.h"
0022 #include "FWCore/Framework/interface/MakerMacros.h"
0023 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0024 #include "FWCore/ServiceRegistry/interface/Service.h"
0025 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0026 #include "FWCore/Framework/interface/EventSetup.h"
0027 
0028 // L1 trigger include files
0029 //#include "DataFormats/L1GlobalTrigger/interface/L1GlobalTriggerReadoutSetup.h"
0030 #include "DataFormats/L1TGlobal/interface/GlobalAlgBlk.h"
0031 #include "DataFormats/L1TGlobal/interface/GlobalExtBlk.h"
0032 #include "DataFormats/L1Trigger/interface/BXVector.h"
0033 #include "L1Trigger/L1TGlobal/interface/L1TGlobalUtil.h"
0034 
0035 // DQM include files
0036 #include "DQMServices/Core/interface/DQMEDAnalyzer.h"
0037 #include "DQMServices/Core/interface/DQMStore.h"
0038 
0039 //
0040 // Class declaration
0041 //
0042 
0043 class L1TStage2uGT : public DQMEDAnalyzer {
0044 public:
0045   L1TStage2uGT(const edm::ParameterSet& ps);  // constructor
0046   ~L1TStage2uGT() override;                   // destructor
0047 
0048 protected:
0049   void dqmBeginRun(const edm::Run&, const edm::EventSetup&) override;
0050   void bookHistograms(DQMStore::IBooker& ibooker, edm::Run const&, edm::EventSetup const&) override;
0051   void analyze(const edm::Event&, const edm::EventSetup&) override;
0052 
0053 private:
0054   // Input parameters
0055   edm::EDGetTokenT<GlobalAlgBlkBxCollection> l1tStage2uGtSource_;  // input tag for L1 uGT DAQ readout record
0056 
0057   std::string monitorDir_;  // histogram folder for L1 uGT plots
0058 
0059   bool verbose_;  // verbosity switch
0060 
0061   // To get the number of algorithms
0062   std::shared_ptr<l1t::L1TGlobalUtil> gtUtil_;
0063   int numAlgs_;  // number of algorithms
0064 
0065   // Algorithm bits
0066   MonitorElement* algoBits_before_bxmask_;
0067   MonitorElement* algoBits_before_prescale_;
0068   MonitorElement* algoBits_after_prescale_;
0069 
0070   // Algorithm bits correlation
0071   MonitorElement* algoBits_before_bxmask_corr_;
0072   MonitorElement* algoBits_before_prescale_corr_;
0073   MonitorElement* algoBits_after_prescale_corr_;
0074 
0075   // Algorithm bits vs global BX number
0076   MonitorElement* algoBits_before_bxmask_bx_global_;
0077   MonitorElement* algoBits_before_prescale_bx_global_;
0078   MonitorElement* algoBits_after_prescale_bx_global_;
0079 
0080   // Algorithm bits vs BX number in event
0081   MonitorElement* algoBits_before_bxmask_bx_inEvt_;
0082   MonitorElement* algoBits_before_prescale_bx_inEvt_;
0083   MonitorElement* algoBits_after_prescale_bx_inEvt_;
0084 
0085   // Algorithm bits vs LS
0086   MonitorElement* algoBits_before_bxmask_lumi_;
0087   MonitorElement* algoBits_before_prescale_lumi_;
0088   MonitorElement* algoBits_after_prescale_lumi_;
0089 
0090   // Prescale factor index
0091   MonitorElement* prescaleFactorSet_;
0092 };
0093 
0094 #endif