Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
Public Member Functions | Protected Member Functions | Private Types | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
Trk::ExtrapolationValidation Class Reference

#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. More...
 
 ~ExtrapolationValidation ()
 Default Destructor. More...
 
StatusCode initialize ()
 standard Athena-Algorithm method More...
 
StatusCode execute ()
 standard Athena-Algorithm method More...
 
StatusCode finalize ()
 standard Athena-Algorithm method More...
 
virtual StatusCode sysInitialize () override
 Override sysInitialize. More...
 
virtual const DataObjIDColl & extraOutputDeps () const override
 Return the list of extra output dependencies. More...
 
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. More...
 
const ServiceHandle< StoreGateSvc > & evtStore () const
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. More...
 
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc. More...
 
virtual StatusCode sysStart () override
 Handle START transition. More...
 
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles. More...
 
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles. More...
 
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T > &t)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc="none")
 Declare a new Gaudi property. More...
 
void updateVHKA (Gaudi::Details::PropertyBase &)
 
MsgStream & msg () const
 
MsgStream & msg (const MSG::Level lvl) const
 
bool msgLvl (const MSG::Level lvl) const
 

Protected Member Functions

void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution More...
 
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. More...
 

Private Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t
 

Private Member Functions

Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyArrayType &)
 specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleType &)
 specialization for handling Gaudi::Property<SG::VarHandleBase> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &t, const SG::NotHandleType &)
 specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
 

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 More...
 

Private Attributes

const TrackingVolumem_highestVolume = nullptr
 the highest volume More...
 
ToolHandle< IExtrapolatorm_extrapolator {this, "Extrapolator", "Trk::Extrapolator/AtlasExtrapolator"}
 The Extrapolator to be retrieved. More...
 
Rndm::Numbers * m_gaussDist = nullptr
 Random Number setup. More...
 
Rndm::Numbers * m_flatDist = nullptr
 
BooleanProperty m_materialCollectionValidation {this, "ValidateMaterialCollection", true}
 
BooleanProperty m_direct
 
TTree * m_validationTree = nullptr
 Root Validation Tree. More...
 
StringProperty m_validationTreeName
 
StringProperty m_validationTreeDescription
 
StringProperty m_validationTreeFolder
 
double m_maximumR = 0.
 maximum R of the highest More...
 
double m_maximumZ = 0.
 maximum halfZ of the highest tracking volume More...
 
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 More...
 
float m_parameterLoc1 [TRKEXALGS_MAXPARAMETERS] {}
 start local 1 More...
 
float m_parameterLoc2 [TRKEXALGS_MAXPARAMETERS] {}
 start local 2 More...
 
float m_parameterPhi [TRKEXALGS_MAXPARAMETERS] {}
 start phi More...
 
float m_parameterTheta [TRKEXALGS_MAXPARAMETERS] {}
 start theta More...
 
float m_parameterEta [TRKEXALGS_MAXPARAMETERS] {}
 start eta More...
 
float m_parameterQoverP [TRKEXALGS_MAXPARAMETERS] {}
 start qOverP More...
 
float m_covarianceLoc1 [TRKEXALGS_MAXPARAMETERS] {}
 start local 1 More...
 
float m_covarianceLoc2 [TRKEXALGS_MAXPARAMETERS] {}
 start local 2 More...
 
float m_covariancePhi [TRKEXALGS_MAXPARAMETERS] {}
 start phi More...
 
float m_covarianceTheta [TRKEXALGS_MAXPARAMETERS] {}
 start theta More...
 
float m_covarianceQoverP [TRKEXALGS_MAXPARAMETERS] {}
 start qOverP More...
 
float m_covarianceDeterminant [TRKEXALGS_MAXPARAMETERS] {}
 start qOverP More...
 
int m_destinationSurfaceType = 0
 destination surface type More...
 
float m_startX = 0.
 startX More...
 
float m_startY = 0.
 startX More...
 
