CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
DTDataIntegrityTask.h
Go to the documentation of this file.
1 #ifndef DTDataIntegrityTask_H
2 #define DTDataIntegrityTask_H
3 
14 
20 
24 
26 
28 
30 
31 #include <fstream>
32 #include <map>
33 #include <string>
34 #include <vector>
35 #include <list>
36 
37 class DTROS25Data;
38 class DTDDUData;
40 
42 
43 public:
44 
46 
47  virtual ~DTDataIntegrityTask();
48 
49  void TimeHistos(DQMStore::IBooker &, std::string histoType);
50 
51  void processROS25(DTROS25Data & data, int dduID, int ros);
52  void processFED(DTDDUData & dduData, const std::vector<DTROS25Data> & rosData, int dduID);
53 
54  // log number of times the payload of each fed is unpacked
55  void fedEntry(int dduID);
56  // log number of times the payload of each fed is skipped (no ROS inside)
57  void fedFatal(int dduID);
58  // log number of times the payload of each fed is partially skipped (some ROS skipped)
59  void fedNonFatal(int dduID);
60 
61  bool eventHasErrors() const;
62 
63  void beginLuminosityBlock(const edm::LuminosityBlock& ls, const edm::EventSetup& es) override;
64  void endLuminosityBlock(const edm::LuminosityBlock& ls, const edm::EventSetup& es) override;
65 
66  void analyze(const edm::Event& e, const edm::EventSetup& c) override;
67 
68 protected:
69 
70  void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override;
71 
72 private:
73 
74  void bookHistos(DQMStore::IBooker &, const int fedMin, const int fedMax);
77 
78  void channelsInCEROS(int cerosId, int chMask, std::vector<int>& channels);
79  void channelsInROS(int cerosMask, std::vector<int>& channels);
80 
81  std::string topFolder(bool isFEDIntegrity) const;
82 
83  std::multimap<std::string, std::string> names;
84  std::multimap<std::string, std::string>::iterator it;
85 
87 
88  //If you want info VS time histos
90  // Plot quantities about SC
91  bool getSCInfo;
92 
93  int nevents;
94 
96 
97  // Monitor Elements
99  // <histoType, <index , histo> >
100  std::map<std::string, std::map<int, MonitorElement*> > dduHistos;
101  // <histoType, histo> >
102  std::map<std::string, std::map<int, MonitorElement*> > rosSHistos;
103  // <histoType, <index , histo> >
104  std::map<std::string, std::map<int, MonitorElement*> > rosHistos;
105  // <histoType, <tdcID, histo> >
106  std::map<std::string, std::map<int, MonitorElement*> > robHistos;
107 
108  // standard ME for monitoring of FED integrity
113 
114  // one for all FEDS
116 
117  //time histos for DDU/ROS
118  std::map<std::string, std::map<int, DTTimeEvolutionHisto*> > dduTimeHistos;
119  std::map<std::string, std::map<int, DTTimeEvolutionHisto*> > rosTimeHistos;
120 
122 
127  double rob_max[25];
128 
129  int FEDIDmin;
130  int FEDIDMax;
131 
132 
133  //Event counter for the graphs VS time
134  int myPrevEv;
135 
136  //Monitor TTS,ROS,FIFO VS time
140 
141  // event error flag: true when errors are detected
142  // can be used for the selection of the debug stream
144 
145  std::map<int, std::set<int> > rosBxIdsPerFED;
146  std::set<int> fedBXIds;
147  std::map<int, std::set<int> > rosL1AIdsPerFED;
148 
149  // flag to toggle the creation of only the summaries (for HLT running)
150  int mode;
152 
153  // The label to retrieve the digis
155 
157 
158 };
159 
160 
161 #endif
162 
163 
164 /* Local Variables: */
165 /* show-trailing-whitespace: t */
166 /* truncate-lines: t */
167 /* End: */
std::map< int, std::set< int > > rosBxIdsPerFED
std::multimap< std::string, std::string > names
std::map< int, std::set< int > > rosL1AIdsPerFED
std::map< std::string, std::map< int, MonitorElement * > > dduHistos
std::multimap< std::string, std::string >::iterator it
void processFED(DTDDUData &dduData, const std::vector< DTROS25Data > &rosData, int dduID)
MonitorElement * hFEDNonFatal
void bookHistos(DQMStore::IBooker &, const int fedMin, const int fedMax)
void TimeHistos(DQMStore::IBooker &, std::string histoType)
std::map< std::string, std::map< int, DTTimeEvolutionHisto * > > dduTimeHistos
void channelsInROS(int cerosMask, std::vector< int > &channels)
MonitorElement * hFEDFatal
DTROChainCoding coding
edm::EDGetTokenT< DTROS25Collection > ros25Token
DTDataIntegrityTask(const edm::ParameterSet &ps)
void processROS25(DTROS25Data &data, int dduID, int ros)
void beginLuminosityBlock(const edm::LuminosityBlock &ls, const edm::EventSetup &es) override
void analyze(const edm::Event &e, const edm::EventSetup &c) override
void endLuminosityBlock(const edm::LuminosityBlock &ls, const edm::EventSetup &es) override
std::map< std::string, std::map< int, MonitorElement * > > rosSHistos
std::map< std::string, std::map< int, MonitorElement * > > robHistos
MonitorElement * nEventMonitor
std::string topFolder(bool isFEDIntegrity) const
MonitorElement * hFEDEntry
std::map< std::string, std::map< int, MonitorElement * > > rosHistos
edm::ParameterSet parameters
void channelsInCEROS(int cerosId, int chMask, std::vector< int > &channels)
void bookHistosROS25(DQMStore::IBooker &, DTROChainCoding code)
MonitorElement * hTTSSummary
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
std::map< std::string, std::map< int, DTTimeEvolutionHisto * > > rosTimeHistos
std::set< int > fedBXIds
MonitorElement * hCorruptionSummary
edm::EDGetTokenT< DTDDUCollection > dduToken
Definition: Run.h:43