Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:31:33

0001 #ifndef _CR_ENERGYLOSSUPDATOR_H_
0002 #define _CR_ENERGYLOSSUPDATOR_H_
0003 
0004 /** \class EnergyLossUpdator
0005  *  Energy loss according to Bethe-Bloch + special treatment for electrons.
0006  *  Adds effects from energy loss according to Bethe-Bloch formula
0007  *  without density effect. Assumes silicon as material.
0008  *  For electrons energy loss due to radiation added according 
0009  *  to formulae by Bethe & Heitler.
0010  *  Ported from ORCA.
0011  *
0012  */
0013 
0014 #include "TrackingTools/MaterialEffects/interface/MaterialEffectsUpdator.h"
0015 #include "DataFormats/GeometryVector/interface/LocalVector.h"
0016 #include "FWCore/Utilities/interface/Visibility.h"
0017 
0018 class MediumProperties;
0019 
0020 class EnergyLossUpdator final : public MaterialEffectsUpdator {
0021 public:
0022   EnergyLossUpdator* clone() const override { return new EnergyLossUpdator(*this); }
0023 
0024 public:
0025   EnergyLossUpdator(float mass) : MaterialEffectsUpdator(mass) {}
0026 
0027   // here comes the actual computation of the values
0028   void compute(const TrajectoryStateOnSurface&, const PropagationDirection, Effect& effect) const override;
0029 
0030 private:
0031   // Internal routine for ionization acc. to Bethe-Bloch
0032   void computeBetheBloch(const LocalVector&, const MediumProperties&, Effect& effect) const dso_internal;
0033   // Internal routine for energy loss by electrons due to radiation
0034   void computeElectrons(const LocalVector&,
0035                         const MediumProperties&,
0036                         const PropagationDirection,
0037                         Effect& effect) const dso_internal;
0038 };
0039 
0040 #endif