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
HLTTauDQMSummaryPlotter Class Reference

#include <HLTTauDQMSummaryPlotter.h>

Public Member Functions

 HLTTauDQMSummaryPlotter (const edm::ParameterSet &)
 
void plot ()
 
 ~HLTTauDQMSummaryPlotter ()
 

Private Member Functions

void bookEfficiencyHisto (std::string, std::string, std::string, DQMStore *)
 
void bookTriggerBitEfficiencyHistos (std::string folder, std::string histo, DQMStore *dbe)
 
std::vector< double > calcEfficiency (float, float)
 
void plotEfficiencyHisto (std::string, std::string, std::string, std::string, DQMStore *)
 
void plotIntegratedEffHisto (std::string, std::string, std::string, std::string, int, DQMStore *)
 
void plotTriggerBitEfficiencyHistos (std::string folder, std::string histo, DQMStore *dbe)
 

Private Attributes

std::vector< std::string > caloFolder_
 
DQMStoredbe
 
std::vector< std::string > L1Folder_
 
std::vector< std::string > litePathFolder_
 
std::vector< std::string > pathFolder_
 
std::vector< std::string > trackFolder_
 

Detailed Description

Definition at line 22 of file HLTTauDQMSummaryPlotter.h.

Constructor & Destructor Documentation

HLTTauDQMSummaryPlotter::HLTTauDQMSummaryPlotter ( const edm::ParameterSet iConfig)

Definition at line 3 of file HLTTauDQMSummaryPlotter.cc.

References bookEfficiencyHisto(), bookTriggerBitEfficiencyHistos(), caloFolder_, dbe, i, L1Folder_, litePathFolder_, cmsCodeRules.cppFunctionSkipper::operator, pathFolder_, findQualityFiles::size, and trackFolder_.

