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 (const EventContext &ctx)
 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.
bool filterPassed (const EventContext &ctx) const
void setFilterPassed (bool state, const EventContext &ctx) const
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
const EventContext & getContext () const
 Deprecated methods (use the ones with EventContext).
bool filterPassed () const
void setFilterPassed (bool state) const

Protected Member Functions

virtual bool isReEntrant () const override final
 Legacy algorithms are not thread-safe.
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< Gaudi::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(const std::string &name, ISvcLocator *pSvcLocator)
Constructor with parameters:

◆ ~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 492 of file ExtrapolationValidation.cxx.

493{
494
495 if (phi!=0. && theta != 0.){
496 // create the Start Surface
497 Amg::Vector3D surfacePosition(x,y,z);
498 // z direction
499 Amg::Vector3D surfaceZdirection(cos(phi)*sin(theta),
500 sin(phi)*sin(theta),
501 cos(theta));
502 // the global z axis
503 Amg::Vector3D zAxis(0.,0.,1.);
504 // the y direction
505 Amg::Vector3D surfaceYdirection(zAxis.cross(surfaceZdirection));
506 // the x direction
507 Amg::Vector3D surfaceXdirection(surfaceYdirection.cross(surfaceZdirection));
508
509 double nx = 1./sqrt(surfaceXdirection[0]*surfaceXdirection[0]+surfaceXdirection[1]*surfaceXdirection[1]+surfaceXdirection[2]*surfaceXdirection[2]);
510 double ny = 1./sqrt(surfaceYdirection[0]*surfaceYdirection[0]+surfaceYdirection[1]*surfaceYdirection[1]+surfaceYdirection[2]*surfaceYdirection[2]);
511 surfaceXdirection[0]*=nx;
512 surfaceXdirection[1]*=nx;
513 surfaceXdirection[2]*=nx;
514
515 surfaceYdirection[0]*=ny;
516 surfaceYdirection[1]*=ny;
517 surfaceYdirection[2]*=ny;
518 // the rotation
519 Amg::RotationMatrix3D surfaceRotation;
520 surfaceRotation.col(0) = surfaceXdirection;
521 surfaceRotation.col(1) = surfaceYdirection;
522 surfaceRotation.col(2) = surfaceZdirection;
523 // return it
524 if (alphaZ==0.)
525 return Amg::Transform3D(surfaceRotation, surfacePosition);
526 Amg::Transform3D nominalTransform(surfaceRotation, surfacePosition);
527 return Amg::Transform3D(nominalTransform*Amg::AngleAxis3D(alphaZ,zAxis));
528
529 }
530
532}
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< Gaudi::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< Gaudi::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< Gaudi::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< Gaudi::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 ( const EventContext & ctx)
virtual

standard Athena-Algorithm method

Implements AthAlgorithm.

Definition at line 132 of file ExtrapolationValidation.cxx.

