ATLAS Offline Software
Loading...
Searching...
No Matches
InDet::SingleTrackConversionTool Class Reference

Helper tools to reconstruct single track conversions. More...

#include <SingleTrackConversionTool.h>

Inheritance diagram for InDet::SingleTrackConversionTool:
Collaboration diagram for InDet::SingleTrackConversionTool:

Public Member Functions

 SingleTrackConversionTool (const std::string &type, const std::string &name, const IInterface *parent)
virtual ~SingleTrackConversionTool ()=default
virtual StatusCode initialize () override
virtual StatusCode finalize () override
xAOD::VertexbuildSingleTrackParticleConversion (const xAOD::TrackParticle *, xAOD::VertexContainer *container) const
 Build single track conversion candidate.
bool selectSingleTrackParticleConversion (const xAOD::TrackParticle *) const
 Select single track conversion candidates.
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
virtual StatusCode sysInitialize () override
 Perform system initialization for an algorithm.
virtual StatusCode sysStart () override
 Handle START transition.
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles.
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles.
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T, V, H > &t)
void updateVHKA (Gaudi::Details::PropertyBase &)
MsgStream & msg () const
bool msgLvl (const MSG::Level lvl) const

Static Public Member Functions

static const InterfaceID & interfaceID ()

Protected Member Functions

void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce (T &h)
void extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps)
 Add StoreName to extra input/output deps as needed.

Protected Attributes

DoubleProperty m_minInitR
DoubleProperty m_minInitR_noBLay
DoubleProperty m_singleThreshold
IntegerProperty m_maxBLhits {this, "MaxBLayerHits", 0, "Maximum number of blayer hits"}
BooleanProperty m_PIDonlyForXe {this, "PIDonlyForXe", false, "Only check TRT PID if all hits are Xe hits"}

Private Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t

Private Member Functions

Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey>

Private Attributes

StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default)
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
bool m_varHandleArraysDeclared

Detailed Description

Helper tools to reconstruct single track conversions.

Author
Tatjana Lenz , Thomas Koffas

Definition at line 29 of file SingleTrackConversionTool.h.

Member Typedef Documentation

◆ StoreGateSvc_t

typedef ServiceHandle<StoreGateSvc> AthCommonDataStore< AthCommonMsg< AlgTool > >::StoreGateSvc_t
privateinherited

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ SingleTrackConversionTool()

InDet::SingleTrackConversionTool::SingleTrackConversionTool ( const std::string & type,
const std::string & name,
const IInterface * parent )

Definition at line 42 of file SingleTrackConversionTool.cxx.

45 : AthAlgTool(type, name, parent)
46 {
47 declareInterface<SingleTrackConversionTool>(this);
48 }
AthAlgTool()
Default constructor:

◆ ~SingleTrackConversionTool()

virtual InDet::SingleTrackConversionTool::~SingleTrackConversionTool ( )
virtualdefault

Member Function Documentation

◆ buildSingleTrackParticleConversion()

xAOD::Vertex * InDet::SingleTrackConversionTool::buildSingleTrackParticleConversion ( const xAOD::TrackParticle * track,
xAOD::VertexContainer * container ) const

Build single track conversion candidate.

xAOD::TrackParticle interface.

Create a RecVertex at the first measurement of the track.

Need to compute a global position covariance matrix as J.C.JT

The local position parameters covariance matrix C (2x2)

The Jacobian matrix J (3x2)

The A = J.C (3x2)

The A.JT = J.C.JT (3x3)

Construct the new covariance matrix (3x3)

The local position parameters covariance matrix C (2x2)

The straight line surface (wire) global directions

The particle global direction

The Jacobian matrix J (3x2)

The A = J.C (3x2)

The A.JT = J.C.JT (3x3)

Construct the new covariance matrix (3x3)

Definition at line 76 of file SingleTrackConversionTool.cxx.

