ATLAS Offline Software
Public Member Functions | Public Attributes | Protected Attributes | Private Member Functions | Static Private Member Functions | List of all members
RecoPhysPlots Class Reference

#include <RecoPhysPlots.h>

Inheritance diagram for RecoPhysPlots:
Collaboration diagram for RecoPhysPlots:

Public Member Functions

 RecoPhysPlots (PlotBase *pParent, const std::string &sDir, std::string recObj)
 
void fill (const std::vector< std::pair< const xAOD::Muon *, const xAOD::Muon * > > &mumucandidates)
 
void fill (const float eta_mu_plus, const float eta_mu_minus, const float invariant_mass)
 
float EtaRegionFine (double eta)
 
float EtaRegionCoarse (double eta)
 
bool LabelLargeEtaRegions (TAxis *axis)
 
bool LabelCombinedEtaRegions (TAxis *axis)
 
bool LabelSectorAxis (TAxis *axis)
 
void finalizeRecoPlots ()
 
void initialize ()
 
void finalize ()
 
void setDetailLevel (int iDetailLevel)
 
void RegisterSubPlot (PlotBase *pPlotBase)
 
std::vector< HistDataretrieveBookedHistograms ()
 Retrieve all booked histograms. More...
 
std::vector< TreeDataretrieveBookedTrees ()
 Retrieve all booked trees. More...
 
std::vector< EfficiencyDataretrieveBookedEfficiencies ()
 Retrieve all booked efficiency objects. More...
 
TTree * BookTree (const std::string &name, bool prependDir=true)
 Book a TTree. More...
 
std::string getDirectory ()
 

Public Attributes

TH1m_Mass
 
TH1m_occupancy
 
TH1m_2occupancy
 
TH1m_M_Mean
 
TH1m_M_Sigma
 
TH1m_M_EA_EA
 
TH1m_M_EA_BA
 
TH1m_M_EA_BC
 
TH1m_M_EA_EC
 
TH1m_M_BA_EA
 
TH1m_M_BA_BA
 
TH1m_M_BA_BC
 
TH1m_M_BA_EC
 
TH1m_M_BC_EA
 
TH1m_M_BC_BA
 
TH1m_M_BC_BC
 
TH1m_M_BC_EC
 
TH1m_M_EC_EA
 
TH1m_M_EC_BA
 
TH1m_M_EC_BC
 
TH1m_M_EC_EC
 
std::string type
 

Protected Attributes

std::vector< PlotBase * > m_vSubNodes
 
std::vector< HistDatam_vBookedHistograms
 
std::vector< TreeDatam_vBookedTrees
 
std::vector< EfficiencyDatam_vBookedEfficiencies
 
std::string m_sDirectory
 
int m_iDetailLevel
 

Private Member Functions

void SetResultsBin (int iBin, TH1 *pInputHist)
 
void initializePlots ()
 
virtual void finalizePlots ()
 

Static Private Member Functions

static std::string constructPrefix (std::string dir, bool prependDir)
 

Detailed Description

Definition at line 12 of file RecoPhysPlots.h.

Constructor & Destructor Documentation

◆ RecoPhysPlots()

RecoPhysPlots::RecoPhysPlots ( PlotBase pParent,
const std::string &  sDir,
std::string  recObj 
)

Definition at line 10 of file RecoPhysPlots.cxx.

10  :PlotBase(pParent, sDir),
11  m_Mass(nullptr),
12  m_occupancy(nullptr),
13  m_2occupancy(nullptr),
14  m_M_Mean(nullptr),
15  m_M_Sigma(nullptr),
16  m_M_EA_EA(nullptr),
17  m_M_EA_BA(nullptr),
18  m_M_EA_BC(nullptr),
19  m_M_EA_EC(nullptr),
20  m_M_BA_EA(nullptr),
21  m_M_BA_BA(nullptr),
22  m_M_BA_BC(nullptr),
23  m_M_BA_EC(nullptr),
24  m_M_BC_EA(nullptr),
25  m_M_BC_BA(nullptr),
26  m_M_BC_BC(nullptr),
27  m_M_BC_EC(nullptr),
28  m_M_EC_EA(nullptr),
29  m_M_EC_BA(nullptr),
30  m_M_EC_BC(nullptr),
31  m_M_EC_EC(nullptr),
32  type(std::move(recObj))
33 {}

Member Function Documentation

◆ Book1D() [1/2]

TH1F * PlotBase::Book1D ( const std::string &  name,
const std::string &  labels,
int  nBins,
float  start,
float  end,
bool  prependDir = true 
)
inherited

Book a TH1D histogram.

Definition at line 88 of file PlotBase.cxx.

89  {
90  std::string prefix = constructPrefix(m_sDirectory, prependDir);
91  Bool_t oldstat = TH1::AddDirectoryStatus();
92  TH1::AddDirectory(false);
93  TH1F *hist = new TH1F((prefix + name).c_str(), labels.c_str(), nBins, start, end);
94  TH1::AddDirectory(oldstat);
95 
96  hist->Sumw2();
97  m_vBookedHistograms.emplace_back(hist, m_sDirectory);
98  return hist;
99 }

◆ Book1D() [2/2]

TH1F * PlotBase::Book1D ( const std::string &  name,
TH1 refHist,
const std::string &  labels,
bool  prependDir = true 
)
inherited

Book a TH1D histogram using refHist as reference for number of bins and axis range.

Definition at line 102 of file PlotBase.cxx.

102  {
103  std::string prefix = constructPrefix(m_sDirectory, prependDir);
104  Bool_t oldstat = TH1::AddDirectoryStatus();
105  TH1::AddDirectory(false);
106  TH1F *hist = new TH1F((prefix + name).c_str(), labels.c_str(), refHist->GetNbinsX(),
107  refHist->GetXaxis()->GetXbins()->GetArray());
108  hist->Sumw2();
109  TH1::AddDirectory(oldstat);
110 
111 
112  m_vBookedHistograms.emplace_back(hist, m_sDirectory);
113  return hist;
114 }

◆ Book2D() [1/3]

TH2F * PlotBase::Book2D ( const std::string &  name,
const std::string &  labels,
int  nBinsX,
Double_t *  binsX,
int  nBinsY,
Double_t  startY,
Double_t  endY,
bool  prependDir = true 
)
inherited

