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