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

The ExtrapolationValidation Algorithm runs a number of n test extrapolations from randomly distributed Track Parameters to randombly distributed reference surfcas within. More...

#include <ExtrapolationValidation.h>

Inheritance diagram for Trk::ExtrapolationValidation:
Collaboration diagram for Trk::ExtrapolationValidation:

Public Member Functions

 ExtrapolationValidation (const std::string &name, ISvcLocator *pSvcLocator)
 Standard Athena-Algorithm Constructor.
 ~ExtrapolationValidation ()
 Default Destructor.
StatusCode initialize ()
 standard Athena-Algorithm method
StatusCode execute ()
 standard Athena-Algorithm method
StatusCode finalize ()
 standard Athena-Algorithm method
virtual StatusCode sysInitialize () override
 Override sysInitialize.
virtual const DataObjIDColl & extraOutputDeps () const override
 Return the list of extra output dependencies.
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 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

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.

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>

Static Private Member Functions

static Amg::Transform3D createTransform (double x, double y, double z, double phi=0., double theta=0., double alphaZ=0.)
 private helper method to create a HepTransform

Private Attributes

const TrackingVolumem_highestVolume = nullptr
 the highest volume
ToolHandle< IExtrapolatorm_extrapolator {this, "Extrapolator", "Trk::Extrapolator/AtlasExtrapolator"}
 The Extrapolator to be retrieved.
Rndm::Numbers * m_gaussDist = nullptr
 Random Number setup.
Rndm::Numbers * m_flatDist = nullptr
BooleanProperty m_materialCollectionValidation {this, "ValidateMaterialCollection", true}
BooleanProperty m_direct
TTree * m_validationTree = nullptr
 Root Validation Tree.
StringProperty m_validationTreeName
StringProperty m_validationTreeDescription
StringProperty m_validationTreeFolder
double m_maximumR = 0.
 maximum R of the highest
double m_maximumZ = 0.
 maximum halfZ of the highest tracking volume
DoubleProperty m_sigmaLoc
DoubleProperty m_sigmaR
DoubleProperty m_sigmaZ
DoubleProperty m_minEta {this, "StartPerigeeMinEta", -3.}
DoubleProperty m_maxEta {this, "StartPerigeeMaxEta", 3.}
DoubleProperty m_minP {this, "StartPerigeeMinP", 0.5*Gaudi::Units::GeV}
DoubleProperty m_maxP {this, "StartPerigeeMaxP", 100.*Gaudi::Units::GeV}
IntegerProperty m_particleType
int m_parameters = 0
 maximum 3 : start - destination - backward
float m_parameterLoc1 [TRKEXALGS_MAXPARAMETERS] {}
 start local 1
float m_parameterLoc2 [TRKEXALGS_MAXPARAMETERS] {}
 start local 2
float m_parameterPhi [TRKEXALGS_MAXPARAMETERS] {}
 start phi
float m_parameterTheta [TRKEXALGS_MAXPARAMETERS] {}
 start theta
float m_parameterEta [TRKEXALGS_MAXPARAMETERS] {}
 start eta
float m_parameterQoverP [TRKEXALGS_MAXPARAMETERS] {}
 start qOverP
float m_covarianceLoc1 [TRKEXALGS_MAXPARAMETERS] {}
 start local 1
float m_covarianceLoc2 [TRKEXALGS_MAXPARAMETERS] {}
 start local 2
float m_covariancePhi [TRKEXALGS_MAXPARAMETERS] {}
 start phi
float m_covarianceTheta [TRKEXALGS_MAXPARAMETERS] {}
 start theta
float m_covarianceQoverP [TRKEXALGS_MAXPARAMETERS] {}
 start qOverP
float m_covarianceDeterminant [TRKEXALGS_MAXPARAMETERS] {}
 start qOverP
int m_destinationSurfaceType = 0
 destination surface type
float m_startX = 0.
 startX
float m_startY = 0.
 startX
float m_startR = 0.
 startX
float m_startZ = 0.
 startX
float m_startP = 0.
 startP
float m_estimationX = 0.
 estimation in X
float m_estimationY = 0.
 estimation in Y
float m_estimationR = 0.
 estimation in R
float m_estimationZ = 0.
 estimation in Z
float m_destinationX = 0.
 destination in X
float m_destinationY = 0.
 destination in Y
float m_destinationR = 0.
 destination in R
float m_destinationZ = 0.
 destination in Z
unsigned int m_triesFront = 0
 events front
unsigned int m_breaksFront = 0
 breaks front
unsigned int m_triesBack = 0
 events back
unsigned int m_breaksBack = 0
 breaks
unsigned int m_collectedLayerFront = 0
 collected material layers forward
unsigned int m_collectedLayerBack = 0
 collected material layers backwards
DataObjIDColl m_extendedExtraObjects
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

The ExtrapolationValidation Algorithm runs a number of n test extrapolations from randomly distributed Track Parameters to randombly distributed reference surfcas within.

  • a) the Inner Detector if DetFlags.ID_On()
  • b) the Calorimeter if DetFlags.Calo_On()
  • c) the Muon System if DetFlags.Muon_On()

and backwards.

It is the TestAlgorithm for 'the' Extrapolator instance provided to client algorithms.

Author
Andreas Salzburger Andre.nosp@m.as.S.nosp@m.alzbu.nosp@m.rger.nosp@m.@cern.nosp@m..ch

Definition at line 56 of file ExtrapolationValidation.h.

Member Typedef Documentation

◆ StoreGateSvc_t

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

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ ExtrapolationValidation()

Trk::ExtrapolationValidation::ExtrapolationValidation ( const std::string & name,
ISvcLocator * pSvcLocator )

Standard Athena-Algorithm Constructor.

Definition at line 27 of file ExtrapolationValidation.cxx.

28 :
29 AthAlgorithm(name,pSvcLocator) {}
AthAlgorithm()
Default constructor:

◆ ~ExtrapolationValidation()

Trk::ExtrapolationValidation::~ExtrapolationValidation ( )

