ATLAS Offline Software
Loading...
Searching...
No Matches
MSHitDiffPlots.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3*/
4
8// #include "TrkValHistUtils/TrkValHistUtilities.h"
9
10namespace Trk {
11 MSHitDiffPlots::MSHitDiffPlots(PlotBase *pParent, const std::string& sDir) :
12 PlotBase(pParent, sDir),
13 nprecLayers(this, "nprecLayers", "Precision Layers", -5, 5),
14 nphiLayers(this, "nphiLayers", "Phi Layers", -5, 5),
15 ntrigEtaLayers(this, "ntrigEtaLayers", "Eta Trigger Layers", -5, 5) {
16 }
17
18 void
19 MSHitDiffPlots::fill(const xAOD::TrackParticle &trkprt, const xAOD::TruthParticle &truthprt, float weight) {
20 fillPlot(nprecLayers, xAOD::numberOfPrecisionLayers, "nprecLayers", trkprt, truthprt, weight);
21 fillPlot(nphiLayers, xAOD::numberOfPhiLayers, "nphiLayers", trkprt, truthprt, weight);
22 fillPlot(ntrigEtaLayers, xAOD::numberOfTriggerEtaLayers, "ntrigEtaLayers", trkprt, truthprt, weight);
23 }
24
25 void
26 MSHitDiffPlots::fillPlot(HitTypePlots &hitPlots, const xAOD::SummaryType &info, const std::string &sInfo,
27 const xAOD::TrackParticle &trkprt, const xAOD::TruthParticle &truthprt, float weight) {
28 uint8_t hitval = 0;
29
30 if (!trkprt.summaryValue(hitval, info)) {
31 return;
32 }
33 SG::ConstAccessor<uint8_t> infoAcc (sInfo);
34 if (!infoAcc.isAvailable(truthprt)) {
35 return;
36 }
37 uint8_t truthhitval = infoAcc(truthprt);
38 hitPlots.fill(truthhitval - hitval, trkprt.eta(), trkprt.phi(), weight);
39 }
40}
Helper class to provide constant type-safe access to aux data.
PlotBase(PlotBase *parent, const std::string &sDir)
Definition PlotBase.cxx:29
Helper class to provide constant type-safe access to aux data.
bool isAvailable(const ELT &e) const
Test to see if this variable exists in the store.
void fill(int iHits, float fEta, float fPhi, float weight=1.0)
Trk::HitTypePlots nphiLayers
void fill(const xAOD::TrackParticle &trkprt, const xAOD::TruthParticle &truthprt, float weight=1.0)
Trk::HitTypePlots nprecLayers
MSHitDiffPlots(PlotBase *pParent, const std::string &sDir)
Trk::HitTypePlots ntrigEtaLayers
static void fillPlot(HitTypePlots &hitPlots, const xAOD::SummaryType &info, const std::string &sInfo, const xAOD::TrackParticle &trkprt, const xAOD::TruthParticle &truthprt, float weight=1.0)
virtual double phi() const override final
The azimuthal angle ( ) of the particle (has range to .)
bool summaryValue(uint8_t &value, const SummaryType &information) const
Accessor for TrackSummary values.
virtual double eta() const override final
The pseudorapidity ( ) of the particle.
Ensure that the ATLAS eigen extensions are properly loaded.
TrackParticle_v1 TrackParticle
Reference the current persistent version:
TruthParticle_v1 TruthParticle
Typedef to implementation.
SummaryType
Enumerates the different types of information stored in Summary.
@ numberOfPrecisionLayers
layers with at least 3 hits [unit8_t].
@ numberOfTriggerEtaLayers
layers with trigger eta hits [unit8_t].
@ numberOfPhiLayers
layers with a trigger phi hit [unit8_t].