3  :
4  L1Folder_(iConfig.getParameter<std::vector<std::string> >("L1Dirs")),
5  caloFolder_(iConfig.getParameter<std::vector<std::string> >("caloDirs")),
6  trackFolder_(iConfig.getParameter<std::vector<std::string> >("trackDirs")),
7  pathFolder_(iConfig.getParameter<std::vector< std::string> >("pathDirs")),
8  litePathFolder_(iConfig.getParameter<std::vector< std::string> >("pathSummaryDirs"))
9 
10 {
11  dbe = 0;
13 
14  if (dbe) {
15 
16  //Path Summary
17  for(size_t i=0;i<pathFolder_.size();++i)
18  if(pathFolder_[i].size()>0)
19  {
20  bookTriggerBitEfficiencyHistos(pathFolder_[i],"MatchedTriggerBits",dbe);
21  }
22 
23  //Lite Path Summary
24  for(size_t i=0;i<litePathFolder_.size();++i)
25  if(litePathFolder_[i].size()>0)
26  {
27  bookEfficiencyHisto(litePathFolder_[i],"PathEfficiency","MatchedPathTriggerBits",dbe);
28  bookEfficiencyHisto(litePathFolder_[i],"TrigTauEtEff","TrigTauEtEffNum",dbe);
29  bookEfficiencyHisto(litePathFolder_[i],"TrigTauEtaEff","TrigTauEtaEffNum",dbe);
30  bookEfficiencyHisto(litePathFolder_[i],"TrigTauPhiEff","TrigTauPhiEffNum",dbe);
31  }
32 
33  //L1 Summary
34  for(size_t i=0;i<L1Folder_.size();++i)
35  if(L1Folder_[i].size()>0)
36  {
37  bookEfficiencyHisto(L1Folder_[i],"L1TauEtEff","EfficiencyHelpers/L1TauEtEffNum",dbe);
38  bookEfficiencyHisto(L1Folder_[i],"L1TauEtaEff","EfficiencyHelpers/L1TauEtaEffNum",dbe);
39  bookEfficiencyHisto(L1Folder_[i],"L1TauPhiEff","EfficiencyHelpers/L1TauPhiEffNum",dbe);
40 
41  bookEfficiencyHisto(L1Folder_[i],"L1JetEtEff","EfficiencyHelpers/L1JetEtEffNum",dbe);
42  bookEfficiencyHisto(L1Folder_[i],"L1JetEtaEff","EfficiencyHelpers/L1JetEtaEffNum",dbe);
43  bookEfficiencyHisto(L1Folder_[i],"L1JetPhiEff","EfficiencyHelpers/L1JetPhiEffNum",dbe);
44 
45  bookEfficiencyHisto(L1Folder_[i],"L1SingleTauEff","L1LeadTauEt",dbe);
46  bookEfficiencyHisto(L1Folder_[i],"L1DoubleTauEff","L1SecondTauEt",dbe);
47 
48  }
49 
50 
51  //L2 Summary
52  for(size_t i=0;i<caloFolder_.size();++i)
53  if(caloFolder_[i].size()>0)
54  {
55  bookEfficiencyHisto(caloFolder_[i],"L2RecoTauEtEff","EfficiencyHelpers/L2RecoTauEtEffNum",dbe);
56  bookEfficiencyHisto(caloFolder_[i],"L2RecoTauEtaEff","EfficiencyHelpers/L2RecoTauEtaEffNum",dbe);
57  bookEfficiencyHisto(caloFolder_[i],"L2RecoTauPhiEff","EfficiencyHelpers/L2RecoTauPhiEffNum",dbe);
58 
59  bookEfficiencyHisto(caloFolder_[i],"L2IsoTauEtEff","EfficiencyHelpers/L2IsoTauEtEffNum",dbe);
60  bookEfficiencyHisto(caloFolder_[i],"L2IsoTauEtaEff","EfficiencyHelpers/L2IsoTauEtaEffNum",dbe);
61  bookEfficiencyHisto(caloFolder_[i],"L2IsoTauPhiEff","EfficiencyHelpers/L2IsoTauPhiEffNum",dbe);
62  }
63 
64  //L25/3 Summary
65  for(size_t i=0;i<trackFolder_.size();++i)
66  if(trackFolder_[i].size()>0)
67  {
68  bookEfficiencyHisto(trackFolder_[i],"L25TauEtEff","L25TauEtEffNum",dbe);
69  bookEfficiencyHisto(trackFolder_[i],"L25TauEtaEff","L25TauEtaEffNum",dbe);
70  bookEfficiencyHisto(trackFolder_[i],"L25TauPhiEff","L25TauPhiEffNum",dbe);
71  bookEfficiencyHisto(trackFolder_[i],"L3TauEtEff","L3TauEtEffNum",dbe);
72  bookEfficiencyHisto(trackFolder_[i],"L3TauEtaEff","L3TauEtaEffNum",dbe);
73  bookEfficiencyHisto(trackFolder_[i],"L3TauPhiEff","L3TauPhiEffNum",dbe);
74  }
75  }
76 
77 
78 }
T getParameter(std::string const &) const
int i
Definition: DBlmapReader.cc:9
void bookTriggerBitEfficiencyHistos(std::string folder, std::string histo, DQMStore *dbe)
std::vector< std::string > pathFolder_
std::vector< std::string > trackFolder_
std::vector< std::string > L1Folder_
void bookEfficiencyHisto(std::string, std::string, std::string, DQMStore *)
std::vector< std::string > litePathFolder_
std::vector< std::string > caloFolder_
tuple size
Write out results.
HLTTauDQMSummaryPlotter::~HLTTauDQMSummaryPlotter ( )

Definition at line 80 of file HLTTauDQMSummaryPlotter.cc.

80 {}

Member Function Documentation

void HLTTauDQMSummaryPlotter::bookEfficiencyHisto ( std::string  folder,
std::string  name,
std::string  hist1,
DQMStore dbe 
)
private

Definition at line 162 of file HLTTauDQMSummaryPlotter.cc.

References DQMStore::bookProfile(), DQMStore::dirExists(), DQMStore::get(), MonitorElement::getTH1F(), DQMStore::setCurrentFolder(), MonitorElement::setTitle(), and tmp.

Referenced by HLTTauDQMSummaryPlotter().

