File tree Expand file tree Collapse file tree 2 files changed +41
-0
lines changed Expand file tree Collapse file tree 2 files changed +41
-0
lines changed Original file line number Diff line number Diff line change @@ -21,6 +21,9 @@ protected:
2121 TTreeReaderValue<std::vector<G4double>>* fReaderPy ; // particle momentum
2222 TTreeReaderValue<std::vector<G4double>>* fReaderPz ; // particle momentum
2323 TTreeReaderValue<std::vector<G4double>>* fReaderE ; // particle energy
24+ TTreeReaderValue<std::vector<G4double>>* fReaderX ; // particle position
25+ TTreeReaderValue<std::vector<G4double>>* fReaderY ; // particle position
26+ TTreeReaderValue<std::vector<G4double>>* fReaderZ ; // particle position
2427
2528 static const G4int fgMaxParticles;
2629
Original file line number Diff line number Diff line change 55#include " G4IonTable.hh"
66
77#include " TTreeReader.h"
8+ #include " TMath.h"
89
910#include " A2FileGeneratorGiBUU.hh"
1011
@@ -26,6 +27,9 @@ A2FileGeneratorGiBUU::A2FileGeneratorGiBUU(const char* filename)
2627 fReaderPy = 0 ;
2728 fReaderPz = 0 ;
2829 fReaderE = 0 ;
30+ fReaderX = 0 ;
31+ fReaderY = 0 ;
32+ fReaderZ = 0 ;
2933}
3034
3135// ______________________________________________________________________________
@@ -45,6 +49,12 @@ A2FileGeneratorGiBUU::~A2FileGeneratorGiBUU()
4549 delete fReaderPz ;
4650 if (fReaderE )
4751 delete fReaderE ;
52+ if (fReaderX )
53+ delete fReaderX ;
54+ if (fReaderY )
55+ delete fReaderY ;
56+ if (fReaderZ )
57+ delete fReaderZ ;
4858 if (fReader )
4959 delete fReader ;
5060}
@@ -68,6 +78,12 @@ G4bool A2FileGeneratorGiBUU::Init()
6878 fReaderPy = new TTreeReaderValue<std::vector<G4double>>(*fReader , " Py" );
6979 fReaderPz = new TTreeReaderValue<std::vector<G4double>>(*fReader , " Pz" );
7080 fReaderE = new TTreeReaderValue<std::vector<G4double>>(*fReader , " E" );
81+ if (fTree ->GetBranch (" x" ))
82+ {
83+ fReaderX = new TTreeReaderValue<std::vector<G4double>>(*fReader , " x" );
84+ fReaderY = new TTreeReaderValue<std::vector<G4double>>(*fReader , " y" );
85+ fReaderZ = new TTreeReaderValue<std::vector<G4double>>(*fReader , " z" );
86+ }
7187
7288 return true ;
7389}
@@ -108,6 +124,28 @@ G4bool A2FileGeneratorGiBUU::ReadEvent(G4int event)
108124 continue ;
109125 }
110126
127+ // check for off-shell particles
128+ Double_t e = 1000 * (*fReaderE )->at (i);
129+ switch (partDef->GetPDGEncoding ())
130+ {
131+ case 111 : // pi0
132+ case 211 : // pi+
133+ case -211 : // pi+
134+ if (e < 138.0 )
135+ continue ;
136+ else
137+ break ;
138+ case 2212 : // proton
139+ case 2112 : // neutron
140+ if (e < 938.0 )
141+ continue ;
142+ else
143+ break ;
144+ default :
145+ G4cout << " A2FileGeneratorGiBUU::Init(): No off-shell cuts defined for particle " <<
146+ partDef->GetParticleName () << G4endl;
147+ }
148+
111149 // set event particle
112150 A2GenParticle_t part;
113151 part.fDef = partDef;
You can’t perform that action at this time.
0 commit comments