CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_5_3_14/src/TrackingTools/GsfTracking/interface/FullConvolutionWithMaterial.h

Go to the documentation of this file.
00001 #ifndef FullConvolutionWithMaterial_h_
00002 #define FullConvolutionWithMaterial_h_
00003 
00004 #include "TrackingTools/GsfTracking/interface/GsfMaterialEffectsUpdator.h"
00005 #include "TrackingTools/GsfTools/interface/MultiTrajectoryStateAssembler.h"
00006 #include "DataFormats/TrajectorySeed/interface/PropagationDirection.h"
00007 #include "DataFormats/GeometryCommonDetAlgo/interface/DeepCopyPointerByClone.h"
00008 
00009 //  #include "Utilities/Notification/interface/TimingReport.h"
00010 
00015 class FullConvolutionWithMaterial {  
00016   
00017 public:
00019   FullConvolutionWithMaterial(const GsfMaterialEffectsUpdator& aMEUpdator) :
00020     theMEUpdator(aMEUpdator.clone()) {}
00021 
00022   ~FullConvolutionWithMaterial() {};
00023 
00025   TrajectoryStateOnSurface operator() (const TrajectoryStateOnSurface&,
00026                                        const PropagationDirection) const;
00027 
00029   inline const GsfMaterialEffectsUpdator& materialEffectsUpdator () const
00030   {
00031     return *theMEUpdator;
00032   }
00033 
00035   FullConvolutionWithMaterial* clone() const
00036   {
00037     return new FullConvolutionWithMaterial(*this);
00038   }
00039 
00040 private:
00041   // Material effects
00042   DeepCopyPointerByClone<GsfMaterialEffectsUpdator> theMEUpdator;
00043   
00044 //    static TimingReport::Item* theTimer1;
00045 //    static TimingReport::Item* theTimer2;
00046   
00047 };
00048 #endif