File indexing completed on 2023-03-17 10:56:29
0001 #ifndef DQM_SiStripCommissioningSources_SiStripCommissioningSource_H
0002 #define DQM_SiStripCommissioningSources_SiStripCommissioningSource_H
0003
0004 #include "FWCore/Utilities/interface/EDGetToken.h"
0005 #include "CalibFormats/SiStripObjects/interface/SiStripFecCabling.h"
0006 #include "CondFormats/SiStripObjects/interface/SiStripFedCabling.h"
0007 #include "CondFormats/DataRecord/interface/SiStripFedCablingRcd.h"
0008 #include "DataFormats/Common/interface/DetSetVector.h"
0009 #include "DataFormats/Common/interface/DetSetVectorNew.h"
0010 #include "DataFormats/SiStripCommon/interface/SiStripConstants.h"
0011 #include "DataFormats/SiStripCommon/interface/SiStripHistoTitle.h"
0012 #include "DataFormats/SiStripDigi/interface/SiStripDigi.h"
0013 #include "DataFormats/SiStripDigi/interface/SiStripRawDigi.h"
0014 #include "DataFormats/SiStripCluster/interface/SiStripCluster.h"
0015 #include "FWCore/Framework/interface/one/EDAnalyzer.h"
0016 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0017 #include "DQMServices/Core/interface/DQMStore.h"
0018 #include "CondFormats/DataRecord/interface/SiStripNoisesRcd.h"
0019 #include "CondFormats/DataRecord/interface/SiStripPedestalsRcd.h"
0020 #include "CondFormats/SiStripObjects/interface/SiStripNoises.h"
0021 #include "CondFormats/SiStripObjects/interface/SiStripPedestals.h"
0022 #include <string>
0023 #include <vector>
0024 #include <map>
0025 #include <cstdint>
0026
0027 class CommissioningTask;
0028 class FedChannelConnection;
0029 class SiStripEventSummary;
0030
0031
0032
0033
0034 class SiStripCommissioningSource : public edm::one::EDAnalyzer<edm::one::SharedResources, edm::one::WatchRuns> {
0035 public:
0036
0037 typedef std::map<unsigned int, CommissioningTask*> TaskMap;
0038 typedef std::vector<CommissioningTask*> VecOfTasks;
0039 typedef std::vector<VecOfTasks> VecOfVecOfTasks;
0040 typedef dqm::legacy::DQMStore DQMStore;
0041 typedef dqm::legacy::MonitorElement MonitorElement;
0042
0043 SiStripCommissioningSource(const edm::ParameterSet&);
0044
0045
0046 SiStripCommissioningSource() = delete;
0047
0048 ~SiStripCommissioningSource() override;
0049
0050 void beginRun(edm::Run const&, const edm::EventSetup&) override;
0051 void endRun(edm::Run const&, const edm::EventSetup&) override {}
0052 void analyze(const edm::Event&, const edm::EventSetup&) override;
0053 void endJob() override;
0054
0055 private:
0056
0057 DQMStore* const dqm(std::string method = "") const;
0058
0059
0060 void createRunNumber();
0061
0062
0063 void createTask(const SiStripEventSummary* const, const edm::EventSetup&);
0064
0065
0066 void createCablingTasks();
0067
0068
0069 void createTasks(sistrip::RunType, const edm::EventSetup&);
0070
0071
0072 void clearCablingTasks();
0073
0074
0075 void clearTasks();
0076
0077
0078 void fillCablingHistos(const SiStripEventSummary* const, const edm::DetSetVector<SiStripRawDigi>&);
0079
0080
0081 void fillHistos(const SiStripEventSummary* const,
0082 const edm::DetSetVector<SiStripRawDigi>&,
0083 const edm::DetSetVector<SiStripRawDigi>& = edm::DetSetVector<SiStripRawDigi>(),
0084 const edmNew::DetSetVector<SiStripCluster>& = edmNew::DetSetVector<SiStripCluster>());
0085
0086
0087 void remove();
0088
0089
0090 void directory(std::stringstream&, uint32_t run_number = 0);
0091
0092
0093
0094
0095
0096
0097
0098 DQMStore* dqm_;
0099
0100
0101 edm::ESGetToken<SiStripFedCabling, SiStripFedCablingRcd> fedCablingToken_;
0102 SiStripFedCabling* fedCabling_;
0103
0104
0105 SiStripFecCabling* fecCabling_;
0106
0107
0108 edm::EDGetTokenT<SiStripEventSummary> inputModuleSummaryToken_;
0109 edm::EDGetTokenT<edm::DetSetVector<SiStripRawDigi> > digiVirginRawToken_;
0110 edm::EDGetTokenT<edm::DetSetVector<SiStripRawDigi> > digiReorderedToken_;
0111 edm::EDGetTokenT<edm::DetSetVector<SiStripRawDigi> > digiScopeModeToken_;
0112 edm::EDGetTokenT<edm::DetSetVector<SiStripRawDigi> > digiFineDelaySelectionToken_;
0113 edm::EDGetTokenT<edmNew::DetSetVector<SiStripCluster> > clustersToken_;
0114
0115
0116 std::string inputModuleLabel_;
0117 std::string inputModuleLabelAlt_;
0118 std::string inputModuleLabelSummary_;
0119 std::string inputClusterLabel_;
0120
0121
0122 std::string filename_;
0123
0124
0125 uint32_t run_;
0126
0127
0128 std::string partitionName_;
0129
0130
0131 int32_t time_;
0132
0133
0134 bool isSpy_;
0135
0136
0137
0138
0139 std::string taskConfigurable_;
0140
0141
0142 sistrip::RunType task_;
0143
0144
0145 VecOfVecOfTasks tasks_;
0146
0147
0148 TaskMap cablingTasks_;
0149
0150
0151 bool tasksExist_;
0152
0153
0154 bool cablingTask_;
0155
0156
0157 int updateFreq_;
0158
0159
0160 std::string base_;
0161
0162
0163 std::string view_;
0164
0165
0166 edm::ParameterSet parameters_;
0167
0168 edm::ESGetToken<SiStripPedestals, SiStripPedestalsRcd> pedestalToken_;
0169 edm::ESGetToken<SiStripNoises, SiStripNoisesRcd> noiseToken_;
0170 };
0171
0172 #endif