Book a TH2D histogram with variable x axis binning.

Definition at line 138 of file PlotBase.cxx.

139  {
140  std::string prefix = constructPrefix(m_sDirectory, prependDir);
141  Bool_t oldstat = TH2::AddDirectoryStatus();
142  TH2::AddDirectory(false);
143  TH2F *hist = new TH2F((prefix + name).c_str(), labels.c_str(), nBinsX, binsX, nBinsY, startY, endY);
144  hist->Sumw2();
145  TH2::AddDirectory(oldstat);
146  m_vBookedHistograms.emplace_back(hist, m_sDirectory);
147  return hist;
148 }

◆ Book2D() [2/3]

TH2F * PlotBase::Book2D ( const std::string &  name,
const std::string &  labels,
int  nBinsX,
float  startX,
float  endX,
int  nBinsY,
float  startY,
float  endY,
bool  prependDir = true 
)
inherited

Book a TH2D histogram.

Definition at line 117 of file PlotBase.cxx.

118  {
119  std::string prefix = constructPrefix(m_sDirectory, prependDir);
120  Bool_t oldstat = TH2::AddDirectoryStatus();
121  TH2::AddDirectory(false);
122  TH2F *hist = new TH2F((prefix + name).c_str(), labels.c_str(), nBinsX, startX, endX, nBinsY, startY, endY);
123  hist->Sumw2();
124  TH2::AddDirectory(oldstat);
125 
126 
127  m_vBookedHistograms.emplace_back(hist, m_sDirectory);
128  return hist;
129 }

◆ Book2D() [3/3]

TH2F * PlotBase::Book2D ( const std::string &  name,
TH2 refHist,
const std::string &  labels,
bool  prependDir = true 
)
inherited

Book a TH2D histogram using refHist as reference for number of bins and axis range.

Definition at line 132 of file PlotBase.cxx.

132  {
133  return Book2D(name, labels, refHist->GetNbinsX(), refHist->GetXaxis()->GetXmin(), refHist->GetXaxis()->GetXmax(),
134  refHist->GetNbinsY(), refHist->GetYaxis()->GetXmin(), refHist->GetYaxis()->GetXmax(), prependDir);
135 }

◆ Book3D() [1/2]

TH3F * PlotBase::Book3D ( const std::string &  name,
const std::string &  labels,
int  nBinsX,
float  startX,
float  endX,
int  nBinsY,
float  startY,
float  endY,
int  nBinsZ,
float  startZ,
float  endZ,
bool  prependDir = true 
)
inherited

Book a TH3D histogram.

Definition at line 151 of file PlotBase.cxx.

152  {
153  std::string prefix = constructPrefix(m_sDirectory, prependDir);
154  Bool_t oldstat = TH3::AddDirectoryStatus();
155  TH3::AddDirectory(false);
156  TH3F *hist = new TH3F((prefix + name).c_str(),
157  labels.c_str(), nBinsX, startX, endX, nBinsY, startY, endY, nBinsZ, startZ, endZ);
158  hist->Sumw2();
159  TH3::AddDirectory(oldstat);
160  m_vBookedHistograms.emplace_back(hist, m_sDirectory);
161  return hist;
162 }

◆ Book3D() [2/2]

TH3F * PlotBase::Book3D ( const std::string &  name,
TH3 refHist,
const std::string &  labels,
bool  prependDir = true 
)
inherited

Book a TH3D histogram using refHist as reference for number of bins and axis range.

Definition at line 165 of file PlotBase.cxx.

165  {
166  std::string prefix = constructPrefix(m_sDirectory, prependDir);
167  Bool_t oldstat = TH3::AddDirectoryStatus();
168  TH3::AddDirectory(false);
169  TH3F *hist = new TH3F((prefix + name).c_str(), labels.c_str(), refHist->GetNbinsX(),
170  refHist->GetXaxis()->GetXbins()->GetArray(), refHist->GetNbinsY(),
171  refHist->GetYaxis()->GetXbins()->GetArray(), refHist->GetNbinsZ(),
172  refHist->GetZaxis()->GetXbins()->GetArray());
173  TH3::AddDirectory(oldstat);
174 
175  m_vBookedHistograms.emplace_back(hist, m_sDirectory);
176  return hist;
177 }

◆ BookTEfficiency() [1/2]

TEfficiency * PlotBase::BookTEfficiency ( const std::string &  name,
const std::string &  labels,
const int  nBinsX,
const float  xlo,
const float  xhi,
const bool  prependDir = true 
)
inherited

Book a (1-D) TEfficiency histogram.

Definition at line 251 of file PlotBase.cxx.

251  {
252  std::string prefix = constructPrefix(m_sDirectory, prependDir);
253  //Bool_t oldstat = TEfficiency::AddDirectoryStatus();
254  TEfficiency *hist = new TEfficiency((prefix + name).c_str(), labels.c_str(), nBinsX, xlo, xhi);
255  //hist->SetAutoSave(0);
256  //hist->SetAtoFlush(0);
257  hist->SetDirectory(nullptr);
258  m_vBookedEfficiencies.emplace_back(hist, m_sDirectory);
259  //TEfficiency::AddDirectory(oldstat);
260  return hist;
261 }

◆ BookTEfficiency() [2/2]

TEfficiency * PlotBase::BookTEfficiency ( const std::string &  name,
const std::string &  labels,
const int  nBinsX,
const float  xlo,
const float  xhi,
const int  nBinsy,
const float  ylo,
const float  yhi,
const bool  prependDir = true 
)
inherited

Book a (2-D) TEfficiency histogram.

Definition at line 264 of file PlotBase.cxx.

264  {
265  std::string prefix = constructPrefix(m_sDirectory, prependDir);
266 
267  TEfficiency *hist = new TEfficiency((prefix + name).c_str(), labels.c_str(), nBinsX, xlo, xhi, nBinsY, ylo, yhi);
268  hist->SetDirectory(nullptr);
269  m_vBookedEfficiencies.emplace_back(hist, m_sDirectory);
270 
271  return hist;
272 }

◆ BookTProfile() [1/2]

TProfile * PlotBase::BookTProfile ( const std::string &  name,
const std::string &  labels,
int  nBinsX,
float *  binsX,
bool  prependDir = true 
)
inherited

