eventAnalysis  7.0-49-g0ac7482
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
TNRooTrackerVtx.cxx
Go to the documentation of this file.
1 #include <iomanip>
2 #include <iostream>
3 
4 #include "TNRooTrackerVtx.hxx"
5 
6 using std::endl;
7 using std::cout;
8 using std::setw;
9 using std::setprecision;
10 using std::setfill;
11 using std::ios;
12 
13 using namespace ND;
14 
16 
18 
20  if (GeomPath != NULL) {
21  delete GeomPath;
22  GeomPath = NULL;
23  }
24  if (GeneratorName != NULL) {
25  delete GeneratorName;
26  GeneratorName = NULL;
27  }
28  if (EvtCode != NULL) {
29  delete EvtCode;
30  EvtCode = NULL;
31  }
32  if (OrigFileName != NULL) {
33  delete OrigFileName;
34  OrigFileName = NULL;
35  }
36  if (OrigTreeName != NULL) {
37  delete OrigTreeName;
38  OrigTreeName = NULL;
39  }
40 }
42  GeomPath->SetString(event->GeomPath->GetString());
43  GeneratorName->SetString(event->GeneratorName->GetString());
44  EvtCode->SetString(event->EvtCode->GetString());
45  OrigFileName->SetString(event->OrigFileName->GetString());
46  OrigTreeName->SetString(event->OrigTreeName->GetString());
47 
48  EvtNum = event->EvtNum;
49  EvtXSec = event->EvtXSec;
50  EvtDXSec = event->EvtDXSec;
51  EvtWght = event->EvtWght;
52  EvtProb = event->EvtProb;
53  OrigTreePOT = event->OrigTreePOT;
54  OrigEvtNum = event->OrigEvtNum;
55  TimeInSpill = event->TimeInSpill;
56  OrigTreeEntries = event->OrigTreeEntries;
57  TruthVertexID = event->TruthVertexID;
58 
59  for (int i = 0; i < 4; i++) {
60  EvtVtx[i] = event->EvtVtx[i];
61  }
62 
63  NuNorm = event->NuNorm;
64  NuEnusk = event->NuEnusk;
65  NuNormsk = event->NuNormsk;
66  NuAnorm = event->NuAnorm;
67 
68  StdHepN = event->StdHepN;
69 
70  // Allocate the arrays which will be saved
71  StdHepPdg = new int[StdHepN];
72  StdHepStatus = new int[StdHepN];
73  StdHepFd = new int[StdHepN];
74  StdHepLd = new int[StdHepN];
75  StdHepFm = new int[StdHepN];
76  StdHepLm = new int[StdHepN];
77 
78  for (int i = 0; i < StdHepN; i++) {
79  StdHepPdg[i] = event->StdHepPdgTemp[i];
80  StdHepStatus[i] = event->StdHepStatusTemp[i];
81 
82  StdHepFd[i] = event->StdHepFdTemp[i];
83  StdHepLd[i] = event->StdHepLdTemp[i];
84  StdHepFm[i] = event->StdHepFmTemp[i];
85  StdHepLm[i] = event->StdHepLmTemp[i];
86 
87  for (int j = 0; j < 4; j++) {
88  StdHepX4[i][j] = event->StdHepX4[i][j];
89  StdHepP4[i][j] = event->StdHepP4[i][j];
90  }
91  for (int j = 0; j < 3; j++) {
92  StdHepPolz[i][j] = event->StdHepPolz[i][j];
93  }
94  }
95 
96  NEnvc = event->NEnvc;
97 
98  // Allocate the arrays which will be saved
99  NEipvc = new int[NEnvc];
100  NEiorgvc = new int[NEnvc];
101  NEiflgvc = new int[NEnvc];
102  NEicrnvc = new int[NEnvc];
103 
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];
111  }
112  }
113 
114  NEcrsx = event->NEcrsx;
115  NEcrsy = event->NEcrsy;
116  NEcrsz = event->NEcrsz;
117  NEcrsphi = event->NEcrsphi;
118  NEnvert = event->NEnvert;
119 
120  NEiflgvert = new int[NEnvert];
121  for (int i = 0; i < NEnvert; i++) {
122  NEiflgvert[i] = event->NEiflgvertTemp[i];
123  for (int j = 0; j < 3; j++) {
124  NEposvert[i][j] = event->NEposvert[i][j];
125  }
126  }
127 
128  NEnvcvert = event->NEnvcvert;
129 
130  // define the dynamic arrays
131  NEabspvert = new float[NEnvcvert];
132  NEabstpvert = new float[NEnvcvert];
133  NEipvert = new int[NEnvcvert];
134  NEiverti = new int[NEnvcvert];
135  NEivertf = new int[NEnvcvert];
136 
137  for (int i = 0; i < NEnvcvert; i++) {
138  NEabspvert[i] = event->NEabspvertTemp[i];
139  NEabstpvert[i] = event->NEabstpvertTemp[i];
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];
145  }
146  }
147 
148  /**** START Nucleon FSI PASSTHROUGH ******/
149 
150  NFnvert = event->NFnvert;
151  NFiflag = new int[NFnvert];
152  NFx = new float[NFnvert];
153  NFy = new float[NFnvert];
154  NFz = new float[NFnvert];
155  NFpx = new float[NFnvert];
156  NFpy = new float[NFnvert];
157  NFpz = new float[NFnvert];
158  NFe = new float[NFnvert];
159  NFfirststep = new int[NFnvert];
160 
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];
170  NFfirststep[i] = event->NFfirststepTEMP[i];
171  }
172  PCascProb = event->PCascProb;
173  NFnstep = event->NFnstep;
174 
175  if(NFnstep!=0){
176  NFecms2 = new float[NFnstep];
177  Prob = new float[NFnstep];
178  VertFlagStep = new float[NFnstep];
179  VertFsiRhon = new float[NFnstep];
180  StepPel = new float[NFnstep];
181  StepPsp = new float[NFnstep];
182  StepPdp = new float[NFnstep];
183 
184  for (int k = 0; k < NFnstep; k++) {
185  NFecms2[k] = event->NFecms2TEMP[k];
186  Prob[k] = event->ProbTEMP[k];
187  VertFlagStep[k] = event->VertFlagStepTEMP[k];
188  VertFsiRhon[k] = event->VertFsiRhonTEMP[k];
189  StepPel[k] = event->StepPelTEMP[k];
190  StepPsp[k] = event->StepPspTEMP[k];
191  StepPdp[k] = event->StepPdpTEMP[k];
192  }
193  }
194 
195  SPIDelta = event->SPIDelta;
196  IRadCorrPht = event->IRadCorrPht;
197 
198  /**** END Nucleon FSI PASSTHROUGH ******/
199 
200  // Remember to copy the flux info
201  JNuBeamFlux* flux = (JNuBeamFlux*)event;
202  JNuBeamFlux::Copy(flux);
203 }
205  if (GeomPath) GeomPath->SetString("Not-set");
206  if (GeneratorName) GeneratorName->SetString("Not-set");
207  if (EvtCode) EvtCode->SetString("Not-set");
208  if (OrigFileName) OrigFileName->SetString("Not-set");
209  if (OrigTreeName) OrigTreeName->SetString("Not-set");
210 
211  EvtNum = -1;
212  EvtXSec = -1.0;
213  EvtDXSec = -1.0;
214  EvtWght = -1.0;
215  EvtProb = -1.0;
216  OrigTreePOT = -1.0;
217  OrigEvtNum = -1;
218  TimeInSpill = -1.0;
219  OrigTreeEntries = -1;
220  TruthVertexID = -1;
221 
222  for (int i = 0; i < 4; i++) {
223  EvtVtx[i] = 0.0;
224  }
225 
226  StdHepN = 0;
227  for (int i = 0; i < kNStdHepNPmax; i++) {
228  // If the arrays are dynamic, only reset the Temp version of the data member
229  StdHepPdgTemp[i] = -1;
230  StdHepStatusTemp[i] = -1;
231  StdHepFdTemp[i] = -1;
232  StdHepLdTemp[i] = -1;
233  StdHepFmTemp[i] = -1;
234  StdHepLmTemp[i] = -1;
235  for (int j = 0; j < 4; j++) {
236  StdHepX4[i][j] = 0;
237  }
238  for (int j = 0; j < 4; j++) {
239  StdHepP4[i][j] = 0;
240  }
241  for (int j = 0; j < 3; j++) {
242  StdHepPolz[i][j] = 0;
243  }
244  }
245 
246  NEnvc = 0;
247  for (int ip = 0; ip < kNEmaxvc; ip++) {
248  NEipvcTemp[ip] = -1;
249  NEiorgvcTemp[ip] = -1;
250  NEiflgvcTemp[ip] = -1;
251  NEicrnvcTemp[ip] = -1;
252  for (int ip2 = 0; ip2 < 3; ip2++) {
253  NEpvc[ip][ip2] = -99999.9;
254  }
255  }
256 
257  NEcrsx = -99999.9;
258  NEcrsy = -99999.9;
259  NEcrsz = -99999.9;
260  NEcrsphi = -99999.9;
261 
262  NEnvert = 0;
263  for (int iv = 0; iv < kNEmaxvert; iv++) {
264  NEiflgvertTemp[iv] = -999;
265  for (int ip2 = 0; ip2 < 3; ip2++) {
266  NEposvert[iv][ip2] = -999;
267  }
268  }
269 
270  NEnvcvert = 0;
271  for (int ip = 0; ip < kNEmaxvertp; ip++) {
272  NEabspvertTemp[ip] = -99999.9;
273  NEabstpvertTemp[ip] = -99999.9;
274  NEipvertTemp[ip] = -1;
275  NEivertiTemp[ip] = -1;
276  NEivertfTemp[ip] = -1;
277  for (int ip2 = 0; ip2 < 3; ip2++) {
278  NEdirvert[ip][ip2] = -99999.9;
279  }
280  }
281 
282  /**** START Nucleon FSI PASSTHROUGH ******/
283 
284  NFnvert = 0;
285  for (int i = 0; i < kNFMaxNucleonVert; i++) {
286  NFiflagTEMP[i] = -1;
287  NFxTEMP[i] = -99999.9;
288  NFyTEMP[i] = -99999.9;
289  NFzTEMP[i] = -99999.9;
290  NFpxTEMP[i] = -99999.9;
291  NFpyTEMP[i] = -99999.9;
292  NFpzTEMP[i] = -99999.9;
293  NFeTEMP[i] = -99999.9;
294  NFfirststepTEMP[i] = -1;
295  }
296  PCascProb = 0;
297 
298  NFnstep = 0;
299  for (int k = 0; k < kNFMaxNucleonSteps; k++) {
300  NFecms2TEMP[k] = -99999.9;
301  ProbTEMP[k] = -99999.9;
302  VertFlagStepTEMP[k] = -99999.9;
303  VertFsiRhonTEMP[k] = -99999.9;
304  StepPelTEMP[k] = -99999.9;
305  StepPspTEMP[k] = -99999.9;
306  StepPdpTEMP[k] = -99999.9;
307  }
308 
309  /**** END Nucleon FSI PASSTHROUGH ******/
310 
311  SPIDelta = -999;
312  IRadCorrPht = -999;
313 }
315  ///< Also some additional fields which will be useful
316  ///< JIMTODO - I need to stop instantialtion of these objects in the default
317  ///< constructor as this causes a memory leak when using i/o of cint
318 
319  GeomPath = new TObjString("");
320  GeneratorName = new TObjString("");
321  EvtCode = new TObjString("");
322  OrigFileName = new TObjString("");
323  OrigTreeName = new TObjString("");
324 
325  this->Reset();
326 }
327 void NRooTrackerVtx::Print(const Option_t* option) const {
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;
337  cout << " --> TruthVertexID = " << TruthVertexID << endl;
338 
339  cout << "NRooTrackerStdHep:" << endl;
340 
341  for (int i = 0; i < StdHepN; i++) {
342  cout << setfill(' ') << setw(4) << i << " -> pdgc: "
343  // << setfill(' ') << setw(20) << StdHepPdg[i]
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(' ')
348  << setw(10) << StdHepP4[i][kNStdHepIdxE] << ", px = " << setfill(' ')
349  << setw(10) << StdHepP4[i][kNStdHepIdxPx] << ", py = " << setfill(' ')
350  << setw(10) << StdHepP4[i][kNStdHepIdxPy] << ", pz = " << setfill(' ')
351  << setw(10) << StdHepP4[i][kNStdHepIdxPz] << endl;
352  }
353 
354  cout << endl << "Jnu-beam pass through info:" << endl;
355  cout << " --> NuParentPdg = " << NuParentPdg << endl;
356  cout << " --> NuParentDecMode = " << NuParentDecMode << endl;
357  ///// cout << " --> NuParentProNVtx = " << NuParentProNVtx << endl;
358  cout << " --> NuParentDecP4[4] = " << NuParentDecP4[0] << ", "
359  << NuParentDecP4[1] << ", " << NuParentDecP4[2] << ", "
360  << NuParentDecP4[3] << endl;
361  cout << " --> NuParentDecX4[4] = " << NuParentDecX4[0] << ", "
362  << NuParentDecX4[1] << ", " << NuParentDecX4[2] << ", "
363  << NuParentDecX4[3] << endl;
364  cout << " --> NuParentProP4[4] = " << NuParentProP4[0] << ", "
365  << NuParentProP4[1] << ", " << NuParentProP4[2] << ", "
366  << NuParentProP4[3] << endl;
367  cout << " --> NuParentProX4[4] = " << NuParentProX4[0] << ", "
368  << NuParentProX4[1] << ", " << NuParentProX4[2] << ", "
369  << NuParentProX4[3] << endl;
370  ///// cout << " --> NuPlanePos[2] = " << NuPlanePos[0] << ", "<<
371  /// NuPlanePos[1] << endl;
372  cout << " --> NuGipart = " << NuGipart << endl;
373  cout << " --> NuGamom0 = " << NuGamom0 << endl;
374  cout << " --> NuGpos0[3] = " << NuGpos0[0] << ", " << NuGpos0[1] << ", "
375  << NuGpos0[2] << endl;
376  cout << " --> NuGvec0[3] = " << NuGvec0[0] << ", " << NuGvec0[1] << ", "
377  << NuGvec0[2] << endl;
378 
379  cout << "NuEnusk = " << NuEnusk << endl;
380  cout << "NuNorm = " << NuNorm << endl;
381  cout << "NuNormsk = " << NuNormsk << endl;
382  cout << "NuAnorm = " << NuAnorm << endl;
383 
384  cout << "NuVersion = " << NuVersion << endl;
385  cout << "NuTuneid = " << NuTuneid << endl;
386  ;
387  cout << "NuPint = " << NuPint << endl;
388 
389  cout << "NuBpos[2] = ";
390  for (int ip = 0; ip < 2; ip++) cout << NuBpos[ip] << " ";
391  cout << endl;
392 
393  cout << "NuBtilt[2] = ";
394  for (int ip = 0; ip < 2; ip++) cout << NuBtilt[ip] << " ";
395  cout << endl;
396 
397  cout << "NuBrms[2] = ";
398  for (int ip = 0; ip < 2; ip++) cout << NuBrms[ip] << " ";
399  cout << endl;
400 
401  cout << "NuEmit[2] = ";
402  for (int ip = 0; ip < 2; ip++) cout << NuEmit[ip] << " ";
403  cout << endl;
404 
405  cout << "NuAlpha[2] = ";
406  for (int ip = 0; ip < 2; ip++) cout << NuAlpha[ip] << " ";
407  cout << endl;
408 
409  cout << "NuHcur[3] = ";
410  for (int ip = 0; ip < 3; ip++) cout << NuHcur[ip] << " ";
411  cout << endl;
412 
413  cout << endl << "NEUT pass through info:" << endl << endl;
414 
415  cout << "NEnvc = " << NEnvc << endl;
416  cout << "ip NEipvc[ip] NEiorgvc[ip] NEiflgvc[ip] NEicrnvc[ip] NEpvc[ip][3]"
417  << endl;
418  for (int ip = 0; ip < NEnvc; ip++) {
419  cout << ip << " " << NEipvc[ip] << " " << NEiorgvc[ip] << " ";
420  cout << NEiflgvc[ip] << " " << NEicrnvc[ip] << " ";
421  for (int ip2 = 0; ip2 < 3; ip2++) {
422  cout << NEpvc[ip][ip2] << " ";
423  }
424  cout << endl;
425  }
426  cout << endl;
427 
428  cout << "NEcrsx NEcrsy NEcrsz NEcrsphi" << endl;
429  cout << NEcrsx << " " << NEcrsy << " " << NEcrsz << " " << NEcrsphi << endl;
430 
431  cout << "NEnvert = " << NEnvert << endl;
432  cout << "iv NEiflgvert[iv] NEposvert[iv][3]" << endl;
433 
434  for (int iv = 0; iv < NEnvert; iv++) {
435  cout << iv << " " << NEiflgvert[iv] << " ";
436  for (int ip2 = 0; ip2 < 3; ip2++) {
437  cout << NEposvert[iv][ip2] << " ";
438  }
439  cout << endl;
440  }
441  cout << endl;
442 
443  cout << "NEnvcvert = " << NEnvcvert << endl;
444  cout << "ip NEabspvert[ip] NEabstpvert[ip] NEipvert[ip] NEiverti[ip] "
445  "NEivertf[ip] NEdirvert[ip][3]"
446  << endl;
447  for (int ip = 0; ip < NEnvcvert; ip++) {
448  cout << ip << " " << NEabspvert[ip] << " " << NEabstpvert[ip] << " "
449  << NEipvert[ip] << " " << NEiverti[ip] << " " << NEivertf[ip] << " ";
450  for (int ip2 = 0; ip2 < 3; ip2++) {
451  cout << NEdirvert[ip][ip2] << " ";
452  }
453  cout << endl;
454  }
455  cout << endl;
456 
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;
462  cout << " --> OrigTreeEntries = " << OrigTreeEntries << endl;
463  cout << " --> OrigTreePOT = " << OrigTreePOT << endl;
464 }
int NEnvcvert
Number of intermediate particles (including initial and final)
float NEabspvertTemp[kNEmaxvertp]
const int 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.
const int kNStdHepNPmax
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 &#39;event code&#39;
int NEipvcTemp[kNEmaxvc]
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.
const int kNEmaxvert
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.
const int kNStdHepIdxPz
float * NFpy
y-component of momentum of nucleon leaving the i-th vertex
const int kNStdHepIdxE
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 (&amp; 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 &quot;vertices&quot;.
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
const int kNStdHepIdxPy
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)
int EvtNum
event num.
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.
const int kNStdHepIdxPx
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.
const int kNEmaxvc
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.

Package Summary
Package Name: eventAnalysis
Package Version: 7.0-49-g0ac7482
Package Manager:

Generated on Mon Mar 25 2024 14:43:59 for eventAnalysis by doxygen 1.8.5