79 {
81
82 unsigned int index(0);
83 if (!track->indexOfParameterAtPosition(index, xAOD::FirstMeasurement)) {
84 ATH_MSG_WARNING("TrackParticle has no first measurement");
85 return nullptr;
86 }
87
88 const Trk::CurvilinearParameters trkPar =
89 track->curvilinearParameters(index);
90
91 const Amg::Vector3D& gp = trkPar.position();
92 const AmgSymMatrix(5) em = *(trkPar.covariance());
93
94 // ME: this is nuts, those values are 0, 0
95 // double chi2 = track->fitQuality()->chiSquared();
96 // int Ndf = track->fitQuality()->numberDoF();
97
99 const Amg::Transform3D& T = trkPar.associatedSurface().transform();
100 AmgSymMatrix(3) nCovVtx;
101
102 // Should use eigen to do all of this
103
104 // ME: use the surface to find out what we do, do not hardcode the geoemtry
105 if (Trk::SurfaceType::Plane == trkPar.associatedSurface().type()) {
106
108 double p11 = em(Trk::locX, Trk::locX);
109 double p12 = em(Trk::locX, Trk::locY);
110 double p21 = em(Trk::locY, Trk::locX);
111 double p22 = em(Trk::locY, Trk::locY);
112
114 double Ax[3] = { T(0, 0), T(1, 0), T(2, 0) };
115 double Ay[3] = { T(0, 1), T(1, 1), T(2, 1) };
116 double a11 = Ax[0];
117 double a12 = Ay[0];
118 double a21 = Ax[1];
119 double a22 = Ay[1];
120 double a31 = Ax[2];
121 double a32 = Ay[2];
122
124 double A11 = a11 * p11 + a12 * p21;
125 double A12 = a11 * p12 + a12 * p22;
126 double A21 = a21 * p11 + a22 * p21;
127 double A22 = a21 * p12 + a22 * p22;
128 double A31 = a31 * p11 + a32 * p21;
129 double A32 = a31 * p12 + a32 * p22;
130
132 double P11 = a11 * A11 + A12 * a12;
133 double P12 = A11 * a21 + A12 * a22;
134 double P13 = A11 * a31 + A12 * a32;
135 double P21 = A21 * a11 + A22 * a12;
136 double P22 = A21 * a21 + A22 * a22;
137 double P23 = A21 * a31 + A22 * a32;
138 double P31 = A31 * a11 + A32 * a12;
139 double P32 = A31 * a21 + A32 * a22;
140 double P33 = A31 * a31 + A32 * a32;
141
143 nCovVtx(0, 0) = P11;
144 nCovVtx(0, 1) = P12;
145 nCovVtx(0, 2) = P13;
146 nCovVtx(1, 0) = P21;
147 nCovVtx(1, 1) = P22;
148 nCovVtx(1, 2) = P23;
149 nCovVtx(2, 0) = P31;
150 nCovVtx(2, 1) = P32;
151 nCovVtx(2, 2) = P33;
152
153 } else if (Trk::SurfaceType::Line == trkPar.associatedSurface().type()) {
154
156 double p11 = em(Trk::locR, Trk::locR);
157 double p12 = em(Trk::locR, Trk::locZ);
158 double p21 = em(Trk::locZ, Trk::locR);
159 double p22 = em(Trk::locZ, Trk::locZ);
160
162 double A[3] = {T(0,2),T(1,2),T(2,2)};
163
165 double Px = trkPar.momentum().x();
166 double Py = trkPar.momentum().y();
167 double Pz = trkPar.momentum().z();
168
170 double Bx = A[1]*Pz-A[2]*Py;
171 double By = A[2]*Px-A[0]*Pz;
172 double Bz = A[0]*Py-A[1]*Px;
173 double Bn = 1./sqrt(Bx*Bx+By*By+Bz*Bz); Bx*=Bn; By*=Bn; Bz*=Bn;
174 double a11 = Bx; double a12 = A[0];
175 double a21 = By; double a22 = A[1];
176 double a31 = Bz; double a32 = A[2];
177
179 double A11 = a11*p11 + a12*p21; double A12 = a11*p12 + a12*p22;
180 double A21 = a21*p11 + a22*p21; double A22 = a21*p12 + a22*p22;
181 double A31 = a31*p11 + a32*p21; double A32 = a31*p12 + a32*p22;
182
184 double P11 = a11*A11 + A12*a12; double P12 = A11*a21 + A12*a22; double P13 = A11*a31 + A12*a32;
185 double P21 = A21*a11 + A22*a12; double P22 = A21*a21 + A22*a22; double P23 = A21*a31 + A22*a32;
186 double P31 = A31*a11 + A32*a12; double P32 = A31*a21 + A32*a22; double P33 = A31*a31 + A32*a32;
187
189 nCovVtx(0,0) = P11; nCovVtx(0,1) = P12; nCovVtx(0,2) = P13;
190 nCovVtx(1,0) = P21; nCovVtx(1,1) = P22; nCovVtx(1,2) = P23;
191 nCovVtx(2,0) = P31; nCovVtx(2,1) = P32; nCovVtx(2,2) = P33;
192 }
193
194 // now construct the vertex from the global position, cov. put NdF and chi2 to zero (Markus)
195
196
198 container->push_back( vertex );
199
200 vertex->setPosition(gp);
201 vertex->setCovariancePosition(nCovVtx);
202 vertex->setVertexType(xAOD::VxType::ConvVtx);
203 vertex->setFitQuality( 0, 0);
204
205 return vertex;
206 }
#define ATH_MSG_WARNING(x)
Eigen::Affine3d Transform3D
#define AmgSymMatrix(dim)
if(febId1==febId2)
value_type push_back(value_type pElem)
Add an element to the end of the collection.
virtual const S & associatedSurface() const override final
Access to the Surface method.
const Amg::Vector3D & momentum() const
Access method for the momentum.
const Amg::Vector3D & position() const
Access method for the position.
virtual constexpr SurfaceType type() const override final
Return the surface type.
Eigen::Matrix< double, 3, 1 > Vector3D
str index
Definition DeMoScan.py:362
unsigned long long T
CurvilinearParametersT< TrackParametersDim, Charged, PlaneSurface > CurvilinearParameters
@ locY
local cartesian
Definition ParamDefs.h:38
@ locX
Definition ParamDefs.h:37
@ locR
Definition ParamDefs.h:44
@ locZ
local cylindrical
Definition ParamDefs.h:42
@ ConvVtx
Conversion vertex.
Vertex_v1 Vertex
Define the latest version of the vertex class.
@ FirstMeasurement
Parameter defined at the position of the 1st measurement.

