ATLAS Offline Software
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Private Types | Private Member Functions | Private Attributes | List of all members
Trk::StepEngine Class Reference

#include <StepEngine.h>

Inheritance diagram for Trk::StepEngine:
Collaboration diagram for Trk::StepEngine:

Public Types

enum  ResolveLayerType {
  StartLayer = 0, NavigationLayer = 1, PassThroughLayer = 2, SubStructureLayer = 3,
  DestinationLayer = 4, StartAndDestinationLayer = 6, UndefinedLayer = 5
}
 

Public Member Functions

 StepEngine (const std::string &, const std::string &, const IInterface *)
 Constructor. More...
 
virtual ~StepEngine ()
 Destructor. More...
 
virtual StatusCode initialize () override
 AlgTool initialize method. More...
 
virtual StatusCode finalize () override
 AlgTool finalize method. More...
 
virtual ExtrapolationCode extrapolate (ExCellCharged &ecCharged, const Surface *sf=0, const BoundaryCheck &bcheck=true) const override
 charged extrapolation - public interface More...
 
virtual ExtrapolationCode extrapolate (ExCellNeutral &ecNeutral, const Surface *sf=0, const BoundaryCheck &bcheck=true) const override
 neutral extrapolation - public interface More...
 
virtual GeometryType geometryType () const override
 define for which GeometrySignature this extrapolator is valid - this is GLOBAL More...
 
virtual ExtrapolationCode extrapolate (ExCellCharged &ecCharged, const Surface *sf=0, const BoundaryCheck &bcheck=true) const=0
 charged extrapolation More...
 
virtual ExtrapolationCode extrapolate (ExCellNeutral &ecNeutral, const Surface *sf=0, const BoundaryCheck &bcheck=true) const=0
 neutral extrapolation 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 sysInitialize () override
 Perform system initialization for an algorithm. 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
 

Static Public Member Functions

static const InterfaceID & interfaceID ()
 AlgTool interface methods. More...
 

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

Protected Attributes

std::string m_sopPrefix
 < SCREEN output formatting (SOP) - unify amongst extrapolation engines More...
 
std::string m_sopPostfix
 prefix for screen output More...
 

Private Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t
 

Private Member Functions

template<class T >
Trk::ExtrapolationCode targetSurfacesT (ExtrapolationCell< T > &eCell, Trk::TargetSurfaceVector &ts, bool trueOrderedIntersections, const Surface *sf=0, const BoundaryCheck &bcheck=true) const
 main loop extrapolation method More...
 
template<class T >
Trk::ExtrapolationCode resolveFrameBoundaryT (ExtrapolationCell< T > &eCell, Amg::Vector3D position, unsigned int index) const
 
void evaluateDistance (Trk::TargetSurface &tt, const Amg::Vector3D &pos, const Amg::Vector3D &mom, Trk::TargetSurfaceVector &ts, bool trueOrdered) const
 distance calculations More...
 
Trk::ExtrapolationCode handleIntersection (ExCellCharged &ecCharged, Trk::TargetSurfaceVector &solutions) const
 handle extrapolation step More...
 
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...
 

Private Attributes

ToolHandle< IPropagatorm_propagator
 the used propagation engine More...
 
ToolHandle< IMaterialEffectsEnginem_materialEffectsEngine
 the material effects updated More...
 
ToolHandle< INavigationEnginem_navigationEngine
 access to tracking geometry More...
 
double m_tolerance
 
TargetSurfaces m_targetSurfaces
 
bool m_debugAndFix
 
bool m_debugCall
 
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

Extrapolation engine for arbitrary tracking geometry environment. Intended as primary choice for Calo/MS.

Author
sarka.todorova -at- cern.ch

Definition at line 43 of file StepEngine.h.

Member Typedef Documentation

◆ StoreGateSvc_t

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

Definition at line 388 of file AthCommonDataStore.h.

Member Enumeration Documentation

◆ ResolveLayerType

  • use for code readability
Enumerator
StartLayer 
NavigationLayer 
PassThroughLayer 
SubStructureLayer 
DestinationLayer 
StartAndDestinationLayer 
UndefinedLayer 

Definition at line 50 of file StepEngine.h.

50  {
51  StartLayer = 0,
52  NavigationLayer = 1,
53  PassThroughLayer = 2,
55  DestinationLayer = 4,
57  UndefinedLayer = 5
58  };

Constructor & Destructor Documentation

◆ StepEngine()

Trk::StepEngine::StepEngine ( const std::string &  t,
const std::string &  n,
const IInterface *  p 
)

