ATLAS Offline Software
McEnergyLossUpdator.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef ISF_Fatras_McEnergyLossUpdator_H
6 #define ISF_Fatras_McEnergyLossUpdator_H
7 
8 // GaudiKernel & Athena
10 #include "GaudiKernel/ServiceHandle.h"
11 #include "GaudiKernel/ToolHandle.h"
14 
15 // Trk
18 
19 namespace Trk{
20  class MaterialProperties;
21  class EnergyLoss;
22 }
23 
24 namespace iFatras{
25 
26 
35  class ATLAS_NOT_THREAD_SAFE McEnergyLossUpdator : public extends<AthAlgTool, Trk::IEnergyLossUpdator> {
36 
37  public:
38 
40  McEnergyLossUpdator( const std::string&, const std::string&, const IInterface* );
41 
43  virtual ~McEnergyLossUpdator() = default;
44 
46  virtual StatusCode initialize() override;
47 
49  virtual
50  double dEdX( const Trk::MaterialProperties& materialProperties,
51  double momentum,
52  Trk::ParticleHypothesis particleHypothesis = Trk::pion ) const override;
53 
55  virtual
56  Trk::EnergyLoss energyLoss( const Trk::MaterialProperties& materialProperties,
57  double momentum,
58  double pathCorrection,
60  Trk::ParticleHypothesis particleHypothesis = Trk::pion,
61  bool usePDGformula = false) const override;
62 
66  virtual
67  Trk::EnergyLoss updateEnergyLoss( Trk::EnergyLoss&, double, double, double, double, int&) const override { return {}; }
68 
70  virtual
71  void getX0ElossScales(int, double, double, double&, double& ) const override {}
74  private:
75 
76  PublicToolHandle<IEnergyLossUpdator> m_energyLossUpdator{this, "EnergyLossUpdator", "Trk::EnergyLossUpdator/AtlasEnergyLossUpdator"};
77  IntegerProperty m_energyLossDistribution{this, "EnergyLossDistribution", 3};
78 
80  ServiceHandle<IAtRndmGenSvc> m_rndGenSvc{this, "RandomNumberService", "AtDSFMTGenSvc"};
82  CLHEP::HepRandomEngine *m_randomEngine{};
83  StringProperty m_randomEngineName{this, "RandomStreamName", "FatrasRnd"};
84  BooleanProperty m_usePDGformula{this, "UsePDG_EnergyLossFormula", false};
85 
86 
87 
88  };
89 
90 } // end iFatras namespace
91 
92 #endif
iFatras::McEnergyLossUpdator::getX0ElossScales
virtual void getX0ElossScales(int, double, double, double &, double &) const override
Routine to calculate X0 and Eloss scale factors for the Calorimeter and Muon System.
Definition: McEnergyLossUpdator.h:71
ATLAS_NOT_THREAD_SAFE
#define ATLAS_NOT_THREAD_SAFE
getNoisyStrip() Find noisy strips from hitmaps and write out into xml/db formats
Definition: checker_macros.h:212
IEnergyLossUpdator.h
initialize
void initialize()
Definition: run_EoverP.cxx:894
PropDirection.h
Trk::alongMomentum
@ alongMomentum
Definition: PropDirection.h:20
iFatras
Definition: ActsFatrasSimTool.h:52
Trk::ParticleHypothesis
ParticleHypothesis
Definition: ParticleHypothesis.h:25
Trk::PropDirection
PropDirection
Definition: PropDirection.h:19
ParticleGun_EoverP_Config.momentum
momentum
Definition: ParticleGun_EoverP_Config.py:63
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
iFatras::McEnergyLossUpdator
Definition: McEnergyLossUpdator.h:35
IAtRndmGenSvc.h
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
iFatras::McEnergyLossUpdator::updateEnergyLoss
virtual Trk::EnergyLoss updateEnergyLoss(Trk::EnergyLoss &, double, double, double, double, int &) const override
Dummy methodes imposed by public interface - cleanup.
Definition: McEnergyLossUpdator.h:67
Trk::EnergyLoss
This class describes energy loss material effects in the ATLAS tracking EDM.
Definition: EnergyLoss.h:34
Trk::MaterialProperties
Definition: MaterialProperties.h:40
iFatras::McEnergyLossUpdator::~McEnergyLossUpdator
virtual ~McEnergyLossUpdator()=default
Destructor.
checker_macros.h
Define macros for attributes used to control the static checker.
ServiceHandle< IAtRndmGenSvc >