Book a TProfile histogram with variable binning in x-axis.

Definition at line 198 of file PlotBase.cxx.

198  {
199  std::string prefix = constructPrefix(m_sDirectory, prependDir);
200  TProfile *hist(nullptr);
201  Bool_t oldstat = TProfile::AddDirectoryStatus();
202  TProfile::AddDirectory(false);
203 
204  hist = new TProfile((prefix + name).c_str(), labels.c_str(), nBinsX, binsX);
205  TProfile::AddDirectory(oldstat);
206  m_vBookedHistograms.emplace_back(hist, m_sDirectory);
207  return hist;
208 }

◆ BookTProfile() [2/2]

TProfile * PlotBase::BookTProfile ( const std::string &  name,
const std::string &  labels,
int  nBinsX,
float  startX,
float  endX,
float  startY = -1,
float  endY = -1,
bool  prependDir = true,
bool  useRMS = false 
)
inherited

Book a TProfile histogram.

Definition at line 180 of file PlotBase.cxx.

181  {
182  std::string prefix = constructPrefix(m_sDirectory, prependDir);
183  TProfile *hist(nullptr);
184  Bool_t oldstat = TProfile::AddDirectoryStatus();
185  TProfile::AddDirectory(false);
186  std::string opt = useRMS ? "S" : "";
187  if ((startY == -1) and (endY == -1)) {
188  hist = new TProfile((prefix + name).c_str(), labels.c_str(), nBinsX, startX, endX, opt.c_str());
189  } else {
190  hist = new TProfile((prefix + name).c_str(), labels.c_str(), nBinsX, startX, endX, startY, endY, opt.c_str());
191  }
192  TProfile::AddDirectory(oldstat);
193  m_vBookedHistograms.emplace_back(hist, m_sDirectory);
194  return hist;
195 }

◆ BookTProfile2D() [1/2]

TProfile2D * PlotBase::BookTProfile2D ( const std::string &  name,
const std::string &  labels,
const int  nBinsX,
const double  xlo,
const double  xhi,
const int  nBinsY,
const double  ylo,
const double  yhi,
bool  prependDir = true,
bool  useRMS = false 
)
inherited

Book a TProfile 2D histogram with variable binning in x-axis and limits in y-values.

Definition at line 225 of file PlotBase.cxx.

227  {
228  std::string prefix = constructPrefix(m_sDirectory, prependDir);
229  Bool_t oldstat = TProfile2D::AddDirectoryStatus();
230  TProfile2D::AddDirectory(false);
231  std::string opt = useRMS ? "S" : "";
232  TProfile2D *hist = new TProfile2D((prefix + name).c_str(), labels.c_str(), nBinsX, xlo, xhi, nBinsY, ylo, yhi, opt.c_str());
233  TProfile2D::AddDirectory(oldstat);
234  m_vBookedHistograms.emplace_back(hist, m_sDirectory);
235  return hist;
236 }

◆ BookTProfile2D() [2/2]

TProfile2D * PlotBase::BookTProfile2D ( const std::string &  name,
const std::string &  labels,
const int  nBinsX,
double *  binsX,
const int  nBinsY,
double *  binsY,
bool  prependDir = true,
bool  useRMS = false 
)
inherited

Book a TProfile 2D histogram with variable binning in x-axis and limits in y-values.

Definition at line 239 of file PlotBase.cxx.

239  {
240  std::string prefix = constructPrefix(m_sDirectory, prependDir);
241  Bool_t oldstat = TProfile2D::AddDirectoryStatus();
242  TProfile2D::AddDirectory(false);
243  std::string opt = useRMS ? "S" : "";
244  TProfile2D *hist = new TProfile2D((prefix + name).c_str(), labels.c_str(), nBinsX, binsX, nBinsY, binsY, opt.c_str());
245  TProfile2D::AddDirectory(oldstat);
246  m_vBookedHistograms.emplace_back(hist, m_sDirectory);
247  return hist;
248 }

◆ BookTProfileRangeY()

TProfile * PlotBase::BookTProfileRangeY ( const std::string &  name,
const std::string &  labels,
int  nBinsX,
double *  binsX,
double  startY,
double  endY,
bool  prependDir = true 
)
inherited

Book a TProfile histogram with variable binning in x-axis and limits in y-values.

Definition at line 211 of file PlotBase.cxx.

212  {
213  std::string prefix = constructPrefix(m_sDirectory, prependDir);
214  TProfile *hist(nullptr);
215  Bool_t oldstat = TProfile::AddDirectoryStatus();
216  TProfile::AddDirectory(false);
217 
218  hist = new TProfile((prefix + name).c_str(), labels.c_str(), (Int_t) nBinsX, binsX, startY, endY);
219  TProfile::AddDirectory(oldstat);
220  m_vBookedHistograms.emplace_back(hist, m_sDirectory);
221  return hist;
222 }

◆ BookTree()

TTree * PlotBase::BookTree ( const std::string &  name,
bool  prependDir = true 
)
inherited

Book a TTree.

Definition at line 275 of file PlotBase.cxx.

275  {
276  std::string prefix = constructPrefix(m_sDirectory, prependDir);
277  TTree *tree = new TTree((prefix + name).c_str(), "");
278 
279  tree->SetAutoSave(0);
280  tree->SetAutoFlush(0);
281  tree->SetDirectory(nullptr);
282  m_vBookedTrees.emplace_back(tree, m_sDirectory);
283  return tree;
284 }

◆ constructPrefix()

std::string PlotBase::constructPrefix ( std::string  dir,
bool  prependDir 
)
staticprivateinherited

Definition at line 287 of file PlotBase.cxx.

287  {
288  if (!prependDir) {
289  return "";
290  }
291  std::replace(dir.begin(), dir.end(), '/', '_');
292  return dir;
293 }

◆ EtaRegionCoarse()

float RecoPhysPlots::EtaRegionCoarse ( double  eta)

Definition at line 170 of file RecoPhysPlots.cxx.

171 {
172 
173  if(eta < -2.50) {return -1.;} // underflow
174  if(eta < -1.05) {return 0.5;} // EC
175  if(eta < 0.00) {return 1.5;} // BC
176  if(eta < 1.05) {return 2.5;} // BA
177  if(eta < 2.50) {return 3.5;} // BC
178  return 4.5; // Overflow
179 
180 }

