ATLAS Offline Software
Loading...
Searching...
No Matches
Trk::ExtrRegionPlots Class Reference

#include <TruthTrkExtrapolationPlots.h>

Inheritance diagram for Trk::ExtrRegionPlots:
Collaboration diagram for Trk::ExtrRegionPlots:

Public Member Functions

 ExtrRegionPlots (PlotBase *pParent, const std::string &sDir, std::string sRegionBegin, std::string sRegionEnd)
void fill (const xAOD::TruthParticle &truthprt, const std::string &sRegionBegin, const std::string &sRegionEnd, float weight=1.0)
void initialize ()
void finalize ()
void setDetailLevel (int iDetailLevel)
void RegisterSubPlot (PlotBase *pPlotBase)
std::vector< HistDataretrieveBookedHistograms ()
 Retrieve all booked histograms.
std::vector< TreeDataretrieveBookedTrees ()
 Retrieve all booked trees.
std::vector< EfficiencyDataretrieveBookedEfficiencies ()
 Retrieve all booked efficiency objects.
TTree * BookTree (const std::string &name, bool prependDir=true)
 Book a TTree.
const std::string & getDirectory ()
Methods to book monitoring histograms

Note: methods starting with capitals should be deprecated in favour of camel-cased methods

TH1D * Book1D (const std::string &name, const std::string &labels, int nBins, float start, float end, bool prependDir=true)
 Book a TH1D histogram.
TH1D * Book1D (const std::string &name, TH1 *refHist, const std::string &labels, bool prependDir=true)
 Book a TH1D histogram using refHist as reference for number of bins and axis range.
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 TH2F histogram.
TH2F * Book2D (const std::string &name, TH2 *refHist, const std::string &labels, bool prependDir=true)
 Book a TH2D histogram using refHist as reference for number of bins and axis range.
TH2F * 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)
 Book a TH2F histogram with variable x axis binning.
TH3F * 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)
 Book a TH3F histogram.
TH3F * Book3D (const std::string &name, TH3 *refHist, const std::string &labels, bool prependDir=true)
 Book a TH3F histogram using refHist as reference for number of bins and axis range.
TProfile * 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)
 Book a TProfile histogram.
TProfile * BookTProfile (const std::string &name, const std::string &labels, int nBinsX, float *binsX, bool prependDir=true)
 Book a TProfile histogram with variable binning in x-axis.
TProfile * BookTProfileRangeY (const std::string &name, const std::string &labels, int nBinsX, double *binsX, double startY, double endY, bool prependDir=true)
 Book a TProfile histogram with variable binning in x-axis and limits in y-values.
TProfile2D * 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)
 Book a TProfile 2D histogram with variable binning in x-axis and limits in y-values.
TProfile2D * 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)
 Book a TProfile 2D histogram with variable binning in x-axis and limits in y-values.
TEfficiency * BookTEfficiency (const std::string &name, const std::string &labels, const int nBinsX, const float xlo, const float xhi, const bool prependDir=true)
 Book a (1-D) TEfficiency histogram.
TEfficiency * 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)
 Book a (2-D) TEfficiency histogram.

Public Attributes

std::string m_sRegionBegin
std::string m_sRegionEnd
TH1 * dp
TH1 * dpt
TH1 * dpx
TH1 * dpy
TH1 * dpz
TH1 * dp_extr
TH1 * dpx_extr
TH1 * dpy_extr
TH1 * dpz_extr
TH2 * dp_vs_p
TH2 * dp_vs_phi
TH2 * dp_vs_eta
TH2 * dp_vs_eta_phi
TH2 * p_vs_p
TH2 * p_extr_vs_p_extr
TH2 * dp_extr_vs_eta
TH1 * dR
TH2 * dR_vs_p
TH2 * dR_vs_dp
TH2 * dR_vs_eta
TH2 * dR_vs_phi
TH2 * dR_vs_eta_phi
TH1 * dphi
TH1 * dtheta
TH1 * dAngle
TH2 * dp_CaloEntry_IP_dp_CaloEntry_etxr

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 initializePlots ()
virtual void finalizePlots ()

Static Private Member Functions

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

Detailed Description

Definition at line 42 of file TruthTrkExtrapolationPlots.h.

Constructor & Destructor Documentation

◆ ExtrRegionPlots()

Trk::ExtrRegionPlots::ExtrRegionPlots ( PlotBase * pParent,
const std::string & sDir,
std::string sRegionBegin,
std::string sRegionEnd )

Definition at line 121 of file TruthTrkExtrapolationPlots.cxx.

122 : PlotBase(pParent, sDir),
123 m_sRegionBegin(std::move(sRegionBegin)),
124 m_sRegionEnd(std::move(sRegionEnd)),
125 dp{},dpt{},dpx{},dpy{},dpz{},dp_extr{},dpx_extr{},dpy_extr{},dpz_extr{},
129 //nop
130 }
PlotBase(PlotBase *parent, const std::string &sDir)
Definition PlotBase.cxx:29

