CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_5/src/IOMC/EventVertexGenerators/interface/BeamProfileVtxGenerator.h

Go to the documentation of this file.
00001 #ifndef IOMC_BeamProfileVtxGenerator_H
00002 #define IOMC_BeamProfileVtxGenerator_H
00003 
00013 #include "IOMC/EventVertexGenerators/interface/BaseEvtVtxGenerator.h"
00014 #include <vector>
00015 
00016 namespace CLHEP
00017 {
00018    class HepRandom;
00019 }
00020 
00021 class BeamProfileVtxGenerator : public BaseEvtVtxGenerator
00022 {
00023 public:
00024   BeamProfileVtxGenerator(const edm::ParameterSet & p);
00025   virtual ~BeamProfileVtxGenerator();
00026 
00028   //virtual CLHEP::Hep3Vector * newVertex();
00029   virtual HepMC::FourVector* newVertex() ;
00030 
00031   virtual TMatrixD* GetInvLorentzBoost() {
00032           return 0;
00033   }
00034 
00035     
00037   void sigmaX(double s=1.0);
00039   void sigmaY(double s=1.0);
00040 
00042   void meanX(double m=0)   {fMeanX=m;}
00044   void meanY(double m=0)   {fMeanY=m;}
00046   void beamPos(double m=0) {fMeanZ=m;}
00047 
00049   void eta(double m=0);
00051   void phi(double m=0)     {fPhi=m;}
00053   void psi(double m=999)     {fPsi=m;}
00055   void setType(bool m=true);
00056   
00057 private:
00059   BeamProfileVtxGenerator(const BeamProfileVtxGenerator &p);
00061   BeamProfileVtxGenerator& operator = (const BeamProfileVtxGenerator& rhs);
00062 private:
00063   double      fSigmaX, fSigmaY;
00064   double      fMeanX,  fMeanY, fMeanZ;
00065   double      fEta,    fPhi,   fTheta;
00066 
00067   double      fPsi;
00068 
00069   bool        fType,   ffile;
00070   int         nBinx,   nBiny;
00071   std::vector<double> fdistn;
00072   CLHEP::HepRandom*   fRandom;
00073   double fTimeOffset;
00074 };
00075 
00076 #endif