ATLAS Offline Software
Loading...
Searching...
No Matches
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
19namespace Trk {
20
21 class TrackingGeometry;
22
23 static const InterfaceID IID_INavigationEngine("INavigationEngine", 1, 0);
24
27
36
37 class INavigationEngine : virtual public IAlgTool {
38
39 public:
40
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
Define macros for attributes used to control the static checker.
templated class as an input-output object of the extrapolation, only public members,...
Extrapolation engine interface for Charged and Neutral parameters, it serves as the Master extrapolat...
virtual ExtrapolationCode resolvePosition(ExCellCharged &ecCell, PropDirection dir=alongMomentum, bool noLoop=false) const =0
resolve the position - for charged particles
std::string m_sopPrefix
< SCREEN output formatting (SOP) - unify amongst extrapolation engines
virtual ExtrapolationCode resolveBoundary(ExCellNeutral &enCell, PropDirection dir=alongMomentum) const =0
resolve the boundary situation - for neutral particles
virtual ExtrapolationCode resolvePosition(ExCellNeutral &enCell, PropDirection dir=alongMomentum, bool noLoop=false) const =0
resolve the position - for neutral particles
static const InterfaceID & interfaceID()
AlgTool interface methods.
virtual ExtrapolationCode resolveBoundary(ExCellCharged &ecCell, PropDirection dir=alongMomentum) const =0
resolve the boundary situation - for charged particles
virtual ~INavigationEngine()
Virtual destructor.
std::string m_sopPostfix
prefix for screen output
virtual const TrackingGeometry & trackingGeometry() const =0
acces to tracking geometry
The TrackingGeometry class is the owner of the constructed TrackingVolumes.
Ensure that the ATLAS eigen extensions are properly loaded.
PropDirection
PropDirection, enum for direction of the propagation.
@ alongMomentum
static const InterfaceID IID_INavigationEngine("INavigationEngine", 1, 0)
ExtrapolationCell< TrackParameters > ExCellCharged
ExtrapolationCell< NeutralParameters > ExCellNeutral