ATLAS Offline Software
Loading...
Searching...
No Matches
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
19namespace Trk{
21 class EnergyLoss;
22}
23
24namespace iFatras{
25
26
34
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 {}
73
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
Define macros for attributes used to control the static checker.
#define ATLAS_NOT_THREAD_SAFE
getNoisyStrip() Find noisy strips from hitmaps and write out into xml/db formats
This class describes energy loss material effects in the ATLAS tracking EDM.
Definition EnergyLoss.h:34
Material with information about thickness of material.
virtual ~McEnergyLossUpdator()=default
Destructor.
CLHEP::HepRandomEngine * m_randomEngine
Random engine.
virtual double dEdX(const Trk::MaterialProperties &materialProperties, double momentum, Trk::ParticleHypothesis particleHypothesis=Trk::pion) const override
IEnergyLossUpdator public method to compute dEdX.
virtual void getX0ElossScales(int, double, double, double &, double &) const override
Routine to calculate X0 and Eloss scale factors for the Calorimeter and Muon System.
McEnergyLossUpdator(const std::string &, const std::string &, const IInterface *)
Constructor with AlgTool parameters.
PublicToolHandle< IEnergyLossUpdator > m_energyLossUpdator
Dummy methods end here.
virtual Trk::EnergyLoss energyLoss(const Trk::MaterialProperties &materialProperties, double momentum, double pathCorrection, Trk::PropDirection direction=Trk::alongMomentum, Trk::ParticleHypothesis particleHypothesis=Trk::pion, bool usePDGformula=false) const override
IEnergyLossUpdator public method to compute the mean and variance of the energy loss.
IntegerProperty m_energyLossDistribution
include energy loss straggling or not ( 0 == none, 1 == gauss, 2 == landau)
virtual Trk::EnergyLoss updateEnergyLoss(Trk::EnergyLoss &, double, double, double, double, int &) const override
Dummy methodes imposed by public interface - cleanup.
ServiceHandle< IAtRndmGenSvc > m_rndGenSvc
Random Generator service - not thread-safe.
StringProperty m_randomEngineName
Name of the random number stream.
Ensure that the ATLAS eigen extensions are properly loaded.
PropDirection
PropDirection, enum for direction of the propagation.
@ alongMomentum
ParticleHypothesis
Enumeration for Particle hypothesis respecting the interaction with material.
void initialize()