CMS 3D CMS Logo

/data/doxygen/doxygen-1.7.3/gen/CMSSW_4_2_8/src/DQM/L1TMonitor/interface/L1GtHwValidation.h

Go to the documentation of this file.
00001 #ifndef DQM_L1TMonitor_L1GtHwValidation_h
00002 #define DQM_L1TMonitor_L1GtHwValidation_h
00003 
00021 // system include files
00022 #include <memory>
00023 #include <string>
00024 
00025 // user include files
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 // forward declarations
00039 class L1GtfeWord;
00040 class L1GtFdlWord;
00041 class L1GtPsbWord;
00042 class L1TcsWord;
00043 class L1GtTriggerMenu;
00044 class L1GtPrescaleFactors;
00045 class L1GtTriggerMask;
00046 
00047 // class declaration
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     // cached stuff
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; // DAQ and EVM
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 /*DQM_L1TMonitor_L1GtHwValidation_h*/