File indexing completed on 2024-04-06 12:09:34
0001 #ifndef DQMOffline_L1Trigger_L1TSync_Offline_h
0002 #define DQMOffline_L1Trigger_L1TSync_Offline_h
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026 #include <memory>
0027 #include <unistd.h>
0028
0029
0030 #include "DQMServices/Core/interface/DQMOneEDAnalyzer.h"
0031 #include "FWCore/Framework/interface/Frameworkfwd.h"
0032 #include "FWCore/Framework/interface/Event.h"
0033 #include "FWCore/Framework/interface/LuminosityBlock.h"
0034 #include "FWCore/Framework/interface/MakerMacros.h"
0035
0036 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0037
0038 #include "DQMServices/Core/interface/DQMStore.h"
0039 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0040
0041
0042 #include "DQM/L1TMonitor/interface/L1TMenuHelper.h"
0043 #include "DQMOffline/L1Trigger/interface/L1TBeamConfiguration.h"
0044 #include "DataFormats/L1GlobalTrigger/interface/L1GlobalTriggerReadoutRecord.h"
0045 #include "DataFormats/L1GlobalTrigger/interface/L1GlobalTriggerEvmReadoutRecord.h"
0046
0047 #include "DQMServices/Core/interface/DQMEDAnalyzer.h"
0048
0049 #include "L1Trigger/GlobalTriggerAnalyzer/interface/L1GtUtils.h"
0050
0051 #include <TString.h>
0052
0053 #include <iostream>
0054 #include <fstream>
0055 #include <string>
0056 #include <vector>
0057
0058
0059
0060
0061 namespace ltso {
0062 struct LSValid {
0063 bool lsIsValid = true;
0064 };
0065 }
0066 class L1TSync_Offline : public DQMOneEDAnalyzer<edm::LuminosityBlockCache<ltso::LSValid>> {
0067 public:
0068 enum BeamMode {
0069 NOMODE = 1,
0070 SETUP = 2,
0071 INJPILOT = 3,
0072 INJINTR = 4,
0073 INJNOMN = 5,
0074 PRERAMP = 6,
0075 RAMP = 7,
0076 FLATTOP = 8,
0077 QUEEZE = 9,
0078 ADJUST = 10,
0079 STABLE = 11,
0080 UNSTABLE = 12,
0081 BEAMDUMP = 13,
0082 RAMPDOWN = 14,
0083 RECOVERY = 15,
0084 INJDUMP = 16,
0085 CIRCDUMP = 17,
0086 ABORT = 18,
0087 CYCLING = 19,
0088 WBDUMP = 20,
0089 NOBEAM = 21
0090 };
0091
0092 enum Errors {
0093 UNKNOWN = 1,
0094 WARNING_DB_CONN_FAILED = 2,
0095 WARNING_DB_QUERY_FAILED = 3,
0096 WARNING_DB_INCORRECT_NBUNCHES = 4,
0097 ERROR_UNABLE_RETRIVE_PRODUCT = 5,
0098 ERROR_TRIGGERALIAS_NOTVALID = 6,
0099 ERROR_LSBLOCK_NOTVALID = 7
0100 };
0101
0102 public:
0103
0104 L1TSync_Offline(const edm::ParameterSet& ps);
0105
0106 ~L1TSync_Offline() override;
0107
0108 protected:
0109 void analyze(const edm::Event& e, const edm::EventSetup& c) override;
0110 std::shared_ptr<ltso::LSValid> globalBeginLuminosityBlock(edm::LuminosityBlock const& lumiBlock,
0111 edm::EventSetup const& c) const final;
0112 void globalEndLuminosityBlock(edm::LuminosityBlock const& lumiBlock, edm::EventSetup const& c) final {}
0113 void dqmBeginRun(const edm::Run&, const edm::EventSetup&) override;
0114 void bookHistograms(DQMStore::IBooker& ibooker, const edm::Run&, const edm::EventSetup&) override;
0115
0116
0117 private:
0118 void getBeamConfOffline(const edm::Event&);
0119
0120
0121
0122
0123 private:
0124
0125 edm::ParameterSet m_parameters;
0126
0127
0128 bool m_verbose;
0129
0130
0131 int m_refPrescaleSet;
0132
0133 unsigned int m_lhcFill;
0134
0135
0136 L1TBeamConfiguration m_beamConfig;
0137
0138
0139 const std::vector<std::vector<int>>* ListsPrescaleFactors;
0140
0141
0142 std::map<TString, int> m_algoBit;
0143 std::map<TString, unsigned int> m_certFirstLS;
0144 std::map<TString, unsigned int> m_certLastLS;
0145 std::map<TString, MonitorElement*> m_algoCertification;
0146 std::map<TString, MonitorElement*> m_algoVsBunchStructure;
0147 std::map<std::string, bool> m_algoAutoSelect;
0148 std::map<std::string, std::string> m_selectedTriggers;
0149
0150
0151 MonitorElement* m_ErrorMonitor;
0152
0153
0154 edm::EDGetTokenT<L1GlobalTriggerEvmReadoutRecord> m_l1GtEvmSource;
0155 edm::EDGetTokenT<L1GlobalTriggerReadoutRecord> m_l1GtDataDaqInputTag;
0156 const edm::ESGetToken<L1GtTriggerMenu, L1GtTriggerMenuRcd> m_menuToken;
0157 L1TMenuHelper::Tokens m_helperTokens;
0158
0159 L1GtUtils m_l1GtUtils;
0160 };
0161
0162 #endif