◆ EtaRegionFine()

float RecoPhysPlots::EtaRegionFine ( double  eta)

Definition at line 155 of file RecoPhysPlots.cxx.

156 {
157  if (eta < -2.50) {return -1.;} // underflow
158  if (eta < -2.00) {return 0.5;} // CSC C
159  if (eta < -1.70) {return 1.5;} // ENDCAP C
160  if (eta < -1.05) {return 2.5;} // Trans C
161  if (eta < 0.00) {return 3.5;} // Barrel C
162  if (eta > 2.50) {return 8.5;} // OverFlow
163  if (eta > 2.00) {return 7.5;} // CSC A
164  if (eta > 1.70) {return 6.5;} // ENDCAP A
165  if (eta > 1.05) {return 5.5;} // Trans A
166  if (eta > 0.00) {return 4.5;} // Barrel A
167  return -1.;
168 }

◆ fill() [1/2]

void RecoPhysPlots::fill ( const float  eta_mu_plus,
const float  eta_mu_minus,
const float  invariant_mass 
)

Definition at line 103 of file RecoPhysPlots.cxx.

103  {
104 
105  float etaRegionCoarsePlus = EtaRegionCoarse(eta_mu_plus);
106  float etaRegionCoarseMinus = EtaRegionCoarse(eta_mu_minus);
107  float etaRegionFinePlus = EtaRegionFine(eta_mu_plus);
108  float etaRegionFineMinus = EtaRegionFine(eta_mu_minus);
109 
110  if((etaRegionCoarsePlus == 3.5 && etaRegionCoarseMinus == 3.5)) {m_M_EA_EA->Fill(invariant_mass/1000.0); m_2occupancy->Fill(16);}
111  if((etaRegionCoarsePlus == 3.5 && etaRegionCoarseMinus == 2.5)) {m_M_EA_BA->Fill(invariant_mass/1000.0); m_2occupancy->Fill(15);}
112  if((etaRegionCoarsePlus == 3.5 && etaRegionCoarseMinus == 1.5)) {m_M_EA_BC->Fill(invariant_mass/1000.0); m_2occupancy->Fill(14);}
113  if((etaRegionCoarsePlus == 3.5 && etaRegionCoarseMinus == 0.5)) {m_M_EA_EC->Fill(invariant_mass/1000.0); m_2occupancy->Fill(13);}
114 
115  if((etaRegionCoarsePlus == 2.5 && etaRegionCoarseMinus == 3.5)) {m_M_BA_EA->Fill(invariant_mass/1000.0); m_2occupancy->Fill(12);}
116  if((etaRegionCoarsePlus == 2.5 && etaRegionCoarseMinus == 2.5)) {m_M_BA_BA->Fill(invariant_mass/1000.0); m_2occupancy->Fill(11);}
117  if((etaRegionCoarsePlus == 2.5 && etaRegionCoarseMinus == 1.5)) {m_M_BA_BC->Fill(invariant_mass/1000.0); m_2occupancy->Fill(10);}
118  if((etaRegionCoarsePlus == 2.5 && etaRegionCoarseMinus == 0.5)) {m_M_BA_EC->Fill(invariant_mass/1000.0); m_2occupancy->Fill(9);}
119 
120  if((etaRegionCoarsePlus == 1.5 && etaRegionCoarseMinus == 3.5)) {m_M_BC_EA->Fill(invariant_mass/1000.0); m_2occupancy->Fill(8);}
121  if((etaRegionCoarsePlus == 1.5 && etaRegionCoarseMinus == 2.5)) {m_M_BC_BA->Fill(invariant_mass/1000.0); m_2occupancy->Fill(7);}
122  if((etaRegionCoarsePlus == 1.5 && etaRegionCoarseMinus == 1.5)) {m_M_BC_BC->Fill(invariant_mass/1000.0); m_2occupancy->Fill(6);}
123  if((etaRegionCoarsePlus == 1.5 && etaRegionCoarseMinus == 0.5)) {m_M_BC_EC->Fill(invariant_mass/1000.0); m_2occupancy->Fill(5);}
124 
125  if((etaRegionCoarsePlus == 0.5 && etaRegionCoarseMinus == 3.5)) {m_M_EC_EA->Fill(invariant_mass/1000.0); m_2occupancy->Fill(4);}
126  if((etaRegionCoarsePlus == 0.5 && etaRegionCoarseMinus == 2.5)) {m_M_EC_BA->Fill(invariant_mass/1000.0); m_2occupancy->Fill(3);}
127  if((etaRegionCoarsePlus == 0.5 && etaRegionCoarseMinus == 1.5)) {m_M_EC_BC->Fill(invariant_mass/1000.0); m_2occupancy->Fill(2);}
128  if((etaRegionCoarsePlus == 0.5 && etaRegionCoarseMinus == 0.5)) {m_M_EC_EC->Fill(invariant_mass/1000.0); m_2occupancy->Fill(1);}
129 
130  m_Mass->Fill(invariant_mass/1000.0);
131  m_occupancy->Fill(etaRegionFinePlus);
132  m_occupancy->Fill(etaRegionFineMinus);
133 
134 }

◆ fill() [2/2]

void RecoPhysPlots::fill ( const std::vector< std::pair< const xAOD::Muon *, const xAOD::Muon * > > &  mumucandidates)

Definition at line 96 of file RecoPhysPlots.cxx.

96  {
97  for (auto mumu: mumucandidates){
98  const float invariant_mass = (mumu.first->p4() + mumu.second->p4()).M();
99  fill(mumu.first->eta(), mumu.second->eta(), invariant_mass);
100  }
101 }

◆ finalize()

void PlotBase::finalize ( )
inherited

Definition at line 41 of file PlotBase.cxx.

41  {
42  for (auto *subNode: m_vSubNodes) {
43  subNode->finalize();
44  }
45  finalizePlots();
46 }

◆ finalizePlots()

virtual void PlotBase::finalizePlots ( )
inlineprivatevirtualinherited

◆ finalizeRecoPlots()

void RecoPhysPlots::finalizeRecoPlots ( )

Definition at line 136 of file RecoPhysPlots.cxx.

136  {
153 }

◆ getDirectory()

