CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_5_3_14/src/IOMC/EventVertexGenerators/interface/GaussEvtVtxGenerator.h

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