ATLAS Offline Software
Loading...
Searching...
No Matches
DerivationFramework::EGammaGSFCalo Class Reference

#include <EGammaGSFCalo.h>

Inheritance diagram for DerivationFramework::EGammaGSFCalo:
Collaboration diagram for DerivationFramework::EGammaGSFCalo:

Public Member Functions

virtual StatusCode initialize () override final
 initialize method
virtual StatusCode finalize () override final
 finalize method
virtual StatusCode addBranches (const EventContext &ctx) const override final
 addBranches method

Private Member Functions

void copyInfo (const xAOD::TrackParticle &original, xAOD::TrackParticle &created, bool isRefitted) const
 Copy TrackParticle info from the original TP.
void copySummaryValue (const xAOD::TrackParticle &src, xAOD::TrackParticle &dest, const xAOD::SummaryType &information) const

Private Attributes

SG::ReadHandleKey< xAOD::ElectronContainerm_electronCollectionKey
SG::WriteHandleKey< xAOD::TrackParticleContainerm_OutputTrkPartContainerKey
SG::WriteDecorHandleKey< xAOD::ElectronContainerm_gsfCaloTrackLinkKey
ToolHandle< IegammaTrkRefitterToolm_trkRefitTool
 The track refitter.
ToolHandle< Trk::ITrackParticleCreatorToolm_particleCreatorTool
 Tool to create track particle.
PublicToolHandle< Trk::IExtendedTrackSummaryToolm_trackSummaryTool
Gaudi::Property< int > m_minNSiHits
 Minimum number of silicon hits on track before it is allowed to be refitted.
Gaudi::Property< bool > m_doPix
Gaudi::Property< bool > m_doSCT {this, "useSCT", true, "Bool to use SCT hits"}
Gaudi::Property< bool > m_doTRT {this, "useTRT", true, "Bool to use TRT hits"}
Gaudi::Property< bool > m_doTruth
Gaudi::Property< bool > m_isAOD {this, "isAOD", true, "AOD flag"}
std::atomic< unsigned int > m_allElectrons = 0
 Counters.
std::atomic< unsigned int > m_noTP = 0
std::atomic< unsigned int > m_onlyTRT = 0
std::atomic< unsigned int > m_noTrk = 0
std::atomic< unsigned int > m_failedFits = 0
std::atomic< unsigned int > m_successfulFits = 0
std::atomic< unsigned int > m_successfulCopyInfos = 0
std::atomic< unsigned int > m_noRefTP = 0
std::atomic< unsigned int > m_allNewTP = 0
std::atomic< unsigned int > m_tsos = 0

Detailed Description

Definition at line 27 of file EGammaGSFCalo.h.

Member Function Documentation

◆ addBranches()

StatusCode DerivationFramework::EGammaGSFCalo::addBranches ( const EventContext & ctx) const
finaloverridevirtual

addBranches method

Definition at line 46 of file EGammaGSFCalo.cxx.

