ATLAS Offline Software
NIMatEffUpdator.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 // NIMatEffUpdator.h, (c) ATLAS Detector software
8 
9 #ifndef TRK_TRKEXTOOLS_NIMATEFFUPDATOR_H
10 #define TRK_TRKEXTOOLS_NIMATEFFUPDATOR_H
11 
12 // GaudiKernel & Athena
14 #include "GaudiKernel/ServiceHandle.h"
15 #include "GaudiKernel/ToolHandle.h"
16 
17 // Trk
24 
25 class TTree;
26 
27 namespace Trk {
28 
29 class IMaterialEffectsUpdator;
30 
43  : public AthAlgTool
44  , virtual public ITimedMatEffUpdator
45 {
46 public:
48  NIMatEffUpdator(const std::string&, const std::string&, const IInterface*);
50  virtual ~NIMatEffUpdator();
51 
56 
62  std::unique_ptr<Trk::TrackParameters> update(const Trk::TrackParameters* parm,
63  const Trk::Layer& sf,
64  Trk::TimeLimit& time,
69 
70  std::unique_ptr<Trk::TrackParameters> update(double time,
71  const Trk::TrackParameters* parm,
72  const Trk::MaterialEffectsOnTrack& meff,
74  Trk::MaterialUpdateMode matupmode = Trk::addNoise) const;
75 
80  std::unique_ptr<Trk::TrackParameters> update(double time,
81  const Trk::TrackParameters& parm,
82  const Trk::MaterialProperties& mprop,
83  double pathcorrection,
86  Trk::MaterialUpdateMode matupmode = Trk::addNoise) const;
87 
89  void recordBremPhoton(double, double, double, const Amg::Vector3D&, Amg::Vector3D&, Trk::ParticleHypothesis)
90  const {};
91 
92 private:
94  ToolHandle<Trk::IMaterialEffectsUpdator> m_matUpdator;
95 };
96 }
97 
98 #endif // TRK_TRKEXTOOLS_NIMATEFFUPDATOR_H
Trk::ParticleSwitcher::particle
constexpr ParticleHypothesis particle[PARTICLEHYPOTHESES]
the array of masses
Definition: ParticleHypothesis.h:76
Trk::NIMatEffUpdator::m_matUpdator
ToolHandle< Trk::IMaterialEffectsUpdator > m_matUpdator
rely on MaterialEffectsIUpdator
Definition: NIMatEffUpdator.h:90
athena.path
path
python interpreter configuration --------------------------------------—
Definition: athena.py:128
TrackParameters.h
GeometrySignature.h
Trk::NIMatEffUpdator::finalize
StatusCode finalize()
AlgTool finalize method.
Definition: NIMatEffUpdator.cxx:50
Trk::NIMatEffUpdator::recordBremPhoton
void recordBremPhoton(double, double, double, const Amg::Vector3D &, Amg::Vector3D &, Trk::ParticleHypothesis) const
dummy helper function for a brem photon record
Definition: NIMatEffUpdator.h:89
Trk::NIMatEffUpdator::initialize
StatusCode initialize()
AlgTool initailize method.
Definition: NIMatEffUpdator.cxx:34
PropDirection.h
Trk::MaterialUpdateMode
MaterialUpdateMode
This is a steering enum to force the material update it can be: (1) addNoise (-1) removeNoise Second ...
Definition: MaterialUpdateMode.h:18
Trk::alongMomentum
@ alongMomentum
Definition: PropDirection.h:20
Trk::NIMatEffUpdator
Definition: NIMatEffUpdator.h:45
Trk::ParticleHypothesis
ParticleHypothesis
Definition: ParticleHypothesis.h:25
Trk::MaterialEffectsOnTrack
represents the full description of deflection and e-loss of a track in material.
Definition: MaterialEffectsOnTrack.h:40
Trk::PropDirection
PropDirection
Definition: PropDirection.h:19
Trk::GeometrySignature
GeometrySignature
Definition: GeometrySignature.h:24
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
Trk::pion
@ pion
Definition: ParticleHypothesis.h:29
AthAlgTool.h
Trk::ParametersBase
Definition: ParametersBase.h:55
Trk::TimeLimit
Definition: HelperStructs.h:58
ParticleHypothesis.h
beamspotman.dir
string dir
Definition: beamspotman.py:623
Trk::NIMatEffUpdator::NIMatEffUpdator
NIMatEffUpdator(const std::string &, const std::string &, const IInterface *)
AlgTool constructor for NIMatEffUpdator.
Definition: NIMatEffUpdator.cxx:20
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
Trk::NIMatEffUpdator::update
std::unique_ptr< Trk::TrackParameters > update(const Trk::TrackParameters *parm, const Trk::Layer &sf, Trk::TimeLimit &time, Trk::PathLimit &path, Trk::GeometrySignature geoID, Trk::PropDirection dir=Trk::alongMomentum, Trk::ParticleHypothesis particle=Trk::pion) const
Updator interface (full update for a layer): given track parameters are deleted internally,...
Definition: NIMatEffUpdator.cxx:56
Trk::NIMatEffUpdator::~NIMatEffUpdator
virtual ~NIMatEffUpdator()
Destructor.
Trk::PathLimit
Definition: HelperStructs.h:34
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
MaterialUpdateMode.h
Trk::ITimedMatEffUpdator
Definition: ITimedMatEffUpdator.h:43
Trk::MaterialProperties
Definition: MaterialProperties.h:40
ITimedMatEffUpdator.h
mapkey::sf
@ sf
Definition: TElectronEfficiencyCorrectionTool.cxx:38
Trk::addNoise
@ addNoise
Definition: MaterialUpdateMode.h:19
AthAlgTool
Definition: AthAlgTool.h:26
Trk::Layer
Definition: Layer.h:73