std::string PlotBase::getDirectory ( )
inlineinherited

Definition at line 87 of file PlotBase.h.

87 {return m_sDirectory;}

◆ initialize()

void PlotBase::initialize ( )
inherited

Definition at line 33 of file PlotBase.cxx.

33  {
34  for (auto *subNode: m_vSubNodes) {
35  subNode->initialize();
36  }
38 }

◆ initializePlots()

void RecoPhysPlots::initializePlots ( )
privatevirtual

Error check for doZ and doJ both true here;

Reimplemented from PlotBase.

Definition at line 35 of file RecoPhysPlots.cxx.

35  {
36 
37  std::string Zsig("Z");
38  std::string Jsig("Jpsi");
39  std::string name;
40  bool doZ = false; bool doJ = false;
41 
42  if (!type.compare(Zsig)) { name="Z"; doZ = true; }
43  else if (!type.compare(Jsig)) { name="J/#psi"; doJ = true; }
44  else { name="other"; }
45 
46  int nBins = 100;
47  double minBin = 0.0;
48  double maxBin = 1000.0;
49 
51 
52  if (doZ) {
53  nBins = 100;
54  minBin = 60.0;
55  maxBin = 120.0;
56  }
57  else if (doJ) {
58  nBins = 30;
59  minBin = 2.5;
60  maxBin = 3.5;
61  }
62  //resonance mass distributuioin
63  m_Mass = Book1D("m_"+type+"_Mass", "m_Mass: M_{"+name+"} Mass;Mass [GeV];", nBins, minBin, maxBin);
64  //resonance two muon distribution
65  m_occupancy = Book1D("m_"+type+"_occupancy", "m_occupancy: M_{"+name+"} Track Occupancy;;N_{#mu}", 8, 0.0, 8.0);
66  m_2occupancy = Book1D("m_"+type+"_2occupancy", "m_2occupancy: M_{"+name+"} Two Track Occupancy;;N_{#mu}", 16, 0.5, 16.5);
67 
68  //resonance mass distribution in each mass range
69  m_M_EA_EA = Book1D("m_"+type+"_M_EA_EA", "m_M_EA_EAM_{"+name+"} EA_{+} - EA_{-}; M_{"+name+"}[GeV];", nBins, minBin, maxBin);
70  m_M_EA_BA = Book1D("m_"+type+"_M_EA_BA", "m_M_EA_BAM_{"+name+"} EA_{+} - BA_{-}; M_{"+name+"}[GeV];", nBins, minBin, maxBin);
71  m_M_EA_BC = Book1D("m_"+type+"_M_EA_BC", "m_M_EA_BCM_{"+name+"} EA_{+} - BC_{-}; M_{"+name+"}[GeV];", nBins, minBin, maxBin);
72  m_M_EA_EC = Book1D("m_"+type+"_M_EA_EC", "m_M_EA_ECM_{"+name+"} EA_{+} - EC_{-}; M_{"+name+"}[GeV];", nBins, minBin, maxBin);
73  m_M_BA_EA = Book1D("m_"+type+"_M_BA_EA", "m_M_BA_EAM_{"+name+"} BA_{+} - EA_{-}; M_{"+name+"}[GeV];", nBins, minBin, maxBin);
74  m_M_BA_BA = Book1D("m_"+type+"_M_BA_BA", "m_M_BA_BAM_{"+name+"} BA_{+} - BA_{-}; M_{"+name+"}[GeV];", nBins, minBin, maxBin);
75  m_M_BA_BC = Book1D("m_"+type+"_M_BA_BC", "m_M_BA_BCM_{"+name+"} BA_{+} - BC_{-}; M_{"+name+"}[GeV];", nBins, minBin, maxBin);
76  m_M_BA_EC = Book1D("m_"+type+"_M_BA_EC", "m_M_BA_ECM_{"+name+"} BA_{+} - EC_{-}; M_{"+name+"}[GeV];", nBins, minBin, maxBin);
77  m_M_BC_EA = Book1D("m_"+type+"_M_BC_EA", "m_M_BC_EAM_{"+name+"} BC_{+} - EA_{-}; M_{"+name+"}[GeV];", nBins, minBin, maxBin);
78  m_M_BC_BA = Book1D("m_"+type+"_M_BC_BA", "m_M_BC_BAM_{"+name+"} BC_{+} - BA_{-}; M_{"+name+"}[GeV];", nBins, minBin, maxBin);
79  m_M_BC_BC = Book1D("m_"+type+"_M_BC_BC", "m_M_BC_BCM_{"+name+"} BC_{+} - BC_{-}; M_{"+name+"}[GeV];", nBins, minBin, maxBin);
80  m_M_BC_EC = Book1D("m_"+type+"_M_BC_EC", "m_M_BC_ECM_{"+name+"} BC_{+} - EC_{-}; M_{"+name+"}[GeV];", nBins, minBin, maxBin);
81  m_M_EC_EA = Book1D("m_"+type+"_M_EC_EA", "m_M_EC_EAM_{"+name+"} EC_{+} - EA_{-}; M_{"+name+"}[GeV];", nBins, minBin, maxBin);
82  m_M_EC_BA = Book1D("m_"+type+"_M_EC_BA", "m_M_EC_BAM_{"+name+"} EC_{+} - BA_{-}; M_{"+name+"}[GeV];", nBins, minBin, maxBin);
83  m_M_EC_BC = Book1D("m_"+type+"_M_EC_BC", "m_M_EC_BCM_{"+name+"} EC_{+} - BC_{-}; M_{"+name+"}[GeV];", nBins, minBin, maxBin);
84  m_M_EC_EC = Book1D("m_"+type+"_M_EC_EC", "m_M_EC_ECM_{"+name+"} EC_{+} - EC_{-}; M_{"+name+"}[GeV];", nBins, minBin, maxBin);
85  //for compare mass mean and sigma, done in post processing
86  m_M_Mean = Book1D("m_"+type+"_M_Mean", "m_M_Mean: M_{"+name+"} Mean;;M_{"+name+"}[GeV]", 16, 1.0, 17.0);
87  m_M_Sigma = Book1D("m_"+type+"_M_Sigma", "m_M_Sigma: #sigma(M_{"+name+"});;#sigma(M_{"+name+"})[GeV]", 16, 1.0, 17.0);
88 
89  //label the plots
90  LabelCombinedEtaRegions(m_M_Mean->GetXaxis());
93  LabelLargeEtaRegions(m_occupancy->GetXaxis());
94 }

