CMS 3D CMS Logo

CMSSW_4_4_3_patch1/src/TrackingTools/MaterialEffects/interface/EnergyLossUpdator.h

Go to the documentation of this file.
00001 #ifndef _CR_ENERGYLOSSUPDATOR_H_
00002 #define _CR_ENERGYLOSSUPDATOR_H_
00003 
00014 #include "TrackingTools/MaterialEffects/interface/MaterialEffectsUpdator.h"
00015 #include "DataFormats/GeometryVector/interface/LocalVector.h"
00016 #include "FWCore/Utilities/interface/Visibility.h"
00017 
00018 class MediumProperties;
00019 
00020 class EnergyLossUpdator : public MaterialEffectsUpdator 
00021 {
00022  public:
00023   virtual EnergyLossUpdator* clone() const {
00024     return new EnergyLossUpdator(*this);
00025   }
00026 
00027 public:
00028   EnergyLossUpdator( double mass ) :
00029     MaterialEffectsUpdator(mass) {}
00030 
00031 private:
00032   // here comes the actual computation of the values
00033   virtual void compute (const TrajectoryStateOnSurface&, 
00034                         const PropagationDirection) const dso_internal;
00035   // Internal routine for ionization acc. to Bethe-Bloch
00036   void computeBetheBloch (const LocalVector&, const MediumProperties&) const dso_internal;
00037   // Internal routine for energy loss by electrons due to radiation
00038   void computeElectrons (const LocalVector&, const MediumProperties&,
00039                          const PropagationDirection) const dso_internal;
00040 
00041 };
00042 
00043 #endif