File indexing completed on 2024-04-06 12:07:46
0001 #ifndef L1TSTAGE2UGTTIMING_H
0002 #define L1TSTAGE2UGTTIMING_H
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012 #include <memory>
0013 #include <vector>
0014 #include <utility>
0015
0016 #include "FWCore/Framework/interface/Frameworkfwd.h"
0017 #include "FWCore/Framework/interface/Event.h"
0018 #include "FWCore/Framework/interface/MakerMacros.h"
0019 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0020 #include "FWCore/ServiceRegistry/interface/Service.h"
0021 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0022 #include "FWCore/Framework/interface/EventSetup.h"
0023
0024
0025 #include "DataFormats/L1TGlobal/interface/GlobalAlgBlk.h"
0026 #include "DataFormats/L1Trigger/interface/BXVector.h"
0027 #include "L1Trigger/L1TGlobal/interface/L1TGlobalUtil.h"
0028
0029
0030 #include "DQMServices/Core/interface/DQMEDAnalyzer.h"
0031 #include "DQMServices/Core/interface/DQMStore.h"
0032
0033
0034
0035
0036
0037 class L1TStage2uGTTiming : public DQMEDAnalyzer {
0038 public:
0039 L1TStage2uGTTiming(const edm::ParameterSet& ps);
0040 ~L1TStage2uGTTiming() override;
0041
0042 protected:
0043 void dqmBeginRun(const edm::Run&, const edm::EventSetup&) override;
0044 void bookHistograms(DQMStore::IBooker& ibooker, edm::Run const&, edm::EventSetup const&) override;
0045 void analyze(const edm::Event&, const edm::EventSetup&) override;
0046
0047 private:
0048
0049 edm::EDGetTokenT<GlobalAlgBlkBxCollection> l1tStage2uGtSource_;
0050
0051 std::string monitorDir_;
0052
0053 bool verbose_;
0054
0055
0056 std::shared_ptr<l1t::L1TGlobalUtil> gtUtil_;
0057
0058 int numAlgs_;
0059
0060
0061 int algoBitFirstBxInTrain_;
0062 int algoBitLastBxInTrain_;
0063 int algoBitIsoBx_;
0064 const std::string algoNameFirstBxInTrain_;
0065 const std::string algoNameLastBxInTrain_;
0066 const std::string algoNameIsoBx_;
0067
0068 unsigned int useAlgoDecision_;
0069
0070 std::vector<std::string> unprescaledAlgoShortList_;
0071 std::vector<std::string> prescaledAlgoShortList_;
0072
0073 std::vector<std::pair<std::string, int>> unprescaledAlgoBitName_;
0074 std::vector<std::pair<std::string, int>> prescaledAlgoBitName_;
0075
0076
0077 MonitorElement* first_collision_in_train_minus2_;
0078 MonitorElement* first_collision_in_train_minus1_;
0079 MonitorElement* first_collision_in_train_;
0080 MonitorElement* last_collision_in_train_;
0081 MonitorElement* isolated_collision_;
0082
0083 MonitorElement* den_first_collision_in_train_minus2_;
0084 MonitorElement* den_first_collision_in_train_minus1_;
0085 MonitorElement* den_first_collision_in_train_;
0086 MonitorElement* den_last_collision_in_train_;
0087 MonitorElement* den_isolated_collision_;
0088
0089
0090 MonitorElement* prescaled_algo_first_collision_in_train_;
0091 MonitorElement* unprescaled_algo_first_collision_in_train_;
0092 MonitorElement* prescaled_algo_isolated_collision_;
0093 MonitorElement* unprescaled_algo_isolated_collision_;
0094 MonitorElement* prescaled_algo_last_collision_in_train_;
0095 MonitorElement* unprescaled_algo_last_collision_in_train_;
0096
0097 MonitorElement* den_prescaled_algo_first_collision_in_train_;
0098 MonitorElement* den_unprescaled_algo_first_collision_in_train_;
0099 MonitorElement* den_prescaled_algo_isolated_collision_;
0100 MonitorElement* den_unprescaled_algo_isolated_collision_;
0101 MonitorElement* den_prescaled_algo_last_collision_in_train_;
0102 MonitorElement* den_unprescaled_algo_last_collision_in_train_;
0103 };
0104
0105 #endif