Go to the documentation of this file.00001 #ifndef _CR_VOLUMEENERGYLOSSESTIMATOR_H_
00002 #define _CR_VOLUMEENERGYLOSSESTIMATOR_H_
00003
00008 #include "TrackingTools/TrajectoryState/interface/TrajectoryStateOnSurface.h"
00009 #include "DataFormats/TrajectorySeed/interface/PropagationDirection.h"
00010 #include "TrackingTools/MaterialEffects/interface/VolumeMaterialEffectsEstimator.h"
00011
00012 class VolumeMaterialEffectsEstimate;
00013 class VolumeMediumProperties;
00014
00015 class VolumeEnergyLossEstimator : public VolumeMaterialEffectsEstimator
00016 {
00017 public:
00019 VolumeEnergyLossEstimator ( float mass ) :
00020 VolumeMaterialEffectsEstimator(mass) {}
00021
00022 virtual ~VolumeEnergyLossEstimator () {}
00023
00025 virtual VolumeMaterialEffectsEstimate estimate (const TrajectoryStateOnSurface refTSOS,
00026 double pathLength,
00027 const VolumeMediumProperties& medium) const;
00028
00029 virtual VolumeEnergyLossEstimator* clone() const;
00030
00031 private:
00032 void computeBetheBloch (const LocalVector& localP, double pathLength,
00033 const VolumeMediumProperties& medium,
00034 double& deltaP, double& deltaCov00) const;
00035 void computeElectrons (const LocalVector& localP, double pathLength,
00036 const VolumeMediumProperties& medium,
00037 double& deltaP, double& deltaCov00) const;
00038 };
00039
00040 #endif