46 {
47
48 // input electron decoration handle
49 SG::WriteDecorHandle<xAOD::ElectronContainer,
50 ElementLink<xAOD::TrackParticleContainer>>
51 dec_gsfCaloTrackLink(m_gsfCaloTrackLinkKey, ctx);
52
53 // gsf calo electrons decorations
54 static const SG::AuxElement::Accessor<int> acc_gsfCaloStatus("gsfCaloStatus");
55 static const SG::AuxElement::Accessor<float> acc_gsfChi2oNDF(
56 "gsfChiSquareOverNDOF");
57 static const SG::AuxElement::Accessor<float> acc_gsfCaloChi2oNDF(
58 "gsfCaloChiSquareOverNDOF");
60 acc_usedElectronLink("usedElectronLink");
62 ElementLink<xAOD::TrackParticleContainer>>
63 read_originalTP("originalTrackParticle");
64 static const SG::AuxElement::Accessor<
65 ElementLink<xAOD::TrackParticleContainer>>
66 write_originalTP("originalTrackParticle");
67
68 // Create the final containers to be written out
69 SG::WriteHandle<xAOD::TrackParticleContainer> finalTrkPartContainer(
71
72 ATH_CHECK(finalTrkPartContainer.record(
73 std::make_unique<xAOD::TrackParticleContainer>(),
74 std::make_unique<xAOD::TrackParticleAuxContainer>()));
75
76 xAOD::TrackParticleContainer* cPtrTrkPart = finalTrkPartContainer.ptr();
77
78 // Get the input electron container from StoreGate
79 SG::ReadHandle<xAOD::ElectronContainer> ehandle(m_electronCollectionKey, ctx);
80 ATH_CHECK(ehandle.isValid());
81 const xAOD::ElectronContainer* electronContainer = ehandle.cptr();
83
84 for (const auto* electron : *electronContainer) {
85 const xAOD::TrackParticle* electronTP = electron->trackParticle();
86 if (!electronTP) {
87 ATH_MSG_WARNING("Can't get electron #" << electron->index()
88 << " TrackParticle!");
89 m_noTP++;
90 continue;
91 }
92 // Electron has a xAOD::TrackParticle, proceed...
93
94 xAOD::TrackParticle* electronTPRefit = nullptr;
95 int gsfCaloStatus = -1;
96 float gsfChiSquareOverNDOF = -1;
97 float gsfCaloChiSquareOverNDOF = -1;
98
99 ATH_CHECK(electronTP->trackLink().isValid());
100 // We have a Trk::Track to re-fit...
101 uint8_t dummy(0);
102 int nSiHits = 0;
103
104 if (electronTP->summaryValue(dummy, xAOD::numberOfSCTHits))
105 nSiHits += dummy;
106 if (electronTP->summaryValue(dummy, xAOD::numberOfPixelHits))
107 nSiHits += dummy;
108 if (electronTP->summaryValue(dummy, xAOD::numberOfSCTOutliers))
109 nSiHits += dummy;
110 if (electronTP->summaryValue(dummy, xAOD::numberOfPixelOutliers))
111 nSiHits += dummy;
112
113 const Trk::Track* track = electronTP->track();
114
115 // Skip TRT-only tracks
116 if (nSiHits >= m_minNSiHits) {
117 // We want to re-fit only "silicon" Trk::Tracks
118 auto electronTrackQuality = electronTP->track()->fitQuality();
119 gsfChiSquareOverNDOF = electronTrackQuality->chiSquared() /
120 electronTrackQuality->numberDoF();
121
122 auto electronTrackRefit = std::make_unique<Trk::Track>();
123 IegammaTrkRefitterTool::Cache cache{};
124 // Add electron pointer to cache for the refitting
125 cache.electron = electron;
126 StatusCode sc = m_trkRefitTool->refitTrack(ctx, track, cache);
127
128 if (sc == StatusCode::SUCCESS) {
129 electronTrackRefit.reset(cache.refittedTrack.release());
130 // move
131 m_trackSummaryTool->updateTrack(ctx, *electronTrackRefit);
132
133 gsfCaloStatus = 1;
135
136 const xAOD::Vertex* electronTrackVertex = nullptr;
137 electronTPRefit = m_particleCreatorTool->createParticle(
138 ctx, *electronTrackRefit, cPtrTrkPart, electronTrackVertex,
140 if (electronTPRefit) {
141 copyInfo(*electronTP, *electronTPRefit, !m_isAOD);
142 auto electronTrackRefitQuality = electronTrackRefit->fitQuality();
143 gsfCaloChiSquareOverNDOF = electronTrackRefitQuality->chiSquared() /
144 electronTrackRefitQuality->numberDoF();
145 } else {
147 "Can't create a new xAOD::TrackParticle from the re-fitted "
148 "Trk::Track! Using the original xAOD::TrackParticle!");
149 gsfCaloStatus = 0;
150 m_noRefTP++;
151 }
152 } else {
154 "CALO-improved Trk::Track re-fit failed! Using the original "
155 "xAOD::TrackParticle!");
156 m_failedFits++;
157 gsfCaloStatus = 0;
158 }
159 } else {
160 ATH_MSG_DEBUG("Electron "
161 << electron->index()
162 << " has a valid track particle but is a TRT-only track");
163 gsfCaloStatus = 0;
164 m_onlyTRT++;
165 }
166
167 if (gsfCaloStatus != 1) {
168 electronTPRefit = new xAOD::TrackParticle();
169 cPtrTrkPart->push_back(electronTPRefit);
170 *electronTPRefit = *electronTP;
171 }
172 // Debug flags
173 acc_gsfCaloStatus(*electronTPRefit) = gsfCaloStatus;
174 acc_gsfChi2oNDF(*electronTPRefit) = gsfChiSquareOverNDOF;
175 acc_gsfCaloChi2oNDF(*electronTPRefit) = gsfCaloChiSquareOverNDOF;
176
177 electronTPRefit->setTrackLink(electronTP->trackLink());
178
179 // Add link to refitted TP to electron container
180 ElementLink<xAOD::TrackParticleContainer> linkToRefittedTrackParticle(
181 electronTPRefit, *cPtrTrkPart);
182 dec_gsfCaloTrackLink(*electron) = linkToRefittedTrackParticle;
183
184 // Add link to initial electron to the refitted TP container
185 ElementLink<xAOD::ElectronContainer> linkToElectron;
186 linkToElectron.toIndexedElement(*electronContainer, electron->index());
187 acc_usedElectronLink(*electronTPRefit) = linkToElectron;
188
189 ElementLink<xAOD::TrackParticleContainer> linkToOriginal;
190 if (read_originalTP.isAvailable(*electronTP)) {
191 linkToOriginal = read_originalTP(*electronTP);
192 }
193 write_originalTP(*electronTPRefit) = linkToOriginal;
194 } // end of the electron container loop
195
196 m_allNewTP += cPtrTrkPart->size();
197 return StatusCode::SUCCESS;
198}
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_WARNING(x)
#define ATH_MSG_DEBUG(x)
static Double_t sc
xAOD::ElectronContainer * electronContainer
value_type push_back(value_type pElem)
Add an element to the end of the collection.
size_type size() const noexcept
Returns the number of elements in the collection.
ToolHandle< Trk::ITrackParticleCreatorTool > m_particleCreatorTool
Tool to create track particle.
std::atomic< unsigned int > m_noTP
std::atomic< unsigned int > m_noRefTP
SG::WriteDecorHandleKey< xAOD::ElectronContainer > m_gsfCaloTrackLinkKey
std::atomic< unsigned int > m_allElectrons
Counters.
PublicToolHandle< Trk::IExtendedTrackSummaryTool > m_trackSummaryTool
std::atomic< unsigned int > m_successfulFits
Gaudi::Property< int > m_minNSiHits
Minimum number of silicon hits on track before it is allowed to be refitted.
SG::WriteHandleKey< xAOD::TrackParticleContainer > m_OutputTrkPartContainerKey
std::atomic< unsigned int > m_allNewTP
SG::ReadHandleKey< xAOD::ElectronContainer > m_electronCollectionKey
std::atomic< unsigned int > m_failedFits
ToolHandle< IegammaTrkRefitterTool > m_trkRefitTool
The track refitter.
Gaudi::Property< bool > m_isAOD
std::atomic< unsigned int > m_onlyTRT
void copyInfo(const xAOD::TrackParticle &original, xAOD::TrackParticle &created, bool isRefitted) const
Copy TrackParticle info from the original TP.
SG::ConstAccessor< T, ALLOC > ConstAccessor
Definition AuxElement.h:569
SG::Accessor< T, ALLOC > Accessor
Definition AuxElement.h:572
double chiSquared() const
returns the of the overall track fit
Definition FitQuality.h:56
const FitQuality * fitQuality() const
return a pointer to the fit quality const-overload
void setTrackLink(const ElementLink< TrackCollection > &track)
Set the link to the original track.
const ElementLink< TrackCollection > & trackLink() const
Returns a link (which can be invalid) to the Trk::Track which was used to make this TrackParticle.
const Trk::Track * track() const
Returns a pointer (which can be NULL) to the Trk::Track which was used to make this TrackParticle.
bool summaryValue(uint8_t &value, const SummaryType &information) const
Accessor for TrackSummary values.
::StatusCode StatusCode
StatusCode definition for legacy code.
float nSiHits(const U &p)
ElectronContainer_v1 ElectronContainer
Definition of the current "electron container version".
TrackParticle_v1 TrackParticle
Reference the current persistent version:
Vertex_v1 Vertex
Define the latest version of the vertex class.
TrackParticleContainer_v1 TrackParticleContainer
Definition of the current "TrackParticle container version".
@ numberOfPixelOutliers
these are the pixel outliers, including the b-layer [unit8_t].
@ numberOfSCTHits
number of hits in SCT [unit8_t].
@ numberOfSCTOutliers
number of SCT outliers [unit8_t].
@ numberOfPixelHits
these are the pixel hits, including the b-layer [unit8_t].
std::unique_ptr< Trk::Track > refittedTrack
Pointer to the refitted track.
const xAOD::Electron * electron
pointer to the Electron input

