Skip to content

Commit b110183

Browse files
committed
A2FileGeneratorGiBUU: different off-shell check, support for position information
1 parent bfdaf42 commit b110183

File tree

2 files changed

+41
-0
lines changed

2 files changed

+41
-0
lines changed

include/A2FileGeneratorGiBUU.hh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff 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

src/A2FileGeneratorGiBUU.cc

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
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;

0 commit comments

Comments
 (0)