WCSim
evNtuple.h
Go to the documentation of this file.
1 // Should at some point replace jhfNtuple, but that is now a global, extern,
2 // while it should be a member variable. I don't want to break WCSim too much yet.
3 
4 // Makes filling branches from EventAction to RunAction very easy, while keeping flat structure.
5 #include "WCSimEnumerations.hh"
6 
7 struct eventNtuple{
8 
9  //event info:
10  int interaction_mode; // interaction mode
11  //InteractionType_t interaction_mode; // interaction mode
12  Char_t vtxVolume[100]; // volume of vertex
13  //already flatten array because have to initialize index by index anyway
14  double vtx_x; // interaction vertex
15  double vtx_y;
16  double vtx_z;
17 
18  // Beam and target move to eventInfo from Tracks?
19  // Both don't have start and stop, only vertex and PiD and direction and flag
20  // While pGun is one primary with start and stop if generated inside the detector
21 
22 
23 
24 
25  //tracks:
26  int nTracks; // number of final state particles
27  int pid[100]; // id of ith final state particle
28  int flag[100]; // flag: -1 = beam particle (incoming neutrino)
29  // -2 = target
30  // 0 = pGun or Cosmic primary
31  // 1 = outgoing lepton
32  // 2 = most energetic outgoing nucleon
33  float mass[100]; // mass of ith final state particle
34  float p[100]; // momentum of ith final state particle
35  float energy[100]; // energy of ith final state particle
36  int startvol[100]; // starting volume of ith final state particle
37  int stopvol[100]; // stopping volume of ith final state particle
38  float dir_x[100]; // direction of ith final state particle
39  float dir_y[100]; // direction of ith final state particle
40  float dir_z[100]; // direction of ith final state particle
41  float pdir_x[100]; // momentum-vector of ith final state particle
42  float pdir_y[100]; // momentum-vector of ith final state particle
43  float pdir_z[100]; // momentum-vector of ith final state particle
44  float start_x[100]; // starting point of ith final state particle
45  float start_y[100]; // starting point of ith final state particle
46  float start_z[100]; // starting point of ith final state particle
47 
48  float stop_x[100]; // stopping point of ith final state particle
49  float stop_y[100]; // stopping point of ith final state particle
50  float stop_z[100]; // stopping point of ith final state particle
51  float length[100]; // TrackLength
52 
53  int parent[100]; // ID of parent of ith particle (0 if primary)
54  int trackID[100]; // trackID of ith particle (1 if primary)
55  float time[100]; // creation time of the ith particle
56  //ToDo: add distance start to wall and stop to wall
57 
58 
59 
60  //hits: from WCDC_hits (= WCHC + tagged noise)
61  // ToDo: extend to OD/ID when OD is implemented
62  int numTubesHit; // Total number of tubes with hits
63  int numTubesHit_noNoise; // Total number of tubes with physics hits
64  int totalNumHits; // hits per event = hits per Tube x numTubesHit
65  int totalNumHits_noNoise; // hits per event = hits per Tube x numTubesHit
66 
67 
68  int totalPe[10000000]; // The totalPE recorded at each tube
69  int totalPe_noNoise[10000000];// The totalPE recorded at each tube, without DN
70  float truetime[10000000]; // The true time of each hit
71  int vector_index[10000000]; // Index in vector of hits
72  int tubeid[10000000]; // Readout tube ID
73  int mPMTid[10000000]; // Readout tube mPMT ID
74  int mPMT_pmtid[10000000]; // Readout tube mPMT-PMT ID
75  int parentid[10000000]; // Track ID of originating parent, 1 = initial primary particle ( NOT parentID of parent!!)
76  int trackid[10000000]; // Track ID
77  // Optional?
78  float tube_x[10000000]; // Tube position
79  float tube_y[10000000];
80  float tube_z[10000000];
81  float tube_dirx[10000000]; // Hit tube orientation
82  float tube_diry[10000000];
83  float tube_dirz[10000000];
84 
85 
86  //digits: from WCDC (= WCDC_hits: but triggered and digitized)
87  // ToDo: extend to OD/ID when OD is implemented
88  int numDigiTubesHit; // Number of PMTs with digitized hits
89  int totalNumDigiHits; // Digitized hits per event = hits per Tube x numTubesHit
90  float sumq; // Sum of q(readout digitized pe) in event
91 
92  float q[10000000]; // The readout digitized pe
93  float t[10000000]; // The readout digitized time
94  int digivector_index[10000000]; // Index in vector of digits
95  int digitubeid[10000000]; // Readout tube ID
96  int digimPMTid[10000000]; // Readout tube mPMT ID
97  int digimPMT_pmtid[10000000]; // Readout tube mPMT-PMT ID
98  // Optional?
99  float digitube_x[10000000]; // Tube position
100  float digitube_y[10000000];
101  float digitube_z[10000000];
102  float digitube_dirx[10000000]; // Hit tube orientation
103  float digitube_diry[10000000];
104  float digitube_dirz[10000000];
105  // Save DigiCompositionInfo? Not now: ToDo, needs to be a 2D array, even in flat_root
106 
107 };
float pdir_y[100]
Definition: evNtuple.h:42
float energy[100]
Definition: evNtuple.h:35
float digitube_dirx[10000000]
Definition: evNtuple.h:102
float tube_dirx[10000000]
Definition: evNtuple.h:81
int numDigiTubesHit
Definition: evNtuple.h:88
int numTubesHit
Definition: evNtuple.h:62
int tubeid[10000000]
Definition: evNtuple.h:72
float tube_z[10000000]
Definition: evNtuple.h:80
double vtx_z
Definition: evNtuple.h:16
int totalPe_noNoise[10000000]
Definition: evNtuple.h:69
float start_x[100]
Definition: evNtuple.h:44
float p[100]
Definition: evNtuple.h:34
int digimPMTid[10000000]
Definition: evNtuple.h:96
int trackid[10000000]
Definition: evNtuple.h:76
float stop_y[100]
Definition: evNtuple.h:49
int pid[100]
Definition: evNtuple.h:27
int totalNumHits
Definition: evNtuple.h:64
float pdir_x[100]
Definition: evNtuple.h:41
float q[10000000]
Definition: evNtuple.h:92
float tube_y[10000000]
Definition: evNtuple.h:79
Char_t vtxVolume[100]
Definition: evNtuple.h:12
int mPMTid[10000000]
Definition: evNtuple.h:73
int trackID[100]
Definition: evNtuple.h:54
float digitube_z[10000000]
Definition: evNtuple.h:101
float start_z[100]
Definition: evNtuple.h:46
int flag[100]
Definition: evNtuple.h:28
float pdir_z[100]
Definition: evNtuple.h:43
float digitube_diry[10000000]
Definition: evNtuple.h:103
float dir_x[100]
Definition: evNtuple.h:38
int digitubeid[10000000]
Definition: evNtuple.h:95
double vtx_y
Definition: evNtuple.h:15
float time[100]
Definition: evNtuple.h:55
int totalNumHits_noNoise
Definition: evNtuple.h:65
int interaction_mode
Definition: evNtuple.h:10
float stop_z[100]
Definition: evNtuple.h:50
float start_y[100]
Definition: evNtuple.h:45
float mass[100]
Definition: evNtuple.h:33
float truetime[10000000]
Definition: evNtuple.h:70
int stopvol[100]
Definition: evNtuple.h:37
int parentid[10000000]
Definition: evNtuple.h:75
int totalNumDigiHits
Definition: evNtuple.h:89
float dir_y[100]
Definition: evNtuple.h:39
float stop_x[100]
Definition: evNtuple.h:48
float dir_z[100]
Definition: evNtuple.h:40
int startvol[100]
Definition: evNtuple.h:36
int totalPe[10000000]
Definition: evNtuple.h:68
double vtx_x
Definition: evNtuple.h:14
int numTubesHit_noNoise
Definition: evNtuple.h:63
float digitube_dirz[10000000]
Definition: evNtuple.h:104
float digitube_x[10000000]
Definition: evNtuple.h:99
int parent[100]
Definition: evNtuple.h:53
int digimPMT_pmtid[10000000]
Definition: evNtuple.h:97
float tube_x[10000000]
Definition: evNtuple.h:78
float tube_diry[10000000]
Definition: evNtuple.h:82
int digivector_index[10000000]
Definition: evNtuple.h:94
float sumq
Definition: evNtuple.h:90
float t[10000000]
Definition: evNtuple.h:93
float tube_dirz[10000000]
Definition: evNtuple.h:83
int vector_index[10000000]
Definition: evNtuple.h:71
float length[100]
Definition: evNtuple.h:51
int mPMT_pmtid[10000000]
Definition: evNtuple.h:74
int nTracks
Definition: evNtuple.h:26
float digitube_y[10000000]
Definition: evNtuple.h:100