CMS 3D CMS Logo

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
Functions
UtilityMacros.h File Reference

Go to the source code of this file.

Functions

TH1D * projectProfile2DAlongX (TProfile2D *prof2d)
 
TH1D * projectProfile2DAlongY (TProfile2D *prof2d)
 

Function Documentation

◆ projectProfile2DAlongX()

TH1D* projectProfile2DAlongX ( TProfile2D *  prof2d)

Definition at line 5 of file UtilityMacros.cc.

5  {
6 
7  TH1D* res=nullptr;
8 
9  if(prof2d) {
10  char name[200];
11  sprintf(name,"%s_proj",prof2d->GetName());
12  res = new TH1D(name,prof2d->GetTitle(),prof2d->GetNbinsY(),prof2d->GetYaxis()->GetXmin(),prof2d->GetYaxis()->GetXmax());
13  res->SetDirectory(nullptr);
14  res->Sumw2();
15  for(int iy=1;iy<prof2d->GetNbinsY()+1;++iy) {
16  double sum=0.;
17  double sumsq=0.;
18  double nevt=0.;
19  for(int ix=1;ix<prof2d->GetNbinsX()+1;++ix) {
20  const int ibin = prof2d->GetBin(ix,iy);
21  sum += prof2d->GetBinContent(ibin)*prof2d->GetBinEntries(ibin);
22  sumsq += prof2d->GetBinError(ibin)*prof2d->GetBinError(ibin)*prof2d->GetBinEntries(ibin)*prof2d->GetBinEntries(ibin)+
23  prof2d->GetBinContent(ibin)*prof2d->GetBinContent(ibin)*prof2d->GetBinEntries(ibin);
24  nevt += prof2d->GetBinEntries(ibin);
25  }
26  double mean = nevt==0 ? 0: sum/nevt;
27  double meansq = nevt==0 ? 0: sumsq/nevt;
28  double err = meansq >= mean*mean ? sqrt(meansq-mean*mean) : 0;
29  err = nevt==0 ? 0 : err/sqrt(nevt);
30  res->SetBinContent(iy,mean);
31  res->SetBinError(iy,err);
32  }
33  }
34 
35  return res;
36 }

References submitPVResolutionJobs::err, SiStripPI::mean, Skims_PA_cff::name, nevt, and mathSSE::sqrt().

◆ projectProfile2DAlongY()

TH1D* projectProfile2DAlongY ( TProfile2D *  prof2d)

Definition at line 38 of file UtilityMacros.cc.

38  {
39 
40  TH1D* res=nullptr;
41 
42  if(prof2d) {
43  char name[200];
44  sprintf(name,"%s_proj",prof2d->GetName());
45  res = new TH1D(name,prof2d->GetTitle(),prof2d->GetNbinsX(),prof2d->GetXaxis()->GetXmin(),prof2d->GetXaxis()->GetXmax());
46  res->SetDirectory(nullptr);
47  res->Sumw2();
48  for(int ix=1;ix<prof2d->GetNbinsX()+1;++ix) {
49  double sum=0.;
50  double sumsq=0.;
51  double nevt=0.;
52  for(int iy=1;iy<prof2d->GetNbinsY()+1;++iy) {
53  const int ibin = prof2d->GetBin(ix,iy);
54  sum += prof2d->GetBinContent(ibin)*prof2d->GetBinEntries(ibin);
55  sumsq += prof2d->GetBinError(ibin)*prof2d->GetBinError(ibin)*prof2d->GetBinEntries(ibin)*prof2d->GetBinEntries(ibin)+
56  prof2d->GetBinContent(ibin)*prof2d->GetBinContent(ibin)*prof2d->GetBinEntries(ibin);
57  nevt += prof2d->GetBinEntries(ibin);
58  }
59  double mean = nevt==0 ? 0: sum/nevt;
60  double meansq = nevt==0 ? 0: sumsq/nevt;
61  double err = meansq >= mean*mean ? sqrt(meansq-mean*mean) : 0;
62  err = nevt==0 ? 0 : err/sqrt(nevt);
63  res->SetBinContent(ix,mean);
64  res->SetBinError(ix,err);
65  }
66  }
67 
68  return res;
69 }

References submitPVResolutionJobs::err, SiStripPI::mean, Skims_PA_cff::name, nevt, and mathSSE::sqrt().

SiStripPI::mean
Definition: SiStripPayloadInspectorHelper.h:169
mathSSE::sqrt
T sqrt(T t)
Definition: SSEVec.h:19
submitPVResolutionJobs.err
err
Definition: submitPVResolutionJobs.py:85
res
Definition: Electron.h:6
nevt
int nevt
Definition: ReggeGribovPartonMCHadronizer.h:66
Skims_PA_cff.name
name
Definition: Skims_PA_cff.py:17