Constructor.

Definition at line 15 of file StepEngine.cxx.

16 : AthAlgTool(t,n,p),
17  m_propagator(""),
19  m_navigationEngine(""),
20  m_tolerance(0.01),
21  m_debugAndFix(true),
22  m_debugCall(false)
23 {
24  declareInterface<Trk::IExtrapolationEngine>(this);
25  // The Tools needed
26  declareProperty("Propagator" , m_propagator);
27  declareProperty("MaterialEffectsEngine" , m_materialEffectsEngine);
28  declareProperty("NavigationEngine" , m_navigationEngine);
29  // steering of the screen outoput (SOP)
30  declareProperty("OutputPrefix" , m_sopPrefix);
31  declareProperty("OutputPostfix" , m_sopPostfix);
32  declareProperty("DebugAndFixMode" , m_debugAndFix);
33 }

◆ ~StepEngine()

Trk::StepEngine::~StepEngine ( )
virtualdefault

Destructor.

Member Function Documentation

◆ declareGaudiProperty() [1/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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; }

◆ evaluateDistance()

void Trk::StepEngine::evaluateDistance ( Trk::TargetSurface tt,
const Amg::Vector3D pos,
const Amg::Vector3D mom,
Trk::TargetSurfaceVector ts,
bool  trueOrdered 
) const
private

distance calculations

Definition at line 268 of file StepEngine.cxx.

270 {
271  Trk::DistanceSolution distSol = tt.surf->straightLineDistanceEstimate(pos,mom);
272 
273  double dist = distSol.first();
274  Amg::Vector3D posi = pos + dist*mom;
275  // skip trivial solutions
276  if (distSol.numberOfSolutions()>1 && dist<m_tolerance && distSol.second()>m_tolerance) {
277  dist = distSol.second();
278  posi = pos + dist*mom;
279  if (trueOrdered && !tt.surf->isOnSurface(posi,tt.bcheck,m_tolerance,m_tolerance) ) return;
280  double dAbs = distSol.currentDistance(true);
281  tt.setDistance(dist,fabs(dAbs),distSol.signedDistance() && dAbs!=0. ? dAbs/fabs(dAbs) : 0.);
282  tt.setPosition(posi);
283  ts.push_back(tt);
284  return;
285  }
286  // save closest solution
287  if (!trueOrdered || dist>m_tolerance ) {
288  double dAbs = distSol.currentDistance(true);
289  tt.setDistance(dist,fabs(dAbs),distSol.signedDistance() && dAbs!=0. ? dAbs/fabs(dAbs) : 0.);
290  tt.setPosition(posi);
291  ts.push_back(tt);
292  }
293 
294  // save multiple intersection for neutral transport
295  if (distSol.numberOfSolutions()>1 && distSol.second()>m_tolerance && trueOrdered) {
296  dist = distSol.second();
297  posi = pos + dist*mom;
298  if ( tt.surf->isOnSurface(posi,tt.bcheck,m_tolerance,m_tolerance) ) {
299  double dAbs = distSol.currentDistance(true);
300  tt.setDistance(dist,fabs(dAbs),distSol.signedDistance() && dAbs!=0. ? dAbs/fabs(dAbs) : 0.);
301  tt.setPosition(posi);
302  ts.push_back(tt);
303  }
304  }
305 
306  }

◆ evtStore() [1/2]

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

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

Definition at line 85 of file AthCommonDataStore.h.

85 { return m_evtStore; }

◆ evtStore() [2/2]

const ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< AlgTool > >::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; }

◆ extraDeps_update_handler()

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

Add StoreName to extra input/output deps as needed.

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

◆ extrapolate() [1/4]

Trk::ExtrapolationCode Trk::StepEngine::extrapolate ( ExCellCharged ecCharged,
const Surface sf = 0,
const BoundaryCheck bcheck = true 
) const
overridevirtual

charged extrapolation - public interface

charged extrapolation

Implements Trk::IExtrapolationEngine.

Definition at line 77 of file StepEngine.cxx.