Default Destructor.

Definition at line 33 of file ExtrapolationValidation.cxx.

34{
35 // clear random number generators
36 delete m_gaussDist;
37 delete m_flatDist;
38}
Rndm::Numbers * m_gaussDist
Random Number setup.

Member Function Documentation

◆ createTransform()

Amg::Transform3D Trk::ExtrapolationValidation::createTransform ( double x,
double y,
double z,
double phi = 0.,
double theta = 0.,
double alphaZ = 0. )
staticprivate

private helper method to create a HepTransform

Definition at line 493 of file ExtrapolationValidation.cxx.

494{
495
496 if (phi!=0. && theta != 0.){
497 // create the Start Surface
498 Amg::Vector3D surfacePosition(x,y,z);
499 // z direction
500 Amg::Vector3D surfaceZdirection(cos(phi)*sin(theta),
501 sin(phi)*sin(theta),
502 cos(theta));
503 // the global z axis
504 Amg::Vector3D zAxis(0.,0.,1.);
505 // the y direction
506 Amg::Vector3D surfaceYdirection(zAxis.cross(surfaceZdirection));
507 // the x direction
508 Amg::Vector3D surfaceXdirection(surfaceYdirection.cross(surfaceZdirection));
509
510 double nx = 1./sqrt(surfaceXdirection[0]*surfaceXdirection[0]+surfaceXdirection[1]*surfaceXdirection[1]+surfaceXdirection[2]*surfaceXdirection[2]);
511 double ny = 1./sqrt(surfaceYdirection[0]*surfaceYdirection[0]+surfaceYdirection[1]*surfaceYdirection[1]+surfaceYdirection[2]*surfaceYdirection[2]);
512 surfaceXdirection[0]*=nx;
513 surfaceXdirection[1]*=nx;
514 surfaceXdirection[2]*=nx;
515
516 surfaceYdirection[0]*=ny;
517 surfaceYdirection[1]*=ny;
518 surfaceYdirection[2]*=ny;
519 // the rotation
520 Amg::RotationMatrix3D surfaceRotation;
521 surfaceRotation.col(0) = surfaceXdirection;
522 surfaceRotation.col(1) = surfaceYdirection;
523 surfaceRotation.col(2) = surfaceZdirection;
524 // return it
525 if (alphaZ==0.)
526 return Amg::Transform3D(surfaceRotation, surfacePosition);
527 Amg::Transform3D nominalTransform(surfaceRotation, surfacePosition);
528 return Amg::Transform3D(nominalTransform*Amg::AngleAxis3D(alphaZ,zAxis));
529
530 }
531
533}
Eigen::AngleAxisd AngleAxis3D
Eigen::Matrix< double, 3, 3 > RotationMatrix3D
Eigen::Affine3d Transform3D
Eigen::Matrix< double, 3, 1 > Vector3D
Eigen::Translation< double, 3 > Translation3D
@ x
Definition ParamDefs.h:55
@ z
global position (cartesian)
Definition ParamDefs.h:57
@ theta
Definition ParamDefs.h:66
@ y
Definition ParamDefs.h:56
@ phi
Definition ParamDefs.h:75

◆ declareGaudiProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< Algorithm > >::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< Algorithm > >::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< Algorithm > >::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< Algorithm > >::evtStore ( )
inlineinherited

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

Definition at line 85 of file AthCommonDataStore.h.

◆ execute()

StatusCode Trk::ExtrapolationValidation::execute ( )

standard Athena-Algorithm method

Definition at line 132 of file ExtrapolationValidation.cxx.

