00001 #ifndef _CR_VOLUMEMATERIALEFFECTSESTIMATOR_H_ 00002 #define _CR_VOLUMEMATERIALEFFECTSESTIMATOR_H_ 00003 00009 #include "TrackingTools/TrajectoryState/interface/TrajectoryStateOnSurface.h" 00010 #include "DataFormats/TrajectorySeed/interface/PropagationDirection.h" 00011 #include "TrackingTools/MaterialEffects/interface/VolumeMaterialEffectsEstimator.h" 00012 00013 class VolumeMaterialEffectsEstimate; 00014 class VolumeMediumProperties; 00015 00016 class VolumeMaterialEffectsEstimator { 00017 public: 00019 VolumeMaterialEffectsEstimator ( float mass ) : 00020 theMass(mass) {} 00021 00022 virtual ~VolumeMaterialEffectsEstimator () {} 00023 00025 virtual VolumeMaterialEffectsEstimate estimate (const TrajectoryStateOnSurface refTSOS, 00026 double pathLength, 00027 const VolumeMediumProperties& medium) const = 0; 00029 virtual float mass () const {return theMass;} 00030 00031 virtual VolumeMaterialEffectsEstimator* clone() const = 0; 00032 00033 private: 00034 float theMass; 00035 }; 00036 00037 #endif