Member Function Documentation

◆ Book1D() [1/2]

TH1D * 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 94 of file PlotBase.cxx.

95 {
96 std::string prefix = constructPrefix(m_sDirectory, prependDir);
97 Bool_t oldstat = TH1::AddDirectoryStatus();
98 TH1::AddDirectory(false);
99 TH1D *hist = new TH1D((prefix + name).c_str(), labels.c_str(), nBins, start, end);
100 TH1::AddDirectory(oldstat);
101
102 hist->Sumw2();
103 m_vBookedHistograms.emplace_back(hist, m_sDirectory);
104 return hist;
105}
static std::string constructPrefix(std::string dir, bool prependDir)
Definition PlotBase.cxx:293
std::vector< HistData > m_vBookedHistograms
Definition PlotBase.h:97
std::string m_sDirectory
Definition PlotBase.h:100

◆ Book1D() [2/2]

TH1D * 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 108 of file PlotBase.cxx.

108 {
109 std::string prefix = constructPrefix(m_sDirectory, prependDir);
110 Bool_t oldstat = TH1::AddDirectoryStatus();
111 TH1::AddDirectory(false);
112 TH1D *hist = new TH1D((prefix + name).c_str(), labels.c_str(), refHist->GetNbinsX(),
113 refHist->GetXaxis()->GetXbins()->GetArray());
114 hist->Sumw2();
115 TH1::AddDirectory(oldstat);
116
117
118 m_vBookedHistograms.emplace_back(hist, m_sDirectory);
119 return hist;
120}

◆ 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 TH2F histogram with variable x axis binning.

Definition at line 144 of file PlotBase.cxx.

145 {
146 std::string prefix = constructPrefix(m_sDirectory, prependDir);
147 Bool_t oldstat = TH2::AddDirectoryStatus();
148 TH2::AddDirectory(false);
149 TH2F *hist = new TH2F((prefix + name).c_str(), labels.c_str(), nBinsX, binsX, nBinsY, startY, endY);
150 hist->Sumw2();
151 TH2::AddDirectory(oldstat);
152 m_vBookedHistograms.emplace_back(hist, m_sDirectory);
153 return hist;
154}
TH2F(name, title, nxbins, bins_par2, bins_par3, bins_par4, bins_par5=None, bins_par6=None, path='', **kwargs)

◆ 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 TH2F histogram.

Definition at line 123 of file PlotBase.cxx.

124 {
125 std::string prefix = constructPrefix(m_sDirectory, prependDir);
126 Bool_t oldstat = TH2::AddDirectoryStatus();
127 TH2::AddDirectory(false);
128 TH2F *hist = new TH2F((prefix + name).c_str(), labels.c_str(), nBinsX, startX, endX, nBinsY, startY, endY);
129 hist->Sumw2();
130 TH2::AddDirectory(oldstat);
131
132
133 m_vBookedHistograms.emplace_back(hist, m_sDirectory);
134 return hist;
135}

◆ 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 138 of file PlotBase.cxx.

138 {
139 return Book2D(name, labels, refHist->GetNbinsX(), refHist->GetXaxis()->GetXmin(), refHist->GetXaxis()->GetXmax(),
140 refHist->GetNbinsY(), refHist->GetYaxis()->GetXmin(), refHist->GetYaxis()->GetXmax(), prependDir);
141}
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 TH2F histogram.
Definition PlotBase.cxx:123

◆ 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 TH3F histogram.

Definition at line 157 of file PlotBase.cxx.

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

◆ Book3D() [2/2]

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

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

Definition at line 171 of file PlotBase.cxx.

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

◆ 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 257 of file PlotBase.cxx.

257 {
258 std::string prefix = constructPrefix(m_sDirectory, prependDir);
259 //Bool_t oldstat = TEfficiency::AddDirectoryStatus();
260 TEfficiency *hist = new TEfficiency((prefix + name).c_str(), labels.c_str(), nBinsX, xlo, xhi);
261 //hist->SetAutoSave(0);
262 //hist->SetAtoFlush(0);
263 hist->SetDirectory(nullptr);
264 m_vBookedEfficiencies.emplace_back(hist, m_sDirectory);
265 //TEfficiency::AddDirectory(oldstat);
266 return hist;
267}
std::vector< EfficiencyData > m_vBookedEfficiencies
Definition PlotBase.h:99

◆ 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 270 of file PlotBase.cxx.

270 {
271 std::string prefix = constructPrefix(m_sDirectory, prependDir);
272
273 TEfficiency *hist = new TEfficiency((prefix + name).c_str(), labels.c_str(), nBinsX, xlo, xhi, nBinsY, ylo, yhi);
274 hist->SetDirectory(nullptr);
275 m_vBookedEfficiencies.emplace_back(hist, m_sDirectory);
276
277 return hist;
278}