133{
134 const EventContext& ctx = Gaudi::Hive::currentContext();
135 // get the overall dimensions
136 if (!m_highestVolume){
137 // get TrackingGeometry and highest volume
138 const Trk::TrackingGeometry* trackingGeometry = m_extrapolator->trackingGeometry();
139 m_highestVolume = trackingGeometry ? trackingGeometry->highestTrackingVolume() : nullptr;
140 const Trk::CylinderVolumeBounds* cylBounds = m_highestVolume ?
141 dynamic_cast<const Trk::CylinderVolumeBounds*>(&(m_highestVolume->volumeBounds())) : nullptr;
142 // bail out
143 if (!cylBounds){
144 ATH_MSG_WARNING("No highest TrackingVolume / no VolumeBounds ... pretty useless! ");
145 return StatusCode::SUCCESS;
146 }
147 // get the numbers
148 m_maximumR = cylBounds->outerRadius();
149 m_maximumZ = cylBounds->halflengthZ();
150 }
151
152 // intialize the values
153 m_parameters = 0;
155 // -----------> start
156 m_startX = 0.;
157 m_startY = 0.;
158 m_startR = 0.;
159 m_startZ = 0.;
160 // -----------> estimation
161 m_estimationX = 0.;
162 m_estimationY = 0.;
163 m_estimationR = 0.;
164 m_estimationZ = 0.;
165 // -----------> destination
166 m_destinationX = 0.;
167 m_destinationY = 0.;
168 m_destinationR = 0.;
169 m_destinationZ = 0.;
170
171 // the local start parameters
174 // are adopted for planar and straight line surfaces
176 m_parameterPhi[m_parameters] *= (m_flatDist->shoot() > 0.5 ) ? -1. : 1.;
178 m_parameterTheta[m_parameters] = 2.*std::atan(std::exp(-m_parameterEta[m_parameters]));
179
184
185 // this is fine
186 double p = m_minP + m_flatDist->shoot()*(m_maxP-m_minP);
187 double charge = (m_flatDist->shoot() > 0.5 ) ? -1. : 1.;
189
191
192 // for the momentum logging
193 m_startP = p;
194
195 // start
196 m_startR = std::abs(m_sigmaR * m_gaussDist->shoot());
197 double surfacePhi = M_PI * m_flatDist->shoot();
198 surfacePhi *= (m_flatDist->shoot() > 0.5 ) ? -1. : 1.;
199 m_startX = m_startR*cos(surfacePhi);
200 m_startY = m_startR*sin(surfacePhi);
201 m_startZ = m_sigmaZ * m_gaussDist->shoot();
202
203 // rotate it around Z
204 double alphaZ = M_PI * m_flatDist->shoot();
205 alphaZ *= (m_flatDist->shoot() > 0.5 ) ? -1. : 1.;
206
207 // create the plane surface
208 Trk::PlaneSurface startSurface(createTransform(m_startX,
209 m_startY,
210 m_startZ,
213 alphaZ),
214 10e3,10e3);
215
216
217
218 AmgSymMatrix(5) covariance;
219 covariance.setZero();
221 covariance(0,0) = m_covarianceLoc1[m_parameters];
223 covariance(1,1) = m_covarianceLoc2[m_parameters];
225 covariance(2,2) = m_covariancePhi[m_parameters];
227 covariance(3,3) = m_covarianceTheta[m_parameters];
229 covariance(4,4) = m_covarianceQoverP[m_parameters];
230 ATH_MSG_VERBOSE("Initial Setting: \n"<<covariance);
231
232
233 m_covarianceDeterminant[m_parameters] = covariance.determinant();
234
235 // the initial perigee with random numbers
236 Trk::AtaPlane startParameters(m_parameterLoc1[m_parameters],
241 startSurface,
242 std::move(covariance));
243
244 ATH_MSG_VERBOSE( "Start Parameters : " << startParameters );
245 if(startParameters.covariance())ATH_MSG_VERBOSE( "Start Covariance : \n" << *startParameters.covariance() );
246
247
248 // destination position
250
251 // --------------- propagate to find a first intersection ---------------------
252 Amg::Transform3D CylTrf;
253 CylTrf.setIdentity();
254 Trk::CylinderSurface estimationCylinder(CylTrf, m_estimationR, 10e10);
255 const Trk::TrackParameters* estimationParameters = m_extrapolator->extrapolateDirectly(ctx,
256 startParameters,
257 estimationCylinder,
258 Trk::alongMomentum,
259 false).release();
260 if (!estimationParameters) {
261 ATH_MSG_VERBOSE( "Estimation of intersection did not work - skip event !" );
262 return StatusCode::SUCCESS;
263 }
264 else if (m_highestVolume && estimationParameters && !(m_highestVolume->inside(estimationParameters->position()))){
265 ATH_MSG_VERBOSE( "Estimation of intersection is outside the known world - skip event !" );
266 delete estimationParameters;
267 return StatusCode::SUCCESS;
268 }
269
270 ATH_MSG_VERBOSE( "Estimation Parameters: " << *estimationParameters );
271
272 // record the estimation parameters
273 ++m_triesFront;
274 ++m_parameters;
275 m_parameterLoc1[m_parameters] = estimationParameters->parameters()[Trk::loc1];
276 m_parameterLoc2[m_parameters] = estimationParameters->parameters()[Trk::loc2];
277 m_parameterPhi[m_parameters] = estimationParameters->parameters()[Trk::phi];
278 m_parameterEta[m_parameters] = estimationParameters->eta();
279 m_parameterTheta[m_parameters] = estimationParameters->parameters()[Trk::theta];
280 m_parameterQoverP[m_parameters] = estimationParameters->parameters()[Trk::qOverP];
281 if(estimationParameters->covariance()){
282 m_covarianceLoc1[m_parameters] = (*estimationParameters->covariance())(0,0);
283 m_covarianceLoc2[m_parameters] = (*estimationParameters->covariance())(1,1);
284 m_covariancePhi[m_parameters] = (*estimationParameters->covariance())(2,2);
285 m_covarianceTheta[m_parameters] = (*estimationParameters->covariance())(3,3);
286 m_covarianceQoverP[m_parameters] = (*estimationParameters->covariance())(4,4);
287 m_covarianceDeterminant[m_parameters] = (estimationParameters->covariance())->determinant();
288 }
289 else{
296 }
297 // the start Momentum
298
299 // get the estimated position
300 const Amg::Vector3D& estimatedPosition = estimationParameters->position();
301
302 m_estimationX = estimatedPosition.x();
303 m_estimationY = estimatedPosition.y();
304 m_estimationZ = estimatedPosition.z();
305
306 // cleanup for memory reasons
307 delete estimationParameters; estimationParameters = nullptr;
308
309 // create the radom surface at the destination point
310 Trk::PlaneSurface destinationSurface(createTransform(m_estimationX,
314 m_parameterTheta[m_parameters]), 10e5 , 10e5);
315
316
317 ATH_MSG_VERBOSE( "Extrapolation to Destination Surface: " << destinationSurface );
318
319 // the destination parameters
320 const Trk::TrackParameters* destParameters = nullptr;
321 // the standard validation ...
323 destParameters = m_extrapolator->extrapolate(ctx,
324 startParameters,
325 destinationSurface,
327 false,
328 static_cast<Trk::ParticleHypothesis>(m_particleType.value()),
329 Trk::addNoise).release();
330 else if(!m_direct){ // material collection validation
331 // get the vector of TrackStateOnSurfaces back
332 const std::vector<const Trk::TrackStateOnSurface*>*
333 collectedMaterial = m_extrapolator->extrapolateM(ctx,
334 startParameters,
335 destinationSurface,
337 false,
338 static_cast<Trk::ParticleHypothesis>(m_particleType.value()));
339
340 // get the last one and clone it
341 if (collectedMaterial && !collectedMaterial->empty()){
342 // get the last track state on surface & clone the destination parameters
343 const Trk::TrackStateOnSurface* destinationState = collectedMaterial->back();
344 destParameters = destinationState->trackParameters() ? destinationState->trackParameters()->clone() : nullptr;
345 m_collectedLayerFront += collectedMaterial->size();
346 // delete the layers / cleanup
347 for (const auto* tsos : *collectedMaterial) {
348 delete tsos;
349 }
350 }
351 }
352
353 else{
354 destParameters = m_extrapolator->extrapolateDirectly(ctx,
355 startParameters,
356 destinationSurface,
358 false,
359 static_cast<Trk::ParticleHypothesis>(m_particleType.value())).release();
360
361 }
362 // ----------------------- check if forward call was successful and continue then
363 if (destParameters){
364 // successful tries
365 ++m_triesBack;
366 // record the destination parameters
367 ++m_parameters;
368 m_parameterLoc1[m_parameters] = destParameters->parameters()[Trk::loc1];
369 m_parameterLoc2[m_parameters] = destParameters->parameters()[Trk::loc2];
370 m_parameterPhi[m_parameters] = destParameters->parameters()[Trk::phi];
371 m_parameterEta[m_parameters] = destParameters->eta();
372 m_parameterTheta[m_parameters] = destParameters->parameters()[Trk::theta];
373 m_parameterQoverP[m_parameters] = destParameters->parameters()[Trk::qOverP];
374 if(destParameters->covariance()){
375 m_covarianceLoc1[m_parameters] = (*destParameters->covariance())(0,0);
376 m_covarianceLoc2[m_parameters] = (*destParameters->covariance())(1,1);
377 m_covariancePhi[m_parameters] = (*destParameters->covariance())(2,2);
378 m_covarianceTheta[m_parameters] = (*destParameters->covariance())(3,3);
379 m_covarianceQoverP[m_parameters] = (*destParameters->covariance())(4,4);
380 m_covarianceDeterminant[m_parameters] = (destParameters->covariance())->determinant();
381 }
382 else{
389 }
390 // record the destination parameters
391 const Amg::Vector3D& destinationPosition = destParameters->position();
392 m_destinationX = destinationPosition.x();
393 m_destinationY = destinationPosition.y();
394 m_destinationZ = destinationPosition.z();
395 m_destinationR = destinationPosition.perp();
396
397 // now simply go backwards
398 const Trk::TrackParameters* backParameters = nullptr;
399 // the standard validation ...
401 backParameters = m_extrapolator->extrapolate(ctx,
402 *destParameters,
403 startSurface,
405 false,
406 static_cast<Trk::ParticleHypothesis>(m_particleType.value()),
407 Trk::removeNoise).release();
408 else if(!m_direct){ // material collection validation
409 // get the vector of TrackStateOnSurfaces back
410 const std::vector<const Trk::TrackStateOnSurface*>*
411 collectedBackMaterial = m_extrapolator->extrapolateM(ctx,
412 *destParameters,
413 startSurface,
415 false,
416 static_cast<Trk::ParticleHypothesis>(m_particleType.value()));
417 // get the last one and clone it
418 if (collectedBackMaterial && !collectedBackMaterial->empty()){
419 // get the last track state on surface & clone the destination parameters
420 const Trk::TrackStateOnSurface* startState = collectedBackMaterial->back();
421 // assign the last ones of the call
422 backParameters = startState->trackParameters() ? startState->trackParameters()->clone() : nullptr;
423 m_collectedLayerBack += collectedBackMaterial->size();
424 // delete the layers / cleanup
425 for (const auto* tsos : *collectedBackMaterial) {
426 delete tsos;
427 }
428 }
429 }
430
431 else{
432 backParameters = m_extrapolator->extrapolateDirectly(ctx,
433 *destParameters,
434 startSurface,
436 false,
437 static_cast<Trk::ParticleHypothesis>(m_particleType.value())).release();
438
439 }
440 // ----------------------- check if backward call was successful and continue then
441 if (backParameters){
442
443 ATH_MSG_VERBOSE( "Back Parameters : " << *backParameters );
444
445 // record the back extrapolated ones
446 ++m_parameters;
447 m_parameterLoc1[m_parameters] = backParameters->parameters()[Trk::loc1];
448 m_parameterLoc2[m_parameters] = backParameters->parameters()[Trk::loc2];
449 m_parameterPhi[m_parameters] = backParameters->parameters()[Trk::phi];
450 m_parameterEta[m_parameters] = backParameters->eta();
451 m_parameterTheta[m_parameters] = backParameters->parameters()[Trk::theta];
452 m_parameterQoverP[m_parameters] = backParameters->parameters()[Trk::qOverP];
453 if(backParameters->covariance()){
454 m_covarianceLoc1[m_parameters] = (*backParameters->covariance())(0,0);
455 m_covarianceLoc2[m_parameters] = (*backParameters->covariance())(1,1);
456 m_covariancePhi[m_parameters] = (*backParameters->covariance())(2,2);
457 m_covarianceTheta[m_parameters] = (*backParameters->covariance())(3,3);
458 m_covarianceQoverP[m_parameters] = (*backParameters->covariance())(4,4);
459 m_covarianceDeterminant[m_parameters] = (backParameters->covariance())->determinant();
460 }
461 else{
468 }
469 // memory cleanup
470 delete backParameters;
471 } else
472 ++m_breaksBack;
473 // memory cleanup
474 delete destParameters;
475 } else
477 // increase ones more
478 ++m_parameters;
479 // memory cleanup
480
482 m_validationTree->Fill();
483
484
485 //std::cout<<"Cleaning up..."<<std::endl;
486 //delete covariance;
487
488 return StatusCode::SUCCESS;
489}
#define M_PI
#define ATH_MSG_VERBOSE(x)
#define ATH_MSG_WARNING(x)
double charge(const T &p)
Definition AtlasPID.h:997
Eigen::Affine3d Transform3D
#define AmgSymMatrix(dim)
if(febId1==febId2)
double halflengthZ() const
This method returns the halflengthZ.
double outerRadius() const
This method returns the outer radius.
TTree * m_validationTree
Root Validation Tree.
const TrackingVolume * m_highestVolume
the highest volume
float m_covarianceLoc2[TRKEXALGS_MAXPARAMETERS]
start local 2
unsigned int m_collectedLayerFront
collected material layers forward
float m_parameterTheta[TRKEXALGS_MAXPARAMETERS]
start theta
float m_parameterPhi[TRKEXALGS_MAXPARAMETERS]
start phi
float m_parameterLoc1[TRKEXALGS_MAXPARAMETERS]
start local 1
unsigned int m_collectedLayerBack
collected material layers backwards
float m_parameterEta[TRKEXALGS_MAXPARAMETERS]
start eta
int m_destinationSurfaceType
destination surface type
float m_covariancePhi[TRKEXALGS_MAXPARAMETERS]
start phi
ToolHandle< IExtrapolator > m_extrapolator
The Extrapolator to be retrieved.
static Amg::Transform3D createTransform(double x, double y, double z, double phi=0., double theta=0., double alphaZ=0.)
private helper method to create a HepTransform
unsigned int m_breaksFront
breaks front
float m_covarianceQoverP[TRKEXALGS_MAXPARAMETERS]
start qOverP
double m_maximumR
maximum R of the highest
int m_parameters
maximum 3 : start - destination - backward
double m_maximumZ
maximum halfZ of the highest tracking volume
float m_covarianceLoc1[TRKEXALGS_MAXPARAMETERS]
start local 1
float m_parameterQoverP[TRKEXALGS_MAXPARAMETERS]
start qOverP
float m_covarianceTheta[TRKEXALGS_MAXPARAMETERS]
start theta
float m_covarianceDeterminant[TRKEXALGS_MAXPARAMETERS]
start qOverP
unsigned int m_triesFront
events front
float m_parameterLoc2[TRKEXALGS_MAXPARAMETERS]
start local 2
double eta() const
Access method for pseudorapidity - from momentum.
virtual ParametersBase< DIM, T > * clone() const override=0
clone method for polymorphic deep copy
const Amg::Vector3D & position() const
Access method for the position.
const TrackParameters * trackParameters() const
return ptr to trackparameters const overload
const TrackingVolume * highestTrackingVolume() const
return the world
static std::string release
Definition computils.h:50
@ oppositeMomentum
@ alongMomentum
@ qOverP
perigee
Definition ParamDefs.h:67
@ loc2
generic first and second local coordinate
Definition ParamDefs.h:35
@ loc1
Definition ParamDefs.h:34
ParticleHypothesis
Enumeration for Particle hypothesis respecting the interaction with material.
ParametersBase< TrackParametersDim, Charged > TrackParameters
ParametersT< TrackParametersDim, Charged, PlaneSurface > AtaPlane

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< Algorithm > >::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