float m_startR = 0.
 startX More...
 
float m_startZ = 0.
 startX More...
 
float m_startP = 0.
 startP More...
 
float m_estimationX = 0.
 estimation in X More...
 
float m_estimationY = 0.
 estimation in Y More...
 
float m_estimationR = 0.
 estimation in R More...
 
float m_estimationZ = 0.
 estimation in Z More...
 
float m_destinationX = 0.
 destination in X More...
 
float m_destinationY = 0.
 destination in Y More...
 
float m_destinationR = 0.
 destination in R More...
 
float m_destinationZ = 0.
 destination in Z More...
 
unsigned int m_triesFront = 0
 events front More...
 
unsigned int m_breaksFront = 0
 breaks front More...
 
unsigned int m_triesBack = 0
 events back More...
 
unsigned int m_breaksBack = 0
 breaks More...
 
unsigned int m_collectedLayerFront = 0
 collected material layers forward More...
 
unsigned int m_collectedLayerBack = 0
 collected material layers backwards More...
 
DataObjIDColl m_extendedExtraObjects
 
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default) More...
 
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default) More...
 
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

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) {}

◆ ~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 }

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 }

◆ declareGaudiProperty() [1/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< Algorithm > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleKeyArrayType  
)
inlineprivateinherited

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

Definition at line 170 of file AthCommonDataStore.h.

172  {
173  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
174  hndl.value(),
175  hndl.documentation());
176 
177  }

◆ declareGaudiProperty() [2/4]

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

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

Definition at line 156 of file AthCommonDataStore.h.

158  {
159  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
160  hndl.value(),
161  hndl.documentation());
162 
163  }

◆ declareGaudiProperty() [3/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< Algorithm > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleType  
)
inlineprivateinherited

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

Definition at line 184 of file AthCommonDataStore.h.

186  {
187  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
188  hndl.value(),
189  hndl.documentation());
190  }

