MarlinTrk  2.2.0
TrkAnalysisTree.h
1 // This class has been automatically generated on
3 // Fri Oct 14 16:01:15 2011 by ROOT version 5.28/00f
4 // from TTree mytree/a simple Tree with simple variables
5 // found on file: mytree.root
7 
8 #ifndef TrkAnalysisTree_h
9 #define TrkAnalysisTree_h
10 
11 #include <cstdlib>
12 
13 #include <TROOT.h>
14 #include <TChain.h>
15 #include <TFile.h>
16 
17 #define MAX_MCPARTICLES 500
18 #define MAX_NTRACKS 500
19 #define MAX_MC_TRACK_RELS 1500
20 #define MAX_TRACK_MC_RELS 1500
21 #define MAX_ALLOWED_TRACK_MC_LINKS 3
22 
24  public :
25 
26  TTree *fChain;
27  Int_t fCurrent;
28 
29  // Declaration of leaf types
30 
31  Int_t nmcp;
32  Int_t runNumber;
33  Int_t eventNumber;
34 
35  Int_t mcp_pdg[MAX_MCPARTICLES];
36 
37  Int_t mcp_generator_status[MAX_MCPARTICLES];
38  Int_t mcp_simulator_status[MAX_MCPARTICLES];
39 
40  Int_t mcp_ndaughters[MAX_MCPARTICLES];
41  Int_t mcp_nparents[MAX_MCPARTICLES];
42 
43  Float_t mcp_mass[MAX_MCPARTICLES];
44  Float_t mcp_charge[MAX_MCPARTICLES];
45  Float_t mcp_energy[MAX_MCPARTICLES];
46 
47  Float_t mcp_px[MAX_MCPARTICLES];
48  Float_t mcp_py[MAX_MCPARTICLES];
49  Float_t mcp_pz[MAX_MCPARTICLES];
50 
51  Float_t mcp_vx[MAX_MCPARTICLES];
52  Float_t mcp_vy[MAX_MCPARTICLES];
53  Float_t mcp_vz[MAX_MCPARTICLES];
54 
55  Float_t mcp_fx[MAX_MCPARTICLES];
56  Float_t mcp_fy[MAX_MCPARTICLES];
57  Float_t mcp_fz[MAX_MCPARTICLES];
58 
59  Float_t mcp_d0[MAX_MCPARTICLES];
60  Float_t mcp_phi0[MAX_MCPARTICLES];
61  Float_t mcp_omega[MAX_MCPARTICLES];
62  Float_t mcp_z0[MAX_MCPARTICLES];
63  Float_t mcp_tanL[MAX_MCPARTICLES];
64 
65  Int_t mcp_nhit_vxd[MAX_MCPARTICLES];
66  Int_t mcp_nhit_sit[MAX_MCPARTICLES];
67  Int_t mcp_nhit_ftd[MAX_MCPARTICLES];
68  Int_t mcp_nhit_tpc[MAX_MCPARTICLES];
69  Int_t mcp_nhit_set[MAX_MCPARTICLES];
70  Int_t mcp_nhit_etd[MAX_MCPARTICLES];
71 
72  Int_t mcp_ntrk_linked[MAX_MCPARTICLES];
73 
74  Int_t mcp_track_index_first[MAX_MCPARTICLES];
75  Int_t mcp_track_index_second[MAX_MCPARTICLES];
76  Int_t mcp_track_index_third[MAX_MCPARTICLES];
77 
78  Float_t mcp_track_weight_first[MAX_MCPARTICLES];
79  Float_t mcp_track_weight_second[MAX_MCPARTICLES];
80  Float_t mcp_track_weight_third[MAX_MCPARTICLES];
81 
82  Float_t mcp_track_weight_recp_first[MAX_MCPARTICLES];
83  Float_t mcp_track_weight_recp_second[MAX_MCPARTICLES];
84  Float_t mcp_track_weight_recp_third[MAX_MCPARTICLES];
85 
86 
87 // Int_t mcp_link_bank_start[MAX_MCPARTICLES];
88 
89 // Int_t mc_track_link_bank_nrels;
90 // Int_t mc_track_link_bank_track_index[MAX_MC_TRACK_RELS];
91 // Float_t mc_track_link_bank_rel_weight[MAX_MC_TRACK_RELS];
92 
93  Int_t ntracks;
94 
95  Float_t tracks_d0[MAX_NTRACKS];
96  Float_t tracks_phi0[MAX_NTRACKS];
97  Float_t tracks_omega[MAX_NTRACKS];
98  Float_t tracks_z0[MAX_NTRACKS];
99  Float_t tracks_tanL[MAX_NTRACKS];
100  Float_t tracks_ref_point_x[MAX_NTRACKS];
101  Float_t tracks_ref_point_y[MAX_NTRACKS];
102  Float_t tracks_ref_point_z[MAX_NTRACKS];
103 
104  Int_t tracks_type[MAX_NTRACKS];
105 
106  Float_t tracks_chi2[MAX_NTRACKS];
107  Float_t tracks_prob[MAX_NTRACKS];
108  Int_t tracks_ndf[MAX_NTRACKS];
109 
110  Float_t tracks_radius_innermost_hit[MAX_NTRACKS];
111 
112  Int_t tracks_nhit_vxd[MAX_NTRACKS];
113  Int_t tracks_nhit_sit[MAX_NTRACKS];
114  Int_t tracks_nhit_ftd[MAX_NTRACKS];
115  Int_t tracks_nhit_tpc[MAX_NTRACKS];
116  Int_t tracks_nhit_set[MAX_NTRACKS];
117  Int_t tracks_nhit_etd[MAX_NTRACKS];
118 
119  Float_t tracks_cov_d0d0[MAX_NTRACKS];
120  Float_t tracks_cov_phi0d0[MAX_NTRACKS];
121  Float_t tracks_cov_phi0phi0[MAX_NTRACKS];
122  Float_t tracks_cov_omegad0[MAX_NTRACKS];
123  Float_t tracks_cov_omegaphi0[MAX_NTRACKS];
124  Float_t tracks_cov_omegaomega[MAX_NTRACKS];
125  Float_t tracks_cov_z0d0[MAX_NTRACKS];
126  Float_t tracks_cov_z0phi0[MAX_NTRACKS];
127  Float_t tracks_cov_z0omega[MAX_NTRACKS];
128  Float_t tracks_cov_z0z0[MAX_NTRACKS];
129  Float_t tracks_cov_tanLd0[MAX_NTRACKS];
130  Float_t tracks_cov_tanLphi0[MAX_NTRACKS];
131  Float_t tracks_cov_tanLomega[MAX_NTRACKS];
132  Float_t tracks_cov_tanLz0[MAX_NTRACKS];
133  Float_t tracks_cov_tanLtanL[MAX_NTRACKS];
134 
135  Int_t tracks_nmcp_linked[MAX_NTRACKS];
136 
137  Int_t tracks_mcp_index_first[MAX_NTRACKS];
138  Int_t tracks_mcp_index_second[MAX_NTRACKS];
139  Int_t tracks_mcp_index_third[MAX_NTRACKS];
140 
141  Float_t tracks_mcp_weight_first[MAX_NTRACKS];
142  Float_t tracks_mcp_weight_second[MAX_NTRACKS];
143  Float_t tracks_mcp_weight_third[MAX_NTRACKS];
144 
145  Float_t tracks_mcp_weight_recp_first[MAX_NTRACKS];
146  Float_t tracks_mcp_weight_recp_second[MAX_NTRACKS];
147  Float_t tracks_mcp_weight_recp_third[MAX_NTRACKS];
148 
149 // Int_t tracks_link_bank_start[MAX_NTRACKS];
150 //
151 // Int_t track_mc_link_bank_nrels;
152 // Int_t track_mc_link_bank_mc_index[MAX_TRACK_MC_RELS];
153 // Float_t track_mc_link_bank_rel_weight[MAX_TRACK_MC_RELS];
154 
155  // List of branches
156 
157  TBranch *b_eventNumber;
158  TBranch *b_runNumber;
159 
160  TBranch *b_nmcp;
161  TBranch *b_mcp_pdg;
162  TBranch *b_mcp_generator_status;
163  TBranch *b_mcp_simulator_status;
164  TBranch *b_mcp_ndaughters;
165  TBranch *b_mcp_nparents;
166  TBranch *b_mcp_mass;
167  TBranch *b_mcp_charge;
168  TBranch *b_mcp_energy;
169  TBranch *b_mcp_px;
170  TBranch *b_mcp_py;
171  TBranch *b_mcp_pz;
172  TBranch *b_mcp_vx;
173  TBranch *b_mcp_vy;
174  TBranch *b_mcp_vz;
175  TBranch *b_mcp_fx;
176  TBranch *b_mcp_fy;
177  TBranch *b_mcp_fz;
178  TBranch *b_mcp_d0;
179  TBranch *b_mcp_phi0;
180  TBranch *b_mcp_omega;
181  TBranch *b_mcp_z0;
182  TBranch *b_mcp_tanL;
183  TBranch *b_mcp_nhit_vxd;
184  TBranch *b_mcp_nhit_sit;
185  TBranch *b_mcp_nhit_ftd;
186  TBranch *b_mcp_nhit_tpc;
187  TBranch *b_mcp_nhit_set;
188  TBranch *b_mcp_nhit_etd;
189  TBranch *b_mcp_ntrk_linked;
190 
191 
192  TBranch *b_mcp_track_index_first;
193  TBranch *b_mcp_track_index_second;
194  TBranch *b_mcp_track_index_third;
195  TBranch *b_mcp_track_weight_first;
196  TBranch *b_mcp_track_weight_second;
197  TBranch *b_mcp_track_weight_third;
198  TBranch *b_mcp_track_weight_recp_first;
199  TBranch *b_mcp_track_weight_recp_second;
200  TBranch *b_mcp_track_weight_recp_third;
201 
202 
203 // TBranch *b_mcp_link_bank_start; //!
204 //
205 // TBranch *b_mc_track_link_bank_nrels; //!
206 // TBranch *b_mc_track_link_bank_track_index; //!
207 // TBranch *b_mc_track_link_bank_rel_weight; //!
208 
209  TBranch *b_ntracks;
210  TBranch *b_tracks_d0;
211  TBranch *b_tracks_phi0;
212  TBranch *b_tracks_omega;
213  TBranch *b_tracks_z0;
214  TBranch *b_tracks_tanL;
215  TBranch *b_tracks_ref_point_x;
216  TBranch *b_tracks_ref_point_y;
217  TBranch *b_tracks_ref_point_z;
218  TBranch *b_tracks_type;
219  TBranch *b_tracks_chi2;
220  TBranch *b_tracks_prob;
221  TBranch *b_tracks_ndf;
222  TBranch *b_tracks_radius_innermost_hit;
223  TBranch *b_tracks_nhit_vxd;
224  TBranch *b_tracks_nhit_sit;
225  TBranch *b_tracks_nhit_ftd;
226  TBranch *b_tracks_nhit_tpc;
227  TBranch *b_tracks_nhit_set;
228  TBranch *b_tracks_nhit_etd;
229  TBranch *b_tracks_cov_d0d0;
230  TBranch *b_tracks_cov_phi0d0;
231  TBranch *b_tracks_cov_phi0phi0;
232  TBranch *b_tracks_cov_omegad0;
233  TBranch *b_tracks_cov_omegaphi0;
234  TBranch *b_tracks_cov_omegaomega;
235  TBranch *b_tracks_cov_z0d0;
236  TBranch *b_tracks_cov_z0phi0;
237  TBranch *b_tracks_cov_z0omega;
238  TBranch *b_tracks_cov_z0z0;
239  TBranch *b_tracks_cov_tanLd0;
240  TBranch *b_tracks_cov_tanLphi0;
241  TBranch *b_tracks_cov_tanLomega;
242  TBranch *b_tracks_cov_tanLz0;
243  TBranch *b_tracks_cov_tanLtanL;
244  TBranch *b_tracks_nmcp_linked;
245 
246  TBranch *b_tracks_mcp_index_first;
247  TBranch *b_tracks_mcp_index_second;
248  TBranch *b_tracks_mcp_index_third;
249  TBranch *b_tracks_mcp_weight_first;
250  TBranch *b_tracks_mcp_weight_second;
251  TBranch *b_tracks_mcp_weight_third;
252  TBranch *b_tracks_mcp_weight_recp_first;
253  TBranch *b_tracks_mcp_weight_recp_second;
254  TBranch *b_tracks_mcp_weight_recp_third;
255 
256 // TBranch *b_tracks_link_bank_start; //!
257 //
258 // TBranch *b_track_mc_link_bank_nrels; //!
259 // TBranch *b_track_mc_link_bank_mc_index; //!
260 // TBranch *b_track_mc_link_bank_rel_weight; //!
261 
262  TrkAnalysisTree(TTree *tree=0);
263 
264  ~TrkAnalysisTree(); // no longer virtual
265  virtual Int_t Cut(Long64_t entry);
266  virtual Int_t GetEntry(Long64_t entry);
267  virtual Long64_t LoadTree(Long64_t entry);
268  virtual void Init(TTree *tree);
269  virtual void CreateBranches(TTree *tree);
270  // virtual void Loop(); // removed as in NTuple.h
271  virtual Bool_t Notify();
272  virtual void Show(Long64_t entry = -1);
273  virtual void Clear();
274 
275 };
276 
277 #endif
278 
279 #ifdef TrkAnalysisTree_cxx
280 TrkAnalysisTree::TrkAnalysisTree(TTree *tree)
281 {
282  if(tree) Init(tree);
283 }
284 
285 TrkAnalysisTree::~TrkAnalysisTree()
286 {
287  if (!fChain) return;
288  delete fChain->GetCurrentFile();
289 }
290 
291 Int_t TrkAnalysisTree::GetEntry(Long64_t entry)
292 {
293  // Read contents of entry.
294  if (!fChain) return 0;
295  return fChain->GetEntry(entry);
296 }
297 Long64_t TrkAnalysisTree::LoadTree(Long64_t entry)
298 {
299  // Set the environment to read one entry
300  if (!fChain) return -5;
301  Long64_t centry = fChain->LoadTree(entry);
302  if (centry < 0) return centry;
303  if (!fChain->InheritsFrom(TChain::Class())) return centry;
304  TChain *chain = (TChain*)fChain;
305  if (chain->GetTreeNumber() != fCurrent) {
306  fCurrent = chain->GetTreeNumber();
307  Notify();
308  }
309  return centry;
310 }
311 
312 void TrkAnalysisTree::CreateBranches(TTree *tree)
313 {
314 
315  tree->Branch("nmcp", &nmcp ,"nmcp/I" );
316 
317  tree->Branch("mcp_pdg", mcp_pdg ,"mcp_pdg[nmcp]/I" );
318  tree->Branch("mcp_generator_status", mcp_generator_status ,"mcp_generator_status[nmcp]/I" );
319  tree->Branch("mcp_simulator_status", mcp_simulator_status ,"mcp_simulator_status[nmcp]/I" );
320  tree->Branch("mcp_ndaughters", mcp_ndaughters ,"mcp_ndaughters[nmcp]/I" );
321  tree->Branch("mcp_nparents", mcp_nparents ,"mcp_nparents[nmcp]/I" );
322  tree->Branch("mcp_mass", mcp_mass ,"mcp_mass[nmcp]/F" );
323  tree->Branch("mcp_charge", mcp_charge ,"mcp_charge[nmcp]/F" );
324  tree->Branch("mcp_energy", mcp_energy ,"mcp_energy[nmcp]/F" );
325  tree->Branch("mcp_px", mcp_px ,"mcp_px[nmcp]/F" );
326  tree->Branch("mcp_py", mcp_py ,"mcp_py[nmcp]/F" );
327  tree->Branch("mcp_pz", mcp_pz ,"mcp_pz[nmcp]/F" );
328  tree->Branch("mcp_vx", mcp_vx ,"mcp_vx[nmcp]/F" );
329  tree->Branch("mcp_vy", mcp_vy ,"mcp_vy[nmcp]/F" );
330  tree->Branch("mcp_vz", mcp_vz ,"mcp_vz[nmcp]/F" );
331  tree->Branch("mcp_fx", mcp_fx ,"mcp_fx[nmcp]/F" );
332  tree->Branch("mcp_fy", mcp_fy ,"mcp_fy[nmcp]/F" );
333  tree->Branch("mcp_fz", mcp_fz ,"mcp_fz[nmcp]/F" );
334  tree->Branch("mcp_d0", mcp_d0 ,"mcp_d0[nmcp]/F" );
335  tree->Branch("mcp_phi0", mcp_phi0 ,"mcp_phi0[nmcp]/F" );
336  tree->Branch("mcp_omega", mcp_omega ,"mcp_omega[nmcp]/F" );
337  tree->Branch("mcp_z0", mcp_z0 ,"mcp_z0[nmcp]/F" );
338  tree->Branch("mcp_tanL", mcp_tanL ,"mcp_tanL[nmcp]/F" );
339  tree->Branch("mcp_nhit_vxd", mcp_nhit_vxd ,"mcp_nhit_vxd[nmcp]/I" );
340  tree->Branch("mcp_nhit_sit", mcp_nhit_sit ,"mcp_nhit_sit[nmcp]/I" );
341  tree->Branch("mcp_nhit_ftd", mcp_nhit_ftd ,"mcp_nhit_ftd[nmcp]/I" );
342  tree->Branch("mcp_nhit_tpc", mcp_nhit_tpc ,"mcp_nhit_tpc[nmcp]/I" );
343  tree->Branch("mcp_nhit_set", mcp_nhit_set ,"mcp_nhit_set[nmcp]/I" );
344  tree->Branch("mcp_nhit_etd", mcp_nhit_etd ,"mcp_nhit_etd[nmcp]/I" );
345  tree->Branch("mcp_ntrk_linked", mcp_ntrk_linked ,"mcp_ntrk_linked[nmcp]/I" );
346 
347  tree->Branch("mcp_track_index_first", mcp_track_index_first ,"mcp_track_index_first[nmcp]/I" );
348  tree->Branch("mcp_track_index_second", mcp_track_index_second ,"mcp_track_index_second[nmcp]/I" );
349  tree->Branch("mcp_track_index_third", mcp_track_index_third ,"mcp_track_index_third[nmcp]/I" );
350  tree->Branch("mcp_track_weight_first", mcp_track_weight_first ,"mcp_track_weight_first[nmcp]/F" );
351  tree->Branch("mcp_track_weight_second", mcp_track_weight_second ,"mcp_track_weight_second[nmcp]/F" );
352  tree->Branch("mcp_track_weight_third", mcp_track_weight_third ,"mcp_track_weight_third[nmcp]/F" );
353  tree->Branch("mcp_track_weight_recp_first", mcp_track_weight_recp_first ,"mcp_track_weight_recp_first[nmcp]/F" );
354  tree->Branch("mcp_track_weight_recp_second", mcp_track_weight_recp_second ,"mcp_track_weight_recp_second[nmcp]/F" );
355  tree->Branch("mcp_track_weight_recp_third", mcp_track_weight_recp_third ,"mcp_track_weight_recp_third[nmcp]/F" );
356 
357 
358 // tree->Branch("mcp_link_bank_start", mcp_link_bank_start ,"mcp_link_bank_start[nmcp]/I" );
359 
360 // tree->Branch("mc_track_link_bank_nrels", &mc_track_link_bank_nrels ,"mc_track_link_bank_nrels/I" );
361 // tree->Branch("mc_track_link_bank_track_index", mc_track_link_bank_track_index ,"mc_track_link_bank_track_index[mc_track_link_bank_nrels]/I" );
362 // tree->Branch("mc_track_link_bank_rel_weight", mc_track_link_bank_rel_weight ,"mc_track_link_bank_rel_weight[mc_track_link_bank_nrels]/F" );
363 
364  tree->Branch("ntracks", &ntracks ,"ntracks/I" );
365  tree->Branch("tracks_d0", tracks_d0 ,"tracks_d0[ntracks]/F" );
366  tree->Branch("tracks_phi0", tracks_phi0 ,"tracks_phi0[ntracks]/F" );
367  tree->Branch("tracks_omega", tracks_omega ,"tracks_omega[ntracks]/F" );
368  tree->Branch("tracks_z0", tracks_z0 ,"tracks_z0[ntracks]/F" );
369  tree->Branch("tracks_tanL", tracks_tanL ,"tracks_tanL[ntracks]/F" );
370  tree->Branch("tracks_ref_point_x", tracks_ref_point_x ,"tracks_ref_point_x[ntracks]/F" );
371  tree->Branch("tracks_ref_point_y", tracks_ref_point_y ,"tracks_ref_point_y[ntracks]/F" );
372  tree->Branch("tracks_ref_point_z", tracks_ref_point_z ,"tracks_ref_point_z[ntracks]/F" );
373  tree->Branch("tracks_type", tracks_type ,"tracks_type[ntracks]/I" );
374  tree->Branch("tracks_chi2", tracks_chi2 ,"tracks_chi2[ntracks]/F" );
375  tree->Branch("tracks_prob", tracks_prob ,"tracks_prob[ntracks]/F" );
376  tree->Branch("tracks_ndf", tracks_ndf ,"tracks_ndf[ntracks]/I" );
377  tree->Branch("tracks_radius_innermost_hit", tracks_radius_innermost_hit ,"tracks_radius_innermost_hit[ntracks]/F" );
378  tree->Branch("tracks_nhit_vxd", tracks_nhit_vxd ,"tracks_nhit_vxd[ntracks]/I" );
379  tree->Branch("tracks_nhit_sit", tracks_nhit_sit ,"tracks_nhit_sit[ntracks]/I" );
380  tree->Branch("tracks_nhit_ftd", tracks_nhit_ftd ,"tracks_nhit_ftd[ntracks]/I" );
381  tree->Branch("tracks_nhit_tpc", tracks_nhit_tpc ,"tracks_nhit_tpc[ntracks]/I" );
382  tree->Branch("tracks_nhit_set", tracks_nhit_set ,"tracks_nhit_set[ntracks]/I" );
383  tree->Branch("tracks_nhit_etd", tracks_nhit_etd ,"tracks_nhit_etd[ntracks]/I" );
384  tree->Branch("tracks_cov_d0d0", tracks_cov_d0d0 ,"tracks_cov_d0d0[ntracks]/F" );
385  tree->Branch("tracks_cov_phi0d0", tracks_cov_phi0d0 ,"tracks_cov_phi0d0[ntracks]/F" );
386  tree->Branch("tracks_cov_phi0phi0", tracks_cov_phi0phi0 ,"tracks_cov_phi0phi0[ntracks]/F" );
387  tree->Branch("tracks_cov_omegad0", tracks_cov_omegad0 ,"tracks_cov_omegad0[ntracks]/F" );
388  tree->Branch("tracks_cov_omegaphi0", tracks_cov_omegaphi0 ,"tracks_cov_omegaphi0[ntracks]/F" );
389  tree->Branch("tracks_cov_omegaomega", tracks_cov_omegaomega ,"tracks_cov_omegaomega[ntracks]/F" );
390  tree->Branch("tracks_cov_z0d0", tracks_cov_z0d0 ,"tracks_cov_z0d0[ntracks]/F" );
391  tree->Branch("tracks_cov_z0phi0", tracks_cov_z0phi0 ,"tracks_cov_z0phi0[ntracks]/F" );
392  tree->Branch("tracks_cov_z0omega", tracks_cov_z0omega ,"tracks_cov_z0omega[ntracks]/F" );
393  tree->Branch("tracks_cov_z0z0", tracks_cov_z0z0 ,"tracks_cov_z0z0[ntracks]/F" );
394  tree->Branch("tracks_cov_tanLd0", tracks_cov_tanLd0 ,"tracks_cov_tanLd0[ntracks]/F" );
395  tree->Branch("tracks_cov_tanLphi0", tracks_cov_tanLphi0 ,"tracks_cov_tanLphi0[ntracks]/F" );
396  tree->Branch("tracks_cov_tanLomega", tracks_cov_tanLomega ,"tracks_cov_tanLomega[ntracks]/F" );
397  tree->Branch("tracks_cov_tanLz0", tracks_cov_tanLz0 ,"tracks_cov_tanLz0[ntracks]/F" );
398  tree->Branch("tracks_cov_tanLtanL", tracks_cov_tanLtanL ,"tracks_cov_tanLtanL[ntracks]/F" );
399  tree->Branch("tracks_nmcp_linked", tracks_nmcp_linked ,"tracks_nmcp_linked[ntracks]/I" );
400 
401  tree->Branch("tracks_mcp_index_first", tracks_mcp_index_first ,"tracks_mcp_index_first[ntracks]/I" );
402  tree->Branch("tracks_mcp_index_second", tracks_mcp_index_second ,"tracks_mcp_index_second[ntracks]/I" );
403  tree->Branch("tracks_mcp_index_third", tracks_mcp_index_third ,"tracks_mcp_index_third[ntracks]/I" );
404  tree->Branch("tracks_mcp_weight_first", tracks_mcp_weight_first ,"tracks_mcp_weight_first[ntracks]/F" );
405  tree->Branch("tracks_mcp_weight_second", tracks_mcp_weight_second ,"tracks_mcp_weight_second[ntracks]/F" );
406  tree->Branch("tracks_mcp_weight_third", tracks_mcp_weight_third ,"tracks_mcp_weight_third[ntracks]/F" );
407  tree->Branch("tracks_mcp_weight_recp_first", tracks_mcp_weight_recp_first ,"tracks_mcp_weight_recp_first[ntracks]/F" );
408  tree->Branch("tracks_mcp_weight_recp_second", tracks_mcp_weight_recp_second ,"tracks_mcp_weight_recp_second[ntracks]/F" );
409  tree->Branch("tracks_mcp_weight_recp_third", tracks_mcp_weight_recp_third ,"tracks_mcp_weight_recp_third[ntracks]/F" );
410 
411 // tree->Branch("tracks_link_bank_start", tracks_link_bank_start ,"tracks_link_bank_start[ntracks]/I" );
412 //
413 // tree->Branch("track_mc_link_bank_nrels", &track_mc_link_bank_nrels ,"track_mc_link_bank_nrels/I" );
414 // tree->Branch("track_mc_link_bank_mc_index", track_mc_link_bank_mc_index ,"track_mc_link_bank_mc_index[track_mc_link_bank_nrels]/I" );
415 // tree->Branch("track_mc_link_bank_rel_weight", track_mc_link_bank_rel_weight ,"track_mc_link_bank_rel_weight[track_mc_link_bank_nrels]/F" );
416 
417 
418 
419 }
420 
421 void TrkAnalysisTree::Init(TTree *tree)
422 {
423  // The Init() function is called when the selector needs to initialize
424  // a new tree or chain. Typically here the branch addresses and branch
425  // pointers of the tree will be set.
426  // It is normally not necessary to make changes to the generated
427  // code, but the routine can be extended by the user if needed.
428  // Init() will be called many times when running on PROOF
429  // (once per file to be processed).
430 
431  std::cout << " tree address " << tree << std::endl;
432 
433  // Set branch addresses and branch pointers
434  if (!tree) {
435  std::cout << " tree address is NULL exit 1 called from " << __FILE__ << " line " << __LINE__ << std::endl;
436  exit(1);
437 
438  }
439 
440  tree->Print();
441 
442  fChain = tree;
443  fCurrent = -1;
444  fChain->SetMakeClass(1);
445 
446  fChain->SetBranchAddress("eventNumber", &eventNumber, &b_eventNumber );
447  fChain->SetBranchAddress("runNumber", &runNumber, &b_runNumber );
448 
449  fChain->SetBranchAddress("nmcp", &nmcp, &b_nmcp );
450 
451  fChain->SetBranchAddress("mcp_pdg", mcp_pdg, &b_mcp_pdg );
452  fChain->SetBranchAddress("mcp_generator_status", mcp_generator_status, &b_mcp_generator_status );
453  fChain->SetBranchAddress("mcp_simulator_status", mcp_simulator_status, &b_mcp_simulator_status );
454  fChain->SetBranchAddress("mcp_ndaughters", mcp_ndaughters, &b_mcp_ndaughters );
455  fChain->SetBranchAddress("mcp_nparents", mcp_nparents, &b_mcp_nparents );
456  fChain->SetBranchAddress("mcp_mass", mcp_mass, &b_mcp_mass );
457  fChain->SetBranchAddress("mcp_charge", mcp_charge, &b_mcp_charge );
458  fChain->SetBranchAddress("mcp_energy", mcp_energy, &b_mcp_energy );
459  fChain->SetBranchAddress("mcp_px", mcp_px, &b_mcp_px );
460  fChain->SetBranchAddress("mcp_py", mcp_py, &b_mcp_py );
461  fChain->SetBranchAddress("mcp_pz", mcp_pz, &b_mcp_pz );
462  fChain->SetBranchAddress("mcp_vx", mcp_vx, &b_mcp_vx );
463  fChain->SetBranchAddress("mcp_vy", mcp_vy, &b_mcp_vy );
464  fChain->SetBranchAddress("mcp_vz", mcp_vz, &b_mcp_vz );
465  fChain->SetBranchAddress("mcp_fx", mcp_fx, &b_mcp_fx );
466  fChain->SetBranchAddress("mcp_fy", mcp_fy, &b_mcp_fy );
467  fChain->SetBranchAddress("mcp_fz", mcp_fz, &b_mcp_fz );
468  fChain->SetBranchAddress("mcp_d0", mcp_d0, &b_mcp_d0 );
469  fChain->SetBranchAddress("mcp_phi0", mcp_phi0, &b_mcp_phi0 );
470  fChain->SetBranchAddress("mcp_omega", mcp_omega, &b_mcp_omega );
471  fChain->SetBranchAddress("mcp_z0", mcp_z0, &b_mcp_z0 );
472  fChain->SetBranchAddress("mcp_tanL", mcp_tanL, &b_mcp_tanL );
473  fChain->SetBranchAddress("mcp_nhit_vxd", mcp_nhit_vxd, &b_mcp_nhit_vxd );
474  fChain->SetBranchAddress("mcp_nhit_sit", mcp_nhit_sit, &b_mcp_nhit_sit );
475  fChain->SetBranchAddress("mcp_nhit_ftd", mcp_nhit_ftd, &b_mcp_nhit_ftd );
476  fChain->SetBranchAddress("mcp_nhit_tpc", mcp_nhit_tpc, &b_mcp_nhit_tpc );
477  fChain->SetBranchAddress("mcp_nhit_set", mcp_nhit_set, &b_mcp_nhit_set );
478  fChain->SetBranchAddress("mcp_nhit_etd", mcp_nhit_etd, &b_mcp_nhit_etd );
479  fChain->SetBranchAddress("mcp_ntrk_linked", mcp_ntrk_linked, &b_mcp_ntrk_linked );
480  fChain->SetBranchAddress("mcp_track_index_first", mcp_track_index_first, &b_mcp_track_index_first );
481  fChain->SetBranchAddress("mcp_track_index_second", mcp_track_index_second, &b_mcp_track_index_second );
482  fChain->SetBranchAddress("mcp_track_index_third", mcp_track_index_third, &b_mcp_track_index_third );
483  fChain->SetBranchAddress("mcp_track_weight_first", mcp_track_weight_first, &b_mcp_track_weight_first );
484  fChain->SetBranchAddress("mcp_track_weight_second", mcp_track_weight_second, &b_mcp_track_weight_second );
485  fChain->SetBranchAddress("mcp_track_weight_third", mcp_track_weight_third, &b_mcp_track_weight_third );
486  fChain->SetBranchAddress("mcp_track_weight_recp_first", mcp_track_weight_recp_first, &b_mcp_track_weight_recp_first );
487  fChain->SetBranchAddress("mcp_track_weight_recp_second", mcp_track_weight_recp_second, &b_mcp_track_weight_recp_second );
488  fChain->SetBranchAddress("mcp_track_weight_recp_third", mcp_track_weight_recp_third, &b_mcp_track_weight_recp_third );
489 
490 // fChain->SetBranchAddress("mcp_link_bank_start", mcp_link_bank_start, &b_mcp_link_bank_start );
491 //
492 // fChain->SetBranchAddress("mc_track_link_bank_nrels", &mc_track_link_bank_nrels, &b_mc_track_link_bank_nrels );
493 // fChain->SetBranchAddress("mc_track_link_bank_track_index", mc_track_link_bank_track_index, &b_mc_track_link_bank_track_index );
494 // fChain->SetBranchAddress("mc_track_link_bank_rel_weight", mc_track_link_bank_rel_weight, &b_mc_track_link_bank_rel_weight );
495 
496 
497  fChain->SetBranchAddress("ntracks", &ntracks, &b_ntracks );
498  fChain->SetBranchAddress("tracks_d0", tracks_d0, &b_tracks_d0);
499  fChain->SetBranchAddress("tracks_phi0", tracks_phi0, &b_tracks_phi0 );
500  fChain->SetBranchAddress("tracks_omega", tracks_omega, &b_tracks_omega);
501  fChain->SetBranchAddress("tracks_z0", tracks_z0, &b_tracks_z0);
502  fChain->SetBranchAddress("tracks_tanL", tracks_tanL, &b_tracks_tanL);
503  fChain->SetBranchAddress("tracks_ndf", tracks_ndf, &b_tracks_ndf );
504  fChain->SetBranchAddress("tracks_chi2", tracks_chi2, &b_tracks_chi2);
505  fChain->SetBranchAddress("tracks_prob", tracks_prob, &b_tracks_prob);
506  fChain->SetBranchAddress("tracks_type", tracks_type, &b_tracks_type);
507  fChain->SetBranchAddress("tracks_ref_point_x", tracks_ref_point_x, &b_tracks_ref_point_x);
508  fChain->SetBranchAddress("tracks_ref_point_y", tracks_ref_point_y, &b_tracks_ref_point_y);
509  fChain->SetBranchAddress("tracks_ref_point_z", tracks_ref_point_z, &b_tracks_ref_point_z);
510  fChain->SetBranchAddress("tracks_type", tracks_type ,&b_tracks_type );
511  fChain->SetBranchAddress("tracks_chi2", tracks_chi2, &b_tracks_chi2 );
512  fChain->SetBranchAddress("tracks_ndf", tracks_ndf, &b_tracks_ndf );
513  fChain->SetBranchAddress("tracks_radius_innermost_hit", tracks_radius_innermost_hit, &b_tracks_radius_innermost_hit );
514  fChain->SetBranchAddress("tracks_nhit_vxd", tracks_nhit_vxd, &b_tracks_nhit_vxd );
515  fChain->SetBranchAddress("tracks_nhit_sit", tracks_nhit_sit, &b_tracks_nhit_sit );
516  fChain->SetBranchAddress("tracks_nhit_ftd", tracks_nhit_ftd, &b_tracks_nhit_ftd );
517  fChain->SetBranchAddress("tracks_nhit_tpc", tracks_nhit_tpc, &b_tracks_nhit_tpc );
518  fChain->SetBranchAddress("tracks_nhit_set", tracks_nhit_set, &b_tracks_nhit_set );
519  fChain->SetBranchAddress("tracks_nhit_etd", tracks_nhit_etd, &b_tracks_nhit_etd );
520  fChain->SetBranchAddress("tracks_cov_d0d0", tracks_cov_d0d0, &b_tracks_cov_d0d0 );
521  fChain->SetBranchAddress("tracks_cov_phi0d0", tracks_cov_phi0d0, &b_tracks_cov_phi0d0 );
522  fChain->SetBranchAddress("tracks_cov_phi0phi0", tracks_cov_phi0phi0, &b_tracks_cov_phi0phi0 );
523  fChain->SetBranchAddress("tracks_cov_omegad0", tracks_cov_omegad0, &b_tracks_cov_omegad0 );
524  fChain->SetBranchAddress("tracks_cov_omegaphi0", tracks_cov_omegaphi0, &b_tracks_cov_omegaphi0 );
525  fChain->SetBranchAddress("tracks_cov_omegaomega", tracks_cov_omegaomega, &b_tracks_cov_omegaomega );
526  fChain->SetBranchAddress("tracks_cov_z0d0", tracks_cov_z0d0, &b_tracks_cov_z0d0 );
527  fChain->SetBranchAddress("tracks_cov_z0phi0", tracks_cov_z0phi0, &b_tracks_cov_z0phi0 );
528  fChain->SetBranchAddress("tracks_cov_z0omega", tracks_cov_z0omega, &b_tracks_cov_z0omega );
529  fChain->SetBranchAddress("tracks_cov_z0z0", tracks_cov_z0z0, &b_tracks_cov_z0z0) ;
530  fChain->SetBranchAddress("tracks_cov_tanLd0", tracks_cov_tanLd0, &b_tracks_cov_tanLd0 );
531  fChain->SetBranchAddress("tracks_cov_tanLphi0", tracks_cov_tanLphi0, &b_tracks_cov_tanLphi0 );
532  fChain->SetBranchAddress("tracks_cov_tanLomega", tracks_cov_tanLomega, &b_tracks_cov_tanLomega );
533  fChain->SetBranchAddress("tracks_cov_tanLz0", tracks_cov_tanLz0, &b_tracks_cov_tanLz0 );
534  fChain->SetBranchAddress("tracks_cov_tanLtanL", tracks_cov_tanLtanL, &b_tracks_cov_tanLtanL );
535  fChain->SetBranchAddress("tracks_nmcp_linked", tracks_nmcp_linked, &b_tracks_nmcp_linked );
536 
537  fChain->SetBranchAddress("tracks_mcp_index_first", tracks_mcp_index_first, &b_tracks_mcp_index_first );
538  fChain->SetBranchAddress("tracks_mcp_index_second", tracks_mcp_index_second, &b_tracks_mcp_index_second );
539  fChain->SetBranchAddress("tracks_mcp_index_third", tracks_mcp_index_third, &b_tracks_mcp_index_third );
540  fChain->SetBranchAddress("tracks_mcp_weight_first", tracks_mcp_weight_first, &b_tracks_mcp_weight_first );
541  fChain->SetBranchAddress("tracks_mcp_weight_second", tracks_mcp_weight_second, &b_tracks_mcp_weight_second );
542  fChain->SetBranchAddress("tracks_mcp_weight_third", tracks_mcp_weight_third, &b_tracks_mcp_weight_third );
543  fChain->SetBranchAddress("tracks_mcp_weight_recp_first", tracks_mcp_weight_recp_first, &b_tracks_mcp_weight_recp_first );
544  fChain->SetBranchAddress("tracks_mcp_weight_recp_second", tracks_mcp_weight_recp_second, &b_tracks_mcp_weight_recp_second );
545  fChain->SetBranchAddress("tracks_mcp_weight_recp_third", tracks_mcp_weight_recp_third, &b_tracks_mcp_weight_recp_third );
546 
547 // fChain->SetBranchAddress("tracks_link_bank_start", tracks_link_bank_start, &b_tracks_link_bank_start );
548 //
549 // fChain->SetBranchAddress("track_mc_link_bank_nrels", &track_mc_link_bank_nrels, &b_track_mc_link_bank_nrels );
550 // fChain->SetBranchAddress("track_mc_link_bank_mc_index", track_mc_link_bank_mc_index, &b_track_mc_link_bank_mc_index );
551 // fChain->SetBranchAddress("track_mc_link_bank_rel_weight", track_mc_link_bank_rel_weight, &b_track_mc_link_bank_rel_weight );
552 
553 
554 
555 
556 
557 
558 
559  Notify();
560 }
561 
562 Bool_t TrkAnalysisTree::Notify()
563 {
564  // The Notify() function is called when a new file is opened. This
565  // can be either for a new TTree in a TChain or when when a new TTree
566  // is started when using PROOF. It is normally not necessary to make changes
567  // to the generated code, but the routine can be extended by the
568  // user if needed. The return value is currently not used.
569 
570  return kTRUE;
571 }
572 
573 void TrkAnalysisTree::Show(Long64_t entry)
574 {
575  // Print contents of entry.
576  // If entry is not specified, print current entry
577  if (!fChain) return;
578  fChain->Show(entry);
579 }
580 Int_t TrkAnalysisTree::Cut(Long64_t entry)
581 {
582  // This function may be called from Loop.
583  // returns 1 if entry is accepted.
584  // returns -1 otherwise.
585  return 1;
586 }
587 
588 void TrkAnalysisTree::Clear(){
589 
590  eventNumber = -1;
591  runNumber = -1;
592 
593  nmcp = 0;
594 
595  for (int i=0; i<MAX_MCPARTICLES; ++i) {
596 
597  mcp_pdg[i]=0;
598  mcp_generator_status[i]=0;
599  mcp_simulator_status[i]=0;
600  mcp_ndaughters[i]=0;
601  mcp_nparents[i]=0;
602  mcp_mass[i]=0;
603  mcp_charge[i]=0;
604  mcp_energy[i]=0;
605  mcp_px[i]=0;
606  mcp_py[i]=0;
607  mcp_pz[i]=0;
608  mcp_vx[i]=0;
609  mcp_vy[i]=0;
610  mcp_vz[i]=0;
611  mcp_fx[i]=0;
612  mcp_fy[i]=0;
613  mcp_fz[i]=0;
614  mcp_d0[i]=0;
615  mcp_phi0[i]=0;
616  mcp_omega[i]=0;
617  mcp_z0[i]=0;
618  mcp_tanL[i]=0;
619  mcp_nhit_vxd[i]=0;
620  mcp_nhit_sit[i]=0;
621  mcp_nhit_ftd[i]=0;
622  mcp_nhit_tpc[i]=0;
623  mcp_nhit_set[i]=0;
624  mcp_nhit_etd[i]=0;
625  mcp_ntrk_linked[i]=0;
626  mcp_track_index_first[i]=-1;
627  mcp_track_index_second[i]=-1;
628  mcp_track_index_third[i]=-1;
629  mcp_track_weight_first[i]=0;
630  mcp_track_weight_second[i]=0;
631  mcp_track_weight_third[i]=0;
632  mcp_track_weight_recp_first[i]=0;
633  mcp_track_weight_recp_second[i]=0;
634  mcp_track_weight_recp_third[i]=0;
635 
636  // mcp_link_bank_start[i]=0;
637 
638  }
639 
640 // mc_track_link_bank_nrels = 0;
641 //
642 // for (int i=0; i<MAX_MC_TRACK_RELS; ++i) {
643 //
644 //
645 // mc_track_link_bank_track_index[i] = 0;
646 // mc_track_link_bank_rel_weight[i] = 0.0;
647 //
648 // }
649 
650  ntracks = 0;
651 
652  for (int i=0; i<MAX_NTRACKS; ++i) {
653 
654  tracks_d0[i]=0;
655  tracks_phi0[i]=0;
656  tracks_omega[i]=0;
657  tracks_z0[i]=0;
658  tracks_tanL[i]=0;
659  tracks_ref_point_x[i]=0;
660  tracks_ref_point_y[i]=0;
661  tracks_ref_point_z[i]=0;
662  tracks_type[i]=0;
663  tracks_chi2[i]=0;
664  tracks_prob[i]=0;
665  tracks_ndf[i]=0;
666  tracks_radius_innermost_hit[i]=0;
667  tracks_nhit_vxd[i]=0;
668  tracks_nhit_sit[i]=0;
669  tracks_nhit_ftd[i]=0;
670  tracks_nhit_tpc[i]=0;
671  tracks_nhit_set[i]=0;
672  tracks_nhit_etd[i]=0;
673  tracks_cov_d0d0[i]=0;
674  tracks_cov_phi0d0[i]=0;
675  tracks_cov_phi0phi0[i]=0;
676  tracks_cov_omegad0[i]=0;
677  tracks_cov_omegaphi0[i]=0;
678  tracks_cov_omegaomega[i]=0;
679  tracks_cov_z0d0[i]=0;
680  tracks_cov_z0phi0[i]=0;
681  tracks_cov_z0omega[i]=0;
682  tracks_cov_z0z0[i]=0;
683  tracks_cov_tanLd0[i]=0;
684  tracks_cov_tanLphi0[i]=0;
685  tracks_cov_tanLomega[i]=0;
686  tracks_cov_tanLz0[i]=0;
687  tracks_cov_tanLtanL[i]=0;
688  tracks_nmcp_linked[i]=0;
689  tracks_mcp_index_first[i]=-1;
690  tracks_mcp_index_second[i]=-1;
691  tracks_mcp_index_third[i]=-1;
692  tracks_mcp_weight_first[i]=0;
693  tracks_mcp_weight_second[i]=0;
694  tracks_mcp_weight_third[i]=0;
695  tracks_mcp_weight_recp_first[i]=0;
696  tracks_mcp_weight_recp_second[i]=0;
697  tracks_mcp_weight_recp_third[i]=0;
698 // tracks_link_bank_start[i]=0;
699 
700  }
701 
702 
703 // track_mc_link_bank_nrels=0;
704 //
705 // for (int i=0; i<MAX_TRACK_MC_RELS; ++i) {
706 //
707 // track_mc_link_bank_mc_index[i]=0;
708 // track_mc_link_bank_rel_weight[i]=0;
709 //
710 // }
711 
712 
713 }
714 
715 #endif // #ifdef TrkAnalysisTree_cxx
Int_t fCurrent
pointer to the analyzed TTree or TChain
Definition: TrkAnalysisTree.h:27
Definition: TrkAnalysisTree.h:23
Int_t nmcp
current Tree number in a TChain
Definition: TrkAnalysisTree.h:31