◆ 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 204 of file PlotBase.cxx.

204 {
205 std::string prefix = constructPrefix(m_sDirectory, prependDir);
206 TProfile *hist(nullptr);
207 Bool_t oldstat = TProfile::AddDirectoryStatus();
208 TProfile::AddDirectory(false);
209
210 hist = new TProfile((prefix + name).c_str(), labels.c_str(), nBinsX, binsX);
211 TProfile::AddDirectory(oldstat);
212 m_vBookedHistograms.emplace_back(hist, m_sDirectory);
213 return hist;
214}

◆ 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 186 of file PlotBase.cxx.

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

◆ 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 231 of file PlotBase.cxx.

233 {
234 std::string prefix = constructPrefix(m_sDirectory, prependDir);
235 Bool_t oldstat = TProfile2D::AddDirectoryStatus();
236 TProfile2D::AddDirectory(false);
237 std::string opt = useRMS ? "S" : "";
238 TProfile2D *hist = new TProfile2D((prefix + name).c_str(), labels.c_str(), nBinsX, xlo, xhi, nBinsY, ylo, yhi, opt.c_str());
239 TProfile2D::AddDirectory(oldstat);
240 m_vBookedHistograms.emplace_back(hist, m_sDirectory);
241 return hist;
242}

◆ 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 245 of file PlotBase.cxx.

245 {
246 std::string prefix = constructPrefix(m_sDirectory, prependDir);
247 Bool_t oldstat = TProfile2D::AddDirectoryStatus();
248 TProfile2D::AddDirectory(false);
249 std::string opt = useRMS ? "S" : "";
250 TProfile2D *hist = new TProfile2D((prefix + name).c_str(), labels.c_str(), nBinsX, binsX, nBinsY, binsY, opt.c_str());
251 TProfile2D::AddDirectory(oldstat);
252 m_vBookedHistograms.emplace_back(hist, m_sDirectory);
253 return hist;
254}

◆ 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 217 of file PlotBase.cxx.

218 {
219 std::string prefix = constructPrefix(m_sDirectory, prependDir);
220 TProfile *hist(nullptr);
221 Bool_t oldstat = TProfile::AddDirectoryStatus();
222 TProfile::AddDirectory(false);
223
224 hist = new TProfile((prefix + name).c_str(), labels.c_str(), (Int_t) nBinsX, binsX, startY, endY);
225 TProfile::AddDirectory(oldstat);
226 m_vBookedHistograms.emplace_back(hist, m_sDirectory);
227 return hist;
228}

◆ BookTree()

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

Book a TTree.

Definition at line 281 of file PlotBase.cxx.

281 {
282 std::string prefix = constructPrefix(m_sDirectory, prependDir);
283 TTree *tree = new TTree((prefix + name).c_str(), "");
284
285 tree->SetAutoSave(0);
286 tree->SetAutoFlush(0);
287 tree->SetDirectory(nullptr);
288 m_vBookedTrees.emplace_back(tree, m_sDirectory);
289 return tree;
290}
std::vector< TreeData > m_vBookedTrees
Definition PlotBase.h:98
TChain * tree

◆ constructPrefix()

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

Definition at line 293 of file PlotBase.cxx.

293 {
294 if (!prependDir) {
295 return "";
296 }
297 std::replace(dir.begin(), dir.end(), '/', '_');
298 return dir;
299}

◆ fill()

void Trk::ExtrRegionPlots::fill ( const xAOD::TruthParticle & truthprt,
const std::string & sRegionBegin,
const std::string & sRegionEnd,
float weight = 1.0 )

Definition at line 227 of file TruthTrkExtrapolationPlots.cxx.

