ATTPCROOT  0.3.0-alpha
A ROOT-based framework for analyzing data from active target detectors
AtTPCFissionGeneratorV3.h
Go to the documentation of this file.
1 #ifndef AtTPCFISSIONGENERAtORV3_H
2 #define AtTPCFISSIONGENERAtORV3_H
3 
4 #include <FairGenerator.h>
5 
6 #include <Math/GenVector/Boost.h>
7 #include <Math/Point3D.h>
8 #include <Math/Vector4D.h>
9 #include <Rtypes.h>
10 #include <TString.h>
11 
12 #include <vector>
13 
14 class TFile;
15 class TTree;
16 class FairPrimaryGenerator;
17 class TBuffer;
18 class TClass;
19 class TMemberInspector;
20 
21 using VecPE = ROOT::Math::LorentzVector<ROOT::Math::PxPyPzE4D<>>;
22 using Cartesian3D = ROOT::Math::Cartesian3D<>;
23 
24 class AtTPCFissionGeneratorV3 : public FairGenerator {
25 
26 private:
27  TFile *fEventFile{};
28  TTree *fEventTree{};
29 
30  // Variables read from the file for each event
31  std::vector<VecPE> *fDecayFrags{};
32  std::vector<Int_t> *fA{};
33  std::vector<Int_t> *fZ{};
34 
35  Int_t fNumEvents{};
36  Int_t fCurrEvent{};
37 
38  // Varibles set for each event
39  FairPrimaryGenerator *fPrimeGen{};
40  ROOT::Math::Boost fBeamBoost;
41  Cartesian3D fVertex;
42 
43  void loadIonList(TString ionList);
44  void loadFissionFragmentTree(TString fissionDistro);
45 
46  VecPE getBeam4Vec();
47  Cartesian3D getVertex();
48  void setBeamParameters();
49  void generateEvent();
50  void generateFragment(VecPE &P, Int_t A, Int_t Z);
51 
52 public:
53  // Default constructor
55 
56  // Generator that takes in a file that specifies the expected distribution of
57  // fission particles as a fully realized path. The ion list should have no repeated
58  // entries.
59  // The name is passed as the title for TNamed
60  AtTPCFissionGeneratorV3(const char *name, TString ionList, TString fissionDistro);
61 
62  // Deep copy constructor
64 
65  // The main physics is here
66  Bool_t ReadEvent(FairPrimaryGenerator *primGen) override;
67 
70 
71  // Internal variables for tracking the physics
72 
73  ClassDefOverride(AtTPCFissionGeneratorV3, 6)
74 };
75 
76 #endif //#ifndef AtTPCFISSIONGENERAtORV3_H
VecPE
ROOT::Math::LorentzVector< ROOT::Math::PxPyPzE4D<> > VecPE
Definition: AtTPCFissionGeneratorV3.h:21
Cartesian3D
ROOT::Math::Cartesian3D<> Cartesian3D
Definition: AtTPCFissionGeneratorV3.h:22
AtTPCFissionGeneratorV3::ReadEvent
Bool_t ReadEvent(FairPrimaryGenerator *primGen) override
Definition: AtTPCFissionGeneratorV3.cxx:75
AtTPCFissionGeneratorV3::AtTPCFissionGeneratorV3
AtTPCFissionGeneratorV3()
AtTPCFissionGeneratorV3::~AtTPCFissionGeneratorV3
virtual ~AtTPCFissionGeneratorV3()
AtTPCFissionGeneratorV3
Definition: AtTPCFissionGeneratorV3.h:24