163 {
164  if(dbe->dirExists(folder))
165  {
166  MonitorElement * effnum = dbe->get(folder+"/"+hist1);
167 
168  if(effnum)
169  {
170  dbe->setCurrentFolder(folder);
171  MonitorElement *tmp = dbe->bookProfile(name,name,effnum->getTH1F()->GetNbinsX(),effnum->getTH1F()->GetXaxis()->GetXmin(),effnum->getTH1F()->GetXaxis()->GetXmax(),105,0,1.05);
172 
173  tmp->setTitle(name);
174  }
175  }
176 }
MonitorElement * bookProfile(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, const char *option="s")
Definition: DQMStore.cc:828
MonitorElement * get(const std::string &path) const
get ME from full pathname (e.g. &quot;my/long/dir/my_histo&quot;)
Definition: DQMStore.cc:1265
void setTitle(const std::string &title)
set (ie. change) histogram/profile title
bool dirExists(const std::string &path) const
true if directory exists
Definition: DQMStore.cc:296
TH1F * getTH1F(void) const
std::vector< std::vector< double > > tmp
Definition: MVATrainer.cc:100
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:232
void HLTTauDQMSummaryPlotter::bookTriggerBitEfficiencyHistos ( std::string  folder,
std::string  histo,
DQMStore dbe 
)
private

Definition at line 248 of file HLTTauDQMSummaryPlotter.cc.

References DQMStore::bookProfile(), DQMStore::dirExists(), DQMStore::get(), MonitorElement::getNbinsX(), and DQMStore::setCurrentFolder().

Referenced by HLTTauDQMSummaryPlotter().

249 {
250  if(dbe->dirExists(folder))
251  {
252  dbe->setCurrentFolder(folder);
253  MonitorElement* eff = dbe->get(folder+"/"+histo);
254  dbe->bookProfile("EfficiencyRefInput","Efficiency with Matching",eff->getNbinsX()-1,0,eff->getNbinsX()-1,100,0,1);
255  dbe->bookProfile("EfficiencyRefL1","Efficiency with Matching Ref to L1",eff->getNbinsX()-2,0,eff->getNbinsX()-2,100,0,1);
256  dbe->bookProfile("EfficiencyRefPrevious","Efficiency with Matching Ref To previous",eff->getNbinsX()-1,0,eff->getNbinsX()-1,100,0,1);
257 
258  }
259 
260 }
tuple histo
Definition: trackerHits.py:12
MonitorElement * bookProfile(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, const char *option="s")
Definition: DQMStore.cc:828
MonitorElement * get(const std::string &path) const
get ME from full pathname (e.g. &quot;my/long/dir/my_histo&quot;)
Definition: DQMStore.cc:1265
bool dirExists(const std::string &path) const
true if directory exists
Definition: DQMStore.cc:296
int getNbinsX(void) const
get # of bins in X-axis
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:232
std::vector< double > HLTTauDQMSummaryPlotter::calcEfficiency ( float  num,
float  denom 
)
private

Definition at line 318 of file HLTTauDQMSummaryPlotter.cc.

References a, and mathSSE::sqrt().

Referenced by plotEfficiencyHisto(), and plotTriggerBitEfficiencyHistos().

319 {
320  std::vector<double> a;
321  if(denom==0)
322  {
323  a.push_back(0.);
324  a.push_back(0.);
325  }
326  else
327  {
328  a.push_back(num/denom);
329  a.push_back(sqrt(a[0]*(1-a[0])/(denom)));
330  }
331  return a;
332 }
T sqrt(T t)
Definition: SSEVec.h:28
long long int num
Definition: procUtils.cc:71
double a
Definition: hdecay.h:121
void HLTTauDQMSummaryPlotter::plot ( )

Definition at line 84 of file HLTTauDQMSummaryPlotter.cc.

References caloFolder_, dbe, i, L1Folder_, litePathFolder_, pathFolder_, plotEfficiencyHisto(), plotIntegratedEffHisto(), plotTriggerBitEfficiencyHistos(), findQualityFiles::size, and trackFolder_.

Referenced by HLTTauPostProcessor::harvest().