227 {
228 SG::ConstAccessor<float> pxBeginAcc (sDetBegin + "_px");
229 SG::ConstAccessor<float> pyBeginAcc (sDetBegin + "_py");
230 SG::ConstAccessor<float> pzBeginAcc (sDetBegin + "_pz");
231 SG::ConstAccessor<float> pxEndAcc (sDetEnd + "_px");
232 SG::ConstAccessor<float> pyEndAcc (sDetEnd + "_py");
233 SG::ConstAccessor<float> pzEndAcc (sDetEnd + "_pz");
234 if (!pxBeginAcc.isAvailable(truthprt) ||
235 !pyBeginAcc.isAvailable(truthprt) ||
236 !pzBeginAcc.isAvailable(truthprt) ||
237 !pxEndAcc.isAvailable(truthprt) ||
238 !pyEndAcc.isAvailable(truthprt) ||
239 !pzEndAcc.isAvailable(truthprt)) {
240 return;
241 }
242
243 TVector3 vecDetBegin(pxBeginAcc(truthprt), pyBeginAcc(truthprt), pzBeginAcc(truthprt));
244 TVector3 vecDetEnd(pxEndAcc(truthprt), pyEndAcc(truthprt), pzEndAcc(truthprt));
245
246
247 // check if IP, since extr is not available there (sDetBegin="")
248 TVector3 vecDetBegin_extr;
249 if (!sDetBegin.empty()) {
250 SG::ConstAccessor<float> px_extrAcc (sDetBegin + "_px_extr");
251 SG::ConstAccessor<float> py_extrAcc (sDetBegin + "_py_extr");
252 SG::ConstAccessor<float> pz_extrAcc (sDetBegin + "_pz_extr");
253 if (!px_extrAcc.isAvailable(truthprt) ||
254 !py_extrAcc.isAvailable(truthprt) ||
255 !pz_extrAcc.isAvailable(truthprt)) {
256 return;
257 }
258
259 vecDetBegin_extr.SetXYZ(px_extrAcc(truthprt), py_extrAcc(truthprt), pz_extrAcc(truthprt));
260 }else {
261 vecDetBegin_extr = vecDetBegin;
262 }
263
264 TVector3 vecDetEnd_extr;
265 if (!sDetEnd.empty()) {
266 SG::ConstAccessor<float> px_extrAcc (sDetEnd + "_px_extr");
267 SG::ConstAccessor<float> py_extrAcc (sDetEnd + "_py_extr");
268 SG::ConstAccessor<float> pz_extrAcc (sDetEnd + "_pz_extr");
269 if (!px_extrAcc.isAvailable(truthprt) ||
270 !py_extrAcc.isAvailable(truthprt) ||
271 !pz_extrAcc.isAvailable(truthprt)) {
272 return;
273 }
274
275 vecDetEnd_extr.SetXYZ(px_extrAcc(truthprt), py_extrAcc(truthprt), pz_extrAcc(truthprt));
276 }else {
277 vecDetEnd_extr = vecDetEnd;
278 }
279
280 dp->Fill((vecDetBegin.Mag() - vecDetEnd.Mag()) * 0.001, weight);
281 dpt->Fill((vecDetBegin.Perp() - vecDetEnd.Perp()) * 0.001, weight);
282 dpx->Fill((vecDetBegin.Px() - vecDetEnd.Px()) * 0.001, weight);
283 dpy->Fill((vecDetBegin.Py() - vecDetEnd.Py()) * 0.001, weight);
284 dpz->Fill((vecDetBegin.Pz() - vecDetEnd.Pz()) * 0.001, weight);
285 dp_extr->Fill((vecDetBegin_extr.Mag() - vecDetEnd_extr.Mag()) * 0.001, weight);
286 dpx_extr->Fill((vecDetBegin_extr.Px() - vecDetEnd_extr.Px()) * 0.001, weight);
287 dpy_extr->Fill((vecDetBegin_extr.Py() - vecDetEnd_extr.Py()) * 0.001, weight);
288 dpz_extr->Fill((vecDetBegin_extr.Pz() - vecDetEnd_extr.Pz()) * 0.001, weight);
289 // 2D
290 dp_vs_p->Fill(vecDetBegin.Mag() * 0.001, (vecDetBegin.Mag() - vecDetEnd.Mag()) * 0.001, weight);
291 dp_vs_phi->Fill(vecDetBegin.Phi(), (vecDetBegin.Mag() - vecDetEnd.Mag()) * 0.001, weight);
292 dp_vs_eta->Fill(vecDetBegin.Eta(), (vecDetBegin.Mag() - vecDetEnd.Mag()) * 0.001, weight);
293 // not sure how to weight this
294 dp_vs_eta_phi->Fill(vecDetBegin.Eta(), vecDetBegin.Phi(), (vecDetBegin.Mag() - vecDetEnd.Mag()) * 0.001);
295 p_vs_p->Fill(vecDetBegin.Mag() * 0.001, vecDetEnd.Mag() * 0.001, weight);
296 p_extr_vs_p_extr->Fill(vecDetBegin_extr.Mag() * 0.001, vecDetEnd_extr.Mag() * 0.001, weight);
297 dp_extr_vs_eta->Fill(vecDetBegin_extr.Eta(), (vecDetBegin_extr.Mag() - vecDetEnd_extr.Mag()) * 0.001, weight);
298
299 // multiple scattering
300 dR->Fill(vecDetBegin.DeltaR(vecDetEnd),weight);
301 // 2D
302 dR_vs_p->Fill(vecDetBegin.Mag() * 0.001, vecDetBegin.DeltaR(vecDetEnd),weight);
303 dR_vs_dp->Fill((vecDetBegin.Mag() - vecDetEnd.Mag()) * 0.001, vecDetBegin.DeltaR(vecDetEnd), weight);
304 dR_vs_eta->Fill(vecDetBegin.Eta(), vecDetBegin.DeltaR(vecDetEnd), weight);
305 dR_vs_phi->Fill(vecDetBegin.Phi(), vecDetBegin.DeltaR(vecDetEnd), weight);
306 // not sure how to weight this
307 dR_vs_eta_phi->Fill(vecDetBegin.Eta(), vecDetBegin.Phi(), vecDetBegin.DeltaR(vecDetEnd) );
308
309 dphi->Fill(vecDetBegin.DeltaPhi(vecDetEnd), weight);
310 dtheta->Fill(vecDetBegin.Theta() - vecDetEnd.Theta(), weight);
311
312 dAngle->Fill(vecDetBegin.Angle(vecDetEnd), weight);
313 }