◆ declareGaudiProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T, V, H > & hndl,
const SG::VarHandleKeyType &  )
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKey>

Definition at line 156 of file AthCommonDataStore.h.

158 {
160 hndl.value(),
161 hndl.documentation());
162
163 }
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)

◆ declareProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( Gaudi::Property< T, V, H > & t)
inlineinherited

Definition at line 145 of file AthCommonDataStore.h.

145 {
146 typedef typename SG::HandleClassifier<T>::type htype;
148 }
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>

◆ detStore()

const ServiceHandle< StoreGateSvc > & AthCommonDataStore< AthCommonMsg< AlgTool > >::detStore ( ) const
inlineinherited

The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 95 of file AthCommonDataStore.h.

◆ evtStore()

ServiceHandle< StoreGateSvc > & AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore ( )
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 85 of file AthCommonDataStore.h.

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::extraDeps_update_handler ( Gaudi::Details::PropertyBase & ExtraDeps)
protectedinherited

Add StoreName to extra input/output deps as needed.

use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given

◆ finalize()

StatusCode InDet::SingleTrackConversionTool::finalize ( )
overridevirtual

Definition at line 67 of file SingleTrackConversionTool.cxx.

67 {
68 return StatusCode::SUCCESS;
69 }

◆ initialize()

StatusCode InDet::SingleTrackConversionTool::initialize ( )
overridevirtual

Definition at line 60 of file SingleTrackConversionTool.cxx.

60 {
61 return StatusCode::SUCCESS;
62 }

◆ inputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< AlgTool > >::inputHandles ( ) const
overridevirtualinherited

Return this algorithm's input handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ interfaceID()

const InterfaceID & InDet::SingleTrackConversionTool::interfaceID ( )
static

Definition at line 53 of file SingleTrackConversionTool.cxx.

53 {
55 }
static const InterfaceID IID_ISingleTrackConversionTool("InDet::SingleTrackConversionTool", 1, 0)

◆ msg()

MsgStream & AthCommonMsg< AlgTool >::msg ( ) const
inlineinherited

Definition at line 24 of file AthCommonMsg.h.

24 {
25 return this->msgStream();
26 }

◆ msgLvl()