85 {
86  if (dbe) {
87 
88  //Path Summary
89  for(size_t i=0;i<pathFolder_.size();++i)
90  if(pathFolder_[i].size()>0)
91  {
92  plotTriggerBitEfficiencyHistos(pathFolder_[i],"MatchedTriggerBits",dbe);
93  }
94 
95 
96  //Lite Path Summary
97  for(size_t i=0;i<litePathFolder_.size();++i)
98  if(litePathFolder_[i].size()>0)
99  {
100  plotEfficiencyHisto(litePathFolder_[i],"PathEfficiency","MatchedPathTriggerBits","RefEvents",dbe);
101  plotEfficiencyHisto(litePathFolder_[i],"TrigTauEtEff","TrigTauEtEffNum","TrigTauEtEffDenom",dbe);
102  plotEfficiencyHisto(litePathFolder_[i],"TrigTauEtaEff","TrigTauEtaEffNum","TrigTauEtaEffDenom",dbe);
103  plotEfficiencyHisto(litePathFolder_[i],"TrigTauPhiEff","TrigTauPhiEffNum","TrigTauPhiEffDenom",dbe);
104  }
105 
106  //L1 Summary
107  for(size_t i=0;i<L1Folder_.size();++i)
108  if(L1Folder_[i].size()>0)
109  {
110  plotEfficiencyHisto(L1Folder_[i],"L1TauEtEff","EfficiencyHelpers/L1TauEtEffNum","EfficiencyHelpers/L1TauEtEffDenom",dbe);
111  plotEfficiencyHisto(L1Folder_[i],"L1TauEtaEff","EfficiencyHelpers/L1TauEtaEffNum","EfficiencyHelpers/L1TauEtaEffDenom",dbe);
112  plotEfficiencyHisto(L1Folder_[i],"L1TauPhiEff","EfficiencyHelpers/L1TauPhiEffNum","EfficiencyHelpers/L1TauPhiEffDenom",dbe);
113 
114  plotEfficiencyHisto(L1Folder_[i],"L1JetEtEff","EfficiencyHelpers/L1JetEtEffNum","EfficiencyHelpers/L1JetEtEffDenom",dbe);
115  plotEfficiencyHisto(L1Folder_[i],"L1JetEtaEff","EfficiencyHelpers/L1JetEtaEffNum","EfficiencyHelpers/L1JetEtaEffDenom",dbe);
116  plotEfficiencyHisto(L1Folder_[i],"L1JetPhiEff","EfficiencyHelpers/L1JetPhiEffNum","EfficiencyHelpers/L1JetPhiEffDenom",dbe);
117 
118  plotEfficiencyHisto(L1Folder_[i],"L1ElectronEtEff","EfficiencyHelpers/L1ElectronEtEffNum","EfficiencyHelpers/L1ElectronEtEffDenom",dbe);
119  plotEfficiencyHisto(L1Folder_[i],"L1ElectronEtaEff","EfficiencyHelpers/L1ElectronEtaEffNum","EfficiencyHelpers/L1ElectronEtaEffDenom",dbe);
120  plotEfficiencyHisto(L1Folder_[i],"L1ElectronPhiEff","EfficiencyHelpers/L1ElectronPhiEffNum","EfficiencyHelpers/L1ElectronPhiEffDenom",dbe);
121 
122  plotEfficiencyHisto(L1Folder_[i],"L1MuonEtEff","EfficiencyHelpers/L1MuonEtEffNum","EfficiencyHelpers/L1MuonEtEffDenom",dbe);
123  plotEfficiencyHisto(L1Folder_[i],"L1MuonEtaEff","EfficiencyHelpers/L1MuonEtaEffNum","EfficiencyHelpers/L1MuonEtaEffDenom",dbe);
124  plotEfficiencyHisto(L1Folder_[i],"L1MuonPhiEff","EfficiencyHelpers/L1MuonPhiEffNum","EfficiencyHelpers/L1MuonPhiEffDenom",dbe);
125 
126  plotIntegratedEffHisto(L1Folder_[i],"L1SingleTauEff","L1LeadTauEt","InputEvents",1,dbe);
127  plotIntegratedEffHisto(L1Folder_[i],"L1DoubleTauEff","L1SecondTauEt","InputEvents",2,dbe);
128  }
129 
130  //L2 Summary
131  for(size_t i=0;i<caloFolder_.size();++i)
132  if(caloFolder_[i].size()>0)
133  {
134  plotEfficiencyHisto(caloFolder_[i],"L2RecoTauEtEff","EfficiencyHelpers/L2RecoTauEtEffNum","EfficiencyHelpers/L2RecoTauEtEffDenom",dbe);
135  plotEfficiencyHisto(caloFolder_[i],"L2RecoTauEtaEff","EfficiencyHelpers/L2RecoTauEtaEffNum","EfficiencyHelpers/L2RecoTauEtaEffDenom",dbe);
136  plotEfficiencyHisto(caloFolder_[i],"L2RecoTauPhiEff","EfficiencyHelpers/L2RecoTauPhiEffNum","EfficiencyHelpers/L2RecoTauPhiEffDenom",dbe);
137 
138  plotEfficiencyHisto(caloFolder_[i],"L2IsoTauEtEff","EfficiencyHelpers/L2IsoTauEtEffNum","EfficiencyHelpers/L2IsoTauEtEffDenom",dbe);
139  plotEfficiencyHisto(caloFolder_[i],"L2IsoTauEtaEff","EfficiencyHelpers/L2IsoTauEtaEffNum","EfficiencyHelpers/L2IsoTauEtaEffDenom",dbe);
140  plotEfficiencyHisto(caloFolder_[i],"L2IsoTauPhiEff","EfficiencyHelpers/L2IsoTauPhiEffNum","EfficiencyHelpers/L2IsoTauPhiEffDenom",dbe);
141  }
142 
143 
144  //L25/3 Summary
145  for(size_t i=0;i<trackFolder_.size();++i)
146  if(trackFolder_[i].size()>0)
147  {
148  plotEfficiencyHisto(trackFolder_[i],"L25TauEtEff","L25TauEtEffNum","L25TauEtEffDenom",dbe);
149  plotEfficiencyHisto(trackFolder_[i],"L25TauEtaEff","L25TauEtaEffNum","L25TauEtaEffDenom",dbe);
150  plotEfficiencyHisto(trackFolder_[i],"L25TauPhiEff","L25TauPhiEffNum","L25TauPhiEffDenom",dbe);
151  plotEfficiencyHisto(trackFolder_[i],"L3TauEtEff","L3TauEtEffNum","L3TauEtEffDenom",dbe);
152  plotEfficiencyHisto(trackFolder_[i],"L3TauEtaEff","L3TauEtaEffNum","L3TauEtaEffDenom",dbe);
153  plotEfficiencyHisto(trackFolder_[i],"L3TauPhiEff","L3TauPhiEffNum","L3TauPhiEffDenom",dbe);
154 
155  }
156  }
157 }
void plotIntegratedEffHisto(std::string, std::string, std::string, std::string, int, DQMStore *)
int i
Definition: DBlmapReader.cc:9
void plotEfficiencyHisto(std::string, std::string, std::string, std::string, DQMStore *)
std::vector< std::string > pathFolder_
std::vector< std::string > trackFolder_
std::vector< std::string > L1Folder_
void plotTriggerBitEfficiencyHistos(std::string folder, std::string histo, DQMStore *dbe)
std::vector< std::string > litePathFolder_
std::vector< std::string > caloFolder_
tuple size
Write out results.
void HLTTauDQMSummaryPlotter::plotEfficiencyHisto ( std::string  folder,
std::string  name,
std::string  hist1,
std::string  hist2,
DQMStore dbe 
)
private