◆ copyInfo()

void DerivationFramework::EGammaGSFCalo::copyInfo ( const xAOD::TrackParticle & original,
xAOD::TrackParticle & created,
bool isRefitted ) const
private

Copy TrackParticle info from the original TP.

Definition at line 200 of file EGammaGSFCalo.cxx.

202 {
203 // Add Truth decorations. Copy from the original.
204 if (m_doTruth) {
205 static const SG::AuxElement::Accessor<
206 ElementLink<xAOD::TruthParticleContainer>>
207 tPL("truthParticleLink");
208 if (tPL.isAvailable(original)) {
209 const ElementLink<xAOD::TruthParticleContainer>& linkToTruth =
210 tPL(original);
211 tPL(created) = linkToTruth;
212 }
213 static const SG::AuxElement::Accessor<float> tMP("truthMatchProbability");
214 if (tMP.isAvailable(original)) {
215 float originalProbability = tMP(original);
216 tMP(created) = originalProbability;
217 }
218 static const SG::AuxElement::Accessor<int> tT("truthType");
219 if (tT.isAvailable(original)) {
220 int truthType = tT(original);
221 tT(created) = truthType;
222 }
223 static const SG::AuxElement::Accessor<int> tO("truthOrigin");
224 if (tO.isAvailable(original)) {
225 int truthOrigin = tO(original);
226 tO(created) = truthOrigin;
227 }
228 }
229
230 // It's apparently not possible to update Trk::Track when running on AOD; copy
231 // the values from the original xAOD::TrackParticle
232 if (m_isAOD) {
233 copySummaryValue(original, created, xAOD::numberOfBLayerHits);
234 copySummaryValue(original, created, xAOD::numberOfPixelHits);
236 copySummaryValue(original, created, xAOD::numberOfSCTHits);
237 copySummaryValue(original, created, xAOD::numberOfPixelHoles);
238 copySummaryValue(original, created, xAOD::numberOfSCTHoles);
241 copySummaryValue(original, created, xAOD::numberOfTRTHits);
244 }
245
246 // Copy shared hit content from the original xAOD::TrackParticle
247 // Taken from
248 // https://gitlab.cern.ch/atlas/athena/-/blob/master/Reconstruction/egamma/egammaAlgs/src/EMBremCollectionBuilder.cxx?ref_type=heads#L329
250 copySummaryValue(original, created,
252 copySummaryValue(original, created,
254 copySummaryValue(original, created,
256 copySummaryValue(original, created,
262
263 if (isRefitted) {
264 // Figure the new number of holes
265 uint8_t dummy(0);
266 if (m_doPix) {
267 int nPixHitsRefitted =
268 created.summaryValue(dummy, xAOD::numberOfPixelHits) ? dummy : -1;
269 int nPixOutliersRefitted =
270 created.summaryValue(dummy, xAOD::numberOfPixelOutliers) ? dummy : -1;
271
272 int nPixHitsOriginal =
273 original.summaryValue(dummy, xAOD::numberOfPixelHits) ? dummy : -1;
274 int nPixOutliersOriginal =
276 : -1;
277 int nPixHolesOriginal =
278 original.summaryValue(dummy, xAOD::numberOfPixelHoles) ? dummy : -1;
279
280 uint8_t nPixHolesRefitted = nPixHitsOriginal + nPixHolesOriginal +
281 nPixOutliersOriginal - nPixOutliersRefitted -
282 nPixHitsRefitted;
283
284 created.setSummaryValue(nPixHolesRefitted, xAOD::numberOfPixelHoles);
285 }
286
287 if (m_doSCT) {
288 int nSCTHitsRefitted =
289 created.summaryValue(dummy, xAOD::numberOfSCTHits) ? dummy : -1;
290 int nSCTOutliersRefitted =
291 created.summaryValue(dummy, xAOD::numberOfSCTOutliers) ? dummy : -1;
292
293 int nSCTHitsOriginal =
294 original.summaryValue(dummy, xAOD::numberOfSCTHits) ? dummy : -1;
295 int nSCTHolesOriginal =
296 original.summaryValue(dummy, xAOD::numberOfSCTHoles) ? dummy : -1;
297 int nSCTOutliersOriginal =
298 original.summaryValue(dummy, xAOD::numberOfSCTOutliers) ? dummy : -1;
299
300 uint8_t nSCTHolesRefitted = nSCTHitsOriginal + nSCTHolesOriginal +
301 nSCTOutliersOriginal - nSCTOutliersRefitted -
302 nSCTHitsRefitted;
303
304 created.setSummaryValue(nSCTHolesRefitted, xAOD::numberOfSCTHoles);
305 }
306
307 if (m_doTRT) {
308 int nTRTHitsRefitted =
309 created.summaryValue(dummy, xAOD::numberOfTRTHits) ? dummy : -1;
310 int nTRTOutliersRefitted =
311 created.summaryValue(dummy, xAOD::numberOfTRTOutliers) ? dummy : -1;
312
313 int nTRTHitsOriginal =
314 original.summaryValue(dummy, xAOD::numberOfTRTHits) ? dummy : -1;
315 int nTRTHolesOriginal =
316 original.summaryValue(dummy, xAOD::numberOfTRTHoles) ? dummy : -1;
317 int nTRTOutliersOriginal =
318 original.summaryValue(dummy, xAOD::numberOfTRTOutliers) ? dummy : -1;
319
320 uint8_t nTRTHolesRefitted = nTRTHitsOriginal + nTRTHolesOriginal +
321 nTRTOutliersOriginal - nTRTOutliersRefitted -
322 nTRTHitsRefitted;
323
324 created.setSummaryValue(nTRTHolesRefitted, xAOD::numberOfTRTHoles);
325 }
326 }
327}
void copySummaryValue(const xAOD::TrackParticle &src, xAOD::TrackParticle &dest, const xAOD::SummaryType &information) const
Gaudi::Property< bool > m_doTRT
Gaudi::Property< bool > m_doTruth
Gaudi::Property< bool > m_doSCT
Gaudi::Property< bool > m_doPix
void setSummaryValue(uint8_t &value, const SummaryType &information)
Set method for TrackSummary values.
int truthOrigin(const U &p)
int truthType(const U &p)
@ numberOfPixelHoles
number of pixel layers on track with absence of hits [unit8_t].
@ numberOfNextToInnermostPixelLayerSharedHits
number of Pixel 1st layer barrel hits shared by several tracks.
@ numberOfNextToInnermostPixelLayerSplitHits
number of Pixel 1st layer barrel hits split by cluster splitting
@ numberOfPixelSplitHits
number of Pixel all-layer hits split by cluster splitting [unit8_t].
@ numberOfInnermostPixelLayerSharedHits
number of Pixel 0th layer barrel hits shared by several tracks.
@ numberOfTRTHits
number of TRT hits [unit8_t].
@ numberOfTRTHoles
number of TRT holes [unit8_t].
@ numberOfBLayerHits
these are the hits in the first pixel layer, i.e.
@ numberOfSCTDeadSensors
number of dead SCT sensors crossed [unit8_t].
@ numberOfBLayerSharedHits
number of Pixel b-layer hits shared by several tracks [unit8_t].
@ numberOfInnermostPixelLayerSplitHits
number of Pixel 0th layer barrel hits split by cluster splitting
@ numberOfSCTDoubleHoles
number of Holes in both sides of a SCT module [unit8_t].
@ numberOfPixelSharedHits
number of Pixel all-layer hits shared by several tracks [unit8_t].
@ numberOfSCTSharedHits
number of SCT hits shared by several tracks [unit8_t].
@ numberOfTRTHighThresholdHits
number of TRT hits which pass the high threshold (only xenon counted) [unit8_t].
@ numberOfTRTSharedHits
number of TRT hits used by more than one track
@ numberOfTRTOutliers
number of TRT outliers [unit8_t].
@ numberOfPixelDeadSensors
number of dead pixel sensors crossed [unit8_t].
@ numberOfSCTHoles
number of SCT holes [unit8_t].

◆ copySummaryValue()

void DerivationFramework::EGammaGSFCalo::copySummaryValue ( const xAOD::TrackParticle & src,
xAOD::TrackParticle & dest,
const xAOD::SummaryType & information ) const
inlineprivate

Definition at line 93 of file EGammaGSFCalo.h.

95 {
97 dest.setSummaryValue(value, information);
98 }
int summaryValueInt(const xAOD::TrackParticle &tp, const xAOD::SummaryType &info, int deflt=-999)
return the summary value for a TrackParticle or default value (-999) (to be used mostly in python whe...

◆ finalize()

StatusCode DerivationFramework::EGammaGSFCalo::finalize ( )
finaloverridevirtual

finalize method

Definition at line 27 of file EGammaGSFCalo.cxx.

27 {
28 ATH_MSG_INFO("Finalize...");
29
30 ATH_MSG_INFO("Electrons: " << m_allElectrons);
31 ATH_MSG_INFO("Electrons w/o xAOD::TrackParticle: " << m_noTP);
32 ATH_MSG_INFO("Electrons w/ TRT-only track: " << m_onlyTRT);
33 ATH_MSG_INFO("Electrons w/o Trk::Track: " << m_noTrk);
34 ATH_MSG_INFO("Number of failed fits: " << m_failedFits);
35 ATH_MSG_INFO("Number of successful fits: " << m_successfulFits);
36 ATH_MSG_INFO("Number of successful copyInfos(): " << m_successfulCopyInfos);
37 ATH_MSG_INFO("Number of failed createParticle(): " << m_noRefTP);
38 ATH_MSG_INFO("New container size: " << m_allNewTP);
39 ATH_MSG_INFO("TSOS: " << m_tsos);
40
41 return StatusCode::SUCCESS;
42}
#define ATH_MSG_INFO(x)
std::atomic< unsigned int > m_successfulCopyInfos
std::atomic< unsigned int > m_noTrk
std::atomic< unsigned int > m_tsos

◆ initialize()

StatusCode DerivationFramework::EGammaGSFCalo::initialize ( )
finaloverridevirtual

initialize method

Definition at line 14 of file EGammaGSFCalo.cxx.

14 {
15 ATH_MSG_INFO("Initialize...");
16
17 ATH_CHECK(m_trkRefitTool.retrieve());
19 ATH_CHECK(m_trackSummaryTool.retrieve());
21 ATH_CHECK(m_gsfCaloTrackLinkKey.initialize());
23
24 return StatusCode::SUCCESS;
25}

Member Data Documentation

◆ m_allElectrons

std::atomic<unsigned int> DerivationFramework::EGammaGSFCalo::m_allElectrons = 0
mutableprivate

Counters.

Definition at line 78 of file EGammaGSFCalo.h.

◆ m_allNewTP

std::atomic<unsigned int> DerivationFramework::EGammaGSFCalo::m_allNewTP = 0
mutableprivate

Definition at line 86 of file EGammaGSFCalo.h.

◆ m_doPix

Gaudi::Property<bool> DerivationFramework::EGammaGSFCalo::m_doPix
private
Initial value:
{this, "usePixel", true,
"Bool to use pixel hits"}

Definition at line 67 of file EGammaGSFCalo.h.

67 {this, "usePixel", true,
68 "Bool to use pixel hits"};

◆ m_doSCT

Gaudi::Property<bool> DerivationFramework::EGammaGSFCalo::m_doSCT {this, "useSCT", true, "Bool to use SCT hits"}
private

Definition at line 69 of file EGammaGSFCalo.h.

69{this, "useSCT", true, "Bool to use SCT hits"};

◆ m_doTRT

Gaudi::Property<bool> DerivationFramework::EGammaGSFCalo::m_doTRT {this, "useTRT", true, "Bool to use TRT hits"}
private

Definition at line 70 of file EGammaGSFCalo.h.

70{this, "useTRT", true, "Bool to use TRT hits"};

◆ m_doTruth

Gaudi::Property<bool> DerivationFramework::EGammaGSFCalo::m_doTruth
private
Initial value:
{this, "useTruth", true,
"Bool to add truth decorations"}

Definition at line 72 of file EGammaGSFCalo.h.

72 {this, "useTruth", true,
73 "Bool to add truth decorations"};

◆ m_electronCollectionKey

SG::ReadHandleKey<xAOD::ElectronContainer> DerivationFramework::EGammaGSFCalo::m_electronCollectionKey
private
Initial value:
{
this, "ElectronCollectionName", "Electrons", "Input electron collection"}

Definition at line 40 of file EGammaGSFCalo.h.

40 {
41 this, "ElectronCollectionName", "Electrons", "Input electron collection"};

◆ m_failedFits

std::atomic<unsigned int> DerivationFramework::EGammaGSFCalo::m_failedFits = 0
mutableprivate

Definition at line 82 of file EGammaGSFCalo.h.

◆ m_gsfCaloTrackLinkKey

SG::WriteDecorHandleKey<xAOD::ElectronContainer> DerivationFramework::EGammaGSFCalo::m_gsfCaloTrackLinkKey
private
Initial value:
{
this, "GSFCaloTrackLinkKey", "Electrons.gsfCaloTrackParticleLink",
"Decoration linking electrons to refitted TrackParticles"}

Definition at line 47 of file EGammaGSFCalo.h.

47 {
48 this, "GSFCaloTrackLinkKey", "Electrons.gsfCaloTrackParticleLink",
49 "Decoration linking electrons to refitted TrackParticles"};

◆ m_isAOD

Gaudi::Property<bool> DerivationFramework::EGammaGSFCalo::m_isAOD {this, "isAOD", true, "AOD flag"}
private

Definition at line 75 of file EGammaGSFCalo.h.

75{this, "isAOD", true, "AOD flag"};

◆ m_minNSiHits

Gaudi::Property<int> DerivationFramework::EGammaGSFCalo::m_minNSiHits
private
Initial value:
{this, "minNSiHits", 4,
"Minimum number of silicon hits on track "
"before it is allowed to be refitted"}

Minimum number of silicon hits on track before it is allowed to be refitted.

Definition at line 64 of file EGammaGSFCalo.h.

64 {this, "minNSiHits", 4,
65 "Minimum number of silicon hits on track "
66 "before it is allowed to be refitted"};

◆ m_noRefTP

std::atomic<unsigned int> DerivationFramework::EGammaGSFCalo::m_noRefTP = 0
mutableprivate

Definition at line 85 of file EGammaGSFCalo.h.

◆ m_noTP

std::atomic<unsigned int> DerivationFramework::EGammaGSFCalo::m_noTP = 0
mutableprivate

Definition at line 79 of file EGammaGSFCalo.h.

◆ m_noTrk

std::atomic<unsigned int> DerivationFramework::EGammaGSFCalo::m_noTrk = 0
mutableprivate

Definition at line 81 of file EGammaGSFCalo.h.

◆ m_onlyTRT

std::atomic<unsigned int> DerivationFramework::EGammaGSFCalo::m_onlyTRT = 0
mutableprivate

Definition at line 80 of file EGammaGSFCalo.h.

◆ m_OutputTrkPartContainerKey

SG::WriteHandleKey<xAOD::TrackParticleContainer> DerivationFramework::EGammaGSFCalo::m_OutputTrkPartContainerKey
private
Initial value:
{
this, "OutputTrkPartContainerName", "GSFCaloContainer",
"Output GSF+Calo container"}

Definition at line 43 of file EGammaGSFCalo.h.

43 {
44 this, "OutputTrkPartContainerName", "GSFCaloContainer",
45 "Output GSF+Calo container"};

◆ m_particleCreatorTool

ToolHandle<Trk::ITrackParticleCreatorTool> DerivationFramework::EGammaGSFCalo::m_particleCreatorTool
private
Initial value:
{
this, "TrackParticleCreatorTool", "TrackParticleCreatorTool",
"TrackParticle creator tool"}

Tool to create track particle.

Definition at line 55 of file EGammaGSFCalo.h.

55 {
56 this, "TrackParticleCreatorTool", "TrackParticleCreatorTool",
57 "TrackParticle creator tool"};

◆ m_successfulCopyInfos

std::atomic<unsigned int> DerivationFramework::EGammaGSFCalo::m_successfulCopyInfos = 0
mutableprivate

Definition at line 84 of file EGammaGSFCalo.h.

◆ m_successfulFits

std::atomic<unsigned int> DerivationFramework::EGammaGSFCalo::m_successfulFits = 0
mutableprivate

Definition at line 83 of file EGammaGSFCalo.h.

◆ m_trackSummaryTool

PublicToolHandle<Trk::IExtendedTrackSummaryTool> DerivationFramework::EGammaGSFCalo::m_trackSummaryTool
private
Initial value:
{
this, "TrackSummaryTool", "Trk::TrackSummaryTool/AtlasTrackSummaryTool"}

Definition at line 59 of file EGammaGSFCalo.h.

59 {
60 this, "TrackSummaryTool", "Trk::TrackSummaryTool/AtlasTrackSummaryTool"};

◆ m_trkRefitTool

ToolHandle<IegammaTrkRefitterTool> DerivationFramework::EGammaGSFCalo::m_trkRefitTool
private
Initial value:
{
this, "TrackRefitTool", "ElectronRefitterTool", "Track refitter tool"}

The track refitter.

Definition at line 51 of file EGammaGSFCalo.h.

51 {
52 this, "TrackRefitTool", "ElectronRefitterTool", "Track refitter tool"};

◆ m_tsos

std::atomic<unsigned int> DerivationFramework::EGammaGSFCalo::m_tsos = 0
mutableprivate

Definition at line 87 of file EGammaGSFCalo.h.


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