◆ extraOutputDeps()

const DataObjIDColl & AthAlgorithm::extraOutputDeps ( ) const
overridevirtualinherited

Return the list of extra output dependencies.

This list is extended to include symlinks implied by inheritance relations.

Definition at line 50 of file AthAlgorithm.cxx.

51{
52 // If we didn't find any symlinks to add, just return the collection
53 // from the base class. Otherwise, return the extended collection.
54 if (!m_extendedExtraObjects.empty()) {
56 }
57 return Algorithm::extraOutputDeps();
58}
DataObjIDColl m_extendedExtraObjects

◆ finalize()

StatusCode Trk::ExtrapolationValidation::finalize ( )

standard Athena-Algorithm method

Definition at line 110 of file ExtrapolationValidation.cxx.

111{
112 // Code entered here will be executed once at the end of the program run.
113 ATH_MSG_INFO("================== Output Statistics =========================");
114 ATH_MSG_INFO("= Navigation : ");
115 ATH_MSG_INFO("= - breaks fwd : " << static_cast<double>(m_breaksFront)/static_cast<double>(m_triesFront)
116 << " (" << m_breaksFront << "/" << m_triesFront << ")");
117 ATH_MSG_INFO("= - breaks bwd : " << static_cast<double>(m_breaksBack)/static_cast<double>(m_triesBack)
118 << " (" << m_breaksBack << "/" << m_triesBack << ")");
120 ATH_MSG_INFO("= Material collection : ");
121 ATH_MSG_INFO("= - layer collected fwd : " << m_collectedLayerFront );
122 ATH_MSG_INFO("= - layer collected bwd : " << m_collectedLayerBack );
123 }
124
125 ATH_MSG_INFO("==============================================================");
126
127 return StatusCode::SUCCESS;
128}
#define ATH_MSG_INFO(x)

