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 setType(bool m=true); 00054 00055 private: 00057 BeamProfileVtxGenerator(const BeamProfileVtxGenerator &p); 00059 BeamProfileVtxGenerator& operator = (const BeamProfileVtxGenerator& rhs); 00060 private: 00061 double fSigmaX, fSigmaY; 00062 double fMeanX, fMeanY, fMeanZ; 00063 double fEta, fPhi, fTheta; 00064 bool fType, ffile; 00065 int nBinx, nBiny; 00066 std::vector<double> fdistn; 00067 CLHEP::HepRandom* fRandom; 00068 double fTimeOffset; 00069 }; 00070 00071 #endif