ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Event
xAOD
xAODEgamma
Root
ElectronxAODHelpers.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#include "
xAODEgamma/ElectronxAODHelpers.h
"
6
#include "
xAODEgamma/Electron.h
"
7
#include "
xAODTracking/TrackParticle.h
"
8
#include "
xAODTracking/TrackParticleContainer.h
"
9
10
// ==================================================================
11
const
xAOD::TrackParticle
*
xAOD::EgammaHelpers::getOriginalTrackParticle
(
const
xAOD::Electron
* el){
12
13
if
(el){
14
const
xAOD::TrackParticle
* trkPar= el->trackParticle();
15
if
(trkPar){
16
return
getOriginalTrackParticleFromGSF
(trkPar);
17
}
18
}
19
return
nullptr
;
20
}
21
// ==================================================================
22
const
xAOD::TrackParticle
*
xAOD::EgammaHelpers::getOriginalTrackParticleFromGSF
(
const
xAOD::TrackParticle
* trkPar){
23
24
if
(! trkPar) {
return
nullptr
;}
25
static
const
SG::AuxElement::Accessor<ElementLink<xAOD::TrackParticleContainer> > orig (
"originalTrackParticle"
);
26
if
(!orig.isAvailable(*trkPar) || !orig(*trkPar).isValid()) {
return
nullptr
;}
27
28
return
(*orig(*trkPar));
29
}
30
// ==================================================================
31
float
xAOD::EgammaHelpers::getLastMeasurementQoverP
(
const
xAOD::TrackParticle
*tp){
32
static
const
SG::AuxElement::Accessor<float > QoverPLM (
"QoverPLM"
);
33
if
(tp && QoverPLM.
isAvailable
(*tp)){
34
return
QoverPLM(*tp);
35
}
36
return
-999 ;
37
}
38
// ==================================================================
39
std::set<const xAOD::TrackParticle*>
xAOD::EgammaHelpers::getTrackParticles
(
const
xAOD::Electron
* el,
40
bool
useBremAssoc
/* = true */
,
41
bool
allParticles
/* = true */
){
42
std::set<const xAOD::TrackParticle*> tps;
43
for
(
unsigned
int
i = 0; i < el->nTrackParticles(); ++i){
44
const
xAOD::TrackParticle
* tp = el->trackParticle(i);
45
if
(useBremAssoc) tp =
xAOD::EgammaHelpers::getOriginalTrackParticleFromGSF
(tp);
46
if
(tp) tps.insert( tp );
47
if
(!allParticles)
break
;
// break after first particle
48
}
49
return
tps;
50
}
51
// ==================================================================
52
std::vector<const xAOD::TrackParticle*>
xAOD::EgammaHelpers::getTrackParticlesVec
(
const
xAOD::Electron
* el,
53
bool
useBremAssoc
/* = true */
,
54
bool
allParticles
/* = true */
){
55
56
std::vector<const xAOD::TrackParticle*> tps;
57
for
(
unsigned
int
i = 0; i < el->nTrackParticles(); ++i){
58
const
xAOD::TrackParticle
* tp = el->trackParticle(i);
59
if
(useBremAssoc) {tp =
xAOD::EgammaHelpers::getOriginalTrackParticleFromGSF
(tp);}
60
if
(tp) {tps.push_back( tp );}
61
if
(!allParticles) {
break
;}
// break after first particle
62
}
63
return
tps;
64
}
65
// ==================================================================
66
std::size_t
xAOD::EgammaHelpers::numberOfSiHits
(
const
xAOD::TrackParticle
*tp){
67
if
(!tp)
return
0;
68
uint8_t
dummy(0);
69
uint8_t
nSiHits(0);
70
if
(tp->
summaryValue
(dummy,
xAOD::numberOfPixelHits
)){
71
nSiHits += dummy;
72
}
73
if
(tp->
summaryValue
(dummy,
xAOD::numberOfSCTHits
)){
74
nSiHits += dummy;
75
}
76
return
nSiHits;
77
}
78
79
80
81
ElectronxAODHelpers.h
Electron.h
TrackParticleContainer.h
TrackParticle.h
xAOD::IParticle::isAvailable
XAOD_AUXDATA_DEPRECATED bool isAvailable(const std::string &name, const std::string &clsname="") const
Check if a user property is available for reading or not.
Definition
Event/xAOD/xAODBase/xAODBase/IParticle.h:135
xAOD::TrackParticle_v1::summaryValue
bool summaryValue(uint8_t &value, const SummaryType &information) const
Accessor for TrackSummary values.
Definition
TrackParticle_v1.cxx:688
xAOD::EgammaHelpers::getTrackParticlesVec
std::vector< const xAOD::TrackParticle * > getTrackParticlesVec(const xAOD::Egamma *eg, bool useBremAssoc=true, bool allParticles=true)
Return a list of all or only the best TrackParticle associated to the object.
Definition
EgammaxAODHelpers.cxx:153
xAOD::EgammaHelpers::getTrackParticles
std::set< const xAOD::TrackParticle * > getTrackParticles(const xAOD::Egamma *eg, bool useBremAssoc=true, bool allParticles=true)
Return a list of all or only the best TrackParticle associated to the object.
Definition
EgammaxAODHelpers.cxx:132
xAOD::EgammaHelpers::getLastMeasurementQoverP
float getLastMeasurementQoverP(const xAOD::TrackParticle *tp)
return parameters for the last measurement for a GSF track particle
Definition
ElectronxAODHelpers.cxx:31
xAOD::EgammaHelpers::getOriginalTrackParticleFromGSF
const xAOD::TrackParticle * getOriginalTrackParticleFromGSF(const xAOD::TrackParticle *trkPar)
Helper function for getting the "Original" Track Particle (i.e before GSF) via the GSF Track Particle...
Definition
ElectronxAODHelpers.cxx:22
xAOD::EgammaHelpers::numberOfSiHits
std::size_t numberOfSiHits(const xAOD::TrackParticle *tp)
return the number of Si hits in the track particle
Definition
ElectronxAODHelpers.cxx:66
xAOD::EgammaHelpers::getOriginalTrackParticle
const xAOD::TrackParticle * getOriginalTrackParticle(const xAOD::Electron *el)
Helper function for getting the "Original" Track Particle (i.e before GSF) via the electron.
Definition
ElectronxAODHelpers.cxx:11
xAOD::uint8_t
uint8_t
Definition
Muon_v1.cxx:500
xAOD::TrackParticle
TrackParticle_v1 TrackParticle
Reference the current persistent version:
Definition
Event/xAOD/xAODTracking/xAODTracking/TrackParticle.h:13
xAOD::numberOfSCTHits
@ numberOfSCTHits
number of hits in SCT [unit8_t].
Definition
TrackingPrimitives.h:269
xAOD::numberOfPixelHits
@ numberOfPixelHits
these are the pixel hits, including the b-layer [unit8_t].
Definition
TrackingPrimitives.h:260
xAOD::Electron
Electron_v1 Electron
Definition of the current "egamma version".
Definition
Event/xAOD/xAODEgamma/xAODEgamma/Electron.h:17
Generated on
for ATLAS Offline Software by
1.17.0