◆ LabelCombinedEtaRegions()

bool RecoPhysPlots::LabelCombinedEtaRegions ( TAxis *  axis)

Definition at line 196 of file RecoPhysPlots.cxx.

197 {
198  axis->SetBinLabel( 1, "EC-EC");
199  axis->SetBinLabel( 2, "EC-BC");
200  axis->SetBinLabel( 3, "EC-BA");
201  axis->SetBinLabel( 4, "EC-EA");
202  axis->SetBinLabel( 5, "BC-EC");
203  axis->SetBinLabel( 6, "BC-BC");
204  axis->SetBinLabel( 7, "BC-BA");
205  axis->SetBinLabel( 8, "BC-EA");
206  axis->SetBinLabel( 9, "BA-EC");
207  axis->SetBinLabel(10, "BA-BC");
208  axis->SetBinLabel(11, "BA-BA");
209  axis->SetBinLabel(12, "BA-EA");
210  axis->SetBinLabel(13, "EA-EC");
211  axis->SetBinLabel(14, "EA-BC");
212  axis->SetBinLabel(15, "EA-BA");
213  axis->SetBinLabel(16, "EA-EA");
214 
215  axis->SetTitle("#eta Region Permutations [+#mu, -#mu]");
216 
217  return true;
218 }

◆ LabelLargeEtaRegions()

bool RecoPhysPlots::LabelLargeEtaRegions ( TAxis *  axis)

Definition at line 181 of file RecoPhysPlots.cxx.

182 {
183  axis->SetBinLabel(1, "CSC C");
184  axis->SetBinLabel(2, "EC C");
185  axis->SetBinLabel(3, "TRANS C");
186  axis->SetBinLabel(4, "BARR C");
187  axis->SetBinLabel(5, "BARR A");
188  axis->SetBinLabel(6, "TRANS A");
189  axis->SetBinLabel(7, "EC A");
190  axis->SetBinLabel(8," CSC A");
191  axis->SetTitle("Detector #eta Regions");
192 
193  return true;
194 }

◆ LabelSectorAxis()

bool RecoPhysPlots::LabelSectorAxis ( TAxis *  axis)

Definition at line 220 of file RecoPhysPlots.cxx.

220  {
221 
222  axis->SetTitle("#phi Sectors 1-16");
223  if(axis->GetNbins() == 16) axis->CenterLabels(kTRUE);
224 
225  // Sector Axis Label Error, not a multiple of 16 bins
226  if(axis->GetNbins()%16){
227  return false;
228  }
229 
230  int nSectorDevisions = axis->GetNbins()/16;
231  int skip_counter = 1;
232 
233  axis->SetNdivisions(16,nSectorDevisions,0,kFALSE);
234 
235 
236  for (int i = 1; i <= axis->GetNbins(); i++) {
237 
238  if (skip_counter == nSectorDevisions) {
239  axis->SetBinLabel(i,Form("%d",i/nSectorDevisions));
240  skip_counter = 1;
241  }else {
242  axis->SetBinLabel(i," ");
243  skip_counter++;
244  }
245 
246  }
247 
248  return true;
249 }

◆ RegisterSubPlot()

void PlotBase::RegisterSubPlot ( PlotBase pPlotBase)
inlineinherited

Definition at line 40 of file PlotBase.h.

40 {m_vSubNodes.push_back(pPlotBase);}

◆ retrieveBookedEfficiencies()

std::vector< EfficiencyData > PlotBase::retrieveBookedEfficiencies ( )
inherited

Retrieve all booked efficiency objects.

Definition at line 77 of file PlotBase.cxx.

77  {
78  std::vector<EfficiencyData> vBookedEfficiencies = m_vBookedEfficiencies;
79  for (const auto &subNode: m_vSubNodes) {
80  std::vector<EfficiencyData> subNodeHists = subNode->retrieveBookedEfficiencies();
81  vBookedEfficiencies.insert(vBookedEfficiencies.end(), subNodeHists.begin(), subNodeHists.end());
82  }
83  return vBookedEfficiencies;
84 }

◆ retrieveBookedHistograms()

std::vector< HistData > PlotBase::retrieveBookedHistograms ( )
inherited

Retrieve all booked histograms.

Definition at line 57 of file PlotBase.cxx.

57  {
58  std::vector<HistData> vBookedHistograms = m_vBookedHistograms;
59  for (const auto &subNode: m_vSubNodes) {
60  std::vector<HistData> subNodeHists = subNode->retrieveBookedHistograms();
61  vBookedHistograms.insert(vBookedHistograms.end(), subNodeHists.begin(), subNodeHists.end());
62  }
63  return vBookedHistograms;
64 }

◆ retrieveBookedTrees()

std::vector< TreeData > PlotBase::retrieveBookedTrees ( )
inherited

Retrieve all booked trees.

Definition at line 67 of file PlotBase.cxx.

67  {
68  std::vector<TreeData> vBookedTrees = m_vBookedTrees;
69  for (auto *subNode: m_vSubNodes) {
70  std::vector<TreeData> subNodeTrees = subNode->retrieveBookedTrees();
71  vBookedTrees.insert(vBookedTrees.end(), subNodeTrees.begin(), subNodeTrees.end());
72  }
73  return vBookedTrees;
74 }

◆ setDetailLevel()

void PlotBase::setDetailLevel ( int  iDetailLevel)
inherited

Definition at line 49 of file PlotBase.cxx.

49  {
50  for (auto *subNode: m_vSubNodes) {
51  subNode->setDetailLevel(iDetailLevel);
52  }
53  m_iDetailLevel = iDetailLevel;
54 }

◆ SetResultsBin()

void RecoPhysPlots::SetResultsBin ( int  iBin,
TH1 pInputHist 
)
private

Definition at line 251 of file RecoPhysPlots.cxx.

251  {
252 
253  m_M_Mean-> SetBinContent(iBin, pInputHist->GetMean(1));
254  m_M_Mean-> SetBinError( iBin, pInputHist->GetMeanError(1));
255  m_M_Sigma->SetBinContent(iBin, pInputHist->GetRMS(1));
256 
257 }