80 {
81  // check the input
82  if (!ecCharged.leadParameters) return Trk::ExtrapolationCode::FailureConfiguration;
83  if (!ecCharged.leadVolume) { // should not happen : try to recover anyway
84  Trk::ExtrapolationCode eVol = m_navigationEngine->resolvePosition(ecCharged,ecCharged.propDirection,false);
85  if (!eVol.isSuccessOrRecovered() && !eVol.inProgress()) return eVol;
86  }
87 
88  // cache the last lead parameters, useful in case a navigation error occured
89  ecCharged.lastLeadParameters = ecCharged.leadParameters;
90  // new extrapolation call : find possible target surfaces
91  //Trk::TargetSurfaceVector ts;
92  //Trk::ExtrapolationCode eCode = targetSurfacesT(ecCharged,ts,false,sf,bcheck);
93 
94  // test new class
95  Trk::ExtrapolationCode exC = m_targetSurfaces.setOnInput(ecCharged,sf,bcheck);
96 
97  // catch an infinite loop in frame navigation
98  if (exC==Trk::ExtrapolationCode::FailureLoop) { // should not happen : try to recover once
99 
100  EX_MSG_WARNING("", "extrapolate", "", "frame navigation recovery attempt for:"<< ecCharged.leadVolume->volumeName());
101 
102  Trk::ExtrapolationCode eVol = m_navigationEngine->resolvePosition(ecCharged,ecCharged.propDirection,true);
103  if (!eVol.isSuccessOrRecovered() && !eVol.inProgress()) return eVol;
104  //ts.clear();
105  //eVol = targetSurfacesT(ecCharged,ts,false,sf,bcheck);
106  exC = m_targetSurfaces.setOnInput(ecCharged,sf,bcheck);
107  if (!eVol.isSuccessOrRecovered() && !eVol.inProgress()) return eVol;
108  }
109 
110  // build PathLimit from eCell info
111  Trk::PathLimit pathLim(ecCharged.materialLimitX0-ecCharged.materialX0, ecCharged.materialProcess);
112  // build TimeLimit from eCell info
113  //Trk::TimeLimit timeLim(ecCharged.timeLimit,ecCharged.time,201); // Fatras decay code
114  Trk::TimeLimit timeLim(-1.,ecCharged.time,201); // temporary till time limit absent in eCell
115 
116  // loop over intersections
117  // std::vector<unsigned int> solutions;
118  Trk::TargetSurfaceVector solutions;
119  while (ecCharged.leadParameters ) {
120  solutions.clear();
121  // TODO pass TargetSurfaces directly to the propagator
122 
123  EX_MSG_VERBOSE(ecCharged.navigationStep, "propagate", "loop", "starting propagation at position : " << ecCharged.leadParameters->position()<<","<<ecCharged.leadParameters->momentum() );
124  if (m_debugCall) EX_MSG_DEBUG(ecCharged.navigationStep, "propagate", "debug loop", "starting propagation at position : " << ecCharged.leadParameters->position()<<","<<ecCharged.leadParameters->momentum() );
125  //const Trk::TrackParameters* nextPar = m_propagator->propagateT(*ecCharged.leadParameters,m_targetSurfaces,ecCharged.propDirection,
126  // ecCharged.mFieldMode, ecCharged.pHypothesis, solutions,
127  // pathLim,timeLim,ecCharged.navigationCurvilinear,hitVector);
128  // cache the last lead parameters, useful in case a navigation error occured
129  //ecCharged.lastLeadParameters = ecCharged.leadParameters;
130 
131  Trk::ExtrapolationCode eCode = m_propagator->propagate(
132  Gaudi::Hive::currentContext(),
133  ecCharged,
135  solutions);
136 
137  // enforced debugging
139  if (m_debugCall) {
140  EX_MSG_INFO(ecCharged.navigationStep, "extrapolate", "loop:debug mode:"," stopping execution for further debugging");
141  exit(0);
142  } else {
143  // repeat the call with printout && stop the execution
144  EX_MSG_INFO(ecCharged.navigationStep, "extrapolate", "loop:debug mode:","rerun last extrapolation call"<<ecCharged.lastLeadParameters->position());
145  ecCharged.leadParameters = ecCharged.lastLeadParameters;
146  ecCharged.leadVolume = nullptr;
147  m_debugCall = true;
149  eCode = extrapolate(ecCharged,sf,bcheck);
150  exit(0);
151  }
152  }
153 
154  const Trk::TrackParameters* nextPar = (eCode.isSuccess() || eCode.inProgress()) ? ecCharged.leadParameters : nullptr ;
155  if (!nextPar) EX_MSG_VERBOSE(ecCharged.navigationStep, "propagate", "loop", "propagation failed ");
156  else EX_MSG_VERBOSE(ecCharged.navigationStep, "propagate", "loop", "propagated to :"<< nextPar->position());
157 
158  if (!nextPar) return ( sf ? Trk::ExtrapolationCode::FailureDestination : eCode ) ;
159 
160  EX_MSG_VERBOSE(ecCharged.navigationStep, "propagate", "loop", "propagation arrived at position : " << ecCharged.leadParameters->position() );
161  if (m_debugCall) EX_MSG_DEBUG(ecCharged.navigationStep, "propagate", "loop", "propagation arrived at position : " << ecCharged.leadParameters->position() );
162 
163  // record the parameters as sensitive or passive depending on the surface
164  //Trk::ExtrapolationMode::eMode emode = csf.object->isActive() ? Trk::ExtrapolationMode::CollectSensitive : Trk::ExtrapolationMode::CollectPassive;
165  // fill the corresponding parameters, the material effects updator can attach material to them
166  // ecCharged.stepParameters(ecCharged.leadParameters, Trk::ExtrapolationMode::CollectPassive);
167 
168  // handle extrapolation step
169  Trk::ExtrapolationCode eStep = handleIntersection(ecCharged,solutions);
170 
171  if (eStep != Trk::ExtrapolationCode::InProgress ) return eStep;
172  }
173 
175  }

