Go to the documentation of this file.00001 #ifndef DQM_L1TMonitor_L1GtHwValidation_h
00002 #define DQM_L1TMonitor_L1GtHwValidation_h
00003
00021
00022 #include <memory>
00023 #include <string>
00024
00025
00026 #include "FWCore/Framework/interface/Frameworkfwd.h"
00027 #include "FWCore/Framework/interface/EDAnalyzer.h"
00028
00029 #include "FWCore/Framework/interface/Event.h"
00030 #include "FWCore/Framework/interface/MakerMacros.h"
00031
00032 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00033 #include "FWCore/Utilities/interface/InputTag.h"
00034
00035 #include "DQMServices/Core/interface/DQMStore.h"
00036 #include "DQMServices/Core/interface/MonitorElement.h"
00037
00038
00039 class L1GtfeWord;
00040 class L1GtFdlWord;
00041 class L1GtPsbWord;
00042 class L1TcsWord;
00043 class L1GtTriggerMenu;
00044 class L1GtPrescaleFactors;
00045 class L1GtTriggerMask;
00046
00047
00048
00049 class L1GtHwValidation: public edm::EDAnalyzer
00050 {
00051
00052 public:
00053 explicit L1GtHwValidation(const edm::ParameterSet&);
00054 virtual ~L1GtHwValidation();
00055
00056 private:
00057
00059 virtual void compareGTFE(const edm::Event&, const edm::EventSetup&,
00060 const L1GtfeWord&, const L1GtfeWord&, const int);
00061
00063 virtual void compareFDL(const edm::Event&, const edm::EventSetup&,
00064 const L1GtFdlWord&, const L1GtFdlWord&, const int);
00065
00067 virtual void comparePSB(const edm::Event&, const edm::EventSetup&,
00068 const L1GtPsbWord&, const L1GtPsbWord&);
00069
00071 virtual void compareTCS(const edm::Event&, const edm::EventSetup&,
00072 const L1TcsWord&, const L1TcsWord&);
00073
00075 virtual void compareDaqRecord(const edm::Event&, const edm::EventSetup&);
00076
00078 virtual void compareEvmRecord(const edm::Event&, const edm::EventSetup&);
00079
00082 virtual void compareGt_Gct(const edm::Event&, const edm::EventSetup&);
00083
00085 void bookHistograms();
00086
00087 virtual void beginJob();
00088 void beginRun(const edm::Run& run, const edm::EventSetup& c);
00089
00090 virtual void analyze(const edm::Event&, const edm::EventSetup&);
00091
00092 void endRun(const edm::Run& run, const edm::EventSetup& c);
00093 virtual void endJob();
00094
00095 private:
00096
00098 edm::InputTag m_l1GtDataDaqInputTag;
00099
00101 edm::InputTag m_l1GtDataEvmInputTag;
00102
00104 edm::InputTag m_l1GtEmulDaqInputTag;
00105
00107 edm::InputTag m_l1GtEmulEvmInputTag;
00108
00110 edm::InputTag m_l1GctDataInputTag;
00111
00112 private:
00113
00115 std::string m_dirName;
00116
00119 std::ostringstream m_myCoutStream;
00120
00122 int m_nrDataEventError;
00123 int m_nrEmulEventError;
00124
00125
00126
00128 const L1GtTriggerMenu* m_l1GtMenu;
00129 unsigned long long m_l1GtMenuCacheID;
00130
00132 const L1GtPrescaleFactors* m_l1GtPfAlgo;
00133 unsigned long long m_l1GtPfAlgoCacheID;
00134
00135 const L1GtPrescaleFactors* m_l1GtPfTech;
00136 unsigned long long m_l1GtPfTechCacheID;
00137
00138 const std::vector<std::vector<int> >* m_prescaleFactorsAlgoTrig;
00139 const std::vector<std::vector<int> >* m_prescaleFactorsTechTrig;
00140
00142 const L1GtTriggerMask* m_l1GtTmAlgo;
00143 unsigned long long m_l1GtTmAlgoCacheID;
00144
00145 const L1GtTriggerMask* m_l1GtTmTech;
00146 unsigned long long m_l1GtTmTechCacheID;
00147
00148 std::vector<unsigned int> m_triggerMaskAlgoTrig;
00149 std::vector<unsigned int> m_triggerMaskTechTrig;
00150
00151 private:
00153
00154 DQMStore* m_dbe;
00155
00156 private:
00157
00158 static const int TotalBxInEvent = 5;
00159 static const int NumberOfGtRecords = 2;
00160
00162
00164 MonitorElement* m_gtfeDataEmul[NumberOfGtRecords];
00165
00167 MonitorElement* m_fdlDataEmul[TotalBxInEvent][NumberOfGtRecords];
00168
00169 MonitorElement* m_fdlDataAlgoDecision[TotalBxInEvent][NumberOfGtRecords];
00170 MonitorElement* m_fdlDataAlgoDecisionPrescaled[TotalBxInEvent][NumberOfGtRecords];
00171 MonitorElement* m_fdlDataAlgoDecisionUnprescaled[TotalBxInEvent][NumberOfGtRecords];
00172 MonitorElement* m_fdlDataAlgoDecisionMask[TotalBxInEvent][NumberOfGtRecords];
00173 MonitorElement* m_fdlDataAlgoDecision_NoMatch[TotalBxInEvent][NumberOfGtRecords];
00174 MonitorElement* m_fdlDataAlgoDecisionPrescaled_NoMatch[TotalBxInEvent][NumberOfGtRecords];
00175 MonitorElement* m_fdlDataAlgoDecisionUnprescaled_NoMatch[TotalBxInEvent][NumberOfGtRecords];
00176 MonitorElement* m_fdlDataAlgoDecision_Err[NumberOfGtRecords];
00177
00178 MonitorElement* m_fdlEmulAlgoDecision[TotalBxInEvent][NumberOfGtRecords];
00179 MonitorElement* m_fdlEmulAlgoDecisionPrescaled[TotalBxInEvent][NumberOfGtRecords];
00180 MonitorElement* m_fdlEmulAlgoDecisionUnprescaled[TotalBxInEvent][NumberOfGtRecords];
00181 MonitorElement* m_fdlEmulAlgoDecisionMask[TotalBxInEvent][NumberOfGtRecords];
00182 MonitorElement* m_fdlEmulAlgoDecision_NoMatch[TotalBxInEvent][NumberOfGtRecords];
00183 MonitorElement* m_fdlEmulAlgoDecisionPrescaled_NoMatch[TotalBxInEvent][NumberOfGtRecords];
00184 MonitorElement* m_fdlEmulAlgoDecisionUnprescaled_NoMatch[TotalBxInEvent][NumberOfGtRecords];
00185 MonitorElement* m_fdlEmulAlgoDecision_Err[NumberOfGtRecords];
00186
00187
00188 MonitorElement* m_fdlDataEmulAlgoDecision[TotalBxInEvent][NumberOfGtRecords];
00189 MonitorElement* m_fdlDataEmulAlgoDecisionPrescaled[TotalBxInEvent][NumberOfGtRecords];
00190 MonitorElement* m_fdlDataEmulAlgoDecisionUnprescaled[TotalBxInEvent][NumberOfGtRecords];
00191 MonitorElement* m_fdlDataEmulAlgoDecisionMask[TotalBxInEvent][NumberOfGtRecords];
00192 MonitorElement* m_fdlDataEmulAlgoDecision_Err[NumberOfGtRecords];
00193 MonitorElement* m_fdlDataEmul_Err[NumberOfGtRecords];
00194
00195
00196 MonitorElement* m_fdlDataTechDecision[TotalBxInEvent][NumberOfGtRecords];
00197 MonitorElement* m_fdlDataTechDecisionMask[TotalBxInEvent][NumberOfGtRecords];
00198 MonitorElement* m_fdlDataTechDecision_Err[NumberOfGtRecords];
00199
00200 MonitorElement* m_fdlEmulTechDecision[TotalBxInEvent][NumberOfGtRecords];
00201 MonitorElement* m_fdlEmulTechDecisionMask[TotalBxInEvent][NumberOfGtRecords];
00202 MonitorElement* m_fdlEmulTechDecision_Err[NumberOfGtRecords];
00203
00204 MonitorElement* m_fdlDataEmulTechDecision[TotalBxInEvent][NumberOfGtRecords];
00205 MonitorElement* m_fdlDataEmulTechDecisionMask[TotalBxInEvent][NumberOfGtRecords];
00206 MonitorElement* m_fdlDataEmulTechDecision_Err[NumberOfGtRecords];
00207
00209
00211 int m_nrEvJob;
00212 int m_nrEvRun;
00213
00214 };
00215
00216 #endif