◆ finalize()

void PlotBase::finalize ( )
inherited

Definition at line 47 of file PlotBase.cxx.

47 {
48 for (auto *subNode: m_vSubNodes) {
49 subNode->finalize();
50 }
52}
std::vector< PlotBase * > m_vSubNodes
Definition PlotBase.h:96
virtual void finalizePlots()
Definition PlotBase.h:92

◆ finalizePlots()

◆ getDirectory()

const std::string & PlotBase::getDirectory ( )
inlineinherited

Definition at line 88 of file PlotBase.h.

88{return m_sDirectory;}

◆ initialize()

void PlotBase::initialize ( )
inherited

Definition at line 39 of file PlotBase.cxx.

39 {
40 for (auto *subNode: m_vSubNodes) {
41 subNode->initialize();
42 }
44}
virtual void initializePlots()
Definition PlotBase.h:91

◆ initializePlots()

void Trk::ExtrRegionPlots::initializePlots ( )
privatevirtual

Reimplemented from PlotBase.

Definition at line 133 of file TruthTrkExtrapolationPlots.cxx.

133 {
134 // histogram definitions for scattering plots
135 // variables within subdetector(s)
136 // energy loss related quantities
137 dp = Book1D(m_sRegionBegin + "_vs_" + m_sRegionEnd + "_dp",
138 m_sRegionBegin + " vs " + m_sRegionEnd + " difference in truth p: p_{begin} vs p_{end}; #Delta p=p_{begin}-p_{end} [GeV];Entries / 0.5 GeV", 80, -20.,
139 20.);
140 dpt = Book1D(m_sRegionBegin + "_vs_" + m_sRegionEnd + "_dpt",
141 m_sRegionBegin + " vs " + m_sRegionEnd + " difference in truth pt;#Delta pt=pt_{begin}-pt_{end} [GeV];Entries / 0.5 GeV", 80, -20.,
142 20.);
143 dpx = Book1D(m_sRegionBegin + "_vs_" + m_sRegionEnd + "_dpx",
144 m_sRegionBegin + " vs " + m_sRegionEnd + " difference in truth px;#Delta px=px_{begin}-px_{end} [GeV];Entries / 0.5 GeV", 80, -20.,
145 20.);
146 dpy = Book1D(m_sRegionBegin + "_vs_" + m_sRegionEnd + "_dpy",
147 m_sRegionBegin + " vs " + m_sRegionEnd + " difference in truth py;#Delta py=py_{begin}-py_{end} [GeV];Entries / 0.5 GeV", 80, -20.,
148 20.);
149 dpz = Book1D(m_sRegionBegin + "_vs_" + m_sRegionEnd + "_dpz",
150 m_sRegionBegin + " vs " + m_sRegionEnd + " difference in truth pz;#Delta pz=pz_{begin}-pz_{end} [GeV];Entries / 0.5 GeV", 80, -20.,
151 20.);
152
153 // extrapolated quantities: CaloEntryLayer_p_extr=extrapolated value from IP to CaloEntryLayer using e-loss
154 // parametrization
155 // if comparison to IP, truth_p_extr=truth_p
156 dp_extr = Book1D(m_sRegionBegin + "_vs_" + m_sRegionEnd + "_dp_extr",
157 m_sRegionBegin + " vs " + m_sRegionEnd + " difference in truth p, extrapolated from IP to current layer; #Delta p=p_extr_{begin}-p_extr_{end} [GeV];Entries / 0.5 GeV", 80, -20.,
158 20.);
159 dpx_extr = Book1D(m_sRegionBegin + "_vs_" + m_sRegionEnd + "_dpx_extr",
160 m_sRegionBegin + " vs " + m_sRegionEnd + " difference in truth px, extrapolated from IP to current layer; #Delta px=px_extr_{begin}-px_extr_{end} [GeV];Entries / 0.5 GeV", 80, -20.,
161 20.);
162 dpy_extr = Book1D(m_sRegionBegin + "_vs_" + m_sRegionEnd + "_dpy_extr",
163 m_sRegionBegin + " vs " + m_sRegionEnd + " difference in truth py, extrapolated from IP to current layer; #Delta py=py_extr_{begin}-py_extr_{end} [GeV];Entries / 0.5 GeV", 80, -20.,
164 20.);
165 dpz_extr = Book1D(m_sRegionBegin + "_vs_" + m_sRegionEnd + "_dpz_extr",
166 m_sRegionBegin + " vs " + m_sRegionEnd + " difference in truth pz, extrapolated from IP to current layer; #Delta pz=pz_extr_{begin}-pz_extr_{end} [GeV];Entries / 0.5 GeV", 80, -20.,
167 20.);
168
169 // 2D plots
170 dp_vs_p = Book2D(m_sRegionBegin + "_vs_" + m_sRegionEnd + "_dp_vs_p",
171 m_sRegionBegin + " vs " + m_sRegionEnd + " difference in p (#Delta p=p_{begin}-p_{end}) vs p_{begin};p_{begin} [GeV];#Delta p=p_{begin}-p_{end} [GeV]", 250, 0., 250., 80, 0.,
172 20);
173 dp_vs_phi = Book2D(m_sRegionBegin + "_vs_" + m_sRegionEnd + "_dp_vs_phi",
174 m_sRegionBegin + " vs " + m_sRegionEnd + " difference in p(#Delta p=p_{begin}-p_{end}) vs phi_{begin};phi_{begin};#Delta p=p_{begin}-p_{end} [GeV]", 128, -3.2, 3.2, 80, 0.,
175 20);
176 dp_vs_eta = Book2D(m_sRegionBegin + "_vs_" + m_sRegionEnd + "_dp_vs_eta",
177 m_sRegionBegin + " vs " + m_sRegionEnd + " difference in p(#Delta p=p_{begin}-p_{end}) vs eta_{begin};#eta_{begin};#Delta p=p_{begin}-p_{end} [GeV]", 128, -3.2, 3.2, 80, 0.,
178 20);
179 p_vs_p = Book2D(m_sRegionBegin + "_vs_" + m_sRegionEnd + "_p_vs_p",
180 m_sRegionBegin + " vs " + m_sRegionEnd + " p_{begin} vs p_{end};p_{begin} [GeV]; p_{end} [GeV]",
181 250, 0., 250, 250, 0., 250);
182 p_extr_vs_p_extr = Book2D(m_sRegionBegin + "_vs_" + m_sRegionEnd + "_p_extr_vs_p_extr",
183 m_sRegionBegin + " vs " + m_sRegionEnd + " p_{begin extr} vs p_{end extr};p_{begin extr} [GeV]; p_{end extr} [GeV]", 250, 0., 250, 250, 0.,
184 250);
185 dp_extr_vs_eta = Book2D(m_sRegionBegin + "_vs_" + m_sRegionEnd + "_dp_extr_vs_eta",
186 m_sRegionBegin + " vs " + m_sRegionEnd + " difference in p_{extr}(#Delta p_{extr}=p_{begin extr}-p_{end extr}) vs eta_{begin};#eta__{begin};#Delta p_{extr}=p_{begin extr}-p_{end extr} [GeV]", 128, -3.2, 3.2, 80, 0.,
187 20);
188
189 // 3D
190 dp_vs_eta_phi = Book2D(m_sRegionBegin + "_vs_" + m_sRegionEnd + "_dp_vs_eta_phi",
191 m_sRegionBegin + " vs " + m_sRegionEnd + " sum of bin entries: difference in p(#Delta p=p_{begin}-p_{end}) vs eta_{begin} and phi_{begin};#eta__{begin};#phi__{begin};#Delta p=p_{begin}-p_{end} [GeV]", 128, -3.2, 3.2, 128, -3.2,
192 -3.2);
193
194 // measure for multiple scattering
195 dR = Book1D(m_sRegionBegin + "_vs_" + m_sRegionEnd + "_dR",
196 m_sRegionBegin + " vs " + m_sRegionEnd + " dR between the two positions in the detector;pt_{begin}->dR(pt_{end});Entries / 0.05", 100, 0.,
197 0.5);
198 // 2D
199 dR_vs_p = Book2D(m_sRegionBegin + "_vs_" + m_sRegionEnd + "_dR_vs_p",
200 m_sRegionBegin + " vs " + m_sRegionEnd + " dR vs p_{begin};p_{begin} [GeV];_{begin}->dR(p_{end})",
201 250, 0., 250, 100, 0., 0.5);
202 dR_vs_dp = Book2D(m_sRegionBegin + "_vs_" + m_sRegionEnd + "_dR_vs_dp",
203 m_sRegionBegin + " vs " + m_sRegionEnd + " dR vs difference in p;#Delta p=p_{begin}-p_{end} [GeV];p_{begin}->dR(p_{end})", 80, 0., 20, 100, 0.,
204 0.5);
205 dR_vs_eta = Book2D(m_sRegionBegin + "_vs_" + m_sRegionEnd + "_dR_vs_eta",
206 m_sRegionBegin + " vs " + m_sRegionEnd + " dR vs eta;#eta_{begin};p_{begin}->dR(p_{end})", 128,
207 -3.2, 3.2, 100, 0., 0.5);
208 dR_vs_phi = Book2D(m_sRegionBegin + "_vs_" + m_sRegionEnd + "_dR_vs_phi",
209 m_sRegionBegin + " vs " + m_sRegionEnd + " dR vs phi;#phi_{begin};p_{begin}->dR(p_{end})", 128,
210 -3.2, 3.2, 100, 0., 0.5);
211 dR_vs_eta_phi = Book2D(m_sRegionBegin + "_vs_" + m_sRegionEnd + "_dR_vs_eta_phi",
212 m_sRegionBegin + " vs " + m_sRegionEnd + " sum of bin entries: dR vs eta and phi;#eta_{begin};#phi_{begin};#DeltaR", 128, -3.2, 3.2, 128, -3.2,
213 3.2);
214
215 dphi = Book1D(m_sRegionBegin + "_vs_" + m_sRegionEnd + "_dphi",
216 m_sRegionBegin + " vs " + m_sRegionEnd + " difference in phi;#Delta phi;Entries / 0.05", 100, -0.25,
217 0.25);
218 dtheta = Book1D(m_sRegionBegin + "_vs_" + m_sRegionEnd + "_dtheta",
219 m_sRegionBegin + " vs " + m_sRegionEnd + " difference in theta;#Delta theta;Entries / 0.002", 100,
220 -0.25, 0.25);
221 dAngle = Book1D(m_sRegionBegin + "_vs_" + m_sRegionEnd + "_dAngle",
222 m_sRegionBegin + " vs " + m_sRegionEnd + " total angle difference;#Delta angle;Entries / 0.002",
223 100, -0.25, 0.25);
224 }
TH1D * 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:94

