ATLAS Offline Software
INavigationEngine.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 // INavigationEngine.h, (c) ATLAS Detector software
8 
9 #ifndef TRKEXINTERFACES_INAVIGATIONENGINE_H
10 #define TRKEXINTERFACES_INAVIGATIONENGINE_H
11 
12 // Gaudi
13 #include "GaudiKernel/IAlgTool.h"
14 // Trk
18 #include "CxxUtils/checker_macros.h"
19 namespace Trk {
20 
21  class TrackingGeometry;
22 
23  static const InterfaceID IID_INavigationEngine("INavigationEngine", 1, 0);
24 
25  typedef ExtrapolationCell<TrackParameters> ExCellCharged;
26  typedef ExtrapolationCell<NeutralParameters> ExCellNeutral;
27 
37  class INavigationEngine : virtual public IAlgTool {
38 
39  public:
40 
42  virtual ~INavigationEngine(){}
43 
45  static const InterfaceID& interfaceID() { return IID_INavigationEngine; }
46 
49 
52 
54  virtual ExtrapolationCode resolvePosition(ExCellCharged& ecCell, PropDirection dir=alongMomentum, bool noLoop=false) const = 0;
55 
57  virtual ExtrapolationCode resolvePosition(ExCellNeutral& enCell, PropDirection dir=alongMomentum, bool noLoop=false) const = 0;
58 
60  virtual const TrackingGeometry& trackingGeometry() const = 0;
61 
62  protected:
64  std::string m_sopPrefix;
65  std::string m_sopPostfix;
66 
67  };
68 
69 
70 } // end of namespace
71 
72 #endif // TRKEXINTERFACES_INAVIGATIONENGINE_H
73 
TrackParameters.h
Trk::INavigationEngine::interfaceID
static const InterfaceID & interfaceID()
AlgTool interface methods.
Definition: INavigationEngine.h:45
Trk::INavigationEngine::~INavigationEngine
virtual ~INavigationEngine()
Virtual destructor.
Definition: INavigationEngine.h:42
Trk::INavigationEngine::m_sopPostfix
std::string m_sopPostfix
prefix for screen output
Definition: INavigationEngine.h:65
Trk::INavigationEngine::resolveBoundary
virtual ExtrapolationCode resolveBoundary(ExCellCharged &ecCell, PropDirection dir=alongMomentum) const =0
resolve the boundary situation - for charged particles
Trk::alongMomentum
@ alongMomentum
Definition: PropDirection.h:20
NeutralParameters.h
Trk::INavigationEngine::resolvePosition
virtual ExtrapolationCode resolvePosition(ExCellNeutral &enCell, PropDirection dir=alongMomentum, bool noLoop=false) const =0
resolve the position - for neutral particles
Trk::ExCellCharged
ExtrapolationCell< TrackParameters > ExCellCharged
Definition: IExtrapolationEngine.h:24
Trk::PropDirection
PropDirection
Definition: PropDirection.h:19
Trk::INavigationEngine::trackingGeometry
virtual const TrackingGeometry & trackingGeometry() const =0
acces to tracking geometry
Trk::TrackingGeometry
Definition: TrackingGeometry.h:67
Trk::ExtrapolationCode
Definition: ExtrapolationCell.h:105
Trk::INavigationEngine
Definition: INavigationEngine.h:37
Trk::INavigationEngine::resolveBoundary
virtual ExtrapolationCode resolveBoundary(ExCellNeutral &enCell, PropDirection dir=alongMomentum) const =0
resolve the boundary situation - for neutral particles
beamspotman.dir
string dir
Definition: beamspotman.py:623
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
Trk::ExCellNeutral
ExtrapolationCell< NeutralParameters > ExCellNeutral
Definition: IExtrapolationEngine.h:25
Trk::INavigationEngine::m_sopPrefix
std::string m_sopPrefix
< SCREEN output formatting (SOP) - unify amongst extrapolation engines
Definition: INavigationEngine.h:64
Trk::ExtrapolationCell
Definition: ExtrapolationCell.h:231
Trk::INavigationEngine::resolvePosition
virtual ExtrapolationCode resolvePosition(ExCellCharged &ecCell, PropDirection dir=alongMomentum, bool noLoop=false) const =0
resolve the position - for charged particles
ExtrapolationCell.h
checker_macros.h
Define macros for attributes used to control the static checker.