CMS 3D CMS Logo

DTDataIntegrityROSOffline.h
Go to the documentation of this file.
1 #ifndef DTDataIntegrityROSOffline_H
2 #define DTDataIntegrityROSOffline_H
3 
14 
18 
21 
23 
24 #include <fstream>
25 #include <map>
26 #include <string>
27 #include <vector>
28 #include <list>
29 
30 class DTROS25Data;
31 class DTDDUData;
32 
34 public:
36 
37  ~DTDataIntegrityROSOffline() override;
38 
39  void processROS25(DTROS25Data& data, int dduID, int ros);
40  void processFED(DTDDUData& dduData, const std::vector<DTROS25Data>& rosData, int dduID);
41 
42  // log number of times the payload of each fed is unpacked
43  void fedEntry(int dduID);
44  // log number of times the payload of each fed is skipped (no ROS inside)
45  void fedFatal(int dduID);
46  // log number of times the payload of each fed is partially skipped (some ROS skipped)
47  void fedNonFatal(int dduID);
48 
49  void analyze(const edm::Event& e, const edm::EventSetup& c) override;
50 
51 protected:
52  void bookHistograms(DQMStore::IBooker&, edm::Run const&, edm::EventSetup const&) override;
53 
54 private:
55  void bookHistos(DQMStore::IBooker&, const int fedMin, const int fedMax);
58 
59  void channelsInCEROS(int cerosId, int chMask, std::vector<int>& channels);
60  void channelsInROS(int cerosMask, std::vector<int>& channels);
61 
62  std::string topFolder(bool isFEDIntegrity) const;
63 
64  // Plot quantities about SC
65  bool getSCInfo;
66 
67  int nevents;
68 
69  // Monitor Elements
71  // <histoType, <index , histo> >
72  std::map<std::string, std::map<int, MonitorElement*> > fedHistos;
73  // <histoType, histo> >
74  std::map<std::string, std::map<int, MonitorElement*> > summaryHistos;
75  // <histoType, <index , histo> >
76  std::map<std::string, std::map<int, MonitorElement*> > rosHistos;
77 
78  // standard ME for monitoring of FED integrity
83 
84  // one for all FEDS
86 
89 
90  // Number of ROS per FED
91  const int nROS = 12;
92 
93  int FEDIDmin;
94  int FEDIDmax;
95 
96  // event error flag: true when errors are detected
97  // can be used for the selection of the debug stream
99 
100  std::map<int, std::set<int> > rosBxIdsPerFED;
101  std::set<int> fedBXIds;
102  std::map<int, std::set<int> > rosL1AIdsPerFED;
103 
105 
106  // The label to retrieve the digis
108 
110 };
111 
112 #endif
113 
114 /* Local Variables: */
115 /* show-trailing-whitespace: t */
116 /* truncate-lines: t */
117 /* End: */
void bookHistosROS25(DQMStore::IBooker &, DTROChainCoding code)
void analyze(const edm::Event &e, const edm::EventSetup &c) override
std::map< std::string, std::map< int, MonitorElement * > > summaryHistos
void processFED(DTDDUData &dduData, const std::vector< DTROS25Data > &rosData, int dduID)
edm::EDGetTokenT< DTROS25Collection > ros25Token
edm::EDGetTokenT< DTDDUCollection > dduToken
std::map< int, std::set< int > > rosL1AIdsPerFED
void bookHistos(DQMStore::IBooker &, const int fedMin, const int fedMax)
std::string topFolder(bool isFEDIntegrity) const
std::map< std::string, std::map< int, MonitorElement * > > fedHistos
DTDataIntegrityROSOffline(const edm::ParameterSet &ps)
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:79
std::map< std::string, std::map< int, MonitorElement * > > rosHistos
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
void channelsInCEROS(int cerosId, int chMask, std::vector< int > &channels)
std::map< int, std::set< int > > rosBxIdsPerFED
void processROS25(DTROS25Data &data, int dduID, int ros)
void channelsInROS(int cerosMask, std::vector< int > &channels)
Definition: Run.h:45