◆ extrapolate() [2/4]

virtual ExtrapolationCode Trk::IExtrapolationEngine::extrapolate

charged extrapolation

◆ extrapolate() [3/4]

Trk::ExtrapolationCode Trk::StepEngine::extrapolate ( ExCellNeutral ecNeutral,
const Surface sf = 0,
const BoundaryCheck bcheck = true 
) const
overridevirtual

neutral extrapolation - public interface

neutral extrapolation

Implements Trk::IExtrapolationEngine.

Definition at line 179 of file StepEngine.cxx.

182 {
183  // check the input
184 
185  if (!ecNeutral.leadParameters) return Trk::ExtrapolationCode::FailureConfiguration;
186  if (!ecNeutral.leadVolume) { // should not happen : try to recover anyway
187  Trk::ExtrapolationCode eVol = m_navigationEngine->resolvePosition(ecNeutral,ecNeutral.propDirection,false);
188  if (!eVol.isSuccessOrRecovered() && !eVol.inProgress()) return eVol;
189  }
190 
191  // new extrapolation call : find valid intersections
192  Trk::TargetSurfaceVector ts; ts.clear();
193  Trk::ExtrapolationCode eCode = targetSurfacesT(ecNeutral,ts,true,sf,bcheck);
194 
195  CHECK_ECODE_SUCCESS(ecNeutral, eCode);
196 
197  // catch an infinite loop in frame navigation
198  if (eCode==Trk::ExtrapolationCode::FailureLoop) { // should not happen : try to recover once
199  Trk::ExtrapolationCode eVol = m_navigationEngine->resolvePosition(ecNeutral,ecNeutral.propDirection,true);
200  if (!eVol.isSuccessOrRecovered() && !eVol.inProgress()) return eVol;
201  ts.clear();
202  eVol = targetSurfacesT(ecNeutral,ts,true,sf,bcheck);
203  if (!eVol.isSuccessOrRecovered() && !eVol.inProgress()) return eVol;
204  }
205 
206  // catch an infinite loop in frame navigation
207  if (!ecNeutral.leadVolume) { // should not happen : try to recover once
208  Trk::ExtrapolationCode eVol = m_navigationEngine->resolvePosition(ecNeutral,ecNeutral.propDirection);
209  if (!eVol.isSuccessOrRecovered() && !eVol.inProgress()) return eVol;
210 
211  eVol = targetSurfacesT(ecNeutral,ts,true,sf,bcheck);
212  if (!eVol.isSuccessOrRecovered() && !eVol.inProgress()) return eVol;
213 
214  }
215 
216  // loop over intersections
217  for (auto & t : ts) {
218 
219 
221  if ( t.sfType == Trk::SurfNavigType::BoundaryFrame ) {
222  const auto &bounds = ecNeutral.leadVolume->boundarySurfaces();
223  const Trk::TrackingVolume* nextVolume = bounds[t.index]->attachedVolume(t.intersection,
224  ecNeutral.leadParameters->momentum(),
225  ecNeutral.propDirection);
226 
227  if (!nextVolume) return Trk::ExtrapolationCode::SuccessBoundaryReached;
228 
229  ecNeutral.leadParameters = new Trk::NeutralCurvilinearParameters(t.intersection,ecNeutral.leadParameters->momentum(),0.);
230 
231  // - geometrySignature change and configuration to stop then triggers a Success
232  bool stopAtThisBoundary = ecNeutral.checkConfigurationMode(Trk::ExtrapolationMode::StopAtBoundary)
233  && (nextVolume->geometrySignature() != ecNeutral.leadVolume->geometrySignature());
234  // fill the boundary into the cache if successfully hit boundary surface
235  // - only cache if those are not the final parameters caused by a StopAtBoundary
236  if (!stopAtThisBoundary)
237  ecNeutral.stepParameters(ecNeutral.leadParameters, Trk::ExtrapolationMode::CollectBoundary);
238  // loop protection - relaxed for the cases where you start from the boundary
239  if (ecNeutral.leadVolume == nextVolume ) {
240  // the start parameters where on the boundary already give a relaxed return code
241  // if (&bSurface == eCell.lastBoundarySurface) return Trk::ExtrapolationCode::Unset;
242  // give some screen output as of why this happens
243  EX_MSG_VERBOSE(ecNeutral.navigationStep, "navigation", "", "loop detected while trying to leave TrackingVolume '" << nextVolume->volumeName() << ".");
244  // return a loop failure, parameter deletion will be done by cache
246  }
247  // break if configured to break at volume boundary and signature change
248  if (stopAtThisBoundary){
249  EX_MSG_VERBOSE(ecNeutral.navigationStep, "navigation", "", "geometry signature change from " <<
250  ecNeutral.leadVolume->geometrySignature() << " to " << nextVolume->geometrySignature());
251  ecNeutral.nextGeometrySignature = nextVolume->geometrySignature();
252  // return the boundary reached
254  }
255  // remember the last boundary surface for loop protection
256  // ecNeutral.lastBoundarySurface = &bounds[index];
257  ecNeutral.lastBoundaryParameters = ecNeutral.leadParameters;
258  // set next volume
259  ecNeutral.leadVolume = nextVolume;
261  }
262  }
263 
265  }

