ATLAS Offline Software
EnergyLossUpdator.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 // EnergyLossUpdator.h, (c) ATLAS Detector software
8 
9 #ifndef TRKEXTOOLS_ENERGYLOSSUPDATOR_H
10 #define TRKEXTOOLS_ENERGYLOSSUPDATOR_H
11 
12 // Gaudi
14 // Trk
19 
20 // STL
21 #include <utility>
22 
23 namespace Trk {
24 
25 class MaterialProperties;
26 
114  : public AthAlgTool
115  , virtual public IEnergyLossUpdator
116 {
117 
118 public:
120  EnergyLossUpdator(const std::string&, const std::string&, const IInterface*);
121 
123  virtual ~EnergyLossUpdator() = default;
124 
130  virtual double dEdX(const MaterialProperties& mat,
131  double p,
132  ParticleHypothesis particle = pion) const override final;
133 
143  virtual EnergyLoss energyLoss(
144  const MaterialProperties& mat,
145  double p,
146  double pathcorrection,
149  bool useMPV = false) const override final;
150 
155  EnergyLoss& eLoss,
156  double caloEnergy,
157  double caloEnergyError,
158  double pCaloEntry,
159  double momentumError,
160  int& elossFlag) const override final;
161 
164  virtual void getX0ElossScales(int icalo,
165  double eta,
166  double phi,
167  double& X0Scale,
168  double& ElossScale) const override final;
169 
170 private:
175  double p,
176  double pathcorrection,
177  PropDirection direction = alongMomentum,
178  ParticleHypothesis particleHypothesis = electron) const;
179 
182  double p,
183  double pathcorrection,
186 
187  BooleanProperty m_detailedEloss{this, "DetailedEloss", true,
188  "provide extended EnergyLoss info"};
189  BooleanProperty m_optimalRadiation{this, "OptimalRadiation", true,
190  "use calorimeter more optimal for radiation detection"};
191 };
192 
193 } // end of namespace
194 
195 #endif // TRKEXTOOLS_ENERGYLOSSUPDATOR_H
196 
Trk::ParticleSwitcher::particle
constexpr ParticleHypothesis particle[PARTICLEHYPOTHESES]
the array of masses
Definition: ParticleHypothesis.h:79
Trk::EnergyLossUpdator::dEdX
virtual double dEdX(const MaterialProperties &mat, double p, ParticleHypothesis particle=pion) const override final
dEdX calculation when providing MaterialProperties, a momentum, a pathlength, and a ParicleHypothesis...
Definition: EnergyLossUpdator.cxx:32
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:83
IEnergyLossUpdator.h
mat
GeoMaterial * mat
Definition: LArDetectorConstructionTBEC.cxx:55
PropDirection.h
Trk::alongMomentum
@ alongMomentum
Definition: PropDirection.h:20
Trk::EnergyLossUpdator::energyLoss
virtual EnergyLoss energyLoss(const MaterialProperties &mat, double p, double pathcorrection, PropDirection dir=alongMomentum, ParticleHypothesis particle=pion, bool useMPV=false) const override final
deltaE calculation using dEdX and integrating along pathlength, assuming constant dEdX during for the...
Definition: EnergyLossUpdator.cxx:67
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:560
Trk::EnergyLossUpdator::varianceDeltaQoverP
double varianceDeltaQoverP(const MaterialProperties &, double p, double pathcorrection, PropDirection direction=alongMomentum, ParticleHypothesis particleHypothesis=electron) const
Method to return the variance of the change in q/p for the Bethe-Heitler parameterisation.
Trk::ParticleHypothesis
ParticleHypothesis
Definition: ParticleHypothesis.h:28
Trk::EnergyLossUpdator::m_optimalRadiation
BooleanProperty m_optimalRadiation
Definition: EnergyLossUpdator.h:189
Trk::PropDirection
PropDirection
Definition: PropDirection.h:19
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:209
Trk::EnergyLossUpdator::EnergyLossUpdator
EnergyLossUpdator(const std::string &, const std::string &, const IInterface *)
AlgTool like constructor.
Definition: EnergyLossUpdator.cxx:22
Trk::electron
@ electron
Definition: ParticleHypothesis.h:30
Trk::IEnergyLossUpdator
Definition: IEnergyLossUpdator.h:34
Trk::pion
@ pion
Definition: ParticleHypothesis.h:32
AthAlgTool.h
Trk::EnergyLossUpdator::m_detailedEloss
BooleanProperty m_detailedEloss
Definition: EnergyLossUpdator.h:187
ParticleHypothesis.h
columnar::final
CM final
Definition: ColumnAccessor.h:106
beamspotman.dir
string dir
Definition: beamspotman.py:619
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
Trk::EnergyLossUpdator::updateEnergyLoss
virtual EnergyLoss updateEnergyLoss(EnergyLoss &eLoss, double caloEnergy, double caloEnergyError, double pCaloEntry, double momentumError, int &elossFlag) const override final
Method to recalculate Eloss values for the fit setting an elossFlag using as an input the detailed El...
Definition: EnergyLossUpdator.cxx:125
Trk::EnergyLossUpdator::~EnergyLossUpdator
virtual ~EnergyLossUpdator()=default
Virtual destructor.
Trk::EnergyLoss
This class describes energy loss material effects in the ATLAS tracking EDM.
Definition: EnergyLoss.h:34
MaterialInteraction.h
Trk::MaterialProperties
Definition: MaterialProperties.h:40
private
#define private
Definition: xAODTruthCnvAlg.h:20
Trk::phi
@ phi
Definition: ParamDefs.h:75
AthAlgTool
Definition: AthAlgTool.h:26
Trk::EnergyLossUpdator::ionizationEnergyLoss
Trk::EnergyLoss ionizationEnergyLoss(const MaterialProperties &mat, double p, double pathcorrection, PropDirection dir=alongMomentum, ParticleHypothesis particle=pion) const
Definition: EnergyLossUpdator.cxx:436
Trk::EnergyLossUpdator
Definition: EnergyLossUpdator.h:116
Trk::EnergyLossUpdator::getX0ElossScales
virtual void getX0ElossScales(int icalo, double eta, double phi, double &X0Scale, double &ElossScale) const override final
Routine to calculate X0 and Eloss scale factors for the Calorimeter and Muon System.
Definition: EnergyLossUpdator.cxx:310