CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_6_1_1/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 GCC11_FINAL : 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   // here comes the actual computation of the values
00032   virtual void compute (const TrajectoryStateOnSurface&, 
00033                         const PropagationDirection, Effect & effect) const;
00034 
00035 private:
00036   // Internal routine for ionization acc. to Bethe-Bloch
00037   void computeBetheBloch (const LocalVector&, const MediumProperties&, Effect & effect) const dso_internal;
00038   // Internal routine for energy loss by electrons due to radiation
00039   void computeElectrons (const LocalVector&, const MediumProperties&,
00040                          const PropagationDirection, Effect & effect) const dso_internal;
00041 
00042 };
00043 
00044 #endif