◆ extrapolate() [4/4]

virtual ExtrapolationCode Trk::IExtrapolationEngine::extrapolate

neutral extrapolation

◆ finalize()

StatusCode Trk::StepEngine::finalize ( )
overridevirtual

AlgTool finalize method.

Definition at line 69 of file StepEngine.cxx.

70 {
71  EX_MSG_DEBUG("", "finalize", "", "successful." );
72  return StatusCode::SUCCESS;
73 }

◆ geometryType()

GeometryType Trk::StepEngine::geometryType ( ) const
inlineoverridevirtual

define for which GeometrySignature this extrapolator is valid - this is GLOBAL

Implements Trk::IExtrapolationEngine.

Definition at line 123 of file StepEngine.h.

124  { return Trk::Dense; }

◆ handleIntersection()

Trk::ExtrapolationCode Trk::StepEngine::handleIntersection ( ExCellCharged ecCharged,
Trk::TargetSurfaceVector solutions 
) const
private

handle extrapolation step

Definition at line 309 of file StepEngine.cxx.

311 {
312  for (const auto & thisSurface : solutions){
313  // destination
314  if ( thisSurface.sfType == Trk::SurfNavigType::Target ){
316  }
317  // frame boundary : update of target surfaces
318  if ( thisSurface.sfType == Trk::SurfNavigType::BoundaryFrame ) {
319  return resolveFrameBoundaryT(ecCharged,ecCharged.leadParameters->position(),
320  thisSurface.index);
321  }
322  }
324 }

◆ initialize()

StatusCode Trk::StepEngine::initialize ( )
overridevirtual

AlgTool initialize method.

Definition at line 41 of file StepEngine.cxx.

42 {
43  if (m_propagator.retrieve().isFailure()){
44  EX_MSG_FATAL("", "initialize", "", "failed to retrieve propagator '"<< m_propagator << "'. Aborting." );
45  return StatusCode::FAILURE;
46  } else
47  EX_MSG_DEBUG("", "initialize", "", "successfully retrieved '" << m_propagator << "'." );
48 
49  if (m_materialEffectsEngine.retrieve().isFailure()){
50  EX_MSG_FATAL("", "initialize", "", "failed to retrieve material effect engine '"<< m_materialEffectsEngine << "'. Aborting." );
51  return StatusCode::FAILURE;
52  } else
53  EX_MSG_DEBUG("", "initialize", "", "successfully retrieved '" << m_materialEffectsEngine << "'." );
54 
55  if (m_navigationEngine.retrieve().isFailure()){
56  EX_MSG_FATAL("", "initialize", "", "failed to retrieve navigation engine '"<< m_navigationEngine << "'. Aborting." );
57  return StatusCode::FAILURE;
58  } else
59  EX_MSG_DEBUG("", "initialize", "", "successfully retrieved '" << m_navigationEngine << "'." );
60 
61  EX_MSG_DEBUG("", "initialize", "", "successful." );
62 
64 
65  return StatusCode::SUCCESS;
66 }

