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 
21 // system include files
22 #include <memory>
23 #include <string>
24 
25 // user include files
28 
31 
34 
37 
40 
41 // forward declarations
42 class L1GtfeWord;
43 class L1GtFdlWord;
44 class L1GtPsbWord;
45 class L1TcsWord;
46 class L1GtTriggerMenu;
48 class L1GtTriggerMask;
49 
50 // class declaration
51 
53 {
54 
55 public:
56  explicit L1GtHwValidation(const edm::ParameterSet&);
57  virtual ~L1GtHwValidation();
58 
59 private:
60 
62  virtual void compareGTFE(const edm::Event&, const edm::EventSetup&,
63  const L1GtfeWord&, const L1GtfeWord&, const int);
64 
66  virtual void compareFDL(const edm::Event&, const edm::EventSetup&,
67  const L1GtFdlWord&, const L1GtFdlWord&, const int);
68 
70  virtual void comparePSB(const edm::Event&, const edm::EventSetup&,
71  const L1GtPsbWord&, const L1GtPsbWord&);
72 
74  virtual void compareTCS(const edm::Event&, const edm::EventSetup&,
75  const L1TcsWord&, const L1TcsWord&);
76 
78  virtual void compareDaqRecord(const edm::Event&, const edm::EventSetup&);
79 
81  virtual void compareEvmRecord(const edm::Event&, const edm::EventSetup&);
82 
85  virtual void compareGt_Gct(const edm::Event&, const edm::EventSetup&);
86 
88  void bookHistograms();
89 
93 
97 
100  bool matchCondL1GtObject(const std::vector<L1GtObject>&, const L1GtObject&);
101 
103  void excludedAlgoList();
104 
106  bool excludedAlgo(const int&) const;
107 
108  virtual void beginJob();
109  void beginRun(const edm::Run& run, const edm::EventSetup& c);
110 
111  virtual void analyze(const edm::Event&, const edm::EventSetup&);
112 
113  void endRun(const edm::Run& run, const edm::EventSetup& c);
114  virtual void endJob();
115 
116 private:
117 
120 
123 
126 
129 
132 
135 
138  std::vector<edm::ParameterSet> m_excludeCondCategTypeObject;
139 
141  std::vector<std::string> m_excludeAlgoTrigByName;
142 
144  std::vector<int> m_excludeAlgoTrigByBit;
145 
146 
147 private:
148 
150  std::vector<L1GtConditionCategory> m_excludedCondCategory;
151 
153  std::vector<L1GtConditionType> m_excludedCondType;
154 
156  std::vector<L1GtObject> m_excludedL1GtObject;
157 
160  std::ostringstream m_myCoutStream;
161 
165 
166  // cached stuff
167 
170  unsigned long long m_l1GtMenuCacheID;
171 
174  unsigned long long m_l1GtPfAlgoCacheID;
175 
177  unsigned long long m_l1GtPfTechCacheID;
178 
179  const std::vector<std::vector<int> >* m_prescaleFactorsAlgoTrig;
180  const std::vector<std::vector<int> >* m_prescaleFactorsTechTrig;
181 
184  unsigned long long m_l1GtTmAlgoCacheID;
185 
187  unsigned long long m_l1GtTmTechCacheID;
188 
189  std::vector<unsigned int> m_triggerMaskAlgoTrig;
190  std::vector<unsigned int> m_triggerMaskTechTrig;
191 
192 private:
193 
195 
197 
198  bool m_agree;
203 
204 private:
205 
206  static const int TotalBxInEvent = 5;
207  static const int NumberOfGtRecords = 2; // DAQ and EVM
208 
210 
213 
216  //
228 
240 
241  //
249 
250  //
254 
258 
262 
264 
266 
267  // FIXME add PSB comparison
268 
271 
272 
276 
277 
278  std::vector<int> m_excludedAlgoList;
279 
280 
281 };
282 
283 #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]
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 &)
static const int TotalBxInEvent
MonitorElement * m_fdlEmulAlgoDecisionUnprescaled[TotalBxInEvent][NumberOfGtRecords]
const L1GtTriggerMenu * m_l1GtMenu
trigger menu
MonitorElement * m_fdlEmulAlgoDecision_Err[NumberOfGtRecords]
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]
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:36
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()