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  virtual ~L1GtHwValidation();
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  virtual void analyze(const edm::Event&, const edm::EventSetup&) override;
112 
113 protected:
114 
115  virtual void bookHistograms(DQMStore::IBooker &ibooker, const edm::Run&, const edm::EventSetup&) override;
116  virtual void beginLuminosityBlock(const edm::LuminosityBlock&, const edm::EventSetup&) override;
117  virtual void dqmBeginRun(const edm::Run&, const edm::EventSetup&) override;
118  //virtual void analyze(DQMStore::IBooker &ibooker, const edm::Event&, const edm::EventSetup&);
119 
120 private:
121 
124 
127 
130 
133 
136 
139 
142  std::vector<edm::ParameterSet> m_excludeCondCategTypeObject;
143 
145  std::vector<std::string> m_excludeAlgoTrigByName;
146 
148  std::vector<int> m_excludeAlgoTrigByBit;
149 
150 
151 private:
152 
154  std::vector<L1GtConditionCategory> m_excludedCondCategory;
155 
157  std::vector<L1GtConditionType> m_excludedCondType;
158 
160  std::vector<L1GtObject> m_excludedL1GtObject;
161 
164  std::ostringstream m_myCoutStream;
165 
169 
170  // cached stuff
171 
174  unsigned long long m_l1GtMenuCacheID;
175 
178  unsigned long long m_l1GtPfAlgoCacheID;
179 
181  unsigned long long m_l1GtPfTechCacheID;
182 
183  const std::vector<std::vector<int> >* m_prescaleFactorsAlgoTrig;
184  const std::vector<std::vector<int> >* m_prescaleFactorsTechTrig;
185 
188  unsigned long long m_l1GtTmAlgoCacheID;
189 
191  unsigned long long m_l1GtTmTechCacheID;
192 
193  std::vector<unsigned int> m_triggerMaskAlgoTrig;
194  std::vector<unsigned int> m_triggerMaskTechTrig;
195 
196 private:
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 &)
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
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
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]
virtual void beginLuminosityBlock(const edm::LuminosityBlock &, const edm::EventSetup &) override
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 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]
virtual 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]
virtual 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:42
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]