◆ initialize()

StatusCode Trk::ExtrapolationValidation::initialize ( )

standard Athena-Algorithm method

Definition at line 43 of file ExtrapolationValidation.cxx.

44{
45 // Code entered here will be executed once at program start.
46 ATH_MSG_INFO( " initialize()" );
47
48 // Get Extrapolator from ToolService
49 ATH_CHECK( m_extrapolator.retrieve());
50
51 // create the new Tree
52 m_validationTree = new TTree(m_validationTreeName.value().c_str(),
53 m_validationTreeDescription.value().c_str());
54
55 // the branches for the parameters
56 m_validationTree->Branch("Parameters", &m_parameters, "params/I");
57 m_validationTree->Branch("ParametersLoc1", m_parameterLoc1, "paramLoc1[params]/F");
58 m_validationTree->Branch("ParametersLoc2", m_parameterLoc2, "paramLoc2[params]/F");
59 m_validationTree->Branch("ParametersPhi", m_parameterPhi, "paramPhi[params]/F");
60 m_validationTree->Branch("ParametersTheta", m_parameterTheta, "paramTheta[params]/F");
61 m_validationTree->Branch("ParametersEta", m_parameterEta, "paramEta[params]/F");
62 m_validationTree->Branch("ParametersQoverP", m_parameterQoverP, "paramQoverP[params]/F");
63 // for the covariance diagonals
64 m_validationTree->Branch("CovarianceLoc1", m_covarianceLoc1, "covLoc1[params]/F");
65 m_validationTree->Branch("CovarianceLoc2", m_covarianceLoc2, "covLoc2[params]/F");
66 m_validationTree->Branch("CovariancePhi", m_covariancePhi, "covPhi[params]/F");
67 m_validationTree->Branch("CovarianceTheta", m_covarianceTheta, "covTheta[params]/F");
68 m_validationTree->Branch("CovarianceQoverP", m_covarianceQoverP, "covQoverP[params]/F");
69 m_validationTree->Branch("CovarianceDeterminant", m_covarianceDeterminant, "covDet[params]/F");
70 // the start Momentum
71 m_validationTree->Branch("StartMomentum", &m_startP, "startP/F");
72 // for the start surface
73 m_validationTree->Branch("StartSurfaceX", &m_startX, "startX/F");
74 m_validationTree->Branch("StartSurfaceY", &m_startY, "startY/F");
75 m_validationTree->Branch("StartSurfaceR", &m_startR, "startR/F");
76 m_validationTree->Branch("StartSurfaceZ", &m_startZ, "startZ/F");
77 // the estimation of the parameters
78 m_validationTree->Branch("EstimationSurfaceX", &m_estimationX, "estimateX/F");
79 m_validationTree->Branch("EstimationSurfaceY", &m_estimationY, "estimateY/F");
80 m_validationTree->Branch("EstimationSurfaceR", &m_estimationR, "estimateR/F");
81 m_validationTree->Branch("EstimationSurfaceZ", &m_estimationZ, "estimateZ/F");
82 // for the surface type
83 m_validationTree->Branch("DestinationSurfaceType", &m_destinationSurfaceType, "surfaceType/I");
84 m_validationTree->Branch("DestinationSurfaceX", &m_destinationX, "surfaceX/F");
85 m_validationTree->Branch("DestinationSurfaceY", &m_destinationY, "surfaceY/F");
86 m_validationTree->Branch("DestinationSurfaceR", &m_destinationR, "surfaceR/F");
87 m_validationTree->Branch("DestinationSurfaceZ", &m_destinationZ, "surfaceZ/F");
88
89 // now register the Tree
90 SmartIF<ITHistSvc> tHistSvc{service("THistSvc")};
91 if (!tHistSvc){
92 ATH_MSG_ERROR("initialize() Could not find Hist Service -> Switching ValidationMode Off !" );
93 delete m_validationTree; m_validationTree = nullptr;
94 }
95 if ((tHistSvc->regTree(m_validationTreeFolder, m_validationTree)).isFailure()) {
96 ATH_MSG_ERROR("initialize() Could not register the validation Tree -> Switching ValidationMode Off !" );
97 delete m_validationTree; m_validationTree = nullptr;
98 }
99
100 // intialize the random number generators
101 m_gaussDist = new Rndm::Numbers(randSvc(), Rndm::Gauss(0.,1.));
102 m_flatDist = new Rndm::Numbers(randSvc(), Rndm::Flat(0.,1.));
103
104 ATH_MSG_INFO( "initialize() successful");
105 return StatusCode::SUCCESS;
106}
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_ERROR(x)

◆ inputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< Algorithm > >::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.

◆ msg()

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

Definition at line 24 of file AthCommonMsg.h.

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

◆ msgLvl()

bool AthCommonMsg< Algorithm >::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< Algorithm > >::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< Algorithm > >::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< Algorithm > >::renounceArray ( SG::VarHandleKeyArray & handlesArray)
inlineprotectedinherited

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364 {
366 }

◆ sysInitialize()

StatusCode AthAlgorithm::sysInitialize ( )
overridevirtualinherited

Override sysInitialize.

Override sysInitialize from the base class.

Loop through all output handles, and if they're WriteCondHandles, automatically register them and this Algorithm with the CondSvc

Scan through all outputHandles, and if they're WriteCondHandles, register them with the CondSvc

Reimplemented from AthCommonDataStore< AthCommonMsg< Algorithm > >.

Reimplemented in AthAnalysisAlgorithm, AthFilterAlgorithm, AthHistogramAlgorithm, and PyAthena::Alg.

Definition at line 66 of file AthAlgorithm.cxx.

66 {
68
69 if (sc.isFailure()) {
70 return sc;
71 }
72 ServiceHandle<ICondSvc> cs("CondSvc",name());
73 for (auto h : outputHandles()) {
74 if (h->isCondition() && h->mode() == Gaudi::DataHandle::Writer) {
75 // do this inside the loop so we don't create the CondSvc until needed
76 if ( cs.retrieve().isFailure() ) {
77 ATH_MSG_WARNING("no CondSvc found: won't autoreg WriteCondHandles");
78 return StatusCode::SUCCESS;
79 }
80 if (cs->regHandle(this,*h).isFailure()) {
81 sc = StatusCode::FAILURE;
82 ATH_MSG_ERROR("unable to register WriteCondHandle " << h->fullKey()
83 << " with CondSvc");
84 }
85 }
86 }
87 return sc;
88}
static Double_t sc
virtual StatusCode sysInitialize() override
Override sysInitialize.
AthCommonDataStore(const std::string &name, T... args)
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
::StatusCode StatusCode
StatusCode definition for legacy code.

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< Algorithm > >::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< Algorithm > >::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_breaksBack

unsigned int Trk::ExtrapolationValidation::m_breaksBack = 0
private

breaks

Definition at line 159 of file ExtrapolationValidation.h.

◆ m_breaksFront

unsigned int Trk::ExtrapolationValidation::m_breaksFront = 0
private

breaks front

Definition at line 157 of file ExtrapolationValidation.h.

◆ m_collectedLayerBack

unsigned int Trk::ExtrapolationValidation::m_collectedLayerBack = 0
private

collected material layers backwards

Definition at line 162 of file ExtrapolationValidation.h.

◆ m_collectedLayerFront

unsigned int Trk::ExtrapolationValidation::m_collectedLayerFront = 0
private

collected material layers forward

Definition at line 161 of file ExtrapolationValidation.h.

◆ m_covarianceDeterminant

float Trk::ExtrapolationValidation::m_covarianceDeterminant[TRKEXALGS_MAXPARAMETERS] {}
private

start qOverP

Definition at line 136 of file ExtrapolationValidation.h.

136{};

◆ m_covarianceLoc1

float Trk::ExtrapolationValidation::m_covarianceLoc1[TRKEXALGS_MAXPARAMETERS] {}
private

start local 1

Definition at line 131 of file ExtrapolationValidation.h.

131{};

◆ m_covarianceLoc2

float Trk::ExtrapolationValidation::m_covarianceLoc2[TRKEXALGS_MAXPARAMETERS] {}
private

start local 2

Definition at line 132 of file ExtrapolationValidation.h.

132{};

◆ m_covariancePhi

float Trk::ExtrapolationValidation::m_covariancePhi[TRKEXALGS_MAXPARAMETERS] {}
private

start phi

Definition at line 133 of file ExtrapolationValidation.h.

133{};

◆ m_covarianceQoverP

float Trk::ExtrapolationValidation::m_covarianceQoverP[TRKEXALGS_MAXPARAMETERS] {}
private

start qOverP

Definition at line 135 of file ExtrapolationValidation.h.

135{};

◆ m_covarianceTheta

float Trk::ExtrapolationValidation::m_covarianceTheta[TRKEXALGS_MAXPARAMETERS] {}
private

start theta

Definition at line 134 of file ExtrapolationValidation.h.

134{};

◆ m_destinationR

float Trk::ExtrapolationValidation::m_destinationR = 0.
private

destination in R

Definition at line 152 of file ExtrapolationValidation.h.

◆ m_destinationSurfaceType

int Trk::ExtrapolationValidation::m_destinationSurfaceType = 0
private

destination surface type

Definition at line 138 of file ExtrapolationValidation.h.

◆ m_destinationX

float Trk::ExtrapolationValidation::m_destinationX = 0.
private

destination in X

Definition at line 150 of file ExtrapolationValidation.h.

◆ m_destinationY

float Trk::ExtrapolationValidation::m_destinationY = 0.
private

destination in Y

Definition at line 151 of file ExtrapolationValidation.h.

◆ m_destinationZ

float Trk::ExtrapolationValidation::m_destinationZ = 0.
private

destination in Z

Definition at line 153 of file ExtrapolationValidation.h.

◆ m_detStore

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

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_direct

BooleanProperty Trk::ExtrapolationValidation::m_direct
private
Initial value:
{this, "ExtrapolateDirectly", false,
"extrapolate directly"}

Definition at line 90 of file ExtrapolationValidation.h.

90 {this, "ExtrapolateDirectly", false,
91 "extrapolate directly"};

◆ m_estimationR

float Trk::ExtrapolationValidation::m_estimationR = 0.
private

estimation in R

Definition at line 147 of file ExtrapolationValidation.h.

◆ m_estimationX

float Trk::ExtrapolationValidation::m_estimationX = 0.
private

estimation in X

Definition at line 145 of file ExtrapolationValidation.h.

◆ m_estimationY

float Trk::ExtrapolationValidation::m_estimationY = 0.
private

estimation in Y

Definition at line 146 of file ExtrapolationValidation.h.

◆ m_estimationZ

float Trk::ExtrapolationValidation::m_estimationZ = 0.
private

estimation in Z

Definition at line 148 of file ExtrapolationValidation.h.

◆ m_evtStore

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

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_extendedExtraObjects

DataObjIDColl AthAlgorithm::m_extendedExtraObjects
privateinherited

Definition at line 79 of file AthAlgorithm.h.

◆ m_extrapolator

ToolHandle<IExtrapolator> Trk::ExtrapolationValidation::m_extrapolator {this, "Extrapolator", "Trk::Extrapolator/AtlasExtrapolator"}
private

The Extrapolator to be retrieved.

Definition at line 80 of file ExtrapolationValidation.h.

81{this, "Extrapolator", "Trk::Extrapolator/AtlasExtrapolator"};

◆ m_flatDist

Rndm::Numbers* Trk::ExtrapolationValidation::m_flatDist = nullptr
private

Definition at line 85 of file ExtrapolationValidation.h.

◆ m_gaussDist

Rndm::Numbers* Trk::ExtrapolationValidation::m_gaussDist = nullptr
private

Random Number setup.

Definition at line 84 of file ExtrapolationValidation.h.

◆ m_highestVolume

const TrackingVolume* Trk::ExtrapolationValidation::m_highestVolume = nullptr
private

the highest volume

Definition at line 77 of file ExtrapolationValidation.h.

◆ m_materialCollectionValidation

BooleanProperty Trk::ExtrapolationValidation::m_materialCollectionValidation {this, "ValidateMaterialCollection", true}
private

Definition at line 87 of file ExtrapolationValidation.h.

88{this, "ValidateMaterialCollection", true};

◆ m_maxEta

DoubleProperty Trk::ExtrapolationValidation::m_maxEta {this, "StartPerigeeMaxEta", 3.}
private

Definition at line 116 of file ExtrapolationValidation.h.

116{this, "StartPerigeeMaxEta", 3.};

◆ m_maximumR

double Trk::ExtrapolationValidation::m_maximumR = 0.
private

maximum R of the highest

Definition at line 106 of file ExtrapolationValidation.h.

◆ m_maximumZ

double Trk::ExtrapolationValidation::m_maximumZ = 0.
private

maximum halfZ of the highest tracking volume

Definition at line 107 of file ExtrapolationValidation.h.

◆ m_maxP

DoubleProperty Trk::ExtrapolationValidation::m_maxP {this, "StartPerigeeMaxP", 100.*Gaudi::Units::GeV}
private

Definition at line 118 of file ExtrapolationValidation.h.

118{this, "StartPerigeeMaxP", 100.*Gaudi::Units::GeV};

◆ m_minEta

DoubleProperty Trk::ExtrapolationValidation::m_minEta {this, "StartPerigeeMinEta", -3.}
private

Definition at line 115 of file ExtrapolationValidation.h.

115{this, "StartPerigeeMinEta", -3.};

◆ m_minP

DoubleProperty Trk::ExtrapolationValidation::m_minP {this, "StartPerigeeMinP", 0.5*Gaudi::Units::GeV}
private

Definition at line 117 of file ExtrapolationValidation.h.

117{this, "StartPerigeeMinP", 0.5*Gaudi::Units::GeV};

◆ m_parameterEta

float Trk::ExtrapolationValidation::m_parameterEta[TRKEXALGS_MAXPARAMETERS] {}
private

start eta

Definition at line 128 of file ExtrapolationValidation.h.

128{};

◆ m_parameterLoc1

float Trk::ExtrapolationValidation::m_parameterLoc1[TRKEXALGS_MAXPARAMETERS] {}
private

start local 1

Definition at line 124 of file ExtrapolationValidation.h.

124{};

◆ m_parameterLoc2

float Trk::ExtrapolationValidation::m_parameterLoc2[TRKEXALGS_MAXPARAMETERS] {}
private

start local 2

Definition at line 125 of file ExtrapolationValidation.h.

125{};

◆ m_parameterPhi

float Trk::ExtrapolationValidation::m_parameterPhi[TRKEXALGS_MAXPARAMETERS] {}
private

start phi

Definition at line 126 of file ExtrapolationValidation.h.

126{};

◆ m_parameterQoverP

float Trk::ExtrapolationValidation::m_parameterQoverP[TRKEXALGS_MAXPARAMETERS] {}
private

start qOverP

Definition at line 129 of file ExtrapolationValidation.h.

129{};

◆ m_parameters

int Trk::ExtrapolationValidation::m_parameters = 0
private

maximum 3 : start - destination - backward

Definition at line 123 of file ExtrapolationValidation.h.

◆ m_parameterTheta

float Trk::ExtrapolationValidation::m_parameterTheta[TRKEXALGS_MAXPARAMETERS] {}
private

start theta

Definition at line 127 of file ExtrapolationValidation.h.

127{};

◆ m_particleType

IntegerProperty Trk::ExtrapolationValidation::m_particleType
private
Initial value:
{this, "ParticleType", 2,
"the particle type for the extrap."}

Definition at line 120 of file ExtrapolationValidation.h.

120 {this, "ParticleType", 2,
121 "the particle type for the extrap."};

◆ m_sigmaLoc

DoubleProperty Trk::ExtrapolationValidation::m_sigmaLoc
private
Initial value:
{this, "StartPerigeeSigmaLoc",
10.*Gaudi::Units::micrometer, "local sigma of start value"}

Definition at line 109 of file ExtrapolationValidation.h.

109 {this, "StartPerigeeSigmaLoc",
110 10.*Gaudi::Units::micrometer, "local sigma of start value"};

◆ m_sigmaR

DoubleProperty Trk::ExtrapolationValidation::m_sigmaR
private
Initial value:
{this, "StartPerigeeSigmaR",
17.*Gaudi::Units::micrometer, "r sigma of start value"}

Definition at line 111 of file ExtrapolationValidation.h.

111 {this, "StartPerigeeSigmaR",
112 17.*Gaudi::Units::micrometer, "r sigma of start value"};

◆ m_sigmaZ

DoubleProperty Trk::ExtrapolationValidation::m_sigmaZ
private
Initial value:
{this, "StartPerigeeSigmaZ",
50.*Gaudi::Units::millimeter, "Z sigma of start value"}

Definition at line 113 of file ExtrapolationValidation.h.

113 {this, "StartPerigeeSigmaZ",
114 50.*Gaudi::Units::millimeter, "Z sigma of start value"};

◆ m_startP

float Trk::ExtrapolationValidation::m_startP = 0.
private

startP

Definition at line 143 of file ExtrapolationValidation.h.

◆ m_startR

float Trk::ExtrapolationValidation::m_startR = 0.
private

startX

Definition at line 141 of file ExtrapolationValidation.h.

◆ m_startX

float Trk::ExtrapolationValidation::m_startX = 0.
private

startX

Definition at line 139 of file ExtrapolationValidation.h.

◆ m_startY

float Trk::ExtrapolationValidation::m_startY = 0.
private

startX

Definition at line 140 of file ExtrapolationValidation.h.

◆ m_startZ

float Trk::ExtrapolationValidation::m_startZ = 0.
private

startX

Definition at line 142 of file ExtrapolationValidation.h.

◆ m_triesBack

unsigned int Trk::ExtrapolationValidation::m_triesBack = 0
private

events back

Definition at line 158 of file ExtrapolationValidation.h.

◆ m_triesFront

unsigned int Trk::ExtrapolationValidation::m_triesFront = 0
private

events front

Definition at line 156 of file ExtrapolationValidation.h.

◆ m_validationTree

TTree* Trk::ExtrapolationValidation::m_validationTree = nullptr
private

Root Validation Tree.

Definition at line 93 of file ExtrapolationValidation.h.

◆ m_validationTreeDescription

StringProperty Trk::ExtrapolationValidation::m_validationTreeDescription
private
Initial value:
{this, "ValidationTreeDescription",
"Output of the ExtrapolationValidation Algorithm",
"validation tree description - second argument in TTree"}

Definition at line 98 of file ExtrapolationValidation.h.

99 {this, "ValidationTreeDescription",
100 "Output of the ExtrapolationValidation Algorithm",
101 "validation tree description - second argument in TTree"};

◆ m_validationTreeFolder

StringProperty Trk::ExtrapolationValidation::m_validationTreeFolder
private
Initial value:
{this, "ValidationTreeFolder", "/val/ExtrapolationValidation",
"stream/folder to for the TTree to be written out"}

Definition at line 102 of file ExtrapolationValidation.h.

103 {this, "ValidationTreeFolder", "/val/ExtrapolationValidation",
104 "stream/folder to for the TTree to be written out"};

◆ m_validationTreeName

StringProperty Trk::ExtrapolationValidation::m_validationTreeName
private
Initial value:
{this, "ValidationTreeName", "ExtrapolationValidation",
"validation tree name - to be acessed by this from root"}

Definition at line 95 of file ExtrapolationValidation.h.

96 {this, "ValidationTreeName", "ExtrapolationValidation",
97 "validation tree name - to be acessed by this from root"};

◆ m_varHandleArraysDeclared

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

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

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

Definition at line 398 of file AthCommonDataStore.h.


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