Definition at line 182 of file HLTTauDQMSummaryPlotter.cc.

References calcEfficiency(), DQMStore::dirExists(), postValidation_cfi::efficiency, DQMStore::get(), MonitorElement::getTH1F(), MonitorElement::getTProfile(), i, and mathSSE::sqrt().

Referenced by plot().

183 {
184  if(dbe->dirExists(folder))
185  {
186  MonitorElement * effnum = dbe->get(folder+"/"+hist1);
187  MonitorElement * effdenom = dbe->get(folder+"/"+hist2);
188  MonitorElement * eff = dbe->get(folder+"/"+name);
189 
190  if(effnum && effdenom && eff )
191  {
192  // dbe->setCurrentFolder(folder);
193  for( int i=1;i<=effnum->getTH1F()->GetNbinsX();++i)
194  {
195  std::vector<double> efficiency =calcEfficiency(effnum->getTH1F()->GetBinContent(i),effdenom->getTH1F()->GetBinContent(i));
196  eff->getTProfile()->SetBinContent(i,efficiency[0]);
197  eff->getTProfile()->SetBinEntries(i,1);
198  eff->getTProfile()->SetBinError(i,sqrt(efficiency[0]*efficiency[0]+efficiency[1]*efficiency[1]));
199  }
200  }
201 
202  }
203 }
int i
Definition: DBlmapReader.cc:9
std::vector< double > calcEfficiency(float, float)
T sqrt(T t)
Definition: SSEVec.h:28
MonitorElement * get(const std::string &path) const
get ME from full pathname (e.g. &quot;my/long/dir/my_histo&quot;)
Definition: DQMStore.cc:1265
bool dirExists(const std::string &path) const
true if directory exists
Definition: DQMStore.cc:296
TH1F * getTH1F(void) const
TProfile * getTProfile(void) const
void HLTTauDQMSummaryPlotter::plotIntegratedEffHisto ( std::string  folder,
std::string  name,
std::string  refHisto,
std::string  evCount,
int  bin,
DQMStore dbe 
)
private

