CMS 3D CMS Logo

MultipleScatteringUpdator.h

Go to the documentation of this file.
00001 #ifndef _CR_MULTIPLESCATTERINGUPDATOR_H_
00002 #define _CR_MULTIPLESCATTERINGUPDATOR_H_
00003 
00014 #include "TrackingTools/MaterialEffects/interface/MaterialEffectsUpdator.h"
00015 
00016 class MultipleScatteringUpdator : public MaterialEffectsUpdator 
00017 {
00018 #ifndef CMS_NO_RELAXED_RETURN_TYPE
00019   virtual MultipleScatteringUpdator* clone() const
00020 #else
00021   virtual MaterialEffectsUpdator* clone() const
00022 #endif
00023   {
00024     return new MultipleScatteringUpdator(*this);
00025   }
00026 
00027 public:
00028   MultipleScatteringUpdator( float mass ) :
00029     MaterialEffectsUpdator(mass),
00030     theLastDz(0.),
00031     theLastP(0.),
00032     theLastPropDir(alongMomentum),
00033     theLastRadLength(0.) {}
00035   ~MultipleScatteringUpdator() {}
00037   virtual double deltaP (const TrajectoryStateOnSurface&, const PropagationDirection) const {
00038     return 0.;
00039   }
00040 
00041 private:
00042   // here comes the actual computation of the values
00043   virtual void compute (const TrajectoryStateOnSurface&, const PropagationDirection) const;
00044 
00045 protected:
00046   // check of arguments for use with cached values
00047   virtual bool newArguments (const TrajectoryStateOnSurface&, const PropagationDirection) const;
00048   // storage of arguments for later use of 
00049   virtual void storeArguments (const TrajectoryStateOnSurface&, const PropagationDirection) const;
00050 
00051 private:  
00052   mutable float theLastDz;
00053   mutable float theLastP;
00054   mutable PropagationDirection theLastPropDir;
00055   mutable float theLastRadLength;
00056 };
00057 
00058 #endif

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