◆ RegisterSubPlot()

void PlotBase::RegisterSubPlot ( PlotBase * pPlotBase)
inlineinherited

Definition at line 41 of file PlotBase.h.

41{m_vSubNodes.push_back(pPlotBase);}

◆ retrieveBookedEfficiencies()

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

Retrieve all booked efficiency objects.

Definition at line 83 of file PlotBase.cxx.

83 {
84 std::vector<EfficiencyData> vBookedEfficiencies = m_vBookedEfficiencies;
85 for (const auto &subNode: m_vSubNodes) {
86 std::vector<EfficiencyData> subNodeHists = subNode->retrieveBookedEfficiencies();
87 vBookedEfficiencies.insert(vBookedEfficiencies.end(), subNodeHists.begin(), subNodeHists.end());
88 }
89 return vBookedEfficiencies;
90}

◆ retrieveBookedHistograms()

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

Retrieve all booked histograms.

Definition at line 63 of file PlotBase.cxx.

63 {
64 std::vector<HistData> vBookedHistograms = m_vBookedHistograms;
65 for (const auto &subNode: m_vSubNodes) {
66 std::vector<HistData> subNodeHists = subNode->retrieveBookedHistograms();
67 vBookedHistograms.insert(vBookedHistograms.end(), subNodeHists.begin(), subNodeHists.end());
68 }
69 return vBookedHistograms;
70}

