9 using std::setprecision;
59 for (
int i = 0; i < 4; i++) {
60 EvtVtx[i] =
event->EvtVtx[i];
78 for (
int i = 0; i <
StdHepN; i++) {
82 StdHepFd[i] =
event->StdHepFdTemp[i];
83 StdHepLd[i] =
event->StdHepLdTemp[i];
84 StdHepFm[i] =
event->StdHepFmTemp[i];
85 StdHepLm[i] =
event->StdHepLmTemp[i];
87 for (
int j = 0; j < 4; j++) {
88 StdHepX4[i][j] =
event->StdHepX4[i][j];
89 StdHepP4[i][j] =
event->StdHepP4[i][j];
91 for (
int j = 0; j < 3; j++) {
104 for (
int i = 0; i <
NEnvc; i++) {
105 NEipvc[i] =
event->NEipvcTemp[i];
106 NEiorgvc[i] =
event->NEiorgvcTemp[i];
107 NEiflgvc[i] =
event->NEiflgvcTemp[i];
108 NEicrnvc[i] =
event->NEicrnvcTemp[i];
109 for (
int j = 0; j < 3; j++) {
110 NEpvc[i][j] =
event->NEpvc[i][j];
121 for (
int i = 0; i <
NEnvert; i++) {
123 for (
int j = 0; j < 3; j++) {
124 NEposvert[i][j] =
event->NEposvert[i][j];
140 NEipvert[i] =
event->NEipvertTemp[i];
141 NEiverti[i] =
event->NEivertiTemp[i];
142 NEivertf[i] =
event->NEivertfTemp[i];
143 for (
int j = 0; j < 3; j++) {
144 NEdirvert[i][j] =
event->NEdirvert[i][j];
161 for (
int i = 0; i <
NFnvert; i++) {
162 NFiflag[i] =
event->NFiflagTEMP[i];
163 NFx[i] =
event->NFxTEMP[i];
164 NFy[i] =
event->NFyTEMP[i];
165 NFz[i] =
event->NFzTEMP[i];
166 NFpx[i] =
event->NFpxTEMP[i];
167 NFpy[i] =
event->NFpyTEMP[i];
168 NFpz[i] =
event->NFpzTEMP[i];
169 NFe[i] =
event->NFeTEMP[i];
184 for (
int k = 0; k <
NFnstep; k++) {
185 NFecms2[k] =
event->NFecms2TEMP[k];
186 Prob[k] =
event->ProbTEMP[k];
189 StepPel[k] =
event->StepPelTEMP[k];
190 StepPsp[k] =
event->StepPspTEMP[k];
191 StepPdp[k] =
event->StepPdpTEMP[k];
222 for (
int i = 0; i < 4; i++) {
235 for (
int j = 0; j < 4; j++) {
238 for (
int j = 0; j < 4; j++) {
241 for (
int j = 0; j < 3; j++) {
247 for (
int ip = 0; ip <
kNEmaxvc; ip++) {
252 for (
int ip2 = 0; ip2 < 3; ip2++) {
253 NEpvc[ip][ip2] = -99999.9;
265 for (
int ip2 = 0; ip2 < 3; ip2++) {
277 for (
int ip2 = 0; ip2 < 3; ip2++) {
328 cout <<
"\nNRooTrackerMCTruth: " << endl;
329 cout <<
" --> GeneratorName = " <<
GeneratorName->GetString() << endl;
330 cout <<
" --> EvtCode = " <<
EvtCode->GetString() << endl;
331 cout <<
" --> GeomPath = " <<
GeomPath->GetString() << endl;
332 cout <<
" --> EvtNum = " <<
EvtNum << endl;
333 cout <<
" --> EvtXSec = " <<
EvtXSec << endl;
334 cout <<
" --> EvtDXSec = " <<
EvtDXSec << endl;
335 cout <<
" --> EvtWght = " <<
EvtWght << endl;
336 cout <<
" --> EvtProb = " <<
EvtProb << endl;
339 cout <<
"NRooTrackerStdHep:" << endl;
341 for (
int i = 0; i <
StdHepN; i++) {
342 cout << setfill(
' ') << setw(4) << i <<
" -> pdgc: "
344 <<
" / ist: " << setfill(
' ') << setw(3) <<
StdHepStatus[i]
345 <<
" / mom: " << setfill(
' ') << setw(3) <<
StdHepFm[i]
346 <<
" / daughters: (" << setfill(
' ') << setw(3) <<
StdHepFd[i] <<
", "
347 << setfill(
' ') << setw(3) <<
StdHepLd[i] <<
") / E = " << setfill(
' ')
354 cout << endl <<
"Jnu-beam pass through info:" << endl;
355 cout <<
" --> NuParentPdg = " <<
NuParentPdg << endl;
358 cout <<
" --> NuParentDecP4[4] = " <<
NuParentDecP4[0] <<
", "
361 cout <<
" --> NuParentDecX4[4] = " <<
NuParentDecX4[0] <<
", "
364 cout <<
" --> NuParentProP4[4] = " <<
NuParentProP4[0] <<
", "
367 cout <<
" --> NuParentProX4[4] = " <<
NuParentProX4[0] <<
", "
372 cout <<
" --> NuGipart = " <<
NuGipart << endl;
373 cout <<
" --> NuGamom0 = " <<
NuGamom0 << endl;
374 cout <<
" --> NuGpos0[3] = " <<
NuGpos0[0] <<
", " <<
NuGpos0[1] <<
", "
376 cout <<
" --> NuGvec0[3] = " <<
NuGvec0[0] <<
", " <<
NuGvec0[1] <<
", "
379 cout <<
"NuEnusk = " <<
NuEnusk << endl;
380 cout <<
"NuNorm = " <<
NuNorm << endl;
381 cout <<
"NuNormsk = " <<
NuNormsk << endl;
382 cout <<
"NuAnorm = " <<
NuAnorm << endl;
384 cout <<
"NuVersion = " <<
NuVersion << endl;
385 cout <<
"NuTuneid = " <<
NuTuneid << endl;
387 cout <<
"NuPint = " <<
NuPint << endl;
389 cout <<
"NuBpos[2] = ";
390 for (
int ip = 0; ip < 2; ip++) cout <<
NuBpos[ip] <<
" ";
393 cout <<
"NuBtilt[2] = ";
394 for (
int ip = 0; ip < 2; ip++) cout <<
NuBtilt[ip] <<
" ";
397 cout <<
"NuBrms[2] = ";
398 for (
int ip = 0; ip < 2; ip++) cout <<
NuBrms[ip] <<
" ";
401 cout <<
"NuEmit[2] = ";
402 for (
int ip = 0; ip < 2; ip++) cout <<
NuEmit[ip] <<
" ";
405 cout <<
"NuAlpha[2] = ";
406 for (
int ip = 0; ip < 2; ip++) cout <<
NuAlpha[ip] <<
" ";
409 cout <<
"NuHcur[3] = ";
410 for (
int ip = 0; ip < 3; ip++) cout <<
NuHcur[ip] <<
" ";
413 cout << endl <<
"NEUT pass through info:" << endl << endl;
415 cout <<
"NEnvc = " <<
NEnvc << endl;
416 cout <<
"ip NEipvc[ip] NEiorgvc[ip] NEiflgvc[ip] NEicrnvc[ip] NEpvc[ip][3]"
418 for (
int ip = 0; ip <
NEnvc; ip++) {
421 for (
int ip2 = 0; ip2 < 3; ip2++) {
422 cout <<
NEpvc[ip][ip2] <<
" ";
428 cout <<
"NEcrsx NEcrsy NEcrsz NEcrsphi" << endl;
431 cout <<
"NEnvert = " <<
NEnvert << endl;
432 cout <<
"iv NEiflgvert[iv] NEposvert[iv][3]" << endl;
434 for (
int iv = 0; iv <
NEnvert; iv++) {
436 for (
int ip2 = 0; ip2 < 3; ip2++) {
443 cout <<
"NEnvcvert = " <<
NEnvcvert << endl;
444 cout <<
"ip NEabspvert[ip] NEabstpvert[ip] NEipvert[ip] NEiverti[ip] "
445 "NEivertf[ip] NEdirvert[ip][3]"
450 for (
int ip2 = 0; ip2 < 3; ip2++) {
457 cout << endl <<
"Pass-through file info:" << endl;
458 cout <<
" --> OrigFileName = " <<
OrigFileName->GetString() << endl;
459 cout <<
" --> OrigTreeName = " <<
OrigTreeName->GetString() << endl;
460 cout <<
" --> OrigEvtNum = " <<
OrigEvtNum << endl;
461 cout <<
" --> TimeInSpill = " <<
TimeInSpill << endl;
463 cout <<
" --> OrigTreePOT = " <<
OrigTreePOT << endl;
int NEnvcvert
Number of intermediate particles (including initial and final)
float NEabspvertTemp[kNEmaxvertp]
TObjString * GeomPath
Geometry path of where the vertex is.
int * NEipvert
PDG particle code.
double EvtXSec
cross section for selected event (1E-38 cm2)
int * StdHepFd
first daughter
int * NEipvc
PDG particle code.
float NuGpos0[3]
primary particle starting point
void Copy(const NRooTrackerVtx *event)
int NEivertfTemp[kNEmaxvertp]
Storage area for NEiverti read from the RooTracker TTree.
TObjString * OrigFileName
Filename of the NEUTmc file.
float NuBtilt[2]
Beam angle.
double NuParentProP4[4]
parent hadron 4-momentum at production
float NFpyTEMP[kNFMaxNucleonVert]
Temporary RooTracker Tree readout variable, corresponds to NFpx.
TObjString * EvtCode
generator-specific string with 'event code'
float NFpzTEMP[kNFMaxNucleonVert]
/Temporary RooTracker Tree readout variable, corresponds to NFpy
float NEposvert[kNEmaxvert][3]
Position of vertex within nucleus (fm)
float NuAnorm
ND Acceptance Weight Out-of-target Secondary Interactions.
float VertFlagStepTEMP[kNFMaxNucleonSteps]
Temporary RooTracker Tree readout variable, corresponds to Prob.
float NFecms2TEMP[kNFMaxNucleonSteps]
Temporary RooTracker Tree readout variable, corresponds to NFfirststep.
float StepPspTEMP[kNFMaxNucleonSteps]
Temporary RooTracker Tree readout variable, corresponds to StepPel.
int NEiorgvcTemp[kNEmaxvc]
int * StdHepLm
last mother
double EvtWght
weight for that event
ClassImp(ND::TBeamSummaryDataModule::TBeamSummaryData)
double StdHepP4[kNStdHepNPmax][4]
4-p (px,py,pz,E) of particle in LAB frame (GeV)
float NEcrsx
Cross section calculation variables (X) (currently used for coherent interactions) ...
float NEcrsy
Cross section calculation variables (Y) (currently used for coherent interactions) ...
int * NFiflag
4-digit flag for interaction type at i-th vertex, in the form
float NEdirvert[kNEmaxvertp][3]
Direction of particle.
int NEnvc
NEUT native VCWORK information Number of particles.
float NuBpos[2]
Beam center position.
int NuParentPdg
parent hadron pdg code
float NuEmit[2]
Beam Emittance.
int * StdHepLd
last daughter
double EvtVtx[4]
event vertex position in detector coord syst (SI)
float StepPelTEMP[kNFMaxNucleonSteps]
Temporary RooTracker Tree readout variable, corresponds to VertFsiRhon.
int NFiflagTEMP[kNFMaxNucleonVert]
NRooTrackerVtx()
Maximum possible number of saved NFNucleonSteps . This is set to mirror the equivalent parameter in t...
TObjString * OrigTreeName
Tree name within the NEUT mc file.
float * NFpy
y-component of momentum of nucleon leaving the i-th vertex
float StepPdpTEMP[kNFMaxNucleonSteps]
Temporary RooTracker Tree readout variable, corresponds to StepPsp.
float VertFsiRhonTEMP[kNFMaxNucleonSteps]
Temporary RooTracker Tree readout variable, corresponds to VertFlagStep.
int * StdHepPdg
pdg codes (& generator specific codes for pseudoparticles)
int StdHepFdTemp[kNStdHepNPmax]
float PCascProb
Temporary RooTracker Tree readout variable, corresponds to NFecms2.
double EvtProb
probability for that event (given cross section, path lengths, etc)
int NFfirststepTEMP[kNFMaxNucleonVert]
Temporary RooTracker Tree readout variable, corresponds to NFe.
double OrigTreePOT
Number of POT in the NEUT mc file.
int NEiflgvcTemp[kNEmaxvc]
float NuGvec0[3]
primary particle direction at starting point
int NFnvert
Number of "vertices".
int * NEiflgvert
Interaction type Values:
static const int kNFMaxNucleonSteps
int OrigTreeEntries
Number of entries in the NEUT mc file.
double EvtDXSec
cross section for selected event kinematics (1E-38 cm2 /{K^n})
double StdHepPolz[kNStdHepNPmax][3]
polarization vector
float NEpvc[kNEmaxvc][3]
3-momentum (MeV/c)
float * NEabstpvert
Absolute momentum in the nucleon rest frame (MeV/c)
int StdHepFmTemp[kNStdHepNPmax]
int * StdHepFm
first mother
int NuGipart
primary particle ID
void Copy(const JNuBeamFlux *flux)
float NuHcur[3]
Horn currents.
int NEipvertTemp[kNEmaxvertp]
Storage area for NEabtpvert read from the RooTracker TTree.
float NEabstpvertTemp[kNEmaxvertp]
Storage area for NEabspvert read from the RooTracker TTree.
int NuTuneid
beam tune ID #
float * StepPdp
A step-wise probability for double pion production via nucleon FSI.
int NEivertiTemp[kNEmaxvertp]
Storage area for NEipvert read from the RooTracker TTree.
double NuParentDecX4[4]
parent hadron 4-position at decay
float NFyTEMP[kNFMaxNucleonVert]
Temporary RooTracker Tree readout variable, corresponds to NFx.
void Print(const Option_t *option="") const
int * NEiverti
Index of initial vertex (pointing to nvert array above)
float NEcrsz
Cross section calculation variables (Z) (currently used for coherent /// interactions) ...
int NEicrnvcTemp[kNEmaxvc]
int NFnstep
number of steps
double NuParentProX4[4]
parent hadron 4-position at production
float * NFpx
x-component of momentum of nucleon leaving the i-th vertex
int NuParentDecMode
parent hadron decay mode
float * NEabspvert
Storage area for NEipvertf read from the RooTracker TTree.
static const int kNFMaxNucleonVert
Maximum possible number of saved NFNucleonVertices . This is set to mirror the equivalent parameter i...
float NuGamom0
momentum of the primary particle at the starting point Interation History Information ...
float NuEnusk
Neutrino Energy at SK.
float NuVersion
jnubeam flux version
float NuNorm
Normalization weight.
int * NEicrnvc
Escaped nucleus (1) or not (0)
float * VertFlagStep
Gives the interaction type of a step: 5 = non event, 4 = survival, 3 = douple pi, 2 = single pi...
int NEnvert
Number of vertices (including production and exit points)
float NuAlpha[2]
Beam Alpha.
float * Prob
A step-wise probability for the nucleon FSI cascade.
double TimeInSpill
Time of the vertex, relative to spill time.
int StdHepLdTemp[kNStdHepNPmax]
int StdHepLmTemp[kNStdHepNPmax]
int * NEiorgvc
Index of parent (Fortran convention: starting at 1)
float * NFz
z-component of i-th vertex position inside nucleus
int TruthVertexID
A link to the TTruthVertex tree.
float * VertFsiRhon
Prob multiplied by rhon from nrfermi.F in NEUT.
float * NFx
x-component of i-th vertex position inside nucleus
TObjString * GeneratorName
NEUT.
int * NEivertf
Index of final vertex (pointing to nvert array above)
float ProbTEMP[kNFMaxNucleonSteps]
int StdHepPdgTemp[kNStdHepNPmax]
int * NEiflgvc
Flag of final state Values:
int IRadCorrPht
Event-level flag of whether real photon production was.
float NFpxTEMP[kNFMaxNucleonVert]
Temporary RooTracker Tree readout variable, corresponds to NFz.
float * StepPel
A step-wise probability for elastic nucleon scatter scattering.
float NuBrms[2]
Beam RMS width.
float NuNormsk
Normalization weight at SK.
float NFzTEMP[kNFMaxNucleonVert]
Temporary RooTracker Tree readout variable, corresponds to NFy.
This is a simple event class which is essentially an objectified version of the NEUT nRooTracker outp...
float * NFy
y-component of i-th vertex position inside nucleus
double StdHepX4[kNStdHepNPmax][4]
4-x (x, y, z, t) of particle in hit nucleus frame (fm)
int NEiflgvertTemp[kNEmaxvert]
float * NFecms2
CMS energy squared of collision at k-th step (i.e.
float NFeTEMP[kNFMaxNucleonVert]
Temporary RooTracker Tree readout variable, corresponds to NFpz.
double NuParentDecP4[4]
parent hadron 4-momentum at decay
float * NFe
energy of nucleon leaving the i-th vertex
float * NFpz
z-component of momentum of nucleon leaving the i-th vertex
int SPIDelta
Temporary RooTracker Tree readout variable, corresponds to StepPdp.
int * StdHepStatus
generator-specific status code
int OrigEvtNum
Event number within the NEUT mc file.
int StdHepStatusTemp[kNStdHepNPmax]
float NFxTEMP[kNFMaxNucleonVert]
Temporary RooTracker Tree readout variable, corresponds to NFiflag.
int StdHepN
number of particles in particle array
int NuPint
Interaction model ID.
float * StepPsp
A step-wise probability for single pion production via nucleon FSI.