ATLAS Offline Software
EnergyLossUpdator.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 // 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 
113 class EnergyLossUpdator final
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 
189 };
191 
192 } // end of namespace
193 
194 #endif // TRKEXTOOLS_ENERGYLOSSUPDATOR_H
195 
Trk::ParticleSwitcher::particle
constexpr ParticleHypothesis particle[PARTICLEHYPOTHESES]
the array of masses
Definition: ParticleHypothesis.h:76
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
Trk::EnergyLossUpdator::m_optimalRadiation
bool m_optimalRadiation
use calorimeter more optimal for radiation detection
Definition: EnergyLossUpdator.h:188
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:37
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:79
IEnergyLossUpdator.h
mat
GeoMaterial * mat
Definition: LArDetectorConstructionTBEC.cxx:53
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:72
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:562
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:25
Trk::EnergyLossUpdator::m_detailedEloss
bool m_detailedEloss
provide extended EnergyLoss info
Definition: EnergyLossUpdator.h:187
Trk::PropDirection
PropDirection
Definition: PropDirection.h:19
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:27
Trk::IEnergyLossUpdator
Definition: IEnergyLossUpdator.h:34
Trk::pion
@ pion
Definition: ParticleHypothesis.h:29
AthAlgTool.h
ParticleHypothesis.h
beamspotman.dir
string dir
Definition: beamspotman.py:623
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:130
private
#define private
Definition: DetDescrConditionsDict_dict_fixes.cxx:13
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
Trk::phi
@ phi
Definition: ParamDefs.h:81
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:441
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:315