test
CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
L1GtHwValidation.h
Go to the documentation of this file.
1 #ifndef DQM_L1TMonitor_L1GtHwValidation_h
2 #define DQM_L1TMonitor_L1GtHwValidation_h
3 
20 // system include files
21 #include <memory>
22 #include <string>
23 
24 // user include files
27 
30 
33 
36 
39 
42 
43 // forward declarations
44 class L1GtfeWord;
45 class L1GtFdlWord;
46 class L1GtPsbWord;
47 class L1TcsWord;
48 class L1GtTriggerMenu;
50 class L1GtTriggerMask;
51 
52 // class declaration
53 
55 {
56 
57 public:
58  explicit L1GtHwValidation(const edm::ParameterSet&);
59  virtual ~L1GtHwValidation();
60 
61 private:
62 
64  virtual void compareGTFE(const edm::Event&, const edm::EventSetup&,
65  const L1GtfeWord&, const L1GtfeWord&, const int);
66 
68  virtual void compareFDL(const edm::Event&, const edm::EventSetup&,
69  const L1GtFdlWord&, const L1GtFdlWord&, const int);
70 
72  virtual void comparePSB(const edm::Event&, const edm::EventSetup&,
73  const L1GtPsbWord&, const L1GtPsbWord&);
74 
76  virtual void compareTCS(const edm::Event&, const edm::EventSetup&,
77  const L1TcsWord&, const L1TcsWord&);
78 
80  virtual void compareDaqRecord(const edm::Event&, const edm::EventSetup&);
81 
83  virtual void compareEvmRecord(const edm::Event&, const edm::EventSetup&);
84 
87  virtual void compareGt_Gct(const edm::Event&, const edm::EventSetup&);
88 
90  void bookHistograms();
91 
95 
99 
102  bool matchCondL1GtObject(const std::vector<L1GtObject>&, const L1GtObject&);
103 
105  void excludedAlgoList();
106 
108  bool excludedAlgo(const int&) const;
109 
110  virtual void beginJob();
111  void beginRun(const edm::Run& run, const edm::EventSetup& c);
112 
113  virtual void analyze(const edm::Event&, const edm::EventSetup&);
114 
115  void endRun(const edm::Run& run, const edm::EventSetup& c);
116  virtual void endJob();
117 
118 private:
119 
122 
125 
128 
131 
134 
137 
140  std::vector<edm::ParameterSet> m_excludeCondCategTypeObject;
141 
143  std::vector<std::string> m_excludeAlgoTrigByName;
144 
146  std::vector<int> m_excludeAlgoTrigByBit;
147 
148 
149 private:
150 
152  std::vector<L1GtConditionCategory> m_excludedCondCategory;
153 
155  std::vector<L1GtConditionType> m_excludedCondType;
156 
158  std::vector<L1GtObject> m_excludedL1GtObject;
159 
162  std::ostringstream m_myCoutStream;
163 
167 
168  // cached stuff
169 
172  unsigned long long m_l1GtMenuCacheID;
173 
176  unsigned long long m_l1GtPfAlgoCacheID;
177 
179  unsigned long long m_l1GtPfTechCacheID;
180 
181  const std::vector<std::vector<int> >* m_prescaleFactorsAlgoTrig;
182  const std::vector<std::vector<int> >* m_prescaleFactorsTechTrig;
183 
186  unsigned long long m_l1GtTmAlgoCacheID;
187 
189  unsigned long long m_l1GtTmTechCacheID;
190 
191  std::vector<unsigned int> m_triggerMaskAlgoTrig;
192  std::vector<unsigned int> m_triggerMaskTechTrig;
193 
194 private:
195 
197 
199 
200  bool m_agree;
205 
206 private:
207 
208  static const int TotalBxInEvent = 5;
209  static const int NumberOfGtRecords = 2; // DAQ and EVM
210 
212 
215 
218  //
230 
242 
243  //
251 
252  //
256 
260 
264 
266 
268 
269  // FIXME add PSB comparison
270 
273 
274 
278 
279 
280  std::vector<int> m_excludedAlgoList;
281 
282  //define Token(-s)
287 
288 };
289 
290 #endif /*DQM_L1TMonitor_L1GtHwValidation_h*/
MonitorElement * m_fdlDataEmulAlgoDecision[TotalBxInEvent][NumberOfGtRecords]
MonitorElement * m_fdlDataAlgoDecisionPrescaledMask_NoMatch[TotalBxInEvent][NumberOfGtRecords]
MonitorElement * m_fdlEmulAlgoDecisionUnprescaled_NoMatch[TotalBxInEvent][NumberOfGtRecords]
const L1GtTriggerMask * m_l1GtTmTech
MonitorElement * m_fdlDataAlgoDecision_Err[NumberOfGtRecords]
edm::EDGetTokenT< L1GlobalTriggerEvmReadoutRecord > m_l1GtDataEvmInputToken_
virtual void compareGTFE(const edm::Event &, const edm::EventSetup &, const L1GtfeWord &, const L1GtfeWord &, const int)
compare the GTFE board
bool matchCondCategory(const L1GtConditionCategory &, const L1GtConditionCategory &)
virtual void analyze(const edm::Event &, const edm::EventSetup &)
virtual void comparePSB(const edm::Event &, const edm::EventSetup &, const L1GtPsbWord &, const L1GtPsbWord &)
compare the PSB board
const std::vector< std::vector< int > > * m_prescaleFactorsAlgoTrig
MonitorElement * m_gtErrorFlag
PSB.
MonitorElement * m_fdlEmulTechDecision[TotalBxInEvent][NumberOfGtRecords]
std::vector< L1GtConditionType > m_excludedCondType
excluded condition types
MonitorElement * m_fdlDataEmulAlgoDecisionPrescaled[TotalBxInEvent][NumberOfGtRecords]
MonitorElement * m_fdlDataEmulAlgoDecisionUnprescaledAllowed[TotalBxInEvent][NumberOfGtRecords]
void excludedAlgoList()
exclude from comparison some bits with known disagreement - bit list
void bookHistograms()
book all histograms for the module
MonitorElement * m_fdlDataAlgoDecisionUnprescaledMask_NoMatch[TotalBxInEvent][NumberOfGtRecords]
edm::InputTag m_l1GtEmulEvmInputTag
input tag for the L1 GT emulator EVM record
MonitorElement * m_fdlEmulAlgoDecisionMask[TotalBxInEvent][NumberOfGtRecords]
L1GtConditionType
MonitorElement * m_fdlDataAlgoDecisionUnprescaled[TotalBxInEvent][NumberOfGtRecords]
unsigned long long m_l1GtMenuCacheID
const L1GtPrescaleFactors * m_l1GtPfTech
MonitorElement * m_fdlEmulAlgoDecisionPrescaledMask_NoMatch[TotalBxInEvent][NumberOfGtRecords]
virtual void compareFDL(const edm::Event &, const edm::EventSetup &, const L1GtFdlWord &, const L1GtFdlWord &, const int)
compare the FDL board
bool matchCondL1GtObject(const std::vector< L1GtObject > &, const L1GtObject &)
std::vector< int > m_excludeAlgoTrigByBit
exclude algorithm triggers from comparison data - emulator by algorithm bit number ...
virtual void compareTCS(const edm::Event &, const edm::EventSetup &, const L1TcsWord &, const L1TcsWord &)
compare the TCS board
DQMStore * m_dbe
internal members
unsigned long long m_l1GtTmAlgoCacheID
MonitorElement * m_fdlEmulTechDecisionMask[TotalBxInEvent][NumberOfGtRecords]
MonitorElement * m_fdlDataAlgoDecisionPrescaled[TotalBxInEvent][NumberOfGtRecords]
MonitorElement * m_fdlDataAlgoDecisionMask_NoMatch[TotalBxInEvent][NumberOfGtRecords]
MonitorElement * m_gtfeDataEmul[NumberOfGtRecords]
histograms
MonitorElement * m_fdlDataAlgoDecisionUnprescaled_NoMatch[TotalBxInEvent][NumberOfGtRecords]
void beginRun(const edm::Run &run, const edm::EventSetup &c)
std::vector< unsigned int > m_triggerMaskTechTrig
virtual ~L1GtHwValidation()
MonitorElement * m_fdlDataEmulAlgoDecisionMask[TotalBxInEvent][NumberOfGtRecords]
std::vector< L1GtObject > m_excludedL1GtObject
excluded L1 GT objects
MonitorElement * m_fdlDataAlgoDecisionPrescaled_NoMatch[TotalBxInEvent][NumberOfGtRecords]
std::vector< std::string > m_excludeAlgoTrigByName
exclude algorithm triggers from comparison data - emulator by algorithm name
MonitorElement * m_excludedAlgorithmsAgreement
const L1GtTriggerMask * m_l1GtTmAlgo
trigger masks
edm::InputTag m_l1GtEmulDaqInputTag
input tag for the L1 GT emulator DAQ record
MonitorElement * m_fdlDataEmulTechDecision[TotalBxInEvent][NumberOfGtRecords]
MonitorElement * m_fdlEmulAlgoDecisionUnprescaledMask_NoMatch[TotalBxInEvent][NumberOfGtRecords]
void endRun(const edm::Run &run, const edm::EventSetup &c)
L1GtConditionCategory
condition categories
virtual void compareEvmRecord(const edm::Event &, const edm::EventSetup &)
L1 GT EVM record comparison.
MonitorElement * m_fdlDataTechDecision_Err[NumberOfGtRecords]
bool matchCondType(const L1GtConditionType &, const L1GtConditionType &)
MonitorElement * m_fdlDataAlgoDecision[TotalBxInEvent][NumberOfGtRecords]
L1GtHwValidation(const edm::ParameterSet &)
edm::EDGetTokenT< L1GlobalTriggerReadoutRecord > m_l1GtDataDaqInputToken_
static const int TotalBxInEvent
MonitorElement * m_fdlEmulAlgoDecisionUnprescaled[TotalBxInEvent][NumberOfGtRecords]
const L1GtTriggerMenu * m_l1GtMenu
trigger menu
MonitorElement * m_fdlEmulAlgoDecision_Err[NumberOfGtRecords]
edm::EDGetTokenT< L1GlobalTriggerEvmReadoutRecord > m_l1GtEmulEvmInputToken_
unsigned long long m_l1GtPfAlgoCacheID
MonitorElement * m_fdlDataTechDecisionMask[TotalBxInEvent][NumberOfGtRecords]
edm::InputTag m_l1GtDataDaqInputTag
input tag for the L1 GT hardware DAQ record
MonitorElement * m_fdlDataAlgoDecision_NoMatch[TotalBxInEvent][NumberOfGtRecords]
MonitorElement * m_fdlDataEmul[TotalBxInEvent][NumberOfGtRecords]
FDL (0 for DAQ, 1 for EVM record)
MonitorElement * m_fdlDataEmul_Err[NumberOfGtRecords]
edm::EDGetTokenT< L1GlobalTriggerReadoutRecord > m_l1GtEmulDaqInputToken_
std::vector< L1GtConditionCategory > m_excludedCondCategory
excluded condition categories
std::ostringstream m_myCoutStream
virtual void beginJob()
int m_nrDataEventError
counters
MonitorElement * m_fdlEmulAlgoDecisionMask_NoMatch[TotalBxInEvent][NumberOfGtRecords]
unsigned long long m_l1GtTmTechCacheID
virtual void compareGt_Gct(const edm::Event &, const edm::EventSetup &)
MonitorElement * m_fdlEmulTechDecision_Err[NumberOfGtRecords]
edm::InputTag m_l1GctDataInputTag
input tag for the L1 GCT hardware record
std::vector< edm::ParameterSet > m_excludeCondCategTypeObject
MonitorElement * m_fdlDataEmulAlgoDecision_Err[NumberOfGtRecords]
static const int NumberOfGtRecords
MonitorElement * m_fdlDataTechDecision[TotalBxInEvent][NumberOfGtRecords]
MonitorElement * m_fdlEmulAlgoDecision[TotalBxInEvent][NumberOfGtRecords]
const std::vector< std::vector< int > > * m_prescaleFactorsTechTrig
MonitorElement * m_fdlEmulAlgoDecision_NoMatch[TotalBxInEvent][NumberOfGtRecords]
MonitorElement * m_fdlDataEmulTechDecisionMask[TotalBxInEvent][NumberOfGtRecords]
MonitorElement * m_fdlDataAlgoDecisionMask[TotalBxInEvent][NumberOfGtRecords]
virtual void compareDaqRecord(const edm::Event &, const edm::EventSetup &)
L1 GT DAQ record comparison.
std::vector< unsigned int > m_triggerMaskAlgoTrig
std::vector< int > m_excludedAlgoList
MonitorElement * m_fdlDataEmulTechDecision_Err[NumberOfGtRecords]
MonitorElement * m_fdlEmulAlgoDecisionPrescaled_NoMatch[TotalBxInEvent][NumberOfGtRecords]
const L1GtPrescaleFactors * m_l1GtPfAlgo
prescale factors
edm::InputTag m_l1GtDataEvmInputTag
input tag for the L1 GT hardware EVM record
Definition: Run.h:41
unsigned long long m_l1GtPfTechCacheID
MonitorElement * m_fdlEmulAlgoDecisionPrescaled[TotalBxInEvent][NumberOfGtRecords]
bool excludedAlgo(const int &) const
exclusion status for algorithm with bit i
std::string m_dirName
directory name for L1Extra plots
MonitorElement * m_fdlDataEmulAlgoDecisionUnprescaled[TotalBxInEvent][NumberOfGtRecords]
virtual void endJob()