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 
17 
22 
24 
27 
28 #include <fstream>
29 #include <map>
30 #include <string>
31 #include <vector>
32 #include <list>
33 
34 class DTROS25Data;
35 class DTDDUData;
37 
38 
40 
41 public:
42 
44 
45  virtual ~DTDataIntegrityTask();
46 
47  void TimeHistos(std::string histoType);
48 
49  void processROS25(DTROS25Data & data, int dduID, int ros);
50  void processFED(DTDDUData & dduData, const std::vector<DTROS25Data> & rosData, int dduID);
51 
52  // log number of times the payload of each fed is unpacked
53  void fedEntry(int dduID);
54  // log number of times the payload of each fed is skipped (no ROS inside)
55  void fedFatal(int dduID);
56  // log number of times the payload of each fed is partially skipped (some ROS skipped)
57  void fedNonFatal(int dduID);
58 
59  bool eventHasErrors() const;
60  void postBeginJob();
61  void postEndJob();
62  void preProcessEvent(const edm::EventID& iEvtid, const edm::Timestamp& iTime);
63 
64  void preBeginLumi(const edm::LuminosityBlockID& ls, const edm::Timestamp& iTime);
65  void preEndLumi(const edm::LuminosityBlockID& ls, const edm::Timestamp& iTime);
66 
67 private:
68 
69  void bookHistos(const int fedMin, const int fedMax);
70  void bookHistos(std::string folder, DTROChainCoding code);
72 
73  void channelsInCEROS(int cerosId, int chMask, std::vector<int>& channels);
74  void channelsInROS(int cerosMask, std::vector<int>& channels);
75 
76  std::string topFolder(bool isFEDIntegrity) const;
77 
78  std::multimap<std::string, std::string> names;
79  std::multimap<std::string, std::string>::iterator it;
80 
82 
83  //If you want info VS time histos
85  // Plot quantities about SC
86  bool getSCInfo;
87 
88  int nevents;
89 
90  // back-end interface
92 
94 
95  // Monitor Elements
97  // <histoType, <index , histo> >
98  std::map<std::string, std::map<int, MonitorElement*> > dduHistos;
99  // <histoType, histo> >
100  std::map<std::string, std::map<int, MonitorElement*> > rosSHistos;
101  // <histoType, <index , histo> >
102  std::map<std::string, std::map<int, MonitorElement*> > rosHistos;
103  // <histoType, <tdcID, histo> >
104  std::map<std::string, std::map<int, MonitorElement*> > robHistos;
105 
106  // standard ME for monitoring of FED integrity
111 
112  // one for all FEDS
114 
115  //time histos for DDU/ROS
116  std::map<std::string, std::map<int, DTTimeEvolutionHisto*> > dduTimeHistos;
117  std::map<std::string, std::map<int, DTTimeEvolutionHisto*> > rosTimeHistos;
118 
120 
124  std::string outputFile;
125  double rob_max[25];
126 
127  //Event counter for the graphs VS time
128  int myPrevEv;
129 
130  //Monitor TTS,ROS,FIFO VS time
134 
135  // event error flag: true when errors are detected
136  // can be used for the selection of the debug stream
138 
139  std::map<int, std::set<int> > rosBxIdsPerFED;
140  std::set<int> fedBXIds;
141  std::map<int, std::set<int> > rosL1AIdsPerFED;
142 
143  // flag to toggle the creation of only the summaries (for HLT running)
144  int mode;
145  std::string fedIntegrityFolder;
146 
147 };
148 
149 
150 #endif
151 
std::map< int, std::set< int > > rosBxIdsPerFED
std::multimap< std::string, std::string > names
std::map< int, std::set< int > > rosL1AIdsPerFED
void preProcessEvent(const edm::EventID &iEvtid, const edm::Timestamp &iTime)
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)
void preBeginLumi(const edm::LuminosityBlockID &ls, const edm::Timestamp &iTime)
MonitorElement * hFEDNonFatal
std::map< std::string, std::map< int, DTTimeEvolutionHisto * > > dduTimeHistos
void channelsInROS(int cerosMask, std::vector< int > &channels)
MonitorElement * hFEDFatal
DTROChainCoding coding
void processROS25(DTROS25Data &data, int dduID, int ros)
void bookHistosROS25(DTROChainCoding code)
void preEndLumi(const edm::LuminosityBlockID &ls, const edm::Timestamp &iTime)
std::map< std::string, std::map< int, MonitorElement * > > rosSHistos
std::map< std::string, std::map< int, MonitorElement * > > robHistos
void TimeHistos(std::string histoType)
MonitorElement * nEventMonitor
std::string topFolder(bool isFEDIntegrity) const
MonitorElement * hFEDEntry
std::map< std::string, std::map< int, MonitorElement * > > rosHistos
void bookHistos(const int fedMin, const int fedMax)
edm::ParameterSet parameters
DTDataIntegrityTask(const edm::ParameterSet &ps, edm::ActivityRegistry &reg)
void channelsInCEROS(int cerosId, int chMask, std::vector< int > &channels)
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:82
MonitorElement * hTTSSummary
std::map< std::string, std::map< int, DTTimeEvolutionHisto * > > rosTimeHistos
std::set< int > fedBXIds
MonitorElement * hCorruptionSummary