CMS 3D CMS Logo

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 
44 
45 // forward declarations
46 class L1GtfeWord;
47 class L1GtFdlWord;
48 class L1GtPsbWord;
49 class L1TcsWord;
50 class L1GtTriggerMenu;
52 class L1GtTriggerMask;
53 
54 // class declaration
55 
57 
58 public:
59  explicit L1GtHwValidation(const edm::ParameterSet&);
60  ~L1GtHwValidation() override;
61 
62 private:
63 
65  virtual void compareGTFE(const edm::Event&, const edm::EventSetup&,
66  const L1GtfeWord&, const L1GtfeWord&, const int);
67 
69  virtual void compareFDL(const edm::Event&, const edm::EventSetup&,
70  const L1GtFdlWord&, const L1GtFdlWord&, const int);
71 
73  virtual void comparePSB(const edm::Event&, const edm::EventSetup&,
74  const L1GtPsbWord&, const L1GtPsbWord&);
75 
77  virtual void compareTCS(const edm::Event&, const edm::EventSetup&,
78  const L1TcsWord&, const L1TcsWord&);
79 
81  virtual void compareDaqRecord(const edm::Event&, const edm::EventSetup&);
82 
84  virtual void compareEvmRecord(const edm::Event&, const edm::EventSetup&);
85 
88  virtual void compareGt_Gct(const edm::Event&, const edm::EventSetup&);
89 
91  //void bookhistograms(DQMStore::IBooker &ibooker);
92 
96 
100 
103  bool matchCondL1GtObject(const std::vector<L1GtObject>&, const L1GtObject&);
104 
106  void excludedAlgoList();
107 
109  bool excludedAlgo(const int&) const;
110 
111  void analyze(const edm::Event&, const edm::EventSetup&) override;
112 
113 protected:
114 
115  void bookHistograms(DQMStore::IBooker &ibooker, const edm::Run&, const edm::EventSetup&) override;
116  void dqmBeginRun(const edm::Run&, const edm::EventSetup&) override;
117  //virtual void analyze(DQMStore::IBooker &ibooker, const edm::Event&, const edm::EventSetup&);
118 
119 private:
120 
123 
126 
129 
132 
135 
138 
141  std::vector<edm::ParameterSet> m_excludeCondCategTypeObject;
142 
144  std::vector<std::string> m_excludeAlgoTrigByName;
145 
147  std::vector<int> m_excludeAlgoTrigByBit;
148 
149 
150 private:
151 
153  std::vector<L1GtConditionCategory> m_excludedCondCategory;
154 
156  std::vector<L1GtConditionType> m_excludedCondType;
157 
159  std::vector<L1GtObject> m_excludedL1GtObject;
160 
163  std::ostringstream m_myCoutStream;
164 
168 
169  // cached stuff
170 
173  unsigned long long m_l1GtMenuCacheID;
174 
177  unsigned long long m_l1GtPfAlgoCacheID;
178 
180  unsigned long long m_l1GtPfTechCacheID;
181 
182  const std::vector<std::vector<int> >* m_prescaleFactorsAlgoTrig;
183  const std::vector<std::vector<int> >* m_prescaleFactorsTechTrig;
184 
187  unsigned long long m_l1GtTmAlgoCacheID;
188 
190  unsigned long long m_l1GtTmTechCacheID;
191 
192  std::vector<unsigned int> m_triggerMaskAlgoTrig;
193  std::vector<unsigned int> m_triggerMaskTechTrig;
194 
195 private:
196 
198 
199  bool m_agree;
204 
205 private:
206 
207  static const int TotalBxInEvent = 5;
208  static const int NumberOfGtRecords = 2; // DAQ and EVM
209 
211 
214 
217  //
229 
241 
242  //
250 
251  //
255 
259 
263 
265 
267 
268  // FIXME add PSB comparison
269 
272 
273 
277 
278 
279  std::vector<int> m_excludedAlgoList;
280 
281  //define Token(-s)
286 
287 };
288 
289 #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
~L1GtHwValidation() override
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 &)
book all histograms for the module
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
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
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]
std::vector< unsigned int > m_triggerMaskTechTrig
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
bool m_agree
internal members
edm::InputTag m_l1GtEmulDaqInputTag
input tag for the L1 GT emulator DAQ record
MonitorElement * m_fdlDataEmulTechDecision[TotalBxInEvent][NumberOfGtRecords]
MonitorElement * m_fdlEmulAlgoDecisionUnprescaledMask_NoMatch[TotalBxInEvent][NumberOfGtRecords]
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
void bookHistograms(DQMStore::IBooker &ibooker, const edm::Run &, const edm::EventSetup &) override
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]
void dqmBeginRun(const edm::Run &, const edm::EventSetup &) override
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]
void analyze(const edm::Event &, const edm::EventSetup &) override
const L1GtPrescaleFactors * m_l1GtPfAlgo
prescale factors
edm::InputTag m_l1GtDataEvmInputTag
input tag for the L1 GT hardware EVM record
Definition: Run.h:44
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]