133{
134 // get the overall dimensions
135 if (!m_highestVolume){
136 // get TrackingGeometry and highest volume
137 const Trk::TrackingGeometry* trackingGeometry = m_extrapolator->trackingGeometry();
138 m_highestVolume = trackingGeometry ? trackingGeometry->highestTrackingVolume() : nullptr;
139 const Trk::CylinderVolumeBounds* cylBounds = m_highestVolume ?
140 dynamic_cast<const Trk::CylinderVolumeBounds*>(&(m_highestVolume->volumeBounds())) : nullptr;
141 // bail out
142 if (!cylBounds){
143 ATH_MSG_WARNING("No highest TrackingVolume / no VolumeBounds ... pretty useless! ");
144 return StatusCode::SUCCESS;
145 }
146 // get the numbers
147 m_maximumR = cylBounds->outerRadius();
148 m_maximumZ = cylBounds->halflengthZ();
149 }
150
151 // intialize the values
152 m_parameters = 0;
154 // -----------> start
155 m_startX = 0.;
156 m_startY = 0.;
157 m_startR = 0.;
158 m_startZ = 0.;
159 // -----------> estimation
160 m_estimationX = 0.;
161 m_estimationY = 0.;
162 m_estimationR = 0.;
163 m_estimationZ = 0.;
164 // -----------> destination
165 m_destinationX = 0.;
166 m_destinationY = 0.;
167 m_destinationR = 0.;
168 m_destinationZ = 0.;
169
170 // the local start parameters
173 // are adopted for planar and straight line surfaces
175 m_parameterPhi[m_parameters] *= (m_flatDist->shoot() > 0.5 ) ? -1. : 1.;
177 m_parameterTheta[m_parameters] = 2.*std::atan(std::exp(-m_parameterEta[m_parameters]));
178
183
184 // this is fine
185 double p = m_minP + m_flatDist->shoot()*(m_maxP-m_minP);
186 double charge = (m_flatDist->shoot() > 0.5 ) ? -1. : 1.;
188
190
191 // for the momentum logging
192 m_startP = p;
193
194 // start
195 m_startR = std::abs(m_sigmaR * m_gaussDist->shoot());
196 double surfacePhi = M_PI * m_flatDist->shoot();
197 surfacePhi *= (m_flatDist->shoot() > 0.5 ) ? -1. : 1.;
198 m_startX = m_startR*cos(surfacePhi);
199 m_startY = m_startR*sin(surfacePhi);
200 m_startZ = m_sigmaZ * m_gaussDist->shoot();
201
202 // rotate it around Z
203 double alphaZ = M_PI * m_flatDist->shoot();
204 alphaZ *= (m_flatDist->shoot() > 0.5 ) ? -1. : 1.;
205
206 // create the plane surface
207 Trk::PlaneSurface startSurface(createTransform(m_startX,
208 m_startY,
209 m_startZ,
212 alphaZ),
213 10e3,10e3);
214
215
216
217 AmgSymMatrix(5) covariance;
218 covariance.setZero();
220 covariance(0,0) = m_covarianceLoc1[m_parameters];
222 covariance(1,1) = m_covarianceLoc2[m_parameters];
224 covariance(2,2) = m_covariancePhi[m_parameters];
226 covariance(3,3) = m_covarianceTheta[m_parameters];
228 covariance(4,4) = m_covarianceQoverP[m_parameters];
229 ATH_MSG_VERBOSE("Initial Setting: \n"<<covariance);
230
231
232 m_covarianceDeterminant[m_parameters] = covariance.determinant();
233
234 // the initial perigee with random numbers
235 Trk::AtaPlane startParameters(m_parameterLoc1[m_parameters],
240 startSurface,
241 std::move(covariance));
242
243 ATH_MSG_VERBOSE( "Start Parameters : " << startParameters );
244 if(startParameters.covariance())ATH_MSG_VERBOSE( "Start Covariance : \n" << *startParameters.covariance() );
245
246
247 // destination position
249
250 // --------------- propagate to find a first intersection ---------------------
251 Amg::Transform3D CylTrf;
252 CylTrf.setIdentity();
253 Trk::CylinderSurface estimationCylinder(CylTrf, m_estimationR, 10e10);
254 const Trk::TrackParameters* estimationParameters = m_extrapolator->extrapolateDirectly(ctx,
255 startParameters,
256 estimationCylinder,
257 Trk::alongMomentum,
258 false).release();
259 if (!estimationParameters) {
260 ATH_MSG_VERBOSE( "Estimation of intersection did not work - skip event !" );
261 return StatusCode::SUCCESS;
262 }
263 else if (m_highestVolume && estimationParameters && !(m_highestVolume->inside(estimationParameters->position()))){
264 ATH_MSG_VERBOSE( "Estimation of intersection is outside the known world - skip event !" );
265 delete estimationParameters;
266 return StatusCode::SUCCESS;
267 }
268
269 ATH_MSG_VERBOSE( "Estimation Parameters: " << *estimationParameters );
270
271 // record the estimation parameters
272 ++m_triesFront;
273 ++m_parameters;
274 m_parameterLoc1[m_parameters] = estimationParameters->parameters()[Trk::loc1];
275 m_parameterLoc2[m_parameters] = estimationParameters->parameters()[Trk::loc2];
276 m_parameterPhi[m_parameters] = estimationParameters->parameters()[Trk::phi];
277 m_parameterEta[m_parameters] = estimationParameters->eta();
278 m_parameterTheta[m_parameters] = estimationParameters->parameters()[Trk::theta];
279 m_parameterQoverP[m_parameters] = estimationParameters->parameters()[Trk::qOverP];
280 if(estimationParameters->covariance()){
281 m_covarianceLoc1[m_parameters] = (*estimationParameters->covariance())(0,0);
282 m_covarianceLoc2[m_parameters] = (*estimationParameters->covariance())(1,1);
283 m_covariancePhi[m_parameters] = (*estimationParameters->covariance())(2,2);
284 m_covarianceTheta[m_parameters] = (*estimationParameters->covariance())(3,3);
285 m_covarianceQoverP[m_parameters] = (*estimationParameters->covariance())(4,4);
286 m_covarianceDeterminant[m_parameters] = (estimationParameters->covariance())->determinant();
287 }
288 else{
295 }
296 // the start Momentum
297
298 // get the estimated position
299 const Amg::Vector3D& estimatedPosition = estimationParameters->position();
300
301 m_estimationX = estimatedPosition.x();
302 m_estimationY = estimatedPosition.y();
303 m_estimationZ = estimatedPosition.z();
304
305 // cleanup for memory reasons
306 delete estimationParameters; estimationParameters = nullptr;
307
308 // create the radom surface at the destination point
309 Trk::PlaneSurface destinationSurface(createTransform(m_estimationX,
313 m_parameterTheta[m_parameters]), 10e5 , 10e5);
314
315
316 ATH_MSG_VERBOSE( "Extrapolation to Destination Surface: " << destinationSurface );
317
318 // the destination parameters
319 const Trk::TrackParameters* destParameters = nullptr;
320 // the standard validation ...
322 destParameters = m_extrapolator->extrapolate(ctx,
323 startParameters,
324 destinationSurface,
326 false,
327 static_cast<Trk::ParticleHypothesis>(m_particleType.value()),
328 Trk::addNoise).release();
329 else if(!m_direct){ // material collection validation
330 // get the vector of TrackStateOnSurfaces back
331 const std::vector<const Trk::TrackStateOnSurface*>*
332 collectedMaterial = m_extrapolator->extrapolateM(ctx,
333 startParameters,
334 destinationSurface,
336 false,
337 static_cast<Trk::ParticleHypothesis>(m_particleType.value()));
338
339 // get the last one and clone it
340 if (collectedMaterial && !collectedMaterial->empty()){
341 // get the last track state on surface & clone the destination parameters
342 const Trk::TrackStateOnSurface* destinationState = collectedMaterial->back();
343 destParameters = destinationState->trackParameters() ? destinationState->trackParameters()->clone() : nullptr;
344 m_collectedLayerFront += collectedMaterial->size();
345 // delete the layers / cleanup
346 for (const auto* tsos : *collectedMaterial) {
347 delete tsos;
348 }
349 }
350 }
351
352 else{
353 destParameters = m_extrapolator->extrapolateDirectly(ctx,
354 startParameters,
355 destinationSurface,
357 false,
358 static_cast<Trk::ParticleHypothesis>(m_particleType.value())).release();
359
360 }
361 // ----------------------- check if forward call was successful and continue then
362 if (destParameters){
363 // successful tries
364 ++m_triesBack;
365 // record the destination parameters
366 ++m_parameters;
367 m_parameterLoc1[m_parameters] = destParameters->parameters()[Trk::loc1];
368 m_parameterLoc2[m_parameters] = destParameters->parameters()[Trk::loc2];
369 m_parameterPhi[m_parameters] = destParameters->parameters()[Trk::phi];
370 m_parameterEta[m_parameters] = destParameters->eta();
371 m_parameterTheta[m_parameters] = destParameters->parameters()[Trk::theta];
372 m_parameterQoverP[m_parameters] = destParameters->parameters()[Trk::qOverP];
373 if(destParameters->covariance()){
374 m_covarianceLoc1[m_parameters] = (*destParameters->covariance())(0,0);
375 m_covarianceLoc2[m_parameters] = (*destParameters->covariance())(1,1);
376 m_covariancePhi[m_parameters] = (*destParameters->covariance())(2,2);
377 m_covarianceTheta[m_parameters] = (*destParameters->covariance())(3,3);
378 m_covarianceQoverP[m_parameters] = (*destParameters->covariance())(4,4);
379 m_covarianceDeterminant[m_parameters] = (destParameters->covariance())->determinant();
380 }
381 else{
388 }
389 // record the destination parameters
390 const Amg::Vector3D& destinationPosition = destParameters->position();
391 m_destinationX = destinationPosition.x();
392 m_destinationY = destinationPosition.y();
393 m_destinationZ = destinationPosition.z();
394 m_destinationR = destinationPosition.perp();
395
396 // now simply go backwards
397 const Trk::TrackParameters* backParameters = nullptr;
398 // the standard validation ...
400 backParameters = m_extrapolator->extrapolate(ctx,
401 *destParameters,
402 startSurface,
404 false,
405 static_cast<Trk::ParticleHypothesis>(m_particleType.value()),
406 Trk::removeNoise).release();
407 else if(!m_direct){ // material collection validation
408 // get the vector of TrackStateOnSurfaces back
409 const std::vector<const Trk::TrackStateOnSurface*>*
410 collectedBackMaterial = m_extrapolator->extrapolateM(ctx,
411 *destParameters,
412 startSurface,
414 false,
415 static_cast<Trk::ParticleHypothesis>(m_particleType.value()));
416 // get the last one and clone it
417 if (collectedBackMaterial && !collectedBackMaterial->empty()){
418 // get the last track state on surface & clone the destination parameters
419 const Trk::TrackStateOnSurface* startState = collectedBackMaterial->back();
420 // assign the last ones of the call
421 backParameters = startState->trackParameters() ? startState->trackParameters()->clone() : nullptr;
422 m_collectedLayerBack += collectedBackMaterial->size();
423 // delete the layers / cleanup
424 for (const auto* tsos : *collectedBackMaterial) {
425 delete tsos;
426 }
427 }
428 }
429
430 else{
431 backParameters = m_extrapolator->extrapolateDirectly(ctx,
432 *destParameters,
433 startSurface,
435 false,
436 static_cast<Trk::ParticleHypothesis>(m_particleType.value())).release();
437
438 }
439 // ----------------------- check if backward call was successful and continue then
440 if (backParameters){
441
442 ATH_MSG_VERBOSE( "Back Parameters : " << *backParameters );
443
444 // record the back extrapolated ones
445 ++m_parameters;
446 m_parameterLoc1[m_parameters] = backParameters->parameters()[Trk::loc1];
447 m_parameterLoc2[m_parameters] = backParameters->parameters()[Trk::loc2];
448 m_parameterPhi[m_parameters] = backParameters->parameters()[Trk::phi];
449 m_parameterEta[m_parameters] = backParameters->eta();
450 m_parameterTheta[m_parameters] = backParameters->parameters()[Trk::theta];
451 m_parameterQoverP[m_parameters] = backParameters->parameters()[Trk::qOverP];
452 if(backParameters->covariance()){
453 m_covarianceLoc1[m_parameters] = (*backParameters->covariance())(0,0);
454 m_covarianceLoc2[m_parameters] = (*backParameters->covariance())(1,1);
455 m_covariancePhi[m_parameters] = (*backParameters->covariance())(2,2);
456 m_covarianceTheta[m_parameters] = (*backParameters->covariance())(3,3);
457 m_covarianceQoverP[m_parameters] = (*backParameters->covariance())(4,4);
458 m_covarianceDeterminant[m_parameters] = (backParameters->covariance())->determinant();
459 }
460 else{
467 }
468 // memory cleanup
469 delete backParameters;
470 } else
471 ++m_breaksBack;
472 // memory cleanup
473 delete destParameters;
474 } else
476 // increase ones more
477 ++m_parameters;
478 // memory cleanup
479
481 m_validationTree->Fill();
482
483
484 //std::cout<<"Cleaning up..."<<std::endl;
485 //delete covariance;
486
487 return StatusCode::SUCCESS;
488}
#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(pathvar)
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< Gaudi::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