◆ inputHandles()

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

Return this algorithm's input handles.

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

◆ interfaceID()

static const InterfaceID& Trk::IExtrapolationEngine::interfaceID ( )
inlinestaticinherited

AlgTool interface methods.

Definition at line 43 of file IExtrapolationEngine.h.

43 { return IID_IExtrapolationEngine; }

◆ msg() [1/2]

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

Definition at line 24 of file AthCommonMsg.h.

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

◆ msg() [2/2]

MsgStream& AthCommonMsg< AlgTool >::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< AlgTool >::msgLvl ( const MSG::Level  lvl) const
inlineinherited

Definition at line 30 of file AthCommonMsg.h.

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

◆ outputHandles()

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

Return this algorithm's output handles.

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

◆ renounce()

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

Definition at line 380 of file AthCommonDataStore.h.

381  {
382  h.renounce();
383  PBASE::renounce (h);
384  }

◆ renounceArray()

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

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364  {
365  handlesArray.renounce();
366  }

◆ resolveFrameBoundaryT()

template<class T >
Trk::ExtrapolationCode Trk::StepEngine::resolveFrameBoundaryT ( ExtrapolationCell< T > &  eCell,
Amg::Vector3D  position,
unsigned int  index 
) const
private

◆ sysInitialize()

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

Perform system initialization for an algorithm.

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

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

◆ sysStart()

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

Handle START transition.

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

◆ targetSurfacesT()

template<class T >
Trk::ExtrapolationCode Trk::StepEngine::targetSurfacesT ( ExtrapolationCell< T > &  eCell,
Trk::TargetSurfaceVector ts,
bool  trueOrderedIntersections,
const Surface sf = 0,
const BoundaryCheck bcheck = true 
) const
private

main loop extrapolation method

◆ updateVHKA()

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

Definition at line 308 of file AthCommonDataStore.h.

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

Member Data Documentation

◆ m_debugAndFix

bool Trk::StepEngine::m_debugAndFix
private

Definition at line 118 of file StepEngine.h.

◆ m_debugCall

bool Trk::StepEngine::m_debugCall
mutableprivate

Definition at line 119 of file StepEngine.h.

◆ m_detStore

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

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_evtStore

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

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_materialEffectsEngine

ToolHandle<IMaterialEffectsEngine> Trk::StepEngine::m_materialEffectsEngine
private

the material effects updated

Definition at line 108 of file StepEngine.h.

◆ m_navigationEngine

ToolHandle<INavigationEngine> Trk::StepEngine::m_navigationEngine
private

access to tracking geometry

Definition at line 109 of file StepEngine.h.

◆ m_propagator

ToolHandle<IPropagator> Trk::StepEngine::m_propagator
private

the used propagation engine

Definition at line 107 of file StepEngine.h.

◆ m_sopPostfix

std::string Trk::IExtrapolationEngine::m_sopPostfix
protectedinherited

prefix for screen output

Definition at line 64 of file IExtrapolationEngine.h.

◆ m_sopPrefix

std::string Trk::IExtrapolationEngine::m_sopPrefix
protectedinherited

< SCREEN output formatting (SOP) - unify amongst extrapolation engines

prefix for screen output

Definition at line 63 of file IExtrapolationEngine.h.

◆ m_targetSurfaces

TargetSurfaces Trk::StepEngine::m_targetSurfaces
mutableprivate

Definition at line 115 of file StepEngine.h.

◆ m_tolerance

double Trk::StepEngine::m_tolerance
private

Definition at line 112 of file StepEngine.h.

◆ m_varHandleArraysDeclared

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

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

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

Definition at line 398 of file AthCommonDataStore.h.


