00001 #ifndef IOMC_GaussEvtVtxGenerator_H 00002 #define IOMC_GaussEvtVtxGenerator_H 00003 00011 #include "IOMC/EventVertexGenerators/interface/BaseEvtVtxGenerator.h" 00012 00013 namespace CLHEP { 00014 class RandGaussQ; 00015 } 00016 00017 class GaussEvtVtxGenerator : public BaseEvtVtxGenerator 00018 { 00019 public: 00020 GaussEvtVtxGenerator(const edm::ParameterSet & p); 00021 virtual ~GaussEvtVtxGenerator(); 00022 00024 //virtual CLHEP::Hep3Vector* newVertex(); 00025 virtual HepMC::FourVector* newVertex() ; 00026 00027 virtual TMatrixD* GetInvLorentzBoost() { 00028 return 0; 00029 } 00030 00031 00033 void sigmaX(double s=1.0); 00035 void sigmaY(double s=1.0); 00037 void sigmaZ(double s=1.0); 00038 00040 void meanX(double m=0) { fMeanX=m; } 00042 void meanY(double m=0) { fMeanY=m; } 00044 void meanZ(double m=0) { fMeanZ=m; } 00045 00046 private: 00048 GaussEvtVtxGenerator(const GaussEvtVtxGenerator &p); 00050 GaussEvtVtxGenerator& operator = (const GaussEvtVtxGenerator & rhs ); 00051 private: 00052 double fSigmaX, fSigmaY, fSigmaZ; 00053 double fMeanX, fMeanY, fMeanZ; 00054 CLHEP::RandGaussQ* fRandom ; 00055 double fTimeOffset; 00056 }; 00057 00058 #endif