◆ retrieveBookedTrees()

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

Retrieve all booked trees.

Definition at line 73 of file PlotBase.cxx.

73 {
74 std::vector<TreeData> vBookedTrees = m_vBookedTrees;
75 for (auto *subNode: m_vSubNodes) {
76 std::vector<TreeData> subNodeTrees = subNode->retrieveBookedTrees();
77 vBookedTrees.insert(vBookedTrees.end(), subNodeTrees.begin(), subNodeTrees.end());
78 }
79 return vBookedTrees;
80}

◆ setDetailLevel()

void PlotBase::setDetailLevel ( int iDetailLevel)
inherited

Definition at line 55 of file PlotBase.cxx.

55 {
56 for (auto *subNode: m_vSubNodes) {
57 subNode->setDetailLevel(iDetailLevel);
58 }
59 m_iDetailLevel = iDetailLevel;
60}
int m_iDetailLevel
Definition PlotBase.h:101

Member Data Documentation

◆ dAngle

TH1* Trk::ExtrRegionPlots::dAngle

Definition at line 78 of file TruthTrkExtrapolationPlots.h.

◆ dp

TH1* Trk::ExtrRegionPlots::dp

Definition at line 50 of file TruthTrkExtrapolationPlots.h.

◆ dp_CaloEntry_IP_dp_CaloEntry_etxr

TH2* Trk::ExtrRegionPlots::dp_CaloEntry_IP_dp_CaloEntry_etxr

Definition at line 80 of file TruthTrkExtrapolationPlots.h.

