00001 #ifndef FastSimulation_TrackingRecHitProducer_SiStripGaussianSmearingRecHitConverterAlgorithm_h 00002 #define FastSimulation_TrackingRecHitProducer_SiStripGaussianSmearingRecHitConverterAlgorithm_h 00003 00004 //--------------------------------------------------------------------------- 00009 //--------------------------------------------------------------------------- 00010 00011 // PSimHit 00012 #include "SimDataFormats/TrackingHit/interface/PSimHit.h" 00013 00014 // Vectors 00015 #include "DataFormats/GeometryVector/interface/Point3DBase.h" 00016 #include "DataFormats/GeometrySurface/interface/LocalError.h" 00017 //#include "DataFormats/CLHEP/interface/AlgebraicObjects.h" 00018 00019 // STL 00020 #include <string> 00021 00022 class RandomEngine; 00023 00024 class SiStripGaussianSmearingRecHitConverterAlgorithm { 00025 00026 public: 00027 //--- Constructor, virtual destructor (just in case) 00028 explicit SiStripGaussianSmearingRecHitConverterAlgorithm(const RandomEngine* engine); 00029 virtual ~SiStripGaussianSmearingRecHitConverterAlgorithm() {;} 00030 00031 // return results 00032 const Local3DPoint& getPosition() const {return thePosition;} 00033 double getPositionX() const {return thePositionX;} 00034 double getPositionY() const {return thePositionY;} 00035 double getPositionZ() const {return thePositionZ;} 00036 const LocalError& getError() const {return theError;} 00037 double getErrorX() const {return theErrorX;} 00038 double getErrorY() const {return theErrorY;} 00039 double getErrorZ() const {return theErrorZ;} 00040 // 00041 void smearHit( const PSimHit& simHit , 00042 double localPositionResolutionX, 00043 double localPositionResolutionY, 00044 double localPositionResolutionZ, 00045 double boundX, 00046 double boundY); 00047 00048 private: 00049 00050 // output 00051 Local3DPoint thePosition; 00052 double thePositionX; 00053 double thePositionY; 00054 double thePositionZ; 00055 LocalError theError; 00056 double theErrorX; 00057 double theErrorY; 00058 double theErrorZ; 00059 // 00060 00061 // The random engine 00062 const RandomEngine* random; 00063 00064 }; 00065 00066 00067 #endif