Definition at line 207 of file HLTTauDQMSummaryPlotter.cc.

References DQMStore::dirExists(), DQMStore::get(), MonitorElement::getTH1F(), MonitorElement::getTProfile(), trackerHits::histo, i, funct::integral(), RecoTauCommonJetSelections_cfi::nbins, MultipleCompare::refH, and mathSSE::sqrt().

Referenced by plot().

208 {
209  if(dbe->dirExists(folder))
210  {
211  MonitorElement * refH = dbe->get(folder+"/"+refHisto);
212  MonitorElement * evC = dbe->get(folder+"/"+evCount);
213  MonitorElement * eff = dbe->get(folder+"/"+name);
214 
215  if(refH && evC && eff)
216  {
217  TH1F *histo = refH->getTH1F();
218  float nGenerated = evC->getTH1F()->GetBinContent(bin);
219  // Assuming that the histogram is incremented with weight=1 for each event
220  // this function integrates the histogram contents above every bin and stores it
221  // in that bin. The result is plot of integral rate versus threshold plot.
222  int nbins = histo->GetNbinsX();
223  double integral = histo->GetBinContent(nbins+1); // Initialize to overflow
224  if (nGenerated<=0.0) {
225  nGenerated=1.0;
226  }
227  for(int i = nbins; i >= 1; i--)
228  {
229  double thisBin = histo->GetBinContent(i);
230  integral += thisBin;
231  double integralEff;
232  double integralError;
233  integralEff = (integral / nGenerated);
234  eff->getTProfile()->SetBinContent(i, integralEff);
235  eff->getTProfile()->SetBinEntries(i, 1);
236  // error
237  integralError = (sqrt(integral) / nGenerated);
238 
239  eff->getTProfile()->SetBinError(i, sqrt(integralEff*integralEff+integralError*integralError));
240  }
241  }
242  }
243 }
int i
Definition: DBlmapReader.cc:9
tuple histo
Definition: trackerHits.py:12
T sqrt(T t)
Definition: SSEVec.h:28
MonitorElement * get(const std::string &path) const
get ME from full pathname (e.g. &quot;my/long/dir/my_histo&quot;)
Definition: DQMStore.cc:1265
Integral< F, X >::type integral(const F &f)
Definition: Integral.h:69
bool dirExists(const std::string &path) const
true if directory exists
Definition: DQMStore.cc:296
TH1F * getTH1F(void) const
TProfile * getTProfile(void) const
void HLTTauDQMSummaryPlotter::plotTriggerBitEfficiencyHistos ( std::string  folder,
std::string  histo,
DQMStore dbe 
)
private

Definition at line 264 of file HLTTauDQMSummaryPlotter.cc.

References calcEfficiency(), DQMStore::dirExists(), postValidation_cfi::efficiency, DQMStore::get(), MonitorElement::getBinContent(), MonitorElement::getNbinsX(), MonitorElement::getTH1F(), MonitorElement::getTProfile(), i, MonitorElement::setBinLabel(), DQMStore::setCurrentFolder(), and mathSSE::sqrt().

Referenced by plot().