◆ dp_extr

TH1* Trk::ExtrRegionPlots::dp_extr

Definition at line 55 of file TruthTrkExtrapolationPlots.h.

◆ dp_extr_vs_eta

TH2* Trk::ExtrRegionPlots::dp_extr_vs_eta

Definition at line 66 of file TruthTrkExtrapolationPlots.h.

◆ dp_vs_eta

TH2* Trk::ExtrRegionPlots::dp_vs_eta

Definition at line 62 of file TruthTrkExtrapolationPlots.h.

◆ dp_vs_eta_phi

TH2* Trk::ExtrRegionPlots::dp_vs_eta_phi

Definition at line 63 of file TruthTrkExtrapolationPlots.h.

◆ dp_vs_p

TH2* Trk::ExtrRegionPlots::dp_vs_p

Definition at line 60 of file TruthTrkExtrapolationPlots.h.

◆ dp_vs_phi

TH2* Trk::ExtrRegionPlots::dp_vs_phi

Definition at line 61 of file TruthTrkExtrapolationPlots.h.

◆ dphi

TH1* Trk::ExtrRegionPlots::dphi

Definition at line 76 of file TruthTrkExtrapolationPlots.h.

◆ dpt

TH1* Trk::ExtrRegionPlots::dpt

Definition at line 51 of file TruthTrkExtrapolationPlots.h.

◆ dpx

TH1* Trk::ExtrRegionPlots::dpx

Definition at line 52 of file TruthTrkExtrapolationPlots.h.

◆ dpx_extr

TH1* Trk::ExtrRegionPlots::dpx_extr

Definition at line 56 of file TruthTrkExtrapolationPlots.h.

◆ dpy

TH1* Trk::ExtrRegionPlots::dpy

Definition at line 53 of file TruthTrkExtrapolationPlots.h.

◆ dpy_extr

TH1* Trk::ExtrRegionPlots::dpy_extr

Definition at line 57 of file TruthTrkExtrapolationPlots.h.

◆ dpz

TH1* Trk::ExtrRegionPlots::dpz

Definition at line 54 of file TruthTrkExtrapolationPlots.h.

◆ dpz_extr

TH1* Trk::ExtrRegionPlots::dpz_extr

Definition at line 58 of file TruthTrkExtrapolationPlots.h.

◆ dR

TH1* Trk::ExtrRegionPlots::dR

Definition at line 69 of file TruthTrkExtrapolationPlots.h.

◆ dR_vs_dp

TH2* Trk::ExtrRegionPlots::dR_vs_dp

Definition at line 71 of file TruthTrkExtrapolationPlots.h.

◆ dR_vs_eta

TH2* Trk::ExtrRegionPlots::dR_vs_eta

Definition at line 72 of file TruthTrkExtrapolationPlots.h.

◆ dR_vs_eta_phi

TH2* Trk::ExtrRegionPlots::dR_vs_eta_phi

Definition at line 74 of file TruthTrkExtrapolationPlots.h.

◆ dR_vs_p

TH2* Trk::ExtrRegionPlots::dR_vs_p

Definition at line 70 of file TruthTrkExtrapolationPlots.h.

◆ dR_vs_phi

TH2* Trk::ExtrRegionPlots::dR_vs_phi

Definition at line 73 of file TruthTrkExtrapolationPlots.h.

◆ dtheta

TH1* Trk::ExtrRegionPlots::dtheta

Definition at line 77 of file TruthTrkExtrapolationPlots.h.

◆ m_iDetailLevel

int PlotBase::m_iDetailLevel
protectedinherited

Definition at line 101 of file PlotBase.h.

◆ m_sDirectory

std::string PlotBase::m_sDirectory
protectedinherited

Definition at line 100 of file PlotBase.h.

◆ m_sRegionBegin

std::string Trk::ExtrRegionPlots::m_sRegionBegin

Definition at line 47 of file TruthTrkExtrapolationPlots.h.

◆ m_sRegionEnd

std::string Trk::ExtrRegionPlots::m_sRegionEnd

Definition at line 48 of file TruthTrkExtrapolationPlots.h.

◆ m_vBookedEfficiencies

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

Definition at line 99 of file PlotBase.h.

◆ m_vBookedHistograms

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

Definition at line 97 of file PlotBase.h.

◆ m_vBookedTrees

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

Definition at line 98 of file PlotBase.h.

◆ m_vSubNodes

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

Definition at line 96 of file PlotBase.h.

◆ p_extr_vs_p_extr

TH2* Trk::ExtrRegionPlots::p_extr_vs_p_extr

Definition at line 65 of file TruthTrkExtrapolationPlots.h.

◆ p_vs_p

TH2* Trk::ExtrRegionPlots::p_vs_p

Definition at line 64 of file TruthTrkExtrapolationPlots.h.


The documentation for this class was generated from the following files: