test
CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Member Functions | Private Attributes
HcalTrigPrimClient Class Reference

#include <HcalTrigPrimClient.h>

Inheritance diagram for HcalTrigPrimClient:
HcalBaseDQClient

Public Member Functions

void analyze (DQMStore::IBooker &, DQMStore::IGetter &)
 
void beginRun (void)
 
void calculateProblems (DQMStore::IBooker &, DQMStore::IGetter &)
 
void cleanup (void)
 
void endJob (void)
 
bool hasErrors_Temp (void)
 
bool hasOther_Temp (void)
 
bool hasWarnings_Temp (void)
 
 HcalTrigPrimClient ()
 Constructors. More...
 
 HcalTrigPrimClient (std::string myname)
 
 HcalTrigPrimClient (std::string myname, const edm::ParameterSet &ps)
 
void setup (void)
 
bool test_enabled (void)
 
void updateChannelStatus (std::map< HcalDetId, unsigned int > &myqual)
 
 ~HcalTrigPrimClient ()
 Destructor. More...
 
- Public Member Functions inherited from HcalBaseDQClient
virtual void calculateProblems (void)
 
void getLogicalMap (const edm::EventSetup &es)
 
 HcalBaseDQClient ()
 
 HcalBaseDQClient (std::string s, const edm::ParameterSet &ps)
 
virtual void htmlOutput (DQMStore::IBooker &, DQMStore::IGetter &, std::string htmlDir)
 
std::string name ()
 
void setEventSetup (const edm::EventSetup &es)
 
virtual void setStatusMap (std::map< HcalDetId, unsigned int > &map)
 
void setTopo (const HcalTopology *topo)
 
virtual bool validHtmlOutput (DQMStore::IBooker &, DQMStore::IGetter &)
 
virtual ~HcalBaseDQClient (void)
 

Private Member Functions

void setupProblemCells (DQMStore::IBooker &, DQMStore::IGetter &)
 

Private Attributes

bool doProblemCellSetup_
 
int nevts_
 
EtaPhiHistsProblemsByDepthNZS_
 
EtaPhiHistsProblemsByDepthZS_
 

Additional Inherited Members

- Public Attributes inherited from HcalBaseDQClient
int badChannelStatusMask_
 
std::map< HcalDetId, unsigned int > badstatusmap
 
const edm::EventSetupc
 
bool cloneME_
 
int debug_
 
bool enableCleanup_
 
bool enoughevents_
 
HcalLogicalMaplogicalMap_
 
double minerrorrate_
 
int minevents_
 
std::string name_
 
bool needLogicalMap_
 
bool Online_
 
std::string prefixME_
 
MonitorElementProblemCells
 
EtaPhiHistsProblemCellsByDepth
 
std::vector< std::string > problemnames_
 
std::string subdir_
 
bool testenabled_
 
const HcalTopologytopo_
 
bool validHtmlOutput_
 

Detailed Description

Definition at line 8 of file HcalTrigPrimClient.h.

Constructor & Destructor Documentation

HcalTrigPrimClient::HcalTrigPrimClient ( )
inline

Constructors.

Definition at line 13 of file HcalTrigPrimClient.h.

References HcalBaseDQClient::name_.

13 {name_="";};
HcalTrigPrimClient::HcalTrigPrimClient ( std::string  myname)

Definition at line 18 of file HcalTrigPrimClient.cc.

References HcalBaseDQClient::name_.

19 {
20  name_=myname;
21 }
HcalTrigPrimClient::HcalTrigPrimClient ( std::string  myname,
const edm::ParameterSet ps 
)

Definition at line 23 of file HcalTrigPrimClient.cc.

References HcalBaseDQClient::badChannelStatusMask_, HcalBaseDQClient::cloneME_, HcalBaseDQClient::debug_, doProblemCellSetup_, HcalBaseDQClient::enableCleanup_, edm::ParameterSet::getUntrackedParameter(), HcalBaseDQClient::minerrorrate_, HcalBaseDQClient::minevents_, HcalBaseDQClient::name_, HcalBaseDQClient::Online_, HcalBaseDQClient::prefixME_, HcalBaseDQClient::ProblemCells, HcalBaseDQClient::ProblemCellsByDepth, ProblemsByDepthNZS_, ProblemsByDepthZS_, AlCaHLTBitMon_QueryRunRegistry::string, HcalBaseDQClient::subdir_, and HcalBaseDQClient::validHtmlOutput_.

24 {
25  name_=myname;
26  enableCleanup_ = ps.getUntrackedParameter<bool>("enableCleanup",false);
27  debug_ = ps.getUntrackedParameter<int>("debug",0);
28  prefixME_ = ps.getUntrackedParameter<std::string>("subSystemFolder","Hcal/");
29  if (prefixME_.substr(prefixME_.size()-1,prefixME_.size())!="/")
30  prefixME_.append("/");
31  subdir_ = ps.getUntrackedParameter<std::string>("TrigPrimFolder","TrigPrimMonitor_Hcal/"); // TrigPrimMonitor
32  if (subdir_.size()>0 && subdir_.substr(subdir_.size()-1,subdir_.size())!="/")
33  subdir_.append("/");
34  subdir_=prefixME_+subdir_;
35 
36  validHtmlOutput_ = ps.getUntrackedParameter<bool>("TrigPrim_validHtmlOutput",true);
37  cloneME_ = ps.getUntrackedParameter<bool>("cloneME", true);
38  badChannelStatusMask_ = ps.getUntrackedParameter<int>("TrigPrim_BadChannelStatusMask",
39  ps.getUntrackedParameter<int>("BadChannelStatusMask",0));
40  // Set error rate to 1%, not (earlier) value of 0.1% -- Jeff, 11 May 2010
41  minerrorrate_ = ps.getUntrackedParameter<double>("TrigPrim_minerrorrate",
42  ps.getUntrackedParameter<double>("minerrorrate",0.01));
43  minevents_ = ps.getUntrackedParameter<int>("TrigPrim_minevents",
44  ps.getUntrackedParameter<int>("minevents",1));
45  Online_ = ps.getUntrackedParameter<bool>("online",false);
46 
47  ProblemCells=0;
51 
52  doProblemCellSetup_ = true;
53 }
T getUntrackedParameter(std::string const &, T const &) const
MonitorElement * ProblemCells
EtaPhiHists * ProblemsByDepthZS_
EtaPhiHists * ProblemCellsByDepth
EtaPhiHists * ProblemsByDepthNZS_
std::string subdir_
std::string prefixME_
HcalTrigPrimClient::~HcalTrigPrimClient ( )

Destructor.

Definition at line 402 of file HcalTrigPrimClient.cc.

References HcalBaseDQClient::ProblemCellsByDepth, ProblemsByDepthNZS_, and ProblemsByDepthZS_.

403 {
407 }
EtaPhiHists * ProblemsByDepthZS_
EtaPhiHists * ProblemCellsByDepth
EtaPhiHists * ProblemsByDepthNZS_

Member Function Documentation

void HcalTrigPrimClient::analyze ( DQMStore::IBooker ib,
DQMStore::IGetter ig 
)
virtual

Reimplemented from HcalBaseDQClient.

Definition at line 55 of file HcalTrigPrimClient.cc.

References HcalBaseDQClient::calculateProblems(), gather_cfg::cout, HcalBaseDQClient::debug_, doProblemCellSetup_, and setupProblemCells().

56 {
57  if (debug_>2) std::cout <<"\tHcalTrigPrimClient::analyze()"<<std::endl;
59  calculateProblems(ib,ig);
60 }
virtual void calculateProblems(void)
tuple cout
Definition: gather_cfg.py:145
void setupProblemCells(DQMStore::IBooker &, DQMStore::IGetter &)
void HcalTrigPrimClient::beginRun ( void  )
virtual

Reimplemented from HcalBaseDQClient.

Definition at line 346 of file HcalTrigPrimClient.cc.

References HcalBaseDQClient::enoughevents_.

347 {
348  enoughevents_=false;
349 }
void HcalTrigPrimClient::calculateProblems ( DQMStore::IBooker ib,
DQMStore::IGetter ig 
)

Definition at line 62 of file HcalTrigPrimClient.cc.

References funct::abs(), HcalBaseDQClient::cloneME_, gather_cfg::cout, ztail::d, HcalBaseDQClient::debug_, EtaPhiHists::depth, HcalBaseDQClient::enoughevents_, eta, MonitorElement::Fill(), HcalObjRepresent::FillUnphysicalHEHFBins(), DQMStore::IGetter::get(), MonitorElement::getBinContent(), MonitorElement::getTH2F(), HcalEtaPhiHistNames(), i, hlt_dqm_clientPB-live_cfg::me, HcalBaseDQClient::minevents_, HcalBaseDQClient::name(), phi, HcalBaseDQClient::ProblemCells, HcalBaseDQClient::ProblemCellsByDepth, ProblemsByDepthNZS_, ProblemsByDepthZS_, MonitorElement::Reset(), MonitorElement::setBinContent(), and HcalBaseDQClient::subdir_.

63 {
64  if (debug_>2) std::cout <<"\t\tHcalTrigPrimClient::calculateProblems()"<<std::endl;
65  double totalevents=0;
66  int etabins=0, phibins=0;
67  double problemvalue=0;
68  enoughevents_=false; // assume we lack sufficient events until proven otherwise
69 
70  // Clear away old problems
71  if (ProblemCells!=0)
72  {
74  (ProblemCells->getTH2F())->SetMaximum(1.05);
75  (ProblemCells->getTH2F())->SetMinimum(0.);
76  }
77  for (unsigned int d=0;d<ProblemCellsByDepth->depth.size();++d)
78  {
79  if (ProblemCellsByDepth->depth[d]!=0)
80  {
81  ProblemCellsByDepth->depth[d]->Reset();
82  (ProblemCellsByDepth->depth[d]->getTH2F())->SetMaximum(1.05);
83  (ProblemCellsByDepth->depth[d]->getTH2F())->SetMinimum(0.);
84  }
85  }
86 
87  for (unsigned int d=0;d<ProblemsByDepthZS_->depth.size();++d)
88  {
89  if (ProblemsByDepthZS_->depth[d]!=0)
90  {
91  ProblemsByDepthZS_->depth[d]->Reset();
92  (ProblemsByDepthZS_->depth[d]->getTH2F())->SetMaximum(1.05);
93  (ProblemsByDepthZS_->depth[d]->getTH2F())->SetMinimum(0.);
94  }
95  }
96 
97  for (unsigned int d=0;d<ProblemsByDepthNZS_->depth.size();++d)
98  {
99  if (ProblemsByDepthNZS_->depth[d]!=0)
100  {
101  ProblemsByDepthNZS_->depth[d]->Reset();
102  (ProblemsByDepthNZS_->depth[d]->getTH2F())->SetMaximum(1.05);
103  (ProblemsByDepthNZS_->depth[d]->getTH2F())->SetMinimum(0.);
104  }
105  }
106 
107  // Get histograms that are used in testing
108  // currently none used,
109 
110  std::vector<std::string> name = HcalEtaPhiHistNames();
111 
112  /*
113  // This is a sample of how to get a histogram from the task that can then be used for evaluation purposes
114  */
116  TH2F *goodZS=0;
117  TH2F *badZS=0;
118  TH2F* goodNZS=0;
119  TH2F* badNZS=0;
120 
121  me=ig.get(subdir_+"Good TPs_ZS");
122  if (!me && debug_>0)
123  std::cout <<"<HcalTrigPrimClient::calculateProblems> Could not get histogram named '"<<subdir_<<"Good TPs_ZS'"<<std::endl;
124  else goodZS = HcalUtilsClient::getHisto<TH2F*>(me, cloneME_, goodZS, debug_);
125 
126  me=ig.get(subdir_+"Bad TPs_ZS");
127  if (!me && debug_>0)
128  std::cout <<"<HcalTrigPrimClient::calculateProblems> Could not get histogram named '"<<subdir_<<"Bad TPs_ZS'"<<std::endl;
129  else badZS = HcalUtilsClient::getHisto<TH2F*>(me, cloneME_, badZS, debug_);
130 
131  me=ig.get(subdir_+"noZS/Good TPs_noZS");
132  if (!me && debug_>0)
133  std::cout <<"<HcalTrigPrimClient::calculateProblems> Could not get histogram named '"<<subdir_<<"noZS/Good TPs_noZS'"<<std::endl;
134  else goodNZS = HcalUtilsClient::getHisto<TH2F*>(me, cloneME_, goodNZS, debug_);
135 
136  me=ig.get(subdir_+"noZS/Bad TPs_noZS");
137  if (!me && debug_>0)
138  std::cout <<"<HcalTrigPrimClient::calculateProblems> Could not get histogram named '"<<subdir_<<"noZS/Bad TPs_noZS'"<<std::endl;
139  else badNZS = HcalUtilsClient::getHisto<TH2F*>(me, cloneME_, badNZS, debug_);
140 
141  // get bin info from good histograms
142  if (goodZS!=0)
143  {
144  etabins=goodZS->GetNbinsX();
145  phibins=goodZS->GetNbinsY();
146  totalevents=goodNZS->GetBinContent(0);
147  }
148  else if (goodNZS!=0)
149  {
150  etabins=goodNZS->GetNbinsX();
151  phibins=goodNZS->GetNbinsY();
152  totalevents=goodNZS->GetBinContent(0);
153  }
154 
155  if (totalevents<minevents_)
156  {
157  enoughevents_=false;
158  if (debug_>2) std::cout <<"<HcalTrigPrimClient::calculateProblems()> Not enough events! events = "<<totalevents<<" minimum required = "<<minevents_<<std::endl;
159  return;
160  }
161  enoughevents_=true;
162 
163  // got good and bad histograms; now let's loop over them
164 
165  int ieta=-99, iphi=-99;
166  int badvalZS=0, goodvalZS=0;
167  int badvalNZS=0, goodvalNZS=0;
168  for (int eta=1;eta<=etabins;++eta)
169  {
170  ieta=eta-33; // Patrick's eta-phi maps starts at ieta=-32
171  for (int phi=1;phi<=phibins;++phi)
172  {
173  badvalZS=0, goodvalZS=0;
174  badvalNZS=0, goodvalNZS=0;
175  iphi=phi;
176  if (badZS!=0) badvalZS=(int)badZS->GetBinContent(eta,phi);
177  if (badNZS!=0) badvalNZS=(int)badNZS->GetBinContent(eta,phi);
178  if (badvalZS+badvalNZS==0) continue;
179  if (goodZS!=0) goodvalZS=(int)goodZS->GetBinContent(eta,phi);
180  if (goodNZS!=0) goodvalNZS=(int)goodNZS->GetBinContent(eta,phi);
181 
182  if (badvalNZS>0)
183  {
184  problemvalue=badvalNZS*1./(badvalNZS+goodvalNZS);
185  if (abs(ieta)<29)
186  {
187  ProblemsByDepthNZS_->depth[0]->Fill(ieta,iphi,problemvalue);
188  if (abs(ieta)==28) // TP 28 spans towers 28 and 29
189  ProblemsByDepthNZS_->depth[0]->Fill(ieta+abs(ieta)/ieta,iphi,problemvalue);
190  }
191  else // HF
192  {
193  /* HF TPs:
194  TP29 = ieta 29-31
195  TP30 = ieta 32-34
196  TP31 = ieta 35-37
197  TP38 = ieta 38-41
198  iphi = 1, 5, ..., with 1 covering iphi=1 and iphi=71, etc.
199  */
200  int newieta=-99;
201  for (int i=0;i<3;++i)
202  {
203  newieta=i+29+3*(abs(ieta)-29)+1; // shift values by 1 for HF in EtaPhiHistsplot
204  if (ieta<0) newieta*=-1;
205  ProblemsByDepthNZS_->depth[0]->Fill(newieta,iphi,problemvalue);
206  ProblemsByDepthNZS_->depth[0]->Fill(newieta,(iphi-2+72)%72,problemvalue);
207  }
208  if (abs(ieta)==32)
209  {
210  ProblemsByDepthNZS_->depth[0]->Fill(42*abs(ieta)/ieta,iphi,problemvalue);
211  ProblemsByDepthNZS_->depth[0]->Fill(newieta,(iphi-2+72)%72,problemvalue);
212  }
213  }
214  } // errors found in NZS;
215  if (badvalZS>0)
216  {
217  problemvalue=badvalZS*1./(badvalZS+goodvalZS);
218  if (abs(ieta)<29) // Make special case for ieta=16 (HB/HE overlap?)
219  {
220  ProblemsByDepthZS_->depth[0]->Fill(ieta,iphi,problemvalue);
221  if (abs(ieta)==28) // TP 28 spans towers 28 and 29
222  ProblemsByDepthZS_->depth[0]->Fill(ieta+abs(ieta)/ieta,iphi,problemvalue);
223  }
224  else
225  {
226  int newieta=-99;
227  for (int i=0;i<3;++i)
228  {
229  newieta=i+29+3*(abs(ieta)-29)+1; // shift values by 1 for HF in EtaPhiHistsplot
230  if (ieta<0) newieta*=-1;
231  ProblemsByDepthZS_->depth[0]->Fill(newieta,iphi,problemvalue);
232  ProblemsByDepthZS_->depth[0]->Fill(newieta,(iphi-2+72)%72,problemvalue);
233  }
234  if (abs(ieta)==32)
235  {
236  ProblemsByDepthZS_->depth[0]->Fill(42*abs(ieta)/ieta,iphi,problemvalue);
237  ProblemsByDepthZS_->depth[0]->Fill(42*abs(ieta)/ieta,(iphi-2+72)%72,problemvalue);
238  }
239  }
240  } // errors found in ZS
241  if (badvalZS>0 || badvalNZS>0)
242  {
243  // Fill overall problem histograms with sum from both ZS & NZS, or ZS only?
244  //problemvalue=(badvalZS+badvalNZS)*1./(badvalZS+badvalNZS+goodvalZS+goodvalNZS);
245 
246  // Update on 8 March -- NZS shows lots of errors; let's not include that in problem cells just yet
247  if (badvalZS==0) continue;
248  problemvalue=(badvalZS*1.)/(badvalZS+goodvalZS);
249  if (abs(ieta)<29) // Make special case for ieta=16 (HB/HE overlap?)
250  {
251  ProblemCellsByDepth->depth[0]->Fill(ieta,iphi,problemvalue);
252  ProblemCells->Fill(ieta,iphi,problemvalue);
253  if (abs(ieta)==28) // TP 28 spans towers 28 and 29
254  {
255  ProblemCellsByDepth->depth[0]->Fill(ieta+abs(ieta)/ieta,iphi,problemvalue);
256  ProblemCells->Fill(ieta+abs(ieta)/ieta,iphi,problemvalue);
257  }
258  }
259  else
260  {
261  int newieta=-99;
262  int newiphi=(iphi-2+72)%72; // forward triggers combine two HF cells; *subtract* 2 to the iphi, and allow wraparound
263  // FIXME:
264  // iphi seems to start at 1 in Patrick's plots, continues mod 4;
265  // adjust in far-forward region, where cells start at iphi=3? Check with Patrick.
266  for (int i=0;i<3;++i)
267  {
268  newieta=i+29+3*(abs(ieta)-29)+1; // shift values by 1 for HF in EtaPhiHistsplot
269  if (ieta<0) newieta*=-1;
270  ProblemCellsByDepth->depth[0]->Fill(newieta,iphi,problemvalue);
271  ProblemCells->Fill(newieta,iphi,problemvalue);
272  ProblemCellsByDepth->depth[0]->Fill(newieta,newiphi,problemvalue);
273  ProblemCells->Fill(newieta,newiphi,problemvalue);
274  }
275  if (abs(ieta)==32)
276  {
277  ProblemCellsByDepth->depth[0]->Fill(42*abs(ieta)/ieta,iphi,problemvalue);
278  ProblemCells->Fill(42*abs(ieta)/ieta,iphi,problemvalue);
279  ProblemCellsByDepth->depth[0]->Fill(42*abs(ieta)/ieta,newiphi,problemvalue);
280  ProblemCells->Fill(42*abs(ieta)/ieta,newiphi,problemvalue);
281  }
282  }
283  }
284  }
285  } // for (int eta=1;eta<etabins;++eta)
286 
287 
288  if (ProblemCells==0)
289  {
290  if (debug_>0) std::cout <<"<HcalTrigPrimClient::analyze> ProblemCells histogram does not exist!"<<std::endl;
291  return;
292  }
293 
294  // Normalization of ProblemCell plot, in the case where there are errors in multiple depths
295  etabins=(ProblemCells->getTH2F())->GetNbinsX();
296  phibins=(ProblemCells->getTH2F())->GetNbinsY();
297  for (int eta=0;eta<etabins;++eta)
298  {
299  for (int phi=0;phi<phibins;++phi)
300  {
303  }
304  }
305 
310  return;
311 }
int i
Definition: DBlmapReader.cc:9
MonitorElement * ProblemCells
std::string name()
void setBinContent(int binx, double content)
set content of bin (1-D)
MonitorElement * get(const std::string &path)
Definition: DQMStore.cc:304
std::vector< std::string > HcalEtaPhiHistNames()
EtaPhiHists * ProblemsByDepthZS_
void Fill(long long x)
tuple d
Definition: ztail.py:151
std::vector< MonitorElement * > depth
EtaPhiHists * ProblemCellsByDepth
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
EtaPhiHists * ProblemsByDepthNZS_
std::string subdir_
void FillUnphysicalHEHFBins(std::vector< TH2F > &hh)
double getBinContent(int binx) const
get content of bin (1-D)
tuple cout
Definition: gather_cfg.py:145
TH2F * getTH2F(void) const
void Reset(void)
reset ME (ie. contents, errors, etc)
void HcalTrigPrimClient::cleanup ( void  )
virtual

Reimplemented from HcalBaseDQClient.

Definition at line 354 of file HcalTrigPrimClient.cc.

Referenced by esMonitoring.FDJsonServer::handle_close().

354 {}
void HcalTrigPrimClient::endJob ( void  )
virtual

Reimplemented from HcalBaseDQClient.

Definition at line 313 of file HcalTrigPrimClient.cc.

313 {}
bool HcalTrigPrimClient::hasErrors_Temp ( void  )
virtual

Reimplemented from HcalBaseDQClient.

Definition at line 356 of file HcalTrigPrimClient.cc.

References HcalObjRepresent::CalcIeta(), gather_cfg::cout, HcalBaseDQClient::debug_, EtaPhiHists::depth, HLT_25ns10e33_v2_cff::depth, MonitorElement::getTH2F(), HcalBaseDQClient::minerrorrate_, HcalBaseDQClient::ProblemCells, and HcalBaseDQClient::ProblemCellsByDepth.

357 {
358  if (!ProblemCells)
359  {
360  if (debug_>1) std::cout <<"<HcalTrigPrimClient::hasErrors_Temp> ProblemCells histogram does not exist!"<<std::endl;
361  return false;
362  }
363  int problemcount=0;
364  int ieta=-9999;
365 
366  for (int depth=0;depth<4; ++depth)
367  {
368  int etabins = (ProblemCells->getTH2F())->GetNbinsX();
369  int phibins = (ProblemCells->getTH2F())->GetNbinsY();
370  for (int hist_eta=0;hist_eta<etabins;++hist_eta)
371  {
372  for (int hist_phi=0; hist_phi<phibins;++hist_phi)
373  {
374  ieta=CalcIeta(hist_eta,depth+1);
375  if (ieta==-9999) continue;
377  continue;
378  if (ProblemCellsByDepth->depth[depth]->getBinContent(hist_eta,hist_phi)>minerrorrate_)
379  ++problemcount;
380 
381  } // for (int hist_phi=1;...)
382  } // for (int hist_eta=1;...)
383  } // for (int depth=0;...)
384 
385  if (problemcount>0) return true;
386  return false;
387 }
MonitorElement * ProblemCells
std::vector< MonitorElement * > depth
int CalcIeta(int subdet, int eta, int depth)
EtaPhiHists * ProblemCellsByDepth
tuple cout
Definition: gather_cfg.py:145
TH2F * getTH2F(void) const
bool HcalTrigPrimClient::hasOther_Temp ( void  )
virtual

Reimplemented from HcalBaseDQClient.

Definition at line 390 of file HcalTrigPrimClient.cc.

390 {return false;}
bool HcalTrigPrimClient::hasWarnings_Temp ( void  )
virtual

Reimplemented from HcalBaseDQClient.

Definition at line 389 of file HcalTrigPrimClient.cc.

389 {return false;}
void HcalTrigPrimClient::setup ( void  )
virtual

Reimplemented from HcalBaseDQClient.

Definition at line 353 of file HcalTrigPrimClient.cc.

353 {}
void HcalTrigPrimClient::setupProblemCells ( DQMStore::IBooker ib,
DQMStore::IGetter ig 
)
private

Definition at line 315 of file HcalTrigPrimClient.cc.

References DQMStore::IBooker::book2D(), gather_cfg::cout, HcalBaseDQClient::debug_, EtaPhiHists::depth, doProblemCellSetup_, MonitorElement::getName(), i, nevts_, HcalBaseDQClient::ProblemCells, HcalBaseDQClient::ProblemCellsByDepth, HcalBaseDQClient::problemnames_, ProblemsByDepthNZS_, ProblemsByDepthZS_, DQMStore::IBooker::setCurrentFolder(), EtaPhiHists::setup(), and HcalBaseDQClient::subdir_.

Referenced by analyze().

316 {
317 
319  problemnames_.clear();
320 
321  // Put the appropriate name of your problem summary here
322  ProblemCells=ib.book2D(" ProblemTriggerPrimitives",
323  " Problem Trigger Primitive Rate for all HCAL;ieta;iphi",
324  85,-42.5,42.5,
325  72,0.5,72.5);
326  problemnames_.push_back(ProblemCells->getName());
327  if (debug_>1)
328  std::cout << "Tried to create ProblemCells Monitor Element in directory "<<subdir_<<" \t Failed? "<<(ProblemCells==0)<<std::endl;
329  ib.setCurrentFolder(subdir_+"problem_triggerprimitives");
331  ProblemCellsByDepth->setup(ib," Problem Trigger Primitive Rate");
332  for (unsigned int i=0; i<ProblemCellsByDepth->depth.size();++i)
333  problemnames_.push_back(ProblemCellsByDepth->depth[i]->getName());
334  nevts_=0;
335 
336  ib.setCurrentFolder(subdir_+"problem_ZS");
338  ProblemsByDepthZS_->setup(ib,"ZS Problem Trigger Primitive Rate");
339  ib.setCurrentFolder(subdir_+"problem_NZS");
341  ProblemsByDepthNZS_->setup(ib,"NZS Problem Trigger Primitive Rate");
342 
343  doProblemCellSetup_ = false;
344 }
const std::string & getName(void) const
get name of ME
int i
Definition: DBlmapReader.cc:9
MonitorElement * ProblemCells
EtaPhiHists * ProblemsByDepthZS_
std::vector< MonitorElement * > depth
std::vector< std::string > problemnames_
EtaPhiHists * ProblemCellsByDepth
void setup(DQMStore::IBooker &m_dbe, std::string Name, std::string Units="")
EtaPhiHists * ProblemsByDepthNZS_
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:276
MonitorElement * book2D(Args &&...args)
Definition: DQMStore.h:133
std::string subdir_
tuple cout
Definition: gather_cfg.py:145
bool HcalTrigPrimClient::test_enabled ( void  )
virtual

Reimplemented from HcalBaseDQClient.

Definition at line 391 of file HcalTrigPrimClient.cc.

391 {return true;}
void HcalTrigPrimClient::updateChannelStatus ( std::map< HcalDetId, unsigned int > &  myqual)
virtual

Reimplemented from HcalBaseDQClient.

Definition at line 394 of file HcalTrigPrimClient.cc.

395 {
396  // This gets called by HcalMonitorClient
397  // trigger primitives don't yet contribute to channel status (though they could...)
398  // see dead or hot cell code for an example
399 
400 } //void HcalTrigPrimClient::updateChannelStatus

Member Data Documentation

bool HcalTrigPrimClient::doProblemCellSetup_
private

Definition at line 41 of file HcalTrigPrimClient.h.

Referenced by analyze(), HcalTrigPrimClient(), and setupProblemCells().

int HcalTrigPrimClient::nevts_
private

Definition at line 35 of file HcalTrigPrimClient.h.

Referenced by setupProblemCells().

EtaPhiHists* HcalTrigPrimClient::ProblemsByDepthNZS_
private
EtaPhiHists* HcalTrigPrimClient::ProblemsByDepthZS_
private