CMS 3D CMS Logo

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
DQTask.cc
Go to the documentation of this file.
1 
3 
4 namespace hcaldqm
5 {
6  using namespace constants;
8  DQModule(ps),
9  _cEvsTotal(_name, "EventsTotal"),
10  _cEvsPerLS(_name, "EventssPerLS"),
11  _cRunKeyVal(_name, "RunKeyValue"),
12  _cRunKeyName(_name, "RunKeyName"),
13  _cProcessingTypeName(_name, "ProcessingType"),
14  _procLSs(0)
15  {
16  // tags and Tokens
18  edm::InputTag("rawDataCollector"));
19  _tokRaw = consumes<FEDRawDataCollection>(_tagRaw);
20  }
21 
22  /*
23  * By design, all the sources will ahve this function inherited and will
24  * never override.
25  */
26  /* virtual */ void DQTask::analyze(edm::Event const& e,
27  edm::EventSetup const& es)
28  {
29  try
30  {
31  this->_resetMonitors(fEvent);
32  _logger.debug(_name+" processing");
33  if (!this->_isApplicable(e))
34  return;
35 
39  this->_process(e, es);
40  }
41  catch (cms::Exception &exc)
42  {
43  _logger.warn("We have cms::Exception Triggered. " +
44  std::string(exc.what()));
45  }
46  catch (std::exception &exc)
47  {
48  _logger.warn("we have STD Exception Triggered. " +
49  std::string(exc.what()));
50  }
51  catch (...)
52  {
53  _logger.warn("Unknown Exception Triggered");
54  }
55  }
56 
58  edm::Run const& r,
59  edm::EventSetup const& es)
60  {
61  _cEvsTotal.book(ib);
62  _cEvsPerLS.book(ib);
63  _cRunKeyVal.book(ib);
64  _cRunKeyName.book(ib);
66 
67  // fill what you can now
71  }
72 
73  /* virtual */ void DQTask::dqmBeginRun(edm::Run const& r,
74  edm::EventSetup const& es)
75  {
76  this->_resetMonitors(fEvent);
77  this->_resetMonitors(fLS);
78  this->_resetMonitors(f10LS);
79  this->_resetMonitors(f50LS);
80  this->_resetMonitors(f100LS);
81  }
82 
83  /* virtual */ void DQTask::beginLuminosityBlock(
84  edm::LuminosityBlock const& lb,
85  edm::EventSetup const& es)
86  {
87  this->_resetMonitors(fLS);
88  if (_procLSs%10==0)
89  this->_resetMonitors(f10LS);
90  if (_procLSs%50==0)
91  this->_resetMonitors(f50LS);
92  if (_procLSs%100==0)
93  this->_resetMonitors(f100LS);
94  }
95 
96  /* virtual */ void DQTask::endLuminosityBlock(
97  edm::LuminosityBlock const& lb,
98  edm::EventSetup const& es)
99  {
100  _procLSs++;
101  }
102 
103  /* virtual */ void DQTask::_resetMonitors(UpdateFreq uf)
104  {
105  // reset per event
106  switch (uf)
107  {
108  case fEvent:
109  break;
110  case fLS:
111  _evsPerLS = 0;
112  break;
113  case f10LS:
114  break;
115  case f50LS:
116  break;
117  case f100LS:
118  break;
119  default:
120  break;
121  }
122  }
123 
124  /* virtual */ int DQTask::_getCalibType(edm::Event const&e)
125  {
126  int calibType = 0;
127 
129  if (!e.getByToken(_tokRaw, craw))
131  "Collection FEDRawDataCollection isn't available "
132  + _tagRaw.label() + " " + _tagRaw.instance());
133 
134  int badFEDs=0;
135  std::vector<int> types(8,0);
136  for (int i=FED_VME_MIN; i<=FED_VME_MAX; i++)
137  {
138  FEDRawData const& fd = craw->FEDData(i);
139  if (fd.size()<24)
140  {
141  badFEDs++;
142  continue;
143  }
144  int cval = (int)((HcalDCCHeader const*)(fd.data()))->getCalibType();
145  if (cval>7)
146  _logger.warn("Unexpected Calib Type in FED " +
147  boost::lexical_cast<std::string>(i));
148  types[cval]++;
149  }
150  for (int i=FED_uTCA_MIN; i<=FED_uTCA_MAX; i++)
151  {
152  FEDRawData const& fd = craw->FEDData(i);
153  if (fd.size()<24)
154  {
155  badFEDs++;
156  continue;
157  }
158  int cval = (int)((HcalDCCHeader const*)(fd.data()))->getCalibType();
159  if (cval>7)
160  _logger.warn("Unexpected Calib Type in FED " +
161  boost::lexical_cast<std::string>(i));
162  types[cval]++;
163  }
164 
165  int max = 0;
166  for (unsigned int ic=0; ic<8; ic++)
167  {
168  if (types[ic]>max)
169  {
170  max = types[ic];
171  calibType = ic;
172  }
173  }
174  if (max!=(FED_VME_NUM+(FED_uTCA_MAX-FED_uTCA_MIN+1)-badFEDs))
175  _logger.warn("Conflicting Calibration Types found. Assigning " +
176  boost::lexical_cast<std::string>(calibType));
177 
178  return calibType;
179  }
180 }
181 
182 
183 
184 
185 
186 
virtual char const * what() const
Definition: Exception.cc:141
virtual int _getCalibType(edm::Event const &)
Definition: DQTask.cc:124
T getUntrackedParameter(std::string const &, T const &) const
int i
Definition: DBlmapReader.cc:9
ContainerI _cEvsTotal
Definition: DQTask.h:51
virtual void analyze(edm::Event const &, edm::EventSetup const &)
Definition: DQTask.cc:26
virtual void endLuminosityBlock(edm::LuminosityBlock const &, edm::EventSetup const &)
Definition: DQTask.cc:96
int ib
Definition: cuy.py:660
DQTask(edm::ParameterSet const &)
Definition: DQTask.cc:7
void warn(std::string const &msg) const
Definition: Logger.h:20
ContainerS _cRunKeyName
Definition: DQTask.h:54
edm::InputTag _tagRaw
Definition: DQTask.h:61
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:462
void debug(STDTYPE const &msg) const
Definition: Logger.h:31
edm::EDGetTokenT< FEDRawDataCollection > _tokRaw
Definition: DQTask.h:62
UpdateFreq
Definition: DQTask.h:16
tuple calibType
Definition: diJetCalib.py:20
edm::LuminosityBlockNumber_t luminosityBlock() const
Definition: EventBase.h:62
ContainerI _cEvsPerLS
Definition: DQTask.h:52
int _procLSs
Definition: DQTask.h:58
size_t size() const
Lenght of the data buffer in bytes.
Definition: FEDRawData.h:47
int const FED_uTCA_MIN
Definition: Constants.h:31
virtual bool _isApplicable(edm::Event const &)
Definition: DQTask.h:47
int const FED_uTCA_MAX
Definition: Constants.h:32
ProcessingType _ptype
Definition: DQModule.h:52
virtual void _process(edm::Event const &, edm::EventSetup const &)=0
virtual void fill(std::string const &x)
Definition: ContainerS.h:29
void dqmthrow(std::string const &msg) const
Definition: Logger.h:15
int const FED_VME_MIN
Definition: Constants.h:26
virtual void book(DQMStore::IBooker &ib, std::string subsystem="Hcal", std::string aux="")
Definition: ContainerI.h:33
tuple fd
Definition: ztee.py:136
virtual void fill(int x)
Definition: ContainerI.h:28
Logger _logger
Definition: DQModule.h:62
std::string _name
Definition: DQModule.h:50
virtual void book(DQMStore::IBooker &ib, std::string subsystem="Hcal", std::string aux="")
Definition: ContainerS.h:34
virtual void beginLuminosityBlock(edm::LuminosityBlock const &, edm::EventSetup const &)
Definition: DQTask.cc:83
int const FED_VME_NUM
Definition: Constants.h:29
std::string const & label() const
Definition: InputTag.h:36
virtual void _resetMonitors(UpdateFreq)
Definition: DQTask.cc:103
const unsigned char * data() const
Return a const pointer to the beginning of the data buffer.
Definition: FEDRawData.cc:28
std::string _runkeyName
Definition: DQModule.h:56
ContainerS _cProcessingTypeName
Definition: DQTask.h:55
virtual void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &)
Definition: DQTask.cc:57
std::string const pTypeNames[nProcessingType]
Definition: DQModule.h:34
int const FED_VME_MAX
Definition: Constants.h:27
ContainerI _cRunKeyVal
Definition: DQTask.h:53
virtual void dqmBeginRun(edm::Run const &, edm::EventSetup const &)
Definition: DQTask.cc:73
std::string const & instance() const
Definition: InputTag.h:37
Definition: Run.h:43