test
CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
HcalOnlineHarvesting.cc
Go to the documentation of this file.
2 
4  DQHarvester(ps), _reportSummaryMap(NULL)
5 {
6 
7  // NOTE: I will leave Run Summary Generators in place
8  // just not triggering on endJob!
9  _vsumgen.resize(nSummary);
10  _vnames.resize(nSummary);
11  _vmarks.resize(nSummary);
12  for (uint32_t i=0; i<_vmarks.size(); i++)
13  _vmarks[i]=false;
14  _vnames[fRaw]="RawTask";
15  _vnames[fDigi]="DigiTask";
16  _vnames[fReco]="RecHitTask";
17  _vnames[fTP]="TPTask";
18  _vnames[fPedestal]="PedestalTask";
19 
20  _vsumgen[fRaw] = new RawRunSummary("RawRunHarvesting",
21  _vnames[fRaw], ps);
22  _vsumgen[fDigi] = new DigiRunSummary("DigiRunHarvesting",
23  _vnames[fDigi],ps);
24  _vsumgen[fReco] = new RecoRunSummary("RecoRunHarvesting",
25  _vnames[fReco], ps);
26  _vsumgen[fTP] = new TPRunSummary("TPRunHarvesting",
27  _vnames[fTP], ps);
28  _vsumgen[fPedestal] = new PedestalRunSummary("PedestalRunHarvesting",
29  _vnames[fPedestal], ps);
30 }
31 
32 /* virtual */ void HcalOnlineHarvesting::beginRun(
33  edm::Run const& r, edm::EventSetup const& es)
34 {
35  DQHarvester::beginRun(r,es);
36  for (std::vector<DQClient*>::const_iterator it=_vsumgen.begin();
37  it!=_vsumgen.end(); ++it)
38  (*it)->beginRun(r,es);
39 }
40 
44  edm::EventSetup const&)
45 {
46  // DETERMINE WHICH MODULES ARE PRESENT IN DATA
47  if (ig.get(_subsystem+"/"+_vnames[fRaw]+"/EventsTotal")!=NULL)
48  _vmarks[fRaw]=true;
49  if (ig.get(_subsystem+"/"+_vnames[fDigi]+"/EventsTotal")!=NULL)
50  _vmarks[fDigi]=true;
51  if (ig.get(_subsystem+"/"+_vnames[fTP]+"/EventsTotal")!=NULL)
52  _vmarks[fTP]=true;
53  if (ig.get(_subsystem+"/"+_vnames[fReco]+"/EventsTotal")!=NULL)
54  _vmarks[fReco]=true;
55  if (ig.get(_subsystem+"/"+_vnames[fPedestal]+"/EventsTotal")!=NULL)
56  _vmarks[fPedestal]=true;
57 
58  // CREATE SUMMARY REPORT MAP FED vs LS and LOAD MODULE'S SUMMARIES
59  // NOTE: THIS STATEMENTS WILL BE EXECUTED ONLY ONCE!
60  if (!_reportSummaryMap)
61  {
62  ig.setCurrentFolder(_subsystem+"/EventInfo");
63  _reportSummaryMap = ib.book2D("reportSummaryMap", "reportSummaryMap",
64  _maxLS, 1, _maxLS+1, _vFEDs.size(), 0, _vFEDs.size());
65  for (uint32_t i=0; i<_vFEDs.size(); i++)
66  {
67  char name[5];
68  sprintf(name, "%d", _vFEDs[i]);
69  _reportSummaryMap->setBinLabel(i+1, name, 2);
70  }
71  // set LS bit to mark Xaxis as LS axis
73 
74  // INITIALIZE ALL THE MODULES
75  for (uint32_t i=0; i<_vnames.size(); i++)
77  "SummaryvsLS",
81 
82  // LOAD ONLY THOSE MODULES THAT ARE PRESENT IN DATA
83  for (uint32_t i=0; i<_vmarks.size(); i++)
84  {
85  if (_vmarks[i])
86  _vcSummaryvsLS[i].load(ig, _subsystem);
87  }
88  }
89 
90  int ifed=0;
91  for (std::vector<uint32_t>::const_iterator it=_vhashFEDs.begin();
92  it!=_vhashFEDs.end(); ++it)
93  {
94  HcalElectronicsId eid(*it);
95  flag::Flag fSum("Status", flag::fNCDAQ);
96  for (uint32_t im=0; im<_vmarks.size(); im++)
97  if (_vmarks[im])
98  {
99  int x = _vcSummaryvsLS[im].getBinContent(eid, _currentLS);
100  flag::Flag flag("Status", (flag::State)x);
101  fSum+=flag;
102  }
103  _reportSummaryMap->setBinContent(_currentLS, ifed+1, int(fSum._state));
104  ifed++;
105  }
106 }
107 
108 /*
109  * NO END JOB PROCESSING FOR ONLINE!
110  */
112  DQMStore::IGetter& ig)
113 {}
114 
std::vector< uint32_t > _vhashFEDs
Definition: DQHarvester.h:39
int i
Definition: DBlmapReader.cc:9
void setBinContent(int binx, double content)
set content of bin (1-D)
int ib
Definition: cuy.py:660
std::vector< bool > _vmarks
HcalOnlineHarvesting(edm::ParameterSet const &)
MonitorElement * get(const std::string &path)
Definition: DQMStore.cc:304
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:17
State _state
Definition: Flag.h:79
void setBinLabel(int bin, const std::string &label, int axis=1)
set bin label for x, y or z axis (axis=1, 2, 3 respectively)
#define NULL
Definition: scimark2.h:8
virtual void beginRun(edm::Run const &, edm::EventSetup const &)
virtual void _dqmEndLuminosityBlock(DQMStore::IBooker &, DQMStore::IGetter &, edm::LuminosityBlock const &, edm::EventSetup const &)
std::vector< std::string > _vnames
T x() const
Cartesian x coordinate.
MonitorElement * _reportSummaryMap
std::vector< ContainerSingle2D > _vcSummaryvsLS
TH1 * getTH1(void) const
MonitorElement * book2D(Args &&...args)
Definition: DQMStore.h:133
virtual void _dqmEndJob(DQMStore::IBooker &, DQMStore::IGetter &)
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:346
std::string _subsystem
Definition: DQModule.h:64
int const BIT_OFFSET
Definition: Constants.h:224
int const BIT_AXIS_LS
Definition: Constants.h:228
std::vector< int > _vFEDs
Definition: DQHarvester.h:38
Readout chain identification for Hcal.
std::vector< DQClient * > _vsumgen
Definition: Run.h:43