The documentation for this class was generated from the following files:
Trk::DistanceSolution::currentDistance
double currentDistance(bool signedDist=false) const
Current distance to surface (spatial), signed (along/opposite to surface normal) if input argument tr...
Trk::DistanceSolution::signedDistance
bool signedDistance() const
This method indicates availability of signed current distance (false for Perigee and StraighLineSurfa...
Trk::StepEngine::handleIntersection
Trk::ExtrapolationCode handleIntersection(ExCellCharged &ecCharged, Trk::TargetSurfaceVector &solutions) const
handle extrapolation step
Definition: StepEngine.cxx:309
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
Trk::StepEngine::m_navigationEngine
ToolHandle< INavigationEngine > m_navigationEngine
access to tracking geometry
Definition: StepEngine.h:109
Trk::ExtrapolationCode::inProgress
bool inProgress() const
return inProgress
Definition: ExtrapolationCell.h:150
Trk::DistanceSolution
Definition: DistanceSolution.h:25
Trk::ExtrapolationMode::CollectBoundary
@ CollectBoundary
Definition: ExtrapolationCell.h:58
Trk::ParametersBase::position
const Amg::Vector3D & position() const
Access method for the position.
Trk::TrackingVolume::geometrySignature
GeometrySignature geometrySignature() const
return the Signature
Trk::DistanceSolution::numberOfSolutions
int numberOfSolutions() const
Number of intersection solutions.
AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
Trk::StepEngine::SubStructureLayer
@ SubStructureLayer
Definition: StepEngine.h:54
Trk::Dense
@ Dense
Definition: GeometrySignature.h:39
Trk::StepEngine::m_propagator
ToolHandle< IPropagator > m_propagator
the used propagation engine
Definition: StepEngine.h:107
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
Definition: AthCommonDataStore.h:390
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
std::vector< SG::VarHandleKeyArray * > m_vhka
Definition: AthCommonDataStore.h:398
Trk::ExtrapolationCode::SuccessBoundaryReached
@ SuccessBoundaryReached
Definition: ExtrapolationCell.h:113
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
Trk::DistanceSolution::first
double first() const
Distance to first intersection solution along direction.
Trk::ExtrapolationCode::SuccessDestination
@ SuccessDestination
Definition: ExtrapolationCell.h:112
Trk::ExtrapolationCode::FailureDestination
@ FailureDestination
Definition: ExtrapolationCell.h:120
Trk::StepEngine::m_tolerance
double m_tolerance
Definition: StepEngine.h:112
Trk::StepEngine::PassThroughLayer
@ PassThroughLayer
Definition: StepEngine.h:53
python.ElectronD3PDObject.Target
Target
Definition: ElectronD3PDObject.py:172
Trk::StepEngine::StartAndDestinationLayer
@ StartAndDestinationLayer
Definition: StepEngine.h:56
Trk::IExtrapolationEngine::m_sopPostfix
std::string m_sopPostfix
prefix for screen output
Definition: IExtrapolationEngine.h:64
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
Trk::StepEngine::StartLayer
@ StartLayer
Definition: StepEngine.h:51
Trk::StepEngine::targetSurfacesT
Trk::ExtrapolationCode targetSurfacesT(ExtrapolationCell< T > &eCell, Trk::TargetSurfaceVector &ts, bool trueOrderedIntersections, const Surface *sf=0, const BoundaryCheck &bcheck=true) const
main loop extrapolation method
Trk::StepEngine::resolveFrameBoundaryT
Trk::ExtrapolationCode resolveFrameBoundaryT(ExtrapolationCell< T > &eCell, Amg::Vector3D position, unsigned int index) const
Trk::IExtrapolationEngine::m_sopPrefix
std::string m_sopPrefix
< SCREEN output formatting (SOP) - unify amongst extrapolation engines
Definition: IExtrapolationEngine.h:63
EX_MSG_FATAL
#define EX_MSG_FATAL(navstep, step, idx, x)
Definition: ExtrapolationMacros.h:16
ParticleGun_EoverP_Config.mom
mom
Definition: ParticleGun_EoverP_Config.py:63
AthCommonDataStore
Definition: AthCommonDataStore.h:52
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
Trk::ExtrapolationCode::isSuccessOrRecovered
bool isSuccessOrRecovered() const
return success or recovered
Definition: ExtrapolationCell.h:162
Trk::ExtrapolationCode::FailureNavigation
@ FailureNavigation
Definition: ExtrapolationCell.h:122
beamspotman.n
n
Definition: beamspotman.py:731
Trk::DistanceSolution::second
double second() const
Distance to second intersection solution along direction (for a cylinder surface)
Trk::ExtrapolationCode::isSuccess
bool isSuccess() const
return success
Definition: ExtrapolationCell.h:153
Trk::ExtrapolationCode
Definition: ExtrapolationCell.h:105
Trk::StepEngine::NavigationLayer
@ NavigationLayer
Definition: StepEngine.h:52
Trk::StepEngine::UndefinedLayer
@ UndefinedLayer
Definition: StepEngine.h:57
EX_MSG_INFO
#define EX_MSG_INFO(navstep, step, idx, x)
Definition: ExtrapolationMacros.h:12
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
Trk::ParametersBase
Definition: ParametersBase.h:55
Trk::TimeLimit
Definition: HelperStructs.h:58
calibdata.exit
exit
Definition: calibdata.py:236
Trk::StepEngine::m_debugCall
bool m_debugCall
Definition: StepEngine.h:119
AthAlgTool::AthAlgTool
AthAlgTool()
Default constructor:
Trk::BoundaryFrame
@ BoundaryFrame
Definition: TargetSurfaces.h:41
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::TrackingVolume::volumeName
const std::string & volumeName() const
Returns the VolumeName - for debug reason, might be depreciated later.
Trk::TargetSurfaces::setDebugModeOn
void setDebugModeOn()
set debug mode
Definition: TargetSurfaces.h:189
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
Trk::StepEngine::extrapolate
virtual ExtrapolationCode extrapolate(ExCellCharged &ecCharged, const Surface *sf=0, const BoundaryCheck &bcheck=true) const override
charged extrapolation - public interface
Definition: StepEngine.cxx:77
Trk::PathLimit
Definition: HelperStructs.h:34
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
Trk::ExtrapolationCode::FailureConfiguration
@ FailureConfiguration
Definition: ExtrapolationCell.h:124
EX_MSG_DEBUG
#define EX_MSG_DEBUG(navstep, step, idx, x)
Definition: ExtrapolationMacros.h:13
Trk::NeutralCurvilinearParameters
CurvilinearParametersT< 5, Neutral, PlaneSurface > NeutralCurvilinearParameters
Definition: NeutralParameters.h:26
EX_MSG_VERBOSE
#define EX_MSG_VERBOSE(navstep, step, idx, x)
Definition: ExtrapolationMacros.h:14
Trk::TargetSurfaces::setDebugModeOff
void setDebugModeOff()
set debug mode
Definition: TargetSurfaces.h:192
python.LumiBlobConversion.pos
pos
Definition: LumiBlobConversion.py:18
a
TList * a
Definition: liststreamerinfos.cxx:10
Trk::StepEngine::m_materialEffectsEngine
ToolHandle< IMaterialEffectsEngine > m_materialEffectsEngine
the material effects updated
Definition: StepEngine.h:108
h
mapkey::sf
@ sf
Definition: TElectronEfficiencyCorrectionTool.cxx:38
Trk::TargetSurfaceVector
std::vector< TargetSurface > TargetSurfaceVector
Definition: TargetSurfaces.h:121
Trk::StepEngine::DestinationLayer
@ DestinationLayer
Definition: StepEngine.h:55
Trk::StepEngine::m_debugAndFix
bool m_debugAndFix
Definition: StepEngine.h:118
if
if(febId1==febId2)
Definition: LArRodBlockPhysicsV0.cxx:569
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:616
EX_MSG_WARNING
#define EX_MSG_WARNING(navstep, step, idx, x)
Definition: ExtrapolationMacros.h:15
declareProperty
#define declareProperty(n, p, h)
Definition: BaseFakeBkgTool.cxx:15
Trk::StepEngine::m_targetSurfaces
TargetSurfaces m_targetSurfaces
Definition: StepEngine.h:115
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:790
python.CaloScaleNoiseConfig.ts
ts
Definition: CaloScaleNoiseConfig.py:86
Trk::ExtrapolationCode::FailureLoop
@ FailureLoop
Definition: ExtrapolationCell.h:121
Trk::ExtrapolationMode::StopAtBoundary
@ StopAtBoundary
Definition: ExtrapolationCell.h:55
Trk::TrackingVolume
Definition: TrackingVolume.h:121
TileDCSDataPlotter.tt
tt
Definition: TileDCSDataPlotter.py:874
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
CHECK_ECODE_SUCCESS
#define CHECK_ECODE_SUCCESS(ecell, ecode)
Definition: ExtrapolationMacros.h:28
Trk::TargetSurfaces::setOnInput
Trk::ExtrapolationCode setOnInput(const Trk::ExCellCharged &, const Trk::Surface *sf, const BoundaryCheck &bc)
Extract surfaces for charged propagation, step into new frame volume.
Definition: TargetSurfaces.cxx:23
fitman.k
k
Definition: fitman.py:528
Trk::ExtrapolationCode::InProgress
@ InProgress
Definition: ExtrapolationCell.h:111