Member Data Documentation

◆ m_2occupancy

TH1* RecoPhysPlots::m_2occupancy

Definition at line 27 of file RecoPhysPlots.h.

◆ m_iDetailLevel

int PlotBase::m_iDetailLevel
protectedinherited

Definition at line 100 of file PlotBase.h.

◆ m_M_BA_BA

TH1* RecoPhysPlots::m_M_BA_BA

Definition at line 46 of file RecoPhysPlots.h.

◆ m_M_BA_BC

TH1* RecoPhysPlots::m_M_BA_BC

Definition at line 47 of file RecoPhysPlots.h.

◆ m_M_BA_EA

TH1* RecoPhysPlots::m_M_BA_EA

Definition at line 45 of file RecoPhysPlots.h.

◆ m_M_BA_EC

TH1* RecoPhysPlots::m_M_BA_EC

Definition at line 48 of file RecoPhysPlots.h.

◆ m_M_BC_BA

TH1* RecoPhysPlots::m_M_BC_BA

Definition at line 51 of file RecoPhysPlots.h.

◆ m_M_BC_BC

TH1* RecoPhysPlots::m_M_BC_BC

Definition at line 52 of file RecoPhysPlots.h.

◆ m_M_BC_EA

TH1* RecoPhysPlots::m_M_BC_EA

Definition at line 50 of file RecoPhysPlots.h.

◆ m_M_BC_EC

TH1* RecoPhysPlots::m_M_BC_EC

Definition at line 53 of file RecoPhysPlots.h.

◆ m_M_EA_BA

TH1* RecoPhysPlots::m_M_EA_BA

Definition at line 41 of file RecoPhysPlots.h.

◆ m_M_EA_BC

TH1* RecoPhysPlots::m_M_EA_BC

Definition at line 42 of file RecoPhysPlots.h.

◆ m_M_EA_EA

TH1* RecoPhysPlots::m_M_EA_EA

Definition at line 40 of file RecoPhysPlots.h.

◆ m_M_EA_EC

TH1* RecoPhysPlots::m_M_EA_EC

Definition at line 43 of file RecoPhysPlots.h.

◆ m_M_EC_BA

TH1* RecoPhysPlots::m_M_EC_BA

Definition at line 56 of file RecoPhysPlots.h.

◆ m_M_EC_BC

TH1* RecoPhysPlots::m_M_EC_BC

Definition at line 57 of file RecoPhysPlots.h.

◆ m_M_EC_EA

TH1* RecoPhysPlots::m_M_EC_EA

Definition at line 55 of file RecoPhysPlots.h.

◆ m_M_EC_EC

TH1* RecoPhysPlots::m_M_EC_EC

Definition at line 58 of file RecoPhysPlots.h.

◆ m_M_Mean

TH1* RecoPhysPlots::m_M_Mean

Definition at line 37 of file RecoPhysPlots.h.

◆ m_M_Sigma

TH1* RecoPhysPlots::m_M_Sigma

Definition at line 38 of file RecoPhysPlots.h.

◆ m_Mass

TH1* RecoPhysPlots::m_Mass

Definition at line 25 of file RecoPhysPlots.h.

◆ m_occupancy

TH1* RecoPhysPlots::m_occupancy

Definition at line 26 of file RecoPhysPlots.h.

◆ m_sDirectory

std::string PlotBase::m_sDirectory
protectedinherited

Definition at line 99 of file PlotBase.h.

◆ m_vBookedEfficiencies

std::vector<EfficiencyData> PlotBase::m_vBookedEfficiencies
protectedinherited

Definition at line 98 of file PlotBase.h.

◆ m_vBookedHistograms

std::vector<HistData> PlotBase::m_vBookedHistograms
protectedinherited

Definition at line 96 of file PlotBase.h.

◆ m_vBookedTrees

std::vector<TreeData> PlotBase::m_vBookedTrees
protectedinherited

Definition at line 97 of file PlotBase.h.

◆ m_vSubNodes

std::vector<PlotBase*> PlotBase::m_vSubNodes
protectedinherited

Definition at line 95 of file PlotBase.h.

◆ type

std::string RecoPhysPlots::type

Definition at line 60 of file RecoPhysPlots.h.