265 {
266  if(dbe->dirExists(folder))
267  {
268  dbe->setCurrentFolder(folder);
269  MonitorElement* eff = dbe->get(folder+"/"+histo);
270  MonitorElement * effRefTruth = dbe->get(folder+"/EfficiencyRefInput");
271  MonitorElement * effRefL1 = dbe->get(folder+"/EfficiencyRefL1");
272  MonitorElement * effRefPrevious = dbe->get(folder+"/EfficiencyRefPrevious");
273 
274 
275  if(eff)
276  {
277  //Calculate Efficiencies with ref to Matched Objects
278  for(int i =2;i<=eff->getNbinsX();++i)
279  {
280  double efficiency = calcEfficiency(eff->getBinContent(i),eff->getBinContent(1))[0];
281  double err = calcEfficiency(eff->getBinContent(i),eff->getBinContent(1))[1];
282 
283  effRefTruth->getTProfile()->SetBinContent(i-1,efficiency);
284  effRefTruth->getTProfile()->SetBinEntries(i-1,1);
285  effRefTruth->getTProfile()->SetBinError(i-1,sqrt(efficiency*efficiency+err*err));
286  effRefTruth->setBinLabel(i-1,eff->getTH1F()->GetXaxis()->GetBinLabel(i));
287 
288  }
289  //Calculate Efficiencies with ref to L1
290  for(int i =3;i<=eff->getNbinsX();++i)
291  {
292  double efficiency = calcEfficiency(eff->getBinContent(i),eff->getBinContent(2))[0];
293  double err = calcEfficiency(eff->getBinContent(i),eff->getBinContent(2))[1];
294 
295  effRefL1->getTProfile()->SetBinContent(i-2,efficiency);
296  effRefL1->getTProfile()->SetBinEntries(i-2,1);
297  effRefL1->getTProfile()->SetBinError(i-2,sqrt(efficiency*efficiency+err*err));
298  effRefL1->setBinLabel(i-2,eff->getTH1F()->GetXaxis()->GetBinLabel(i));
299  }
300 
301  //Calculate Efficiencies with ref to previous
302  for(int i = 2;i<=eff->getNbinsX();++i)
303  {
304  double efficiency = calcEfficiency(eff->getBinContent(i),eff->getBinContent(i-1))[0];
305  double err = calcEfficiency(eff->getBinContent(i),eff->getBinContent(i-1))[1];
306 
307  effRefPrevious->getTProfile()->SetBinContent(i-1,efficiency);
308  effRefPrevious->getTProfile()->SetBinEntries(i-1,1);
309  effRefPrevious->getTProfile()->SetBinError(i-1,sqrt(efficiency*efficiency+err*err));
310  effRefPrevious->setBinLabel(i-1,eff->getTH1F()->GetXaxis()->GetBinLabel(i));
311  }
312  }
313  }
314 }
int i
Definition: DBlmapReader.cc:9
std::vector< double > calcEfficiency(float, float)
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)
tuple histo
Definition: trackerHits.py:12
T sqrt(T t)
Definition: SSEVec.h:28
MonitorElement * get(const std::string &path) const
get ME from full pathname (e.g. &quot;my/long/dir/my_histo&quot;)
Definition: DQMStore.cc:1265
bool dirExists(const std::string &path) const
true if directory exists
Definition: DQMStore.cc:296
TH1F * getTH1F(void) const
double getBinContent(int binx) const
get content of bin (1-D)
TProfile * getTProfile(void) const
int getNbinsX(void) const
get # of bins in X-axis
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:232

Member Data Documentation

std::vector<std::string> HLTTauDQMSummaryPlotter::caloFolder_
private

Definition at line 47 of file HLTTauDQMSummaryPlotter.h.

Referenced by HLTTauDQMSummaryPlotter(), and plot().

DQMStore* HLTTauDQMSummaryPlotter::dbe
private

Definition at line 43 of file HLTTauDQMSummaryPlotter.h.

Referenced by HLTTauDQMSummaryPlotter(), and plot().

std::vector<std::string> HLTTauDQMSummaryPlotter::L1Folder_
private

Definition at line 46 of file HLTTauDQMSummaryPlotter.h.

Referenced by HLTTauDQMSummaryPlotter(), and plot().

std::vector<std::string> HLTTauDQMSummaryPlotter::litePathFolder_
private

Definition at line 50 of file HLTTauDQMSummaryPlotter.h.

Referenced by HLTTauDQMSummaryPlotter(), and plot().

std::vector<std::string> HLTTauDQMSummaryPlotter::pathFolder_
private

Definition at line 49 of file HLTTauDQMSummaryPlotter.h.

Referenced by HLTTauDQMSummaryPlotter(), and plot().

std::vector<std::string> HLTTauDQMSummaryPlotter::trackFolder_
private

Definition at line 48 of file HLTTauDQMSummaryPlotter.h.

Referenced by HLTTauDQMSummaryPlotter(), and plot().