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: 2013/02/27 18:41:06 $
5 * $Revision: 1.10 $
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&) override;
37 
38  //virtual CLHEP::Hep3Vector* newVertex() = 0;
39  virtual HepMC::FourVector* newVertex() = 0 ;
43  //virtual CLHEP::Hep3Vector* lastVertex() { return fVertex; }
44  virtual HepMC::FourVector* lastVertex() { return fVertex; }
45 
46  virtual TMatrixD* GetInvLorentzBoost() = 0;
47 
48  protected:
49 
50  // Returns a reference to encourage users to use a reference
51  // when initializing CLHEP distributions. If a pointer
52  // is used, then the distribution thinks it owns the engine
53  // and will delete the engine when the distribution is destroyed
54  // (a big problem since the distribution does not own the memory).
55  CLHEP::HepRandomEngine& getEngine();
56 
57  //CLHEP::Hep3Vector* fVertex;
58  HepMC::FourVector* fVertex ;
59  TMatrixD *boost_;
60  double fTimeOffset;
61 
62  private :
63 
64  CLHEP::HepRandomEngine* fEngine;
66 
67 };
68 
69 #endif
CLHEP::HepRandomEngine & getEngine()
virtual HepMC::FourVector * newVertex()=0
HepMC::FourVector * fVertex
virtual void produce(edm::Event &, const edm::EventSetup &) override
virtual HepMC::FourVector * lastVertex()
CLHEP::HepRandomEngine * fEngine
BaseEvtVtxGenerator(const edm::ParameterSet &)
virtual TMatrixD * GetInvLorentzBoost()=0