The documentation for this class was generated from the following files:
PlotBase::constructPrefix
static std::string constructPrefix(std::string dir, bool prependDir)
Definition: PlotBase.cxx:287
WritePulseShapeToCool.yhi
yhi
Definition: WritePulseShapeToCool.py:153
replace
std::string replace(std::string s, const std::string &s2, const std::string &s3)
Definition: hcg.cxx:307
PlotBase::m_iDetailLevel
int m_iDetailLevel
Definition: PlotBase.h:100
RecoPhysPlots::m_M_BA_EA
TH1 * m_M_BA_EA
Definition: RecoPhysPlots.h:45
RecoPhysPlots::m_M_EA_EC
TH1 * m_M_EA_EC
Definition: RecoPhysPlots.h:43
PlotBase::m_vBookedHistograms
std::vector< HistData > m_vBookedHistograms
Definition: PlotBase.h:96
PlotBase::Book1D
TH1F * Book1D(const std::string &name, const std::string &labels, int nBins, float start, float end, bool prependDir=true)
Book a TH1D histogram.
Definition: PlotBase.cxx:88
RecoPhysPlots::SetResultsBin
void SetResultsBin(int iBin, TH1 *pInputHist)
Definition: RecoPhysPlots.cxx:251
RecoPhysPlots::m_M_EA_BC
TH1 * m_M_EA_BC
Definition: RecoPhysPlots.h:42
RecoPhysPlots::m_M_BA_EC
TH1 * m_M_BA_EC
Definition: RecoPhysPlots.h:48
RecoPhysPlots::m_M_Sigma
TH1 * m_M_Sigma
Definition: RecoPhysPlots.h:38
TH2F
Definition: rootspy.cxx:420
RecoPhysPlots::m_occupancy
TH1 * m_occupancy
Definition: RecoPhysPlots.h:26
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:79
RecoPhysPlots::m_M_BC_BC
TH1 * m_M_BC_BC
Definition: RecoPhysPlots.h:52
python.copyTCTOutput.sDir
sDir
Definition: copyTCTOutput.py:60
plotmaker.hist
hist
Definition: plotmaker.py:148
mergePhysValFiles.start
start
Definition: DataQuality/DataQualityUtils/scripts/mergePhysValFiles.py:14
PlotBase::initializePlots
virtual void initializePlots()
Definition: PlotBase.h:90
PlotBase::m_sDirectory
std::string m_sDirectory
Definition: PlotBase.h:99
PlotBase::m_vBookedEfficiencies
std::vector< EfficiencyData > m_vBookedEfficiencies
Definition: PlotBase.h:98
tree
TChain * tree
Definition: tile_monitor.h:30
yodamerge_tmp.axis
list axis
Definition: yodamerge_tmp.py:241
TProfile2D
Definition: rootspy.cxx:531
PlotBase::Book2D
TH2F * Book2D(const std::string &name, const std::string &labels, int nBinsX, float startX, float endX, int nBinsY, float startY, float endY, bool prependDir=true)
Book a TH2D histogram.
Definition: PlotBase.cxx:117
RecoPhysPlots::m_M_BC_EC
TH1 * m_M_BC_EC
Definition: RecoPhysPlots.h:53
python.TrigEgammaMonitorHelper.TH2F
def TH2F(name, title, nxbins, bins_par2, bins_par3, bins_par4, bins_par5=None, bins_par6=None, path='', **kwargs)
Definition: TrigEgammaMonitorHelper.py:45
RecoPhysPlots::fill
void fill(const std::vector< std::pair< const xAOD::Muon *, const xAOD::Muon * > > &mumucandidates)
Definition: RecoPhysPlots.cxx:96
RecoPhysPlots::m_M_BA_BA
TH1 * m_M_BA_BA
Definition: RecoPhysPlots.h:46
PlotBase::PlotBase
PlotBase(PlotBase *parent, const std::string &sDir)
Definition: PlotBase.cxx:23
mergePhysValFiles.end
end
Definition: DataQuality/DataQualityUtils/scripts/mergePhysValFiles.py:93
RecoPhysPlots::LabelLargeEtaRegions
bool LabelLargeEtaRegions(TAxis *axis)
Definition: RecoPhysPlots.cxx:181
RecoPhysPlots::m_M_BC_EA
TH1 * m_M_BC_EA
Definition: RecoPhysPlots.h:50
beamspotnt.labels
list labels
Definition: bin/beamspotnt.py:1447
PlotBase::m_vSubNodes
std::vector< PlotBase * > m_vSubNodes
Definition: PlotBase.h:95
RecoPhysPlots::m_M_EA_BA
TH1 * m_M_EA_BA
Definition: RecoPhysPlots.h:41
RecoPhysPlots::m_M_EC_BA
TH1 * m_M_EC_BA
Definition: RecoPhysPlots.h:56
WritePulseShapeToCool.xhi
xhi
Definition: WritePulseShapeToCool.py:152
TH1::SetBinContent
void SetBinContent(int, double)
Definition: rootspy.cxx:301
lumiFormat.i
int i
Definition: lumiFormat.py:92
python.TrigEgammaMonitorHelper.TProfile
def TProfile(*args, **kwargs)
Definition: TrigEgammaMonitorHelper.py:81
RecoPhysPlots::m_M_BA_BC
TH1 * m_M_BA_BC
Definition: RecoPhysPlots.h:47
ChangeHistoRange.binsY
list binsY
Definition: ChangeHistoRange.py:59
RecoPhysPlots::LabelCombinedEtaRegions
bool LabelCombinedEtaRegions(TAxis *axis)
Definition: RecoPhysPlots.cxx:196
RecoPhysPlots::m_M_EC_EA
TH1 * m_M_EC_EA
Definition: RecoPhysPlots.h:55
checkCorrelInHIST.prefix
dictionary prefix
Definition: checkCorrelInHIST.py:391
RecoPhysPlots::m_M_EA_EA
TH1 * m_M_EA_EA
Definition: RecoPhysPlots.h:40
WritePulseShapeToCool.xlo
xlo
Definition: WritePulseShapeToCool.py:133
RecoPhysPlots::m_M_EC_EC
TH1 * m_M_EC_EC
Definition: RecoPhysPlots.h:58
TH1::Fill
int Fill(double)
Definition: rootspy.cxx:285
RecoPhysPlots::m_2occupancy
TH1 * m_2occupancy
Definition: RecoPhysPlots.h:27
WritePulseShapeToCool.ylo
ylo
Definition: WritePulseShapeToCool.py:134
beamspotman.dir
string dir
Definition: beamspotman.py:623
dumpTgcDigiJitter.nBins
list nBins
Definition: dumpTgcDigiJitter.py:29
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
pmontree.opt
opt
Definition: pmontree.py:16
TH3F
Definition: rootspy.cxx:495
TProfile
Definition: rootspy.cxx:515
RecoPhysPlots::m_Mass
TH1 * m_Mass
Definition: RecoPhysPlots.h:25
TH1F
Definition: rootspy.cxx:320
RecoPhysPlots::m_M_Mean
TH1 * m_M_Mean
Definition: RecoPhysPlots.h:37
RecoPhysPlots::EtaRegionFine
float EtaRegionFine(double eta)
Definition: RecoPhysPlots.cxx:155
ChangeHistoRange.binsX
list binsX
Definition: ChangeHistoRange.py:56
RecoPhysPlots::m_M_EC_BC
TH1 * m_M_EC_BC
Definition: RecoPhysPlots.h:57
RecoPhysPlots::type
std::string type
Definition: RecoPhysPlots.h:60
python.TrigEgammaMonitorHelper.TH1F
def TH1F(name, title, nxbins, bins_par2, bins_par3=None, path='', **kwargs)
Definition: TrigEgammaMonitorHelper.py:24
RecoPhysPlots::EtaRegionCoarse
float EtaRegionCoarse(double eta)
Definition: RecoPhysPlots.cxx:170
PlotBase::finalizePlots
virtual void finalizePlots()
Definition: PlotBase.h:91
PlotBase::m_vBookedTrees
std::vector< TreeData > m_vBookedTrees
Definition: PlotBase.h:97
RecoPhysPlots::m_M_BC_BA
TH1 * m_M_BC_BA
Definition: RecoPhysPlots.h:51