Go to the documentation of this file.00001 #ifndef GlobalTriggerAnalyzer_L1GtDataEmulAnalyzer_h
00002 #define GlobalTriggerAnalyzer_L1GtDataEmulAnalyzer_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
00036 class L1GtfeWord;
00037 class L1GtFdlWord;
00038 class L1GtPsbWord;
00039 class L1TcsWord;
00040 class L1GtTriggerMenu;
00041 class L1GtTriggerMask;
00042
00043 class TH1F;
00044 class TH1D;
00045 class TH2D;
00046 class TTree;
00047
00048
00049
00050 class L1GtDataEmulAnalyzer : public edm::EDAnalyzer
00051 {
00052
00053 public:
00054 explicit L1GtDataEmulAnalyzer(const edm::ParameterSet&);
00055 ~L1GtDataEmulAnalyzer();
00056
00057 private:
00058
00059 virtual void beginJob();
00060
00062 virtual void compareGTFE(const edm::Event&, const edm::EventSetup&,
00063 const L1GtfeWord&, const L1GtfeWord&);
00064
00066 virtual void compareFDL(const edm::Event&, const edm::EventSetup&,
00067 const L1GtFdlWord&, const L1GtFdlWord&, const int);
00068
00070 virtual void comparePSB(const edm::Event&, const edm::EventSetup&,
00071 const L1GtPsbWord&, const L1GtPsbWord&);
00072
00074 virtual void compareTCS(const edm::Event&, const edm::EventSetup&,
00075 const L1TcsWord&, const L1TcsWord&);
00076
00078 virtual void compareDaqRecord(const edm::Event&, const edm::EventSetup&);
00079
00081 virtual void compareEvmRecord(const edm::Event&, const edm::EventSetup&);
00082
00085 virtual void compareGt_Gct(const edm::Event&, const edm::EventSetup&);
00086
00088 virtual void analyze(const edm::Event&, const edm::EventSetup&);
00089
00091 void bookHistograms();
00092
00094 virtual void endJob();
00095
00096 private:
00097
00099 edm::InputTag m_l1GtDataInputTag;
00100
00102 edm::InputTag m_l1GtEmulInputTag;
00103
00105 edm::InputTag m_l1GctDataInputTag;
00106
00107 private:
00108
00111 std::ostringstream m_myCoutStream;
00112
00114 int m_nrDataEventError;
00115 int m_nrEmulEventError;
00116
00117
00118
00120 const L1GtTriggerMenu* m_l1GtMenu;
00121 unsigned long long m_l1GtMenuCacheID;
00122
00124 const L1GtTriggerMask* m_l1GtTmAlgo;
00125 unsigned long long m_l1GtTmAlgoCacheID;
00126
00127 const L1GtTriggerMask* m_l1GtTmTech;
00128 unsigned long long m_l1GtTmTechCacheID;
00129
00130 std::vector<unsigned int> m_triggerMaskAlgoTrig;
00131 std::vector<unsigned int> m_triggerMaskTechTrig;
00132
00133 private:
00134
00136
00138 TH1F* m_gtfeDataEmul;
00139
00140 static const int TotalBxInEvent = 5;
00141
00143 TH1F* m_fdlDataEmul[TotalBxInEvent][2];
00144
00145 TH1F* m_fdlDataAlgoDecision[TotalBxInEvent][2];
00146 TH1F* m_fdlEmulAlgoDecision[TotalBxInEvent][2];
00147
00148 TH1F* m_fdlDataAlgoDecisionMask[TotalBxInEvent][2];
00149 TH1F* m_fdlEmulAlgoDecisionMask[TotalBxInEvent][2];
00150
00151 TH1F* m_fdlDataEmulAlgoDecision[TotalBxInEvent][2];
00152 TH1F* m_fdlDataEmulAlgoDecisionMask[TotalBxInEvent][2];
00153
00154 TH1F* m_fdlDataTechDecision[TotalBxInEvent][2];
00155 TH1F* m_fdlEmulTechDecision[TotalBxInEvent][2];
00156
00157 TH1F* m_fdlDataTechDecisionMask[TotalBxInEvent][2];
00158 TH1F* m_fdlEmulTechDecisionMask[TotalBxInEvent][2];
00159
00160 TH1F* m_fdlDataEmulTechDecision[TotalBxInEvent][2];
00161 TH1F* m_fdlDataEmulTechDecisionMask[TotalBxInEvent][2];
00162
00163 TH1F* m_fdlDataEmul_Err[2];
00164
00165 TH1F* m_fdlDataAlgoDecision_Err[2];
00166 TH1F* m_fdlEmulAlgoDecision_Err[2];
00167 TH1F* m_fdlDataEmulAlgoDecision_Err[2];
00168
00169 TH1F* m_fdlDataTechDecision_Err[2];
00170 TH1F* m_fdlEmulTechDecision_Err[2];
00171 TH1F* m_fdlDataEmulTechDecision_Err[2];
00172
00174
00175
00176 };
00177
00178 #endif