FairRoot/PandaRoot
PndPythia8Generator.h
Go to the documentation of this file.
1 #ifndef PNDP8GENERATOR_H
2 #define PNDP8GENERATOR_H 1
3 
4 #include "TROOT.h"
5 #include "FairGenerator.h"
6 
7 #ifdef __CINT__
8 #define _DLFCN_H_
9 #define _DLFCN_H
10 #endif
11 
12 #include "Pythia.h"
13 #include "TRandom1.h"
14 #include "TRandom3.h"
15 
16 class FairPrimaryGenerator;
17 using namespace Pythia8;
18 
19 class PyTr1Rng : public RndmEngine
20 {
21  public:
22  PyTr1Rng() { rng = new TRandom1(gRandom->GetSeed()); };
23  virtual ~PyTr1Rng() {};
24 
25  Double_t flat() { return rng->Rndm(); };
26 
27  private:
28  TRandom1 *rng;
29 };
30 
31 class PyTr3Rng : public RndmEngine
32 {
33  public:
34  PyTr3Rng() { rng = new TRandom3(gRandom->GetSeed()); };
35  virtual ~PyTr3Rng() {};
36 
37  Double_t flat() { return rng->Rndm(); };
38 
39  private:
40  TRandom3 *rng;
41 };
42 
43 
44 
45 
46 class PndPythia8Generator : public FairGenerator
47 {
48  public:
49 
52 
54  virtual ~PndPythia8Generator();
55 
57  Bool_t ReadEvent(FairPrimaryGenerator*);
58  void SetParameters(char*);
59  void Print();
60 
61  virtual Bool_t Init();
62 
63  void SetMom(Double_t mom) { fMom = mom; };
64  void UseRandom1() { fUseRandom1 = kTRUE; fUseRandom3 = kFALSE; };
65  void UseRandom3() { fUseRandom1 = kFALSE; fUseRandom3 = kTRUE; };
66 
67  private:
68 
69  Pythia fPythia;
70  RndmEngine* fRandomEngine;
71  char* fParams[100];
72 
73  protected:
74 
75  Double_t fMom; // pbar momentum
76  Int_t fPar_it; // number of parameter lines
77  Bool_t fUseRandom1; // flag to use TRandom1
78  Bool_t fUseRandom3; // flag to use TRandom3 (default)
79 
80  ClassDef(PndPythia8Generator,1);
81 };
82 
83 #endif /* !PNDP8GENERATOR_H */
MechFsc Print()
Double_t mom
Definition: plot_dirc.C:14
virtual ~PyTr1Rng()
Double_t
void SetMom(Double_t mom)
fRun Init()
Definition: NHitsPerEvent.C:20
f1 SetParameters(par1)
virtual ~PyTr3Rng()