CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_7/src/FastSimulation/Event/interface/PrimaryVertexGenerator.h

Go to the documentation of this file.
00001 #ifndef FastSimulation_Event_PrimaryVertexGenerator_H
00002 #define FastSimulation_Event_PrimaryVertexGenerator_H
00003 
00004 // Data Format Headers
00005 #include "DataFormats/Math/interface/Vector3D.h"
00006 #include "DataFormats/Math/interface/Point3D.h"
00007 #include "TMatrixD.h"
00008 
00009 class RandomEngine;
00010 
00013 class PrimaryVertexGenerator : public math::XYZVector {
00014 
00015 public:
00017   PrimaryVertexGenerator();
00018   PrimaryVertexGenerator(const RandomEngine* engine);
00019   
00021   virtual ~PrimaryVertexGenerator();
00022 
00024   virtual void generate() = 0;
00025 
00026   TMatrixD* boost() const;
00027 
00029   inline const math::XYZPoint& beamSpot() const { return beamSpot_; }
00030 
00031  protected:
00032 
00033   void setBoost(TMatrixD*);
00034 
00035   const RandomEngine* random;
00036   TMatrixD* boost_;
00037   math::XYZPoint beamSpot_;
00038 
00039 };
00040 
00041 #endif // PrimaryVertexGenerator_H