CMS 3D CMS Logo

EnergyLossUpdator.h

Go to the documentation of this file.
00001 #ifndef _CR_ENERGYLOSSUPDATOR_H_
00002 #define _CR_ENERGYLOSSUPDATOR_H_
00003 
00017 #include "TrackingTools/MaterialEffects/interface/MaterialEffectsUpdator.h"
00018 #include "DataFormats/GeometryVector/interface/LocalVector.h"
00019 
00020 class MediumProperties;
00021 
00022 class EnergyLossUpdator : public MaterialEffectsUpdator 
00023 {
00024  public:
00025 #ifndef CMS_NO_RELAXED_RETURN_TYPE
00026   virtual EnergyLossUpdator* clone() const
00027 #else
00028   virtual MaterialEffectsUpdator* clone() const
00029 #endif
00030   {
00031     return new EnergyLossUpdator(*this);
00032   }
00033 
00034 public:
00035   EnergyLossUpdator( float mass ) :
00036     MaterialEffectsUpdator(mass),
00037     theLastDz(0.),
00038     theLastP(0.),
00039     theLastPropDir(alongMomentum),
00040     theLastXi(0.) {}
00041 
00042 private:
00043   // here comes the actual computation of the values
00044   virtual void compute (const TrajectoryStateOnSurface&, 
00045                         const PropagationDirection) const;
00046   // Internal routine for ionization acc. to Bethe-Bloch
00047   void computeBetheBloch (const LocalVector&, const MediumProperties&) const;
00048   // Internal routine for energy loss by electrons due to radiation
00049   void computeElectrons (const LocalVector&, const MediumProperties&,
00050                          const PropagationDirection) const;
00051 
00052 protected:
00053   // check of arguments for use with cached values
00054   virtual bool newArguments (const TrajectoryStateOnSurface&, 
00055                              const PropagationDirection) const;
00056   // storage of arguments for later use of 
00057   virtual void storeArguments (const TrajectoryStateOnSurface&, 
00058                                const PropagationDirection) const;
00059 
00060 private:  
00061   mutable float theLastDz;
00062   mutable float theLastP;
00063   mutable PropagationDirection theLastPropDir;
00064   mutable float theLastRl;
00065   mutable float theLastXi;
00066 };
00067 
00068 #endif

Generated on Tue Jun 9 17:48:22 2009 for CMSSW by  doxygen 1.5.4