CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
BaseEvtVtxGenerator.h
Go to the documentation of this file.
1 #ifndef IOMC_BaseEvtVtxGenerator_H
2 #define IOMC_BaseEvtVtxGenerator_H
3 /*
4 * $Date: 2012/01/17 11:58:52 $
5 * $Revision: 1.9 $
6 */
7 
10 
11 #include "TMatrixD.h"
12 
13 /*
14 namespace HepMC {
15  class GenEvent;
16 }
17 */
18 
19 namespace HepMC {
20  class FourVector ;
21 }
22 
23 namespace CLHEP {
24  //class Hep3Vector;
25  class HepRandomEngine;
26 }
27 
29 {
30  public:
31 
32  // ctor & dtor
33  explicit BaseEvtVtxGenerator( const edm::ParameterSet& );
34  virtual ~BaseEvtVtxGenerator();
35 
36  virtual void produce( edm::Event&, const edm::EventSetup& );
37  virtual void beginRun( edm::Run & , const edm::EventSetup&) {};
38 
39  //virtual CLHEP::Hep3Vector* newVertex() = 0;
40  virtual HepMC::FourVector* newVertex() = 0 ;
44  //virtual CLHEP::Hep3Vector* lastVertex() { return fVertex; }
45  virtual HepMC::FourVector* lastVertex() { return fVertex; }
46 
47  virtual TMatrixD* GetInvLorentzBoost() = 0;
48 
49  protected:
50 
51  // Returns a reference to encourage users to use a reference
52  // when initializing CLHEP distributions. If a pointer
53  // is used, then the distribution thinks it owns the engine
54  // and will delete the engine when the distribution is destroyed
55  // (a big problem since the distribution does not own the memory).
56  CLHEP::HepRandomEngine& getEngine();
57 
58  //CLHEP::Hep3Vector* fVertex;
59  HepMC::FourVector* fVertex ;
60  TMatrixD *boost_;
61  double fTimeOffset;
62 
63  private :
64 
65  CLHEP::HepRandomEngine* fEngine;
67 
68 };
69 
70 #endif
CLHEP::HepRandomEngine & getEngine()
virtual HepMC::FourVector * newVertex()=0
HepMC::FourVector * fVertex
virtual HepMC::FourVector * lastVertex()
CLHEP::HepRandomEngine * fEngine
BaseEvtVtxGenerator(const edm::ParameterSet &)
virtual void produce(edm::Event &, const edm::EventSetup &)
virtual TMatrixD * GetInvLorentzBoost()=0
virtual void beginRun(edm::Run &, const edm::EventSetup &)
Definition: Run.h:33