CMS 3D CMS Logo

CMSSW_4_4_3_patch1/src/FastSimulation/TrackingRecHitProducer/interface/SiStripGaussianSmearingRecHitConverterAlgorithm.h

Go to the documentation of this file.
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