◆ declareGaudiProperty() [4/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< Algorithm > >::declareGaudiProperty ( Gaudi::Property< T > &  t,
const SG::NotHandleType  
)
inlineprivateinherited

specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray>

Definition at line 199 of file AthCommonDataStore.h.

200  {
201  return PBASE::declareProperty(t);
202  }

◆ declareProperty() [1/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty ( const std::string &  name,
SG::VarHandleBase hndl,
const std::string &  doc,
const SG::VarHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation string for the property.

This is the version for types that derive from SG::VarHandleBase. The property value object is put on the input and output lists as appropriate; then we forward to the base class.

Definition at line 245 of file AthCommonDataStore.h.

249  {
250  this->declare(hndl.vhKey());
251  hndl.vhKey().setOwner(this);
252 
253  return PBASE::declareProperty(name,hndl,doc);
254  }

◆ declareProperty() [2/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty ( const std::string &  name,
SG::VarHandleKey hndl,
const std::string &  doc,
const SG::VarHandleKeyType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation string for the property.

This is the version for types that derive from SG::VarHandleKey. The property value object is put on the input and output lists as appropriate; then we forward to the base class.

Definition at line 221 of file AthCommonDataStore.h.

225  {
226  this->declare(hndl);
227  hndl.setOwner(this);
228 
229  return PBASE::declareProperty(name,hndl,doc);
230  }

◆ declareProperty() [3/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty ( const std::string &  name,
SG::VarHandleKeyArray hndArr,
const std::string &  doc,
const SG::VarHandleKeyArrayType  
)
inlineinherited

Definition at line 259 of file AthCommonDataStore.h.

263  {
264 
265  // std::ostringstream ost;
266  // ost << Algorithm::name() << " VHKA declareProp: " << name
267  // << " size: " << hndArr.keys().size()
268  // << " mode: " << hndArr.mode()
269  // << " vhka size: " << m_vhka.size()
270  // << "\n";
271  // debug() << ost.str() << endmsg;
272 
273  hndArr.setOwner(this);
274  m_vhka.push_back(&hndArr);
275 
276  Gaudi::Details::PropertyBase* p = PBASE::declareProperty(name, hndArr, doc);
277  if (p != 0) {
278  p->declareUpdateHandler(&AthCommonDataStore<PBASE>::updateVHKA, this);
279  } else {
280  ATH_MSG_ERROR("unable to call declareProperty on VarHandleKeyArray "
281  << name);
282  }
283 
284  return p;
285 
286  }

◆ declareProperty() [4/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc,
const SG::NotHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation string for the property.

This is the generic version, for types that do not derive from SG::VarHandleKey. It just forwards to the base class version of declareProperty.

Definition at line 333 of file AthCommonDataStore.h.

337  {
338  return PBASE::declareProperty(name, property, doc);
339  }

◆ declareProperty() [5/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc = "none" 
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation string for the property.

This dispatches to either the generic declareProperty or the one for VarHandle/Key/KeyArray.

Definition at line 352 of file AthCommonDataStore.h.

355  {
356  typedef typename SG::HandleClassifier<T>::type htype;
357  return declareProperty (name, property, doc, htype());
358  }

◆ declareProperty() [6/6]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty ( Gaudi::Property< T > &  t)
inlineinherited

Definition at line 145 of file AthCommonDataStore.h.

145  {
146  typedef typename SG::HandleClassifier<T>::type htype;
148  }

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

95 { return m_detStore; }

◆ evtStore() [1/2]

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.

85 { return m_evtStore; }

◆ evtStore() [2/2]

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

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

Definition at line 90 of file AthCommonDataStore.h.

90 { return m_evtStore; }

◆ 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.;
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
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
249  m_estimationR = m_maximumR * m_flatDist->shoot();
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,
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
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
476  ++m_breaksFront;
477  // increase ones more
478  ++m_parameters;
479  // memory cleanup
480 
481  if (m_validationTree)
482  m_validationTree->Fill();
483 
484 
485  //std::cout<<"Cleaning up..."<<std::endl;
486  //delete covariance;
487 
488  return StatusCode::SUCCESS;
489 }

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

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

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

◆ 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() [1/2]

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

Definition at line 24 of file AthCommonMsg.h.

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

◆ msg() [2/2]

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

Definition at line 27 of file AthCommonMsg.h.

27  {
28  return this->msgStream(lvl);
29  }

◆ 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();
383  PBASE::renounce (h);
384  }

◆ 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  {
365  handlesArray.renounce();
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, PyAthena::Alg, and AthHistogramAlgorithm.

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 }

◆ 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) {
312  std::vector<SG::VarHandleKey*> keys = a->keys();
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.

◆ m_covarianceLoc1

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

start local 1

Definition at line 131 of file ExtrapolationValidation.h.

◆ m_covarianceLoc2

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

start local 2

Definition at line 132 of file ExtrapolationValidation.h.

◆ m_covariancePhi

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

start phi

Definition at line 133 of file ExtrapolationValidation.h.

◆ m_covarianceQoverP

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

start qOverP

Definition at line 135 of file ExtrapolationValidation.h.

◆ m_covarianceTheta

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

start theta

Definition at line 134 of file ExtrapolationValidation.h.

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

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

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

◆ m_maxEta

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

Definition at line 116 of file ExtrapolationValidation.h.

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

◆ m_minEta

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

Definition at line 115 of file ExtrapolationValidation.h.

◆ m_minP

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

Definition at line 117 of file ExtrapolationValidation.h.

◆ m_parameterEta

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

start eta

Definition at line 128 of file ExtrapolationValidation.h.

◆ m_parameterLoc1

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

start local 1

Definition at line 124 of file ExtrapolationValidation.h.

◆ m_parameterLoc2

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

start local 2

Definition at line 125 of file ExtrapolationValidation.h.

◆ m_parameterPhi

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

start phi

Definition at line 126 of file ExtrapolationValidation.h.

◆ m_parameterQoverP

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

start qOverP

Definition at line 129 of file ExtrapolationValidation.h.

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

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

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

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

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

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

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

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

◆ 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:
Trk::y
@ y
Definition: ParamDefs.h:56
Trk::TrackStateOnSurface::trackParameters
const TrackParameters * trackParameters() const
return ptr to trackparameters const overload
Trk::ExtrapolationValidation::m_sigmaR
DoubleProperty m_sigmaR
Definition: ExtrapolationValidation.h:111
Trk::z
@ z
global position (cartesian)
Definition: ParamDefs.h:57
MuonR4::SegmentFit::Parameters
AmgVector(toInt(ParamDefs::nPars)) Parameters
Definition: MuonHoughDefs.h:48
Trk::ExtrapolationValidation::m_minEta
DoubleProperty m_minEta
Definition: ExtrapolationValidation.h:115
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
PlotCalibFromCool.zAxis
zAxis
Definition: PlotCalibFromCool.py:76
Trk::ExtrapolationValidation::m_covariancePhi
float m_covariancePhi[TRKEXALGS_MAXPARAMETERS]
start phi
Definition: ExtrapolationValidation.h:133
Trk::Volume::inside
bool inside(const Amg::Vector3D &gp, double tol=0.) const
Inside() method for checks.
Definition: Volume.cxx:90
Trk::ParametersBase::position
const Amg::Vector3D & position() const
Access method for the position.
Trk::oppositeMomentum
@ oppositeMomentum
Definition: PropDirection.h:21
Trk::ExtrapolationValidation::m_estimationX
float m_estimationX
estimation in X
Definition: ExtrapolationValidation.h:145
AthCommonDataStore::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
Trk::ExtrapolationValidation::m_triesBack
unsigned int m_triesBack
events back
Definition: ExtrapolationValidation.h:158
Trk::ExtrapolationValidation::m_covarianceDeterminant
float m_covarianceDeterminant[TRKEXALGS_MAXPARAMETERS]
start qOverP
Definition: ExtrapolationValidation.h:136
Trk::ExtrapolationValidation::m_parameterLoc2
float m_parameterLoc2[TRKEXALGS_MAXPARAMETERS]
start local 2
Definition: ExtrapolationValidation.h:125
Trk::ExtrapolationValidation::m_collectedLayerFront
unsigned int m_collectedLayerFront
collected material layers forward
Definition: ExtrapolationValidation.h:161
Trk::ExtrapolationValidation::m_estimationR
float m_estimationR
estimation in R
Definition: ExtrapolationValidation.h:147
M_PI
#define M_PI
Definition: ActiveFraction.h:11
AthCommonDataStore< AthCommonMsg< Algorithm > >::m_evtStore
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
Definition: AthCommonDataStore.h:390
AthCommonDataStore< AthCommonMsg< Algorithm > >::m_vhka
std::vector< SG::VarHandleKeyArray * > m_vhka
Definition: AthCommonDataStore.h:398
Trk::loc2
@ loc2
generic first and second local coordinate
Definition: ParamDefs.h:35
Trk::ExtrapolationValidation::m_destinationX
float m_destinationX
destination in X
Definition: ExtrapolationValidation.h:150
Trk::alongMomentum
@ alongMomentum
Definition: PropDirection.h:20
Trk::ExtrapolationValidation::m_parameterPhi
float m_parameterPhi[TRKEXALGS_MAXPARAMETERS]
start phi
Definition: ExtrapolationValidation.h:126
Trk::ExtrapolationValidation::m_triesFront
unsigned int m_triesFront
events front
Definition: ExtrapolationValidation.h:156
Trk::ExtrapolationValidation::m_highestVolume
const TrackingVolume * m_highestVolume
the highest volume
Definition: ExtrapolationValidation.h:77
Trk::ExtrapolationValidation::m_flatDist
Rndm::Numbers * m_flatDist
Definition: ExtrapolationValidation.h:85
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
drawFromPickle.cos
cos
Definition: drawFromPickle.py:36
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:560
drawFromPickle.exp
exp
Definition: drawFromPickle.py:36
Trk::ExtrapolationValidation::m_validationTree
TTree * m_validationTree
Root Validation Tree.
Definition: ExtrapolationValidation.h:93
Trk::ExtrapolationValidation::m_parameterTheta
float m_parameterTheta[TRKEXALGS_MAXPARAMETERS]
start theta
Definition: ExtrapolationValidation.h:127
Trk::ExtrapolationValidation::m_destinationY
float m_destinationY
destination in Y
Definition: ExtrapolationValidation.h:151
drawFromPickle.atan
atan
Definition: drawFromPickle.py:36
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
Trk::ExtrapolationValidation::m_destinationR
float m_destinationR
destination in R
Definition: ExtrapolationValidation.h:152
Trk::ExtrapolationValidation::m_validationTreeDescription
StringProperty m_validationTreeDescription
Definition: ExtrapolationValidation.h:99
IDTPMcnv.htype
htype
Definition: IDTPMcnv.py:29
Trk::ExtrapolationValidation::createTransform
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
Definition: ExtrapolationValidation.cxx:493
Trk::AmgSymMatrix
AmgSymMatrix(5) &GXFTrackState
Definition: GXFTrackState.h:156
Trk::ParticleHypothesis
ParticleHypothesis
Definition: ParticleHypothesis.h:25
Trk::ExtrapolationValidation::m_estimationZ
float m_estimationZ
estimation in Z
Definition: ExtrapolationValidation.h:148
Trk::TrackingGeometry::highestTrackingVolume
const TrackingVolume * highestTrackingVolume() const
return the world
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:210
python.SystemOfUnits.millimeter
int millimeter
Definition: SystemOfUnits.py:53
Trk::ExtrapolationValidation::m_destinationSurfaceType
int m_destinationSurfaceType
destination surface type
Definition: ExtrapolationValidation.h:138
AthCommonDataStore
Definition: AthCommonDataStore.h:52
AthAlgorithm::sysInitialize
virtual StatusCode sysInitialize() override
Override sysInitialize.
Definition: AthAlgorithm.cxx:66
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
CheckAppliedSFs.e3
e3
Definition: CheckAppliedSFs.py:264
AthCommonDataStore< AthCommonMsg< Algorithm > >::outputHandles
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
Return this algorithm's output handles.
Trk::ExtrapolationValidation::m_sigmaLoc
DoubleProperty m_sigmaLoc
Definition: ExtrapolationValidation.h:109
beamspotman.n
n
Definition: beamspotman.py:731
Trk::theta
@ theta
Definition: ParamDefs.h:66
Trk::TrackingGeometry
Definition: TrackingGeometry.h:67
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
Trk::ExtrapolationValidation::m_maximumZ
double m_maximumZ
maximum halfZ of the highest tracking volume
Definition: ExtrapolationValidation.h:107
Trk::ExtrapolationValidation::m_direct
BooleanProperty m_direct
Definition: ExtrapolationValidation.h:90
Amg::Transform3D
Eigen::Affine3d Transform3D
Definition: GeoPrimitives.h:46
Trk::ExtrapolationValidation::m_materialCollectionValidation
BooleanProperty m_materialCollectionValidation
Definition: ExtrapolationValidation.h:88
Trk::CylinderVolumeBounds::halflengthZ
double halflengthZ() const
This method returns the halflengthZ.
Definition: CylinderVolumeBounds.h:207
Trk::ExtrapolationValidation::m_covarianceLoc2
float m_covarianceLoc2[TRKEXALGS_MAXPARAMETERS]
start local 2
Definition: ExtrapolationValidation.h:132
Trk::ExtrapolationValidation::m_gaussDist
Rndm::Numbers * m_gaussDist
Random Number setup.
Definition: ExtrapolationValidation.h:84
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
Trk::ExtrapolationValidation::m_breaksFront
unsigned int m_breaksFront
breaks front
Definition: ExtrapolationValidation.h:157
Trk::ExtrapolationValidation::m_validationTreeName
StringProperty m_validationTreeName
Definition: ExtrapolationValidation.h:96
AthCommonDataStore< AthCommonMsg< Algorithm > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
Trk::ParametersBase
Definition: ParametersBase.h:55
python.SystemOfUnits.micrometer
int micrometer
Definition: SystemOfUnits.py:71
Trk::ExtrapolationValidation::m_parameterQoverP
float m_parameterQoverP[TRKEXALGS_MAXPARAMETERS]
start qOverP
Definition: ExtrapolationValidation.h:129
Trk::ExtrapolationValidation::m_minP
DoubleProperty m_minP
Definition: ExtrapolationValidation.h:117
Trk::ExtrapolationValidation::m_particleType
IntegerProperty m_particleType
Definition: ExtrapolationValidation.h:120
Trk::ExtrapolationValidation::m_startX
float m_startX
startX
Definition: ExtrapolationValidation.h:139
SG::VarHandleKeyArray::renounce
virtual void renounce()=0
SG::HandleClassifier::type
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
Definition: HandleClassifier.h:54
Trk::ExtrapolationValidation::m_parameters
int m_parameters
maximum 3 : start - destination - backward
Definition: ExtrapolationValidation.h:123
Trk::ExtrapolationValidation::m_startR
float m_startR
startX
Definition: ExtrapolationValidation.h:141
Trk::CylinderVolumeBounds
Definition: CylinderVolumeBounds.h:70
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
Trk::ExtrapolationValidation::m_covarianceTheta
float m_covarianceTheta[TRKEXALGS_MAXPARAMETERS]
start theta
Definition: ExtrapolationValidation.h:134
Amg
Definition of ATLAS Math & Geometry primitives (Amg)
Definition: AmgStringHelpers.h:19
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
Trk::TrackStateOnSurface
represents the track state (measurement, material, fit parameters and quality) at a surface.
Definition: TrackStateOnSurface.h:71
python.EventInfoMgtInit.release
release
Definition: EventInfoMgtInit.py:24
Trk::ExtrapolationValidation::m_covarianceQoverP
float m_covarianceQoverP[TRKEXALGS_MAXPARAMETERS]
start qOverP
Definition: ExtrapolationValidation.h:135
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
Trk::CylinderVolumeBounds::outerRadius
double outerRadius() const
This method returns the outer radius.
Definition: CylinderVolumeBounds.h:191
Trk::TrackParameters
ParametersBase< TrackParametersDim, Charged > TrackParameters
Definition: Tracking/TrkEvent/TrkParameters/TrkParameters/TrackParameters.h:27
charge
double charge(const T &p)
Definition: AtlasPID.h:931
Trk::ExtrapolationValidation::m_validationTreeFolder
StringProperty m_validationTreeFolder
Definition: ExtrapolationValidation.h:103
Trk::ExtrapolationValidation::m_startP
float m_startP
startP
Definition: ExtrapolationValidation.h:143
Trk::ExtrapolationValidation::m_breaksBack
unsigned int m_breaksBack
breaks
Definition: ExtrapolationValidation.h:159
Trk::ExtrapolationValidation::m_sigmaZ
DoubleProperty m_sigmaZ
Definition: ExtrapolationValidation.h:113
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
Trk::ExtrapolationValidation::m_destinationZ
float m_destinationZ
destination in Z
Definition: ExtrapolationValidation.h:153
Trk::ExtrapolationValidation::m_maximumR
double m_maximumR
maximum R of the highest
Definition: ExtrapolationValidation.h:106
AthAlgorithm::m_extendedExtraObjects
DataObjIDColl m_extendedExtraObjects
Definition: AthAlgorithm.h:79
Trk::ExtrapolationValidation::m_collectedLayerBack
unsigned int m_collectedLayerBack
collected material layers backwards
Definition: ExtrapolationValidation.h:162
Trk::ExtrapolationValidation::m_maxP
DoubleProperty m_maxP
Definition: ExtrapolationValidation.h:118
MuonR4::SegmentFit::Covariance
AmgSymMatrix(toInt(ParamDefs::nPars)) Covariance
Definition: MuonHoughDefs.h:49
a
TList * a
Definition: liststreamerinfos.cxx:10
h
Trk::ExtrapolationValidation::m_startY
float m_startY
startX
Definition: ExtrapolationValidation.h:140
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
Trk::PlaneSurface
Definition: PlaneSurface.h:64
Amg::RotationMatrix3D
Eigen::Matrix< double, 3, 3 > RotationMatrix3D
Definition: GeoPrimitives.h:49
Trk::addNoise
@ addNoise
Definition: MaterialUpdateMode.h:19
Trk::AtaPlane
ParametersT< TrackParametersDim, Charged, PlaneSurface > AtaPlane
Definition: Tracking/TrkEvent/TrkParameters/TrkParameters/TrackParameters.h:34
Amg::Translation3D
Eigen::Translation< double, 3 > Translation3D
Definition: GeoPrimitives.h:44
Trk::Volume::volumeBounds
const VolumeBounds & volumeBounds() const
returns the volumeBounds()
Definition: Volume.h:97
Trk::qOverP
@ qOverP
perigee
Definition: ParamDefs.h:67
if
if(febId1==febId2)
Definition: LArRodBlockPhysicsV0.cxx:567
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:629
Trk::ParametersBase::eta
double eta() const
Access method for pseudorapidity - from momentum.
Amg::AngleAxis3D
Eigen::AngleAxisd AngleAxis3D
Definition: GeoPrimitives.h:45
AthAlgorithm::AthAlgorithm
AthAlgorithm()
Default constructor:
Trk::phi
@ phi
Definition: ParamDefs.h:75
Trk::ExtrapolationValidation::m_covarianceLoc1
float m_covarianceLoc1[TRKEXALGS_MAXPARAMETERS]
start local 1
Definition: ExtrapolationValidation.h:131
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:798
LHEF::Writer
Pythia8::Writer Writer
Definition: Prophecy4fMerger.cxx:12
drawFromPickle.sin
sin
Definition: drawFromPickle.py:36
Trk::x
@ x
Definition: ParamDefs.h:55
Trk::loc1
@ loc1
Definition: ParamDefs.h:34
Trk::removeNoise
@ removeNoise
Definition: MaterialUpdateMode.h:20
Trk::ExtrapolationValidation::m_maxEta
DoubleProperty m_maxEta
Definition: ExtrapolationValidation.h:116
Trk::ExtrapolationValidation::m_startZ
float m_startZ
startX
Definition: ExtrapolationValidation.h:142
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
fitman.k
k
Definition: fitman.py:528
Trk::ParametersBase::clone
virtual ParametersBase< DIM, T > * clone() const override=0
clone method for polymorphic deep copy
Trk::ExtrapolationValidation::m_estimationY
float m_estimationY
estimation in Y
Definition: ExtrapolationValidation.h:146
Trk::ExtrapolationValidation::m_parameterEta
float m_parameterEta[TRKEXALGS_MAXPARAMETERS]
start eta
Definition: ExtrapolationValidation.h:128
ServiceHandle< ICondSvc >
Trk::ExtrapolationValidation::m_extrapolator
ToolHandle< IExtrapolator > m_extrapolator
The Extrapolator to be retrieved.
Definition: ExtrapolationValidation.h:81
Trk::ExtrapolationValidation::m_parameterLoc1
float m_parameterLoc1[TRKEXALGS_MAXPARAMETERS]
start local 1
Definition: ExtrapolationValidation.h:124