bool AthCommonMsg< AlgTool >::msgLvl ( const MSG::Level lvl) const
inlineinherited

Definition at line 30 of file AthCommonMsg.h.

30 {
31 return this->msgLevel(lvl);
32 }

◆ outputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< AlgTool > >::outputHandles ( ) const
overridevirtualinherited

Return this algorithm's output handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ renounce()

std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > AthCommonDataStore< AthCommonMsg< AlgTool > >::renounce ( T & h)
inlineprotectedinherited

Definition at line 380 of file AthCommonDataStore.h.

381 {
382 h.renounce();
384 }
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce(T &h)

◆ renounceArray()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::renounceArray ( SG::VarHandleKeyArray & handlesArray)
inlineprotectedinherited

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364 {
366 }

◆ selectSingleTrackParticleConversion()

bool InDet::SingleTrackConversionTool::selectSingleTrackParticleConversion ( const xAOD::TrackParticle * track) const

Select single track conversion candidates.

xAOD::TrackParticle.

Definition at line 211 of file SingleTrackConversionTool.cxx.

211 {
212
213 //Position of first hit in track particle
214
215 int index(-1);
216 for(unsigned int i(0); i< track->numberOfParameters() ; ++i ){
217 if( xAOD::FirstMeasurement == track->parameterPosition(i) ){
218 index = i;
219 break;
220 }
221 }
222 if(index ==-1){
223 ATH_MSG_WARNING("Track Particle does not contain first Measurement track parameters");
224 return false;
225 }
226
227 const Trk::CurvilinearParameters trk_meas = track->curvilinearParameters(index);
228
230
231 uint8_t expectedHitInBLayer(0);
232 if( track->summaryValue(dummy,xAOD::expectInnermostPixelLayerHit) )
233 expectedHitInBLayer = dummy;
234
235 float Rfirst = trk_meas.position().perp();
236 if (expectedHitInBLayer)
237 {
238 // ME: cut on minInitR if blayer is ok
239 if (Rfirst < m_minInitR)
240 {
241 ATH_MSG_DEBUG("BLayer hit expected. Radius of first hit (" <<
242 Rfirst << ") below minimum: " << m_minInitR);
243 return false;
244 }
245 }
246 else
247 {
248 // ME: cut on minInitR_NBLay if blayer is off
249 if(Rfirst < m_minInitR_noBLay)
250 {
251 ATH_MSG_DEBUG("No BLayer hit expected. Radius of first hit (" <<
252 Rfirst << ") below minimum: " << m_minInitR_noBLay);
253 return false;
254 }
255 }
256
257
258 uint8_t nTrtHits(0);
259 if( track->summaryValue(dummy, xAOD::numberOfTRTHits))
260 nTrtHits = dummy;
261
262 uint8_t nTrtOutliers(0);
263 if(track->summaryValue(dummy, xAOD::numberOfTRTOutliers))
264 nTrtOutliers = dummy;
265
266 uint8_t ntrt = nTrtHits + nTrtOutliers;
267
268 uint8_t nTrtXenonHits(0);
269 if( track->summaryValue(dummy, xAOD::numberOfTRTXenonHits) )
270 nTrtXenonHits = dummy;
271
272
273
274 if(ntrt > 0 && (!m_PIDonlyForXe || nTrtXenonHits==ntrt) ) {
275 // only check TRT PID if m_PIDonlyForXe is false or all TRT hits are Xenon hits
276 float prob = 1.0;
277 if( !track->summaryValue(prob,xAOD::eProbabilityHT) )
278 {
279 ATH_MSG_WARNING("Could not retrieve TR probability");
280 return false;
281 }
282 if (prob < m_singleThreshold)
283 {
284 ATH_MSG_DEBUG("Probability (" << prob << ") below threshold: "
286 return false;
287 }
288 }
289
290 uint8_t nBLHits(0);
291 if( track->summaryValue(dummy,xAOD::numberOfInnermostPixelLayerHits))
292 nBLHits += dummy;
293 if( track->summaryValue(dummy, xAOD::numberOfInnermostPixelLayerOutliers))
294 nBLHits += dummy;
295 if(nBLHits > m_maxBLhits)
296 {
297 ATH_MSG_DEBUG("BLayer hits (" << nBLHits << ") above maximum: " << m_maxBLhits);
298 return false;
299 }
300
301 return true;
302 }
#define ATH_MSG_DEBUG(x)
@ expectInnermostPixelLayerHit
Do we expect a 0th-layer barrel hit for this track?
@ numberOfTRTXenonHits
number of TRT hits on track in straws with xenon [unit8_t].
@ numberOfTRTHits
number of TRT hits [unit8_t].
@ numberOfInnermostPixelLayerOutliers
number of 0th layer barrel outliers
@ eProbabilityHT
Electron probability from High Threshold (HT) information [float].
@ numberOfInnermostPixelLayerHits
these are the hits in the 0th pixel barrel layer
@ numberOfTRTOutliers
number of TRT outliers [unit8_t].

◆ sysInitialize()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysInitialize ( )
overridevirtualinherited

Perform system initialization for an algorithm.

We override this to declare all the elements of handle key arrays at the end of initialization. See comments on updateVHKA.

Reimplemented in asg::AsgMetadataTool, AthCheckedComponent< AthAlgTool >, AthCheckedComponent<::AthAlgTool >, and DerivationFramework::CfAthAlgTool.

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysStart ( )
overridevirtualinherited

Handle START transition.

We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.

◆ updateVHKA()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::updateVHKA ( Gaudi::Details::PropertyBase & )
inlineinherited

Definition at line 308 of file AthCommonDataStore.h.

308 {
309 // debug() << "updateVHKA for property " << p.name() << " " << p.toString()
310 // << " size: " << m_vhka.size() << endmsg;
311 for (auto &a : m_vhka) {
313 for (auto k : keys) {
314 k->setOwner(this);
315 }
316 }
317 }
std::vector< SG::VarHandleKeyArray * > m_vhka

Member Data Documentation

◆ m_detStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
privateinherited

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_evtStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
privateinherited

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_maxBLhits

IntegerProperty InDet::SingleTrackConversionTool::m_maxBLhits {this, "MaxBLayerHits", 0, "Maximum number of blayer hits"}
protected

Definition at line 59 of file SingleTrackConversionTool.h.

60{this, "MaxBLayerHits", 0, "Maximum number of blayer hits"};

◆ m_minInitR

DoubleProperty InDet::SingleTrackConversionTool::m_minInitR
protected
Initial value:
{this, "MinInitialHitRadius", 70.,
"Minimum initial hit radius in order to consider track as coming from photon conversion"}

Definition at line 50 of file SingleTrackConversionTool.h.

51 {this, "MinInitialHitRadius", 70.,
52 "Minimum initial hit radius in order to consider track as coming from photon conversion"};

◆ m_minInitR_noBLay

DoubleProperty InDet::SingleTrackConversionTool::m_minInitR_noBLay
protected
Initial value:
{this, "MinInitialHitRadius_noBlay", 120.,
"Minimum initial hit radius in order to consider track as coming from photon conversion"}

Definition at line 53 of file SingleTrackConversionTool.h.

54 {this, "MinInitialHitRadius_noBlay", 120.,
55 "Minimum initial hit radius in order to consider track as coming from photon conversion"};

◆ m_PIDonlyForXe

BooleanProperty InDet::SingleTrackConversionTool::m_PIDonlyForXe {this, "PIDonlyForXe", false, "Only check TRT PID if all hits are Xe hits"}
protected

Definition at line 61 of file SingleTrackConversionTool.h.

62{this, "PIDonlyForXe", false, "Only check TRT PID if all hits are Xe hits"};

◆ m_singleThreshold

DoubleProperty InDet::SingleTrackConversionTool::m_singleThreshold
protected
Initial value:
{this, "MinRatioOfHLhits", 0.1,
"Minimum ratio of HL hits for a track to be labeled as electron"}

Definition at line 56 of file SingleTrackConversionTool.h.

57 {this, "MinRatioOfHLhits", 0.1,
58 "Minimum ratio of HL hits for a track to be labeled as electron"};

◆ m_varHandleArraysDeclared

bool AthCommonDataStore< AthCommonMsg< AlgTool > >::m_varHandleArraysDeclared
privateinherited

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

std::vector<SG::VarHandleKeyArray*> AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
privateinherited

Definition at line 398 of file AthCommonDataStore.h.


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