◆ filterPassed() [1/2]

bool AthAlgorithm::filterPassed ( ) const
inherited

Definition at line 94 of file AthAlgorithm.cxx.

94 {
95 return filterPassed( Gaudi::Hive::currentContext() );
96}
bool filterPassed() const

◆ filterPassed() [2/2]

bool AthAlgorithm::filterPassed ( const EventContext & ctx) const
inherited

Definition at line 98 of file AthAlgorithm.cxx.

98 {
99 return execState( ctx ).filterPassed();
100}

◆ 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)

◆ getContext()

const EventContext & AthAlgorithm::getContext ( ) const
inherited

Deprecated methods (use the ones with EventContext).

Definition at line 90 of file AthAlgorithm.cxx.

90 {
91 return Gaudi::Hive::currentContext();
92}

◆ 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< Gaudi::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.

◆ isReEntrant()

virtual bool AthAlgorithm::isReEntrant ( ) const
inlinefinaloverrideprotectedvirtualinherited

Legacy algorithms are not thread-safe.

Definition at line 111 of file AthAlgorithm.h.

111{ return false; }

◆ msg()

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

Definition at line 24 of file AthCommonMsg.h.

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

◆ msgLvl()

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

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364 {
366 }

◆ setFilterPassed() [1/2]

void AthAlgorithm::setFilterPassed ( bool state) const
inherited

Definition at line 102 of file AthAlgorithm.cxx.

102 {
103 setFilterPassed( state, Gaudi::Hive::currentContext() );
104}
void setFilterPassed(bool state) const

◆ setFilterPassed() [2/2]

void AthAlgorithm::setFilterPassed ( bool state,
const EventContext & ctx ) const
inherited

Definition at line 106 of file AthAlgorithm.cxx.

106 {
107 execState( ctx ).setFilterPassed(state);
108}

◆ 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< Gaudi::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< Gaudi::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< Gaudi::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 }

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< Gaudi::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< Gaudi::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 114 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< Gaudi::Algorithm > >::m_varHandleArraysDeclared
privateinherited

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

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

Definition at line 398 of file AthCommonDataStore.h.


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