47 const std::string fnamecos =
"defname:prod_limitedcaf_R16-03-03-prod2reco.a_fd_cosmic_full_nueveto_v1_goodruns with limit 100000 with stride 2";
49 const std::string fnamenc =
"defname:prod_caf_R16-03-03-prod2reco.f_fd_genie_nonswap_fhc_nova_v08_period2_v1_prod2-snapshot with limit 1000";
53 TFile tMVALoad(
"TrainingSA.root",
"RECREATE");
55 TTree *ncTree =
new TTree(
"ncTree",
"NC event tree");
56 TTree *muTree =
new TTree(
"muTree",
"Numu event tree");
57 TTree *neTree =
new TTree(
"neTree",
"Nue event tree");
58 TTree *csTree =
new TTree(
"csTree",
"Cosmic event tree");
95 float sparsenessasymm;
97 float hitsperplaneasymm;
102 float muclosestapproach;
112 float shwmaxplanecont;
113 float shwmaxplanegap;
184 csTree->Branch(
"Run",&Run,
"Run/I");
185 csTree->Branch(
"SubRun",&SubRun,
"SubRun/I");
186 csTree->Branch(
"Evt",&Evt,
"Evt/I");
187 csTree->Branch(
"SubEvt",&SubEvt,
"SubEvt/I");
188 csTree->Branch(
"IsCC",&IsCC,
"IsCC/I");
190 csTree->Branch(
"nueid",&nueid,
"nueid/F");
191 csTree->Branch(
"numuid",&numuid,
"numuid/F");
192 csTree->Branch(
"nutauid",&nutauid,
"nutauid/F");
194 csTree->Branch(
"pngptp",&pngptp,
"pngptp/F");
195 csTree->Branch(
"starttop",&starttop,
"starttop/F");
196 csTree->Branch(
"startbottom",&startbottom,
"startbottom/F");
197 csTree->Branch(
"startfront",&startfront,
"startfront/F");
198 csTree->Branch(
"startback",&startback,
"startback/F");
199 csTree->Branch(
"startwest",&startwest,
"startwest/F");
200 csTree->Branch(
"starteast",&starteast,
"starteast/F");
201 csTree->Branch(
"stoptop",&stoptop,
"stoptop/F");
202 csTree->Branch(
"stopbottom",&stopbottom,
"stopbottom/F");
203 csTree->Branch(
"stopfront",&stopfront,
"stopfront/F");
204 csTree->Branch(
"stopback",&stopback,
"stopback/F");
205 csTree->Branch(
"stopwest",&stopwest,
"stopwest/F");
206 csTree->Branch(
"stopeast",&stopeast,
"stopeast/F");
207 csTree->Branch(
"cosdang",&cosdang,
"cosdang/F");
208 csTree->Branch(
"vtxdoca",&vtxdoca,
"vtxdoca/F");
209 csTree->Branch(
"prongmaxx",&prongmaxx,
"prongmaxx/F");
210 csTree->Branch(
"prongmaxy",&prongmaxy,
"prongmaxy/F");
211 csTree->Branch(
"prongmaxz",&prongmaxz,
"prongmaxz/F");
212 csTree->Branch(
"prongminx",&prongminx,
"prongminx/F");
213 csTree->Branch(
"prongminy",&prongminy,
"prongminy/F");
214 csTree->Branch(
"prongminz",&prongminz,
"prongminz/F");
215 csTree->Branch(
"sparsenessasymm",&sparsenessasymm,
"sparsenessasymm/F");
216 csTree->Branch(
"hitsperplaneasymm",&hitsperplaneasymm,
"hitsperplaneasymm/F");
217 csTree->Branch(
"hitsperplane",&hitsperplane,
"hitsperplane/F");
218 csTree->Branch(
"musliceidx",&musliceidx,
"musliceidx/F");
219 csTree->Branch(
"muanglediff",&muanglediff,
"muanglediff/F");
220 csTree->Branch(
"mutimediff",&mutimediff,
"mutimediff/F");
221 csTree->Branch(
"muclosestapproach",&muclosestapproach,
"muclosestapproach/F");
223 csTree->Branch(
"shwnplane",&shwnplane,
"shwnplane/F");
224 csTree->Branch(
"shwmaxplanecont",&shwmaxplanecont,
"shwmaxplanecont/F");
225 csTree->Branch(
"shwmaxplanegap",&shwmaxplanegap,
"shwmaxplanegap/F");
226 csTree->Branch(
"shwstartX",&shwstartX,
"shwstartX/F");
227 csTree->Branch(
"shwstartY",&shwstartY,
"shwstartY/F");
228 csTree->Branch(
"shwstartZ",&shwstartZ,
"shwstartZ/F");
229 csTree->Branch(
"shwdirX",&shwdirX,
"shwdirX/F");
230 csTree->Branch(
"shwdirZ",&shwdirZ,
"shwdirZ/F");
231 csTree->Branch(
"shwNplaneX",&shwNplaneX,
"shwNplaneX/F");
232 csTree->Branch(
"shwNplaneY",&shwNplaneY,
"shwNplaneY/F");
233 csTree->Branch(
"shwstopX",&shwstopX,
"shwstopX/F");
234 csTree->Branch(
"shwstopY",&shwstopY,
"shwstopY/F");
235 csTree->Branch(
"shwstopZ",&shwstopZ,
"shwstopZ/F");
237 csTree->Branch(
"sumtx",&sumtx,
"sumtx/F");
238 csTree->Branch(
"sumty",&sumty,
"sumty/F");
239 csTree->Branch(
"ewsumtx",&ewsumtx,
"ewsumtx/F");
240 csTree->Branch(
"ewsumty",&ewsumty,
"ewsumty/F");
241 csTree->Branch(
"cossumtx",&cossumtx,
"cossumtx/F");
242 csTree->Branch(
"cossumty",&cossumty,
"cossumty/F");
243 csTree->Branch(
"cosewsumtx",&cosewsumtx,
"cosewsumtx/F");
244 csTree->Branch(
"cosewsumty",&cosewsumty,
"cosewsumty/F");
245 csTree->Branch(
"angsumtx",&angsumtx,
"angsumtx/F");
246 csTree->Branch(
"angsumty",&angsumty,
"angsumty/F");
247 csTree->Branch(
"angewsumtx",&angewsumtx,
"angewsumtx/F");
248 csTree->Branch(
"angewsumty",&angewsumty,
"angewsumty/F");
250 csTree->Branch(
"numupid",&numupid,
"numupid/F");
252 csTree->Branch(
"rempid",&rempid,
"rempid/F");
253 csTree->Branch(
"remlen",&remlen,
"remlen/F");
255 csTree->Branch(
"ncalhit",&ncalhit,
"ncalhit/F");
257 csTree->Branch(
"ncontplanes",&ncontplanes,
"ncontplanes/F");
258 csTree->Branch(
"starttime",&starttime,
"starttime/F");
259 csTree->Branch(
"endtime",&endtime,
"endtime/F");
260 csTree->Branch(
"meantime",&meantime,
"meantime/F");
261 csTree->Branch(
"meanposX",&meanposX,
"meanposX/F");
262 csTree->Branch(
"meanposY",&meanposY,
"meanposY/F");
263 csTree->Branch(
"meanposZ",&meanposZ,
"meanposZ/F");
265 csTree->Branch(
"vtxTime",&vtxTime,
"vtxTime/F");
266 csTree->Branch(
"vtxX",&vtxX,
"vtxX/F");
267 csTree->Branch(
"vtxY",&vtxY,
"vtxY/F");
268 csTree->Branch(
"vtxZ",&vtxZ,
"vtxZ/F");
269 csTree->Branch(
"vtxpngNhit",&vtxpngNhit,
"vtxpngNhit/F");
270 csTree->Branch(
"vtxpngNhitX",&vtxpngNhitX,
"vtxpngNhitX/F");
271 csTree->Branch(
"vtxpngNhitY",&vtxpngNhitY,
"vtxpngNhitY/F");
273 csTree->Branch(
"ncid",&ncid,
"ncid/F");
274 csTree->Branch(
"cosmicid",&cosmicid,
"cosmicid/F");
275 csTree->Branch(
"partptp",&partptp,
"partptp/F");
276 csTree->Branch(
"shwnhit",&shwnhit,
"shwnhit/F");
277 csTree->Branch(
"shwnhitx",&shwnhitx,
"shwnhitx/F");
278 csTree->Branch(
"shwnhity",&shwnhity,
"shwnhity/F");
279 csTree->Branch(
"shwxminusy",&shwxminusy,
"shwxminusy/F");
280 csTree->Branch(
"shwxplusy",&shwxplusy,
"shwxplusy/F");
281 csTree->Branch(
"shwxovery",&shwxovery,
"shwxovery/F");
282 csTree->Branch(
"shwcalE",&shwcalE,
"shwcalE/F");
283 csTree->Branch(
"shwdirY",&shwdirY,
"shwdirY/F");
284 csTree->Branch(
"shwlen",&shwlen,
"shwlen/F");
285 csTree->Branch(
"shwwwidth",&shwwwidth,
"shwwwidth/F");
286 csTree->Branch(
"shwGap",&shwGap,
"shwGap/F");
287 csTree->Branch(
"nshwlid",&nshwlid,
"nshwlid/F");
288 csTree->Branch(
"nmiphit",&nmiphit,
"nmiphit/F");
290 csTree->Branch(
"anglekal",&anglekal,
"anglekal/F");
291 csTree->Branch(
"dirFY",&dirFY,
"dirFY/F");
292 csTree->Branch(
"boxmaxFY",&boxmaxFY,
"boxmaxFY/F");
293 csTree->Branch(
"kalnhit",&kalnhit,
"kalnhit/F");
294 csTree->Branch(
"kallen",&kallen,
"kallen/F");
295 csTree->Branch(
"kalfwdcell",&kalfwdcell,
"kalfwdcell/F");
296 csTree->Branch(
"kalbakcell",&kalbakcell,
"kalbakcell/F");
297 csTree->Branch(
"scatt",&scatt,
"scatt/F");
298 csTree->Branch(
"nhit",&nhit,
"nhit/F");
299 csTree->Branch(
"energy",&energy,
"energy/F");
300 csTree->Branch(
"boxminFY",&boxminFY,
"boxminFY/F");
301 csTree->Branch(
"nkal",&nkal,
"nkal/F");
304 ncTree->Branch(
"Run",&Run,
"Run/I");
305 ncTree->Branch(
"SubRun",&SubRun,
"SubRun/I");
306 ncTree->Branch(
"Evt",&Evt,
"Evt/I");
307 ncTree->Branch(
"SubEvt",&SubEvt,
"SubEvt/I");
308 ncTree->Branch(
"IsCC",&IsCC,
"IsCC/I");
310 ncTree->Branch(
"sumtx",&sumtx,
"sumtx/F");
311 ncTree->Branch(
"sumty",&sumty,
"sumty/F");
312 ncTree->Branch(
"ewsumtx",&ewsumtx,
"ewsumtx/F");
313 ncTree->Branch(
"ewsumty",&ewsumty,
"ewsumty/F");
314 ncTree->Branch(
"cossumtx",&cossumtx,
"cossumtx/F");
315 ncTree->Branch(
"cossumty",&cossumty,
"cossumty/F");
316 ncTree->Branch(
"cosewsumtx",&cosewsumtx,
"cosewsumtx/F");
317 ncTree->Branch(
"cosewsumty",&cosewsumty,
"cosewsumty/F");
318 ncTree->Branch(
"angsumtx",&angsumtx,
"angsumtx/F");
319 ncTree->Branch(
"angsumty",&angsumty,
"angsumty/F");
320 ncTree->Branch(
"angewsumtx",&angewsumtx,
"angewsumtx/F");
321 ncTree->Branch(
"angewsumty",&angewsumty,
"angewsumty/F");
323 ncTree->Branch(
"starttop",&starttop,
"starttop/F");
324 ncTree->Branch(
"startbottom",&startbottom,
"startbottom/F");
325 ncTree->Branch(
"startfront",&startfront,
"startfront/F");
326 ncTree->Branch(
"startback",&startback,
"startback/F");
327 ncTree->Branch(
"startwest",&startwest,
"startwest/F");
328 ncTree->Branch(
"starteast",&starteast,
"starteast/F");
329 ncTree->Branch(
"stoptop",&stoptop,
"stoptop/F");
330 ncTree->Branch(
"stopbottom",&stopbottom,
"stopbottom/F");
331 ncTree->Branch(
"stopfront",&stopfront,
"stopfront/F");
332 ncTree->Branch(
"stopback",&stopback,
"stopback/F");
333 ncTree->Branch(
"stopwest",&stopwest,
"stopwest/F");
334 ncTree->Branch(
"stopeast",&stopeast,
"stopeast/F");
335 ncTree->Branch(
"cosdang",&cosdang,
"cosdang/F");
336 ncTree->Branch(
"vtxdoca",&vtxdoca,
"vtxdoca/F");
337 ncTree->Branch(
"prongmaxx",&prongmaxx,
"prongmaxx/F");
338 ncTree->Branch(
"prongmaxy",&prongmaxy,
"prongmaxy/F");
339 ncTree->Branch(
"prongmaxz",&prongmaxz,
"prongmaxz/F");
340 ncTree->Branch(
"prongminx",&prongminx,
"prongminx/F");
341 ncTree->Branch(
"prongminy",&prongminy,
"prongminy/F");
342 ncTree->Branch(
"prongminz",&prongminz,
"prongminz/F");
343 ncTree->Branch(
"sparsenessasymm",&sparsenessasymm,
"sparsenessasymm/F");
344 ncTree->Branch(
"hitsperplaneasymm",&hitsperplaneasymm,
"hitsperplaneasymm/F");
345 ncTree->Branch(
"musliceidx",&musliceidx,
"musliceidx/F");
346 ncTree->Branch(
"muanglediff",&muanglediff,
"muanglediff/F");
347 ncTree->Branch(
"mutimediff",&mutimediff,
"mutimediff/F");
348 ncTree->Branch(
"muclosestapproach",&muclosestapproach,
"muclosestapproach/F");
350 ncTree->Branch(
"pngptp",&pngptp,
"pngptp/F");
352 ncTree->Branch(
"numupid",&numupid,
"numupid/F");
354 ncTree->Branch(
"nueid",&nueid,
"nueid/F");
355 ncTree->Branch(
"numuid",&numuid,
"numuid/F");
356 ncTree->Branch(
"nutauid",&nutauid,
"nutauid/F");
358 ncTree->Branch(
"rempid",&rempid,
"rempid/F");
359 ncTree->Branch(
"remlen",&remlen,
"remlen/F");
361 ncTree->Branch(
"ncalhit",&ncalhit,
"ncalhit/F");
363 ncTree->Branch(
"ncontplanes",&ncontplanes,
"ncontplanes/F");
364 ncTree->Branch(
"starttime",&starttime,
"starttime/F");
365 ncTree->Branch(
"endtime",&endtime,
"endtime/F");
366 ncTree->Branch(
"meantime",&meantime,
"meantime/F");
367 ncTree->Branch(
"meanposX",&meanposX,
"meanposX/F");
368 ncTree->Branch(
"meanposY",&meanposY,
"meanposY/F");
369 ncTree->Branch(
"meanposZ",&meanposZ,
"meanposZ/F");
374 ncTree->Branch(
"shwnplane",&shwnplane,
"shwnplane/F");
375 ncTree->Branch(
"shwmaxplanecont",&shwmaxplanecont,
"shwmaxplanecont/F");
376 ncTree->Branch(
"shwmaxplanegap",&shwmaxplanegap,
"shwmaxplanegap/F");
378 ncTree->Branch(
"shwstartX",&shwstartX,
"shwstartX/F");
379 ncTree->Branch(
"shwstartY",&shwstartY,
"shwstartY/F");
380 ncTree->Branch(
"shwstartZ",&shwstartZ,
"shwstartZ/F");
381 ncTree->Branch(
"shwdirX",&shwdirX,
"shwdirX/F");
383 ncTree->Branch(
"shwdirZ",&shwdirZ,
"shwdirZ/F");
386 ncTree->Branch(
"shwNplaneX",&shwNplaneX,
"shwNplaneX/F");
387 ncTree->Branch(
"shwNplaneY",&shwNplaneY,
"shwNplaneY/F");
389 ncTree->Branch(
"shwstopX",&shwstopX,
"shwstopX/F");
390 ncTree->Branch(
"shwstopY",&shwstopY,
"shwstopY/F");
391 ncTree->Branch(
"shwstopZ",&shwstopZ,
"shwstopZ/F");
394 ncTree->Branch(
"vtxTime",&vtxTime,
"vtxTime/F");
395 ncTree->Branch(
"vtxX",&vtxX,
"vtxX/F");
396 ncTree->Branch(
"vtxY",&vtxY,
"vtxY/F");
397 ncTree->Branch(
"vtxZ",&vtxZ,
"vtxZ/F");
398 ncTree->Branch(
"vtxpngNhit",&vtxpngNhit,
"vtxpngNhit/F");
399 ncTree->Branch(
"vtxpngNhitX",&vtxpngNhitX,
"vtxpngNhitX/F");
400 ncTree->Branch(
"vtxpngNhitY",&vtxpngNhitY,
"vtxpngNhitY/F");
402 ncTree->Branch(
"ncid",&ncid,
"ncid/F");
403 ncTree->Branch(
"cosmicid",&cosmicid,
"cosmicid/F");
404 ncTree->Branch(
"partptp",&partptp,
"partptp/F");
405 ncTree->Branch(
"shwnhit",&shwnhit,
"shwnhit/F");
406 ncTree->Branch(
"shwnhitx",&shwnhitx,
"shwnhitx/F");
407 ncTree->Branch(
"shwnhity",&shwnhity,
"shwnhity/F");
408 ncTree->Branch(
"shwxminusy",&shwxminusy,
"shwxminusy/F");
409 ncTree->Branch(
"shwxplusy",&shwxplusy,
"shwxplusy/F");
410 ncTree->Branch(
"shwxovery",&shwxovery,
"shwxovery/F");
411 ncTree->Branch(
"shwcalE",&shwcalE,
"shwcalE/F");
412 ncTree->Branch(
"shwdirY",&shwdirY,
"shwdirY/F");
413 ncTree->Branch(
"shwlen",&shwlen,
"shwlen/F");
414 ncTree->Branch(
"shwwwidth",&shwwwidth,
"shwwwidth/F");
415 ncTree->Branch(
"shwGap",&shwGap,
"shwGap/F");
416 ncTree->Branch(
"nshwlid",&nshwlid,
"nshwlid/F");
417 ncTree->Branch(
"nmiphit",&nmiphit,
"nmiphit/F");
419 ncTree->Branch(
"anglekal",&anglekal,
"anglekal/F");
420 ncTree->Branch(
"dirFY",&dirFY,
"dirFY/F");
421 ncTree->Branch(
"boxmaxFY",&boxmaxFY,
"boxmaxFY/F");
422 ncTree->Branch(
"kalnhit",&kalnhit,
"kalnhit/F");
423 ncTree->Branch(
"kallen",&kallen,
"kallen/F");
424 ncTree->Branch(
"kalfwdcell",&kalfwdcell,
"kalfwdcell/F");
425 ncTree->Branch(
"kalbakcell",&kalbakcell,
"kalbakcell/F");
426 ncTree->Branch(
"scatt",&scatt,
"scatt/F");
427 ncTree->Branch(
"nhit",&nhit,
"nhit/F");
428 ncTree->Branch(
"energy",&energy,
"energy/F");
429 ncTree->Branch(
"boxminFY",&boxminFY,
"boxminFY/F");
430 ncTree->Branch(
"nkal",&nkal,
"nkal/F");
433 muTree->Branch(
"Run",&Run,
"Run/I");
434 muTree->Branch(
"SubRun",&SubRun,
"SubRun/I");
435 muTree->Branch(
"Evt",&Evt,
"Evt/I");
436 muTree->Branch(
"SubEvt",&SubEvt,
"SubEvt/I");
437 muTree->Branch(
"IsCC",&IsCC,
"IsCC/I");
439 muTree->Branch(
"sumtx",&sumtx,
"sumtx/F");
440 muTree->Branch(
"sumty",&sumty,
"sumty/F");
441 muTree->Branch(
"ewsumtx",&ewsumtx,
"ewsumtx/F");
442 muTree->Branch(
"ewsumty",&ewsumty,
"ewsumty/F");
443 muTree->Branch(
"cossumtx",&cossumtx,
"cossumtx/F");
444 muTree->Branch(
"cossumty",&cossumty,
"cossumty/F");
445 muTree->Branch(
"cosewsumtx",&cosewsumtx,
"cosewsumtx/F");
446 muTree->Branch(
"cosewsumty",&cosewsumty,
"cosewsumty/F");
447 muTree->Branch(
"angsumtx",&angsumtx,
"angsumtx/F");
448 muTree->Branch(
"angsumty",&angsumty,
"angsumty/F");
449 muTree->Branch(
"angewsumtx",&angewsumtx,
"angewsumtx/F");
450 muTree->Branch(
"angewsumty",&angewsumty,
"angewsumty/F");
452 muTree->Branch(
"starttop",&starttop,
"starttop/F");
453 muTree->Branch(
"startbottom",&startbottom,
"startbottom/F");
454 muTree->Branch(
"startfront",&startfront,
"startfront/F");
455 muTree->Branch(
"startback",&startback,
"startback/F");
456 muTree->Branch(
"startwest",&startwest,
"startwest/F");
457 muTree->Branch(
"starteast",&starteast,
"starteast/F");
458 muTree->Branch(
"stoptop",&stoptop,
"stoptop/F");
459 muTree->Branch(
"stopbottom",&stopbottom,
"stopbottom/F");
460 muTree->Branch(
"stopfront",&stopfront,
"stopfront/F");
461 muTree->Branch(
"stopback",&stopback,
"stopback/F");
462 muTree->Branch(
"stopwest",&stopwest,
"stopwest/F");
463 muTree->Branch(
"stopeast",&stopeast,
"stopeast/F");
464 muTree->Branch(
"cosdang",&cosdang,
"cosdang/F");
465 muTree->Branch(
"vtxdoca",&vtxdoca,
"vtxdoca/F");
466 muTree->Branch(
"prongmaxx",&prongmaxx,
"prongmaxx/F");
467 muTree->Branch(
"prongmaxy",&prongmaxy,
"prongmaxy/F");
468 muTree->Branch(
"prongmaxz",&prongmaxz,
"prongmaxz/F");
469 muTree->Branch(
"prongminx",&prongminx,
"prongminx/F");
470 muTree->Branch(
"prongminy",&prongminy,
"prongminy/F");
471 muTree->Branch(
"prongminz",&prongminz,
"prongminz/F");
472 muTree->Branch(
"sparsenessasymm",&sparsenessasymm,
"sparsenessasymm/F");
473 muTree->Branch(
"hitsperplaneasymm",&hitsperplaneasymm,
"hitsperplaneasymm/F");
474 muTree->Branch(
"hitsperplane",&hitsperplane,
"hitsperplane/F");
475 muTree->Branch(
"musliceidx",&musliceidx,
"musliceidx/F");
476 muTree->Branch(
"muanglediff",&muanglediff,
"muanglediff/F");
477 muTree->Branch(
"mutimediff",&mutimediff,
"mutimediff/F");
478 muTree->Branch(
"muclosestapproach",&muclosestapproach,
"muclosestapproach/F");
480 muTree->Branch(
"pngptp",&pngptp,
"pngptp/F");
483 muTree->Branch(
"nueid",&nueid,
"nueid/F");
484 muTree->Branch(
"numuid",&numuid,
"numuid/F");
485 muTree->Branch(
"nutauid",&nutauid,
"nutauid/F");
487 muTree->Branch(
"numupid",&numupid,
"numupid/F");
489 muTree->Branch(
"rempid",&rempid,
"rempid/F");
490 muTree->Branch(
"remlen",&remlen,
"remlen/F");
492 muTree->Branch(
"ncalhit",&ncalhit,
"ncalhit/F");
494 muTree->Branch(
"ncontplanes",&ncontplanes,
"ncontplanes/F");
495 muTree->Branch(
"starttime",&starttime,
"starttime/F");
496 muTree->Branch(
"endtime",&endtime,
"endtime/F");
497 muTree->Branch(
"meantime",&meantime,
"meantime/F");
498 muTree->Branch(
"meanposX",&meanposX,
"meanposX/F");
499 muTree->Branch(
"meanposY",&meanposY,
"meanposY/F");
500 muTree->Branch(
"meanposZ",&meanposZ,
"meanposZ/F");
505 muTree->Branch(
"shwnplane",&shwnplane,
"shwnplane/F");
506 muTree->Branch(
"shwmaxplanecont",&shwmaxplanecont,
"shwmaxplanecont/F");
507 muTree->Branch(
"shwmaxplanegap",&shwmaxplanegap,
"shwmaxplanegap/F");
509 muTree->Branch(
"shwstartX",&shwstartX,
"shwstartX/F");
510 muTree->Branch(
"shwstartY",&shwstartY,
"shwstartY/F");
511 muTree->Branch(
"shwstartZ",&shwstartZ,
"shwstartZ/F");
512 muTree->Branch(
"shwdirX",&shwdirX,
"shwdirX/F");
514 muTree->Branch(
"shwdirZ",&shwdirZ,
"shwdirZ/F");
517 muTree->Branch(
"shwNplaneX",&shwNplaneX,
"shwNplaneX/F");
518 muTree->Branch(
"shwNplaneY",&shwNplaneY,
"shwNplaneY/F");
520 muTree->Branch(
"shwstopX",&shwstopX,
"shwstopX/F");
521 muTree->Branch(
"shwstopY",&shwstopY,
"shwstopY/F");
522 muTree->Branch(
"shwstopZ",&shwstopZ,
"shwstopZ/F");
525 muTree->Branch(
"vtxTime",&vtxTime,
"vtxTime/F");
526 muTree->Branch(
"vtxX",&vtxX,
"vtxX/F");
527 muTree->Branch(
"vtxY",&vtxY,
"vtxY/F");
528 muTree->Branch(
"vtxZ",&vtxZ,
"vtxZ/F");
529 muTree->Branch(
"vtxpngNhit",&vtxpngNhit,
"vtxpngNhit/F");
530 muTree->Branch(
"vtxpngNhitX",&vtxpngNhitX,
"vtxpngNhitX/F");
531 muTree->Branch(
"vtxpngNhitY",&vtxpngNhitY,
"vtxpngNhitY/F");
533 muTree->Branch(
"ncid",&ncid,
"ncid/F");
534 muTree->Branch(
"cosmicid",&cosmicid,
"cosmicid/F");
535 muTree->Branch(
"partptp",&partptp,
"partptp/F");
536 muTree->Branch(
"shwnhit",&shwnhit,
"shwnhit/F");
537 muTree->Branch(
"shwnhitx",&shwnhitx,
"shwnhitx/F");
538 muTree->Branch(
"shwnhity",&shwnhity,
"shwnhity/F");
539 muTree->Branch(
"shwxminusy",&shwxminusy,
"shwxminusy/F");
540 muTree->Branch(
"shwxplusy",&shwxplusy,
"shwxplusy/F");
541 muTree->Branch(
"shwxovery",&shwxovery,
"shwxovery/F");
542 muTree->Branch(
"shwcalE",&shwcalE,
"shwcalE/F");
543 muTree->Branch(
"shwdirY",&shwdirY,
"shwdirY/F");
544 muTree->Branch(
"shwlen",&shwlen,
"shwlen/F");
545 muTree->Branch(
"shwwwidth",&shwwwidth,
"shwwwidth/F");
546 ncTree->Branch(
"shwGap",&shwGap,
"shwGap/F");
547 muTree->Branch(
"nshwlid",&nshwlid,
"nshwlid/F");
548 muTree->Branch(
"nmiphit",&nmiphit,
"nmiphit/F");
550 muTree->Branch(
"anglekal",&anglekal,
"anglekal/F");
551 muTree->Branch(
"dirFY",&dirFY,
"dirFY/F");
552 muTree->Branch(
"boxmaxFY",&boxmaxFY,
"boxmaxFY/F");
553 muTree->Branch(
"kalnhit",&kalnhit,
"kalnhit/F");
554 muTree->Branch(
"kallen",&kallen,
"kallen/F");
555 muTree->Branch(
"kalfwdcell",&kalfwdcell,
"kalfwdcell/F");
556 muTree->Branch(
"kalbakcell",&kalbakcell,
"kalbakcell/F");
557 muTree->Branch(
"scatt",&scatt,
"scatt/F");
558 muTree->Branch(
"nhit",&nhit,
"nhit/F");
559 muTree->Branch(
"energy",&energy,
"energy/F");
560 muTree->Branch(
"boxminFY",&boxminFY,
"boxminFY/F");
561 muTree->Branch(
"nkal",&nkal,
"nkal/F");
564 neTree->Branch(
"Run",&Run,
"Run/I");
565 neTree->Branch(
"SubRun",&SubRun,
"SubRun/I");
566 neTree->Branch(
"Evt",&Evt,
"Evt/I");
567 neTree->Branch(
"SubEvt",&SubEvt,
"SubEvt/I");
568 neTree->Branch(
"IsCC",&IsCC,
"IsCC/I");
570 neTree->Branch(
"sumtx",&sumtx,
"sumtx/F");
571 neTree->Branch(
"sumty",&sumty,
"sumty/F");
572 neTree->Branch(
"ewsumtx",&ewsumtx,
"ewsumtx/F");
573 neTree->Branch(
"ewsumty",&ewsumty,
"ewsumty/F");
574 neTree->Branch(
"cossumtx",&cossumtx,
"cossumtx/F");
575 neTree->Branch(
"cossumty",&cossumty,
"cossumty/F");
576 neTree->Branch(
"cosewsumtx",&cosewsumtx,
"cosewsumtx/F");
577 neTree->Branch(
"cosewsumty",&cosewsumty,
"cosewsumty/F");
578 neTree->Branch(
"angsumtx",&angsumtx,
"angsumtx/F");
579 neTree->Branch(
"angsumty",&angsumty,
"angsumty/F");
580 neTree->Branch(
"angewsumtx",&angewsumtx,
"angewsumtx/F");
581 neTree->Branch(
"angewsumty",&angewsumty,
"angewsumty/F");
583 neTree->Branch(
"starttop",&starttop,
"starttop/F");
584 neTree->Branch(
"startbottom",&startbottom,
"startbottom/F");
585 neTree->Branch(
"startfront",&startfront,
"startfront/F");
586 neTree->Branch(
"startback",&startback,
"startback/F");
587 neTree->Branch(
"startwest",&startwest,
"startwest/F");
588 neTree->Branch(
"starteast",&starteast,
"starteast/F");
589 neTree->Branch(
"stoptop",&stoptop,
"stoptop/F");
590 neTree->Branch(
"stopbottom",&stopbottom,
"stopbottom/F");
591 neTree->Branch(
"stopfront",&stopfront,
"stopfront/F");
592 neTree->Branch(
"stopback",&stopback,
"stopback/F");
593 neTree->Branch(
"stopwest",&stopwest,
"stopwest/F");
594 neTree->Branch(
"stopeast",&stopeast,
"stopeast/F");
595 neTree->Branch(
"cosdang",&cosdang,
"cosdang/F");
596 neTree->Branch(
"vtxdoca",&vtxdoca,
"vtxdoca/F");
597 neTree->Branch(
"prongmaxx",&prongmaxx,
"prongmaxx/F");
598 neTree->Branch(
"prongmaxy",&prongmaxy,
"prongmaxy/F");
599 neTree->Branch(
"prongmaxz",&prongmaxz,
"prongmaxz/F");
600 neTree->Branch(
"prongminx",&prongminx,
"prongminx/F");
601 neTree->Branch(
"prongminy",&prongminy,
"prongminy/F");
602 neTree->Branch(
"prongminz",&prongminz,
"prongminz/F");
603 neTree->Branch(
"sparsenessasymm",&sparsenessasymm,
"sparsenessasymm/F");
604 neTree->Branch(
"hitsperplaneasymm",&hitsperplaneasymm,
"hitsperplaneasymm/F");
605 neTree->Branch(
"musliceidx",&musliceidx,
"musliceidx/F");
606 neTree->Branch(
"muanglediff",&muanglediff,
"muanglediff/F");
607 neTree->Branch(
"mutimediff",&mutimediff,
"mutimediff/F");
608 neTree->Branch(
"muclosestapproach",&muclosestapproach,
"muclosestapproach/F");
610 neTree->Branch(
"pngptp",&pngptp,
"pngptp/F");
613 neTree->Branch(
"nueid",&nueid,
"nueid/F");
614 neTree->Branch(
"numuid",&numuid,
"numuid/F");
615 neTree->Branch(
"nutauid",&nutauid,
"nutauid/F");
617 neTree->Branch(
"numupid",&numupid,
"numupid/F");
619 neTree->Branch(
"rempid",&rempid,
"rempid/F");
620 neTree->Branch(
"remlen",&remlen,
"remlen/F");
622 neTree->Branch(
"ncalhit",&ncalhit,
"ncalhit/F");
624 neTree->Branch(
"ncontplanes",&ncontplanes,
"ncontplanes/F");
625 neTree->Branch(
"starttime",&starttime,
"starttime/F");
626 neTree->Branch(
"endtime",&endtime,
"endtime/F");
627 neTree->Branch(
"meantime",&meantime,
"meantime/F");
628 neTree->Branch(
"meanposX",&meanposX,
"meanposX/F");
629 neTree->Branch(
"meanposY",&meanposY,
"meanposY/F");
630 neTree->Branch(
"meanposZ",&meanposZ,
"meanposZ/F");
635 neTree->Branch(
"shwnplane",&shwnplane,
"shwnplane/F");
636 neTree->Branch(
"shwmaxplanecont",&shwmaxplanecont,
"shwmaxplanecont/F");
637 neTree->Branch(
"shwmaxplanegap",&shwmaxplanegap,
"shwmaxplanegap/F");
639 neTree->Branch(
"shwstartX",&shwstartX,
"shwstartX/F");
640 neTree->Branch(
"shwstartY",&shwstartY,
"shwstartY/F");
641 neTree->Branch(
"shwstartZ",&shwstartZ,
"shwstartZ/F");
642 neTree->Branch(
"shwdirX",&shwdirX,
"shwdirX/F");
644 neTree->Branch(
"shwdirZ",&shwdirZ,
"shwdirZ/F");
647 neTree->Branch(
"shwNplaneX",&shwNplaneX,
"shwNplaneX/F");
648 neTree->Branch(
"shwNplaneY",&shwNplaneY,
"shwNplaneY/F");
650 neTree->Branch(
"shwstopX",&shwstopX,
"shwstopX/F");
651 neTree->Branch(
"shwstopY",&shwstopY,
"shwstopY/F");
652 neTree->Branch(
"shwstopZ",&shwstopZ,
"shwstopZ/F");
655 neTree->Branch(
"vtxTime",&vtxTime,
"vtxTime/F");
656 neTree->Branch(
"vtxX",&vtxX,
"vtxX/F");
657 neTree->Branch(
"vtxY",&vtxY,
"vtxY/F");
658 neTree->Branch(
"vtxZ",&vtxZ,
"vtxZ/F");
659 neTree->Branch(
"vtxpngNhit",&vtxpngNhit,
"vtxpngNhit/F");
660 neTree->Branch(
"vtxpngNhitX",&vtxpngNhitX,
"vtxpngNhitX/F");
661 neTree->Branch(
"vtxpngNhitY",&vtxpngNhitY,
"vtxpngNhitY/F");
663 neTree->Branch(
"ncid",&ncid,
"ncid/F");
664 neTree->Branch(
"cosmicid",&cosmicid,
"cosmicid/F");
665 neTree->Branch(
"partptp",&partptp,
"partptp/F");
666 neTree->Branch(
"shwnhit",&shwnhit,
"shwnhit/F");
667 neTree->Branch(
"shwnhitx",&shwnhitx,
"shwnhitx/F");
668 neTree->Branch(
"shwnhity",&shwnhity,
"shwnhity/F");
669 neTree->Branch(
"shwxminusy",&shwxminusy,
"shwxminusy/F");
670 neTree->Branch(
"shwxplusy",&shwxplusy,
"shwxplusy/F");
671 neTree->Branch(
"shwxovery",&shwxovery,
"shwxovery/F");
672 neTree->Branch(
"shwcalE",&shwcalE,
"shwcalE/F");
673 neTree->Branch(
"shwdirY",&shwdirY,
"shwdirY/F");
674 neTree->Branch(
"shwlen",&shwlen,
"shwlen/F");
675 neTree->Branch(
"shwwwidth",&shwwwidth,
"shwwwidth/F");
676 neTree->Branch(
"shwGap",&shwGap,
"shwGap/F");
677 neTree->Branch(
"nshwlid",&nshwlid,
"nshwlid/F");
678 neTree->Branch(
"nmiphit",&nmiphit,
"nmiphit/F");
680 neTree->Branch(
"anglekal",&anglekal,
"anglekal/F");
681 neTree->Branch(
"dirFY",&dirFY,
"dirFY/F");
682 neTree->Branch(
"boxmaxFY",&boxmaxFY,
"boxmaxFY/F");
683 neTree->Branch(
"kalnhit",&kalnhit,
"kalnhit/F");
684 neTree->Branch(
"kallen",&kallen,
"kallen/F");
685 neTree->Branch(
"kalfwdcell",&kalfwdcell,
"kalfwdcell/F");
686 neTree->Branch(
"kalbakcell",&kalbakcell,
"kalbakcell/F");
687 neTree->Branch(
"scatt",&scatt,
"scatt/F");
688 neTree->Branch(
"nhit",&nhit,
"nhit/F");
689 neTree->Branch(
"energy",&energy,
"energy/F");
690 neTree->Branch(
"boxminFY",&boxminFY,
"boxminFY/F");
691 neTree->Branch(
"nkal",&nkal,
"nkal/F");
696 IFileSource* nonswap=loadernc.WildcardOrSAMQuery(fnamenc);
697 int AllNon = nonswap->
NFiles();
703 while(TFile* nonfile =(TFile*)nonswap->
GetNextFile()){
707 loadernc.HandleFile(nonfile, AllNon == 1 ? prog : 0);
708 if(AllNon > 1 && prog) prog->
SetProgress((NumNon+1.)/AllNon);
710 TTree *recTreenon = (TTree*)nonfile->Get(
"recTree");
712 recTreenon->SetBranchAddress(
"rec", &recTreeObject);
715 recTreenon->SetBranchStatus(
"*",0);
717 recTreenon->SetBranchStatus(
"hdr.run",1);
718 recTreenon->SetBranchStatus(
"hdr.subrun",1);
719 recTreenon->SetBranchStatus(
"hdr.evt",1);
720 recTreenon->SetBranchStatus(
"hdr.subevt",1);
722 recTreenon->SetBranchStatus(
"mc.nnu",1);
723 recTreenon->SetBranchStatus(
"mc.nu",1);
724 recTreenon->SetBranchStatus(
"mc.nu.iscc",1);
725 recTreenon->SetBranchStatus(
"mc.nu.pdg",1);
726 recTreenon->SetBranchStatus(
"trk.ncosmic",1);
728 recTreenon->SetBranchStatus(
"sel.nuecosrej.starttop",1);
729 recTreenon->SetBranchStatus(
"sel.nuecosrej.startbottom",1);
730 recTreenon->SetBranchStatus(
"sel.nuecosrej.startfront",1);
731 recTreenon->SetBranchStatus(
"sel.nuecosrej.startback",1);
732 recTreenon->SetBranchStatus(
"sel.nuecosrej.startwest",1);
733 recTreenon->SetBranchStatus(
"sel.nuecosrej.starteast",1);
734 recTreenon->SetBranchStatus(
"sel.nuecosrej.stoptop",1);
735 recTreenon->SetBranchStatus(
"sel.nuecosrej.stopbottom",1);
736 recTreenon->SetBranchStatus(
"sel.nuecosrej.stopfront",1);
737 recTreenon->SetBranchStatus(
"sel.nuecosrej.stopback",1);
738 recTreenon->SetBranchStatus(
"sel.nuecosrej.stopwest",1);
739 recTreenon->SetBranchStatus(
"sel.nuecosrej.stopeast",1);
740 recTreenon->SetBranchStatus(
"sel.nuecosrej.cosdang",1);
741 recTreenon->SetBranchStatus(
"sel.nuecosrej.vtxdoca",1);
742 recTreenon->SetBranchStatus(
"sel.nuecosrej.prongmaxx",1);
743 recTreenon->SetBranchStatus(
"sel.nuecosrej.prongmaxy",1);
744 recTreenon->SetBranchStatus(
"sel.nuecosrej.prongmaxz",1);
745 recTreenon->SetBranchStatus(
"sel.nuecosrej.prongminx",1);
746 recTreenon->SetBranchStatus(
"sel.nuecosrej.prongminy",1);
747 recTreenon->SetBranchStatus(
"sel.nuecosrej.prongminz",1);
748 recTreenon->SetBranchStatus(
"sel.nuecosrej.sparsenessasymm",1);
749 recTreenon->SetBranchStatus(
"sel.nuecosrej.hitsperplane",1);
750 recTreenon->SetBranchStatus(
"sel.nuecosrej.hitsperplaneasymm",1);
751 recTreenon->SetBranchStatus(
"sel.nuecosrej.musliceidx",1);
752 recTreenon->SetBranchStatus(
"sel.nuecosrej.muanglediff",1);
753 recTreenon->SetBranchStatus(
"sel.nuecosrej.mutimediff",1);
754 recTreenon->SetBranchStatus(
"sel.nuecosrej.muclosestapproach",1);
760 recTreenon->SetBranchStatus(
"shw.shwlid.nplane",1);
761 recTreenon->SetBranchStatus(
"shw.shwlid.maxplanecont",1);
762 recTreenon->SetBranchStatus(
"shw.shwlid.maxplanegap",1);
764 recTreenon->SetBranchStatus(
"shw.shwlid.start.fX",1);
765 recTreenon->SetBranchStatus(
"shw.shwlid.start.fY",1);
766 recTreenon->SetBranchStatus(
"shw.shwlid.start.fZ",1);
767 recTreenon->SetBranchStatus(
"shw.shwlid.dir.fX",1);
768 recTreenon->SetBranchStatus(
"shw.shwlid.dir.fZ",1);
769 recTreenon->SetBranchStatus(
"shw.shwlid.nplanex",1);
770 recTreenon->SetBranchStatus(
"shw.shwlid.nplaney",1);
772 recTreenon->SetBranchStatus(
"shw.shwlid.stop.fX",1);
773 recTreenon->SetBranchStatus(
"shw.shwlid.stop.fY",1);
774 recTreenon->SetBranchStatus(
"shw.shwlid.stop.fZ",1);
779 recTreenon->SetBranchStatus(
"sel.elecid.shwlid.ismuon",1);
780 recTreenon->SetBranchStatus(
"sel.cosrej.numucontpid",1);
784 recTreenon->SetBranchStatus(
"sel.cvn.nueid",1);
785 recTreenon->SetBranchStatus(
"sel.cvn.numuid",1);
786 recTreenon->SetBranchStatus(
"sel.cvn.nutauid",1);
788 recTreenon->SetBranchStatus(
"slc.nhit",1);
791 recTreenon->SetBranchStatus(
"slc.ncontplanes",1);
792 recTreenon->SetBranchStatus(
"slc.ncellsfromedge",1);
793 recTreenon->SetBranchStatus(
"slc.starttime",1);
794 recTreenon->SetBranchStatus(
"slc.endtime",1);
795 recTreenon->SetBranchStatus(
"slc.meantime",1);
796 recTreenon->SetBranchStatus(
"slc.meanpos.fX",1);
797 recTreenon->SetBranchStatus(
"slc.meanpos.fY",1);
798 recTreenon->SetBranchStatus(
"slc.meanpos.fZ",1);
800 recTreenon->SetBranchStatus(
"sand.nus.sumtx",1);
801 recTreenon->SetBranchStatus(
"sand.nus.sumty",1);
802 recTreenon->SetBranchStatus(
"sand.nus.ewsumtx",1);
803 recTreenon->SetBranchStatus(
"sand.nus.ewsumty",1);
804 recTreenon->SetBranchStatus(
"sand.nus.cossumtx",1);
805 recTreenon->SetBranchStatus(
"sand.nus.cossumty",1);
806 recTreenon->SetBranchStatus(
"sand.nus.cosewsumtx",1);
807 recTreenon->SetBranchStatus(
"sand.nus.cosewsumty",1);
808 recTreenon->SetBranchStatus(
"sand.nus.angsumtx",1);
809 recTreenon->SetBranchStatus(
"sand.nus.angsumty",1);
810 recTreenon->SetBranchStatus(
"sand.nus.angewsumtx",1);
811 recTreenon->SetBranchStatus(
"sand.nus.angewsumty",1);
814 recTreenon->SetBranchStatus(
"sel.remid.pid",1);
815 recTreenon->SetBranchStatus(
"sel.remid.len",1);
817 recTreenon->SetBranchStatus(
"vtx.elastic.time",1);
818 recTreenon->SetBranchStatus(
"vtx.elastic.vtx.fX",1);
819 recTreenon->SetBranchStatus(
"vtx.elastic.vtx.fY",1);
820 recTreenon->SetBranchStatus(
"vtx.elastic.vtx.fZ",1);
824 recTreenon->SetBranchStatus(
"vtx.elastic.IsValid",1);
826 recTreenon->SetBranchStatus(
"sel.cvn.ncid",1);
828 recTreenon->SetBranchStatus(
"sel.cvn.output",1);
829 recTreenon->SetBranchStatus(
"sel.nuecosrej.partptp",1);
830 recTreenon->SetBranchStatus(
"shw.shwlid.nhit",1);
831 recTreenon->SetBranchStatus(
"shw.shwlid.nhitx",1);
832 recTreenon->SetBranchStatus(
"shw.shwlid.nhity",1);
833 recTreenon->SetBranchStatus(
"shw.shwlid.calE",1);
834 recTreenon->SetBranchStatus(
"shw.shwlid.dir.fY",1);
835 recTreenon->SetBranchStatus(
"shw.shwlid.len",1);
836 recTreenon->SetBranchStatus(
"shw.shwlid.width",1);
837 recTreenon->SetBranchStatus(
"shw.shwlid.gap",1);
838 recTreenon->SetBranchStatus(
"shw.nshwlid",1);
839 recTreenon->SetBranchStatus(
"slc.nmiphit",1);
841 recTreenon->SetBranchStatus(
"sel.cosrej.anglekal",1);
843 recTreenon->SetBranchStatus(
"trk.kalman.dir.fY",1);
844 recTreenon->SetBranchStatus(
"slc.boxmax.*",1);
845 recTreenon->SetBranchStatus(
"trk.kalman.nhit",1);
846 recTreenon->SetBranchStatus(
"trk.kalman.len",1);
847 recTreenon->SetBranchStatus(
"sel.contain.kalfwdcell",1);
848 recTreenon->SetBranchStatus(
"sel.contain.kalbakcell",1);
849 recTreenon->SetBranchStatus(
"sel.cosrej.scatt",1);
850 recTreenon->SetBranchStatus(
"slc.nhit",1);
851 recTreenon->SetBranchStatus(
"slc.calE",1);
852 recTreenon->SetBranchStatus(
"slc.boxmin.*",1);
853 recTreenon->SetBranchStatus(
"trk.nkalman",1 );
854 recTreenon->SetBranchStatus(
"trk.kalman.calE",1);
855 recTreenon->SetBranchStatus(
"sel.cosrej.numucontpid",1);
856 recTreenon->SetBranchStatus(
"sel.contain.cosfwdcell",1);
857 recTreenon->SetBranchStatus(
"sel.contain.cosbakcell",1);
858 recTreenon->SetBranchStatus(
"sel.contain.nplanestofront",1);
859 recTreenon->SetBranchStatus(
"sel.contain.nplanestoback",1);
861 Int_t nbeam = recTreenon->GetEntries();
863 for (Int_t
j = 0;
j < nbeam; ++
j) {
864 recTreenon->GetEntry(
j);
865 cerr <<
"\r-- Processing event " <<
j <<
" of " << nbeam;
868 Short_t nnu = recTreeObject->
mc.
nnu;
870 if(nnu != 1)
continue;
871 Int_t nccc = recTreeObject->
mc.
nu[0].iscc;
872 Short_t
pdg = recTreeObject->
mc.
nu[0].pdg;
877 if(recTreeObject->shw.nshwlid == 0 )
continue;
878 if(recTreeObject->shw.shwlid[0].gap >= 100.)
continue;
910 if(recTreeObject->
slc.
calE > 4)
continue;
911 if(recTreeObject->
slc.
calE < 0.5)
continue;
913 Run = recTreeObject->
hdr.
run;
915 Evt = recTreeObject->
hdr.
evt;
944 muclosestapproach = recTreeObject->
sel.
nuecosrej.muclosestapproach;
945 numupid = recTreeObject->
sel.
cosrej.numucontpid;
961 shwnplane = recTreeObject->shw.shwlid[0].nplane;
962 shwmaxplanecont = recTreeObject->shw.shwlid[0].maxplanecont;
963 shwmaxplanegap = recTreeObject->shw.shwlid[0].maxplanegap;
964 shwstartX = recTreeObject->shw.shwlid[0].start.fX;
965 shwstartY = recTreeObject->shw.shwlid[0].start.fY;
966 shwstartZ = recTreeObject->shw.shwlid[0].start.fZ;
967 shwdirX = recTreeObject->shw.shwlid[0].dir.fX;
968 shwdirZ = recTreeObject->shw.shwlid[0].dir.fZ;
979 nhit = recTreeObject->
slc.
nhit;
1003 shwnhit = recTreeObject->shw.shwlid[0].nhit;
1004 shwnhitx = recTreeObject->shw.shwlid[0].nhitx;
1005 shwnhity = recTreeObject->shw.shwlid[0].nhity;
1009 shwcalE = recTreeObject->shw.shwlid[0].calE;
1010 shwdirY = recTreeObject->shw.shwlid[0].dir.fY;
1011 shwlen = recTreeObject->shw.shwlid[0].len;
1012 shwwwidth = recTreeObject->shw.shwlid[0].width;
1013 shwGap = recTreeObject->shw.shwlid[0].gap;
1014 nshwlid = recTreeObject->shw.nshwlid;
1018 dirFY = recTreeObject->
trk.
kalman[0].dir.fY;
1019 boxmaxFY = recTreeObject->
slc.
boxmax.fY;
1020 kalnhit = recTreeObject->
trk.
kalman[0].nhit;
1021 kallen = recTreeObject->
trk.
kalman[0].len;
1025 nhit = recTreeObject->
slc.
nhit;
1026 energy = recTreeObject->
slc.
calE;
1027 boxminFY = recTreeObject->
slc.
boxmin.fY;
1028 nkal = recTreeObject->
trk.nkalman;
1030 if(nccc == 0){ ncTree->Fill(); }
1031 else if(pdg == 14){muTree->Fill();}
1032 else {neTree->Fill();}
1036 IFileSource* cosmicdata=loadercos.WildcardOrSAMQuery(fnamecos);
1037 int AllCos = cosmicdata->
NFiles();
1042 while(TFile* cosfile =(TFile*)cosmicdata->
GetNextFile()){
1044 std::cout<<
"*******************************************************Cosmic File NUMBER: "<<NumCos<<
std::endl;
1046 loadercos.HandleFile(cosfile, AllCos == 1 ? prog : 0);
1047 if(AllCos > 1 && prog) prog->
SetProgress((NumCos+1.)/AllCos);
1048 TTree *recTreecos = (TTree*)cosfile->Get(
"recTree");
1050 recTreecos->SetBranchAddress(
"rec", &recTreeObject);
1052 recTreecos->SetBranchStatus(
"*",0);
1054 recTreecos->SetBranchStatus(
"hdr.run",1);
1055 recTreecos->SetBranchStatus(
"hdr.subrun",1);
1056 recTreecos->SetBranchStatus(
"hdr.evt",1);
1057 recTreecos->SetBranchStatus(
"hdr.subevt",1);
1058 recTreecos->SetBranchStatus(
"mc.nnu",1);
1059 recTreecos->SetBranchStatus(
"mc.nu",1);
1060 recTreecos->SetBranchStatus(
"mc.nu.iscc",1);
1061 recTreecos->SetBranchStatus(
"mc.nu.pdg",1);
1062 recTreecos->SetBranchStatus(
"trk.ncosmic",1);
1064 recTreecos->SetBranchStatus(
"sand.nus.sumtx",1);
1065 recTreecos->SetBranchStatus(
"sand.nus.sumty",1);
1066 recTreecos->SetBranchStatus(
"sand.nus.ewsumtx",1);
1067 recTreecos->SetBranchStatus(
"sand.nus.ewsumty",1);
1068 recTreecos->SetBranchStatus(
"sand.nus.cossumtx",1);
1069 recTreecos->SetBranchStatus(
"sand.nus.cossumty",1);
1070 recTreecos->SetBranchStatus(
"sand.nus.cosewsumtx",1);
1071 recTreecos->SetBranchStatus(
"sand.nus.cosewsumty",1);
1072 recTreecos->SetBranchStatus(
"sand.nus.angsumtx",1);
1073 recTreecos->SetBranchStatus(
"sand.nus.angsumty",1);
1074 recTreecos->SetBranchStatus(
"sand.nus.angewsumtx",1);
1075 recTreecos->SetBranchStatus(
"sand.nus.angewsumty",1);
1077 recTreecos->SetBranchStatus(
"sel.nuecosrej.starttop",1);
1078 recTreecos->SetBranchStatus(
"sel.nuecosrej.startbottom",1);
1079 recTreecos->SetBranchStatus(
"sel.nuecosrej.startfront",1);
1080 recTreecos->SetBranchStatus(
"sel.nuecosrej.startback",1);
1081 recTreecos->SetBranchStatus(
"sel.nuecosrej.startwest",1);
1082 recTreecos->SetBranchStatus(
"sel.nuecosrej.starteast",1);
1083 recTreecos->SetBranchStatus(
"sel.nuecosrej.stoptop",1);
1084 recTreecos->SetBranchStatus(
"sel.nuecosrej.stopbottom",1);
1085 recTreecos->SetBranchStatus(
"sel.nuecosrej.stopfront",1);
1086 recTreecos->SetBranchStatus(
"sel.nuecosrej.stopback",1);
1087 recTreecos->SetBranchStatus(
"sel.nuecosrej.stopwest",1);
1088 recTreecos->SetBranchStatus(
"sel.nuecosrej.stopeast",1);
1089 recTreecos->SetBranchStatus(
"sel.nuecosrej.cosdang",1);
1090 recTreecos->SetBranchStatus(
"sel.nuecosrej.vtxdoca",1);
1091 recTreecos->SetBranchStatus(
"sel.nuecosrej.prongmaxx",1);
1092 recTreecos->SetBranchStatus(
"sel.nuecosrej.prongmaxy",1);
1093 recTreecos->SetBranchStatus(
"sel.nuecosrej.prongmaxz",1);
1094 recTreecos->SetBranchStatus(
"sel.nuecosrej.prongminx",1);
1095 recTreecos->SetBranchStatus(
"sel.nuecosrej.prongminy",1);
1096 recTreecos->SetBranchStatus(
"sel.nuecosrej.prongminz",1);
1097 recTreecos->SetBranchStatus(
"sel.nuecosrej.sparsenessasymm",1);
1098 recTreecos->SetBranchStatus(
"sel.nuecosrej.hitsperplane",1);
1099 recTreecos->SetBranchStatus(
"sel.nuecosrej.hitsperplaneasymm",1);
1100 recTreecos->SetBranchStatus(
"sel.nuecosrej.musliceidx",1);
1101 recTreecos->SetBranchStatus(
"sel.nuecosrej.muanglediff",1);
1102 recTreecos->SetBranchStatus(
"sel.nuecosrej.mutimediff",1);
1103 recTreecos->SetBranchStatus(
"sel.nuecosrej.muclosestapproach",1);
1104 recTreecos->SetBranchStatus(
"sel.nuecosrej.partptp",1);
1105 recTreecos->SetBranchStatus(
"sel.nuecosrej.pngptp",1);
1107 recTreecos->SetBranchStatus(
"sel.cvn.ncid",1);
1108 recTreecos->SetBranchStatus(
"sel.cvn.nueid",1);
1109 recTreecos->SetBranchStatus(
"sel.cvn.numuid",1);
1110 recTreecos->SetBranchStatus(
"sel.cvn.nutauid",1);
1112 recTreecos->SetBranchStatus(
"sel.remid.pid",1);
1113 recTreecos->SetBranchStatus(
"sel.remid.len",1);
1115 recTreecos->SetBranchStatus(
"slc.nhit",1);
1117 recTreecos->SetBranchStatus(
"slc.nmiphit",1);
1118 recTreecos->SetBranchStatus(
"slc.ncontplanes",1);
1119 recTreecos->SetBranchStatus(
"slc.ncellsfromedge",1);
1120 recTreecos->SetBranchStatus(
"slc.starttime",1);
1121 recTreecos->SetBranchStatus(
"slc.endtime",1);
1122 recTreecos->SetBranchStatus(
"slc.meantime",1);
1123 recTreecos->SetBranchStatus(
"slc.meanpos.fX",1);
1124 recTreecos->SetBranchStatus(
"slc.meanpos.fY",1);
1125 recTreecos->SetBranchStatus(
"slc.meanpos.fZ",1);
1127 recTreecos->SetBranchStatus(
"shw.shwlid.nhit",1);
1128 recTreecos->SetBranchStatus(
"shw.shwlid.nhitx",1);
1129 recTreecos->SetBranchStatus(
"shw.shwlid.nhity",1);
1130 recTreecos->SetBranchStatus(
"shw.shwlid.nplane",1);
1131 recTreecos->SetBranchStatus(
"shw.shwlid.maxplanecont",1);
1132 recTreecos->SetBranchStatus(
"shw.shwlid.maxplanegap",1);
1133 recTreecos->SetBranchStatus(
"shw.shwlid.calE",1);
1134 recTreecos->SetBranchStatus(
"shw.shwlid.start.fX",1);
1135 recTreecos->SetBranchStatus(
"shw.shwlid.start.fY",1);
1136 recTreecos->SetBranchStatus(
"shw.shwlid.start.fZ",1);
1137 recTreecos->SetBranchStatus(
"shw.shwlid.dir.fX",1);
1138 recTreecos->SetBranchStatus(
"shw.shwlid.dir.fY",1);
1139 recTreecos->SetBranchStatus(
"shw.shwlid.dir.fZ",1);
1140 recTreecos->SetBranchStatus(
"shw.shwlid.len",1);
1141 recTreecos->SetBranchStatus(
"shw.shwlid.width",1);
1142 recTreecos->SetBranchStatus(
"shw.shwlid.nplanex",1);
1143 recTreecos->SetBranchStatus(
"shw.shwlid.nplaney",1);
1144 recTreecos->SetBranchStatus(
"shw.shwlid.gap",1);
1145 recTreecos->SetBranchStatus(
"shw.shwlid.stop.fX",1);
1146 recTreecos->SetBranchStatus(
"shw.shwlid.stop.fY",1);
1147 recTreecos->SetBranchStatus(
"shw.shwlid.stop.fZ",1);
1148 recTreecos->SetBranchStatus(
"shw.nshwlid",1);
1149 recTreecos->SetBranchStatus(
"shw.shwlid.gap",1);
1151 recTreecos->SetBranchStatus(
"vtx.elastic.time",1);
1152 recTreecos->SetBranchStatus(
"vtx.elastic.vtx.fX",1);
1153 recTreecos->SetBranchStatus(
"vtx.elastic.vtx.fY",1);
1154 recTreecos->SetBranchStatus(
"vtx.elastic.vtx.fZ",1);
1158 recTreecos->SetBranchStatus(
"vtx.elastic.IsValid",1);
1160 recTreecos->SetBranchStatus(
"sel.cvn.output",1);
1162 recTreecos->SetBranchStatus(
"sel.nuecosrej.partptp",1);
1163 recTreecos->SetBranchStatus(
"shw.shwlid.nhit",1);
1164 recTreecos->SetBranchStatus(
"shw.shwlid.nhitx",1);
1165 recTreecos->SetBranchStatus(
"shw.shwlid.nhity",1);
1166 recTreecos->SetBranchStatus(
"shw.shwlid.calE",1);
1167 recTreecos->SetBranchStatus(
"shw.shwlid.dir.fY",1);
1168 recTreecos->SetBranchStatus(
"shw.shwlid.len",1);
1169 recTreecos->SetBranchStatus(
"shw.shwlid.width",1);
1170 recTreecos->SetBranchStatus(
"shw.shwlid.gap",1);
1171 recTreecos->SetBranchStatus(
"shw.nshwlid",1);
1172 recTreecos->SetBranchStatus(
"slc.nmiphit",1);
1174 recTreecos->SetBranchStatus(
"sel.cosrej.anglekal",1);
1175 recTreecos->SetBranchStatus(
"trk.kalman.dir.*",1);
1176 recTreecos->SetBranchStatus(
"slc.boxmax.*",1);
1177 recTreecos->SetBranchStatus(
"trk.kalman.nhit",1);
1178 recTreecos->SetBranchStatus(
"trk.kalman.len",1);
1179 recTreecos->SetBranchStatus(
"sel.contain.kalfwdcell",1);
1180 recTreecos->SetBranchStatus(
"sel.contain.kalbakcell",1);
1181 recTreecos->SetBranchStatus(
"sel.cosrej.scatt",1);
1182 recTreecos->SetBranchStatus(
"slc.nhit",1);
1183 recTreecos->SetBranchStatus(
"slc.calE",1);
1184 recTreecos->SetBranchStatus(
"slc.boxmin.*",1);
1185 recTreecos->SetBranchStatus(
"trk.nkalman",1 );
1187 recTreecos->SetBranchStatus(
"trk.kalman.calE",1);
1189 recTreecos->SetBranchStatus(
"sel.cosrej.numucontpid",1);
1190 recTreecos->SetBranchStatus(
"sel.contain.cosfwdcell",1);
1191 recTreecos->SetBranchStatus(
"sel.contain.cosbakcell",1);
1192 recTreecos->SetBranchStatus(
"sel.contain.nplanestofront",1);
1193 recTreecos->SetBranchStatus(
"sel.contain.nplanestoback",1);
1196 recTreecos->SetBranchStatus(
"sel.elecid.shwlid.ismuon",1);
1197 recTreecos->SetBranchStatus(
"sel.cosrej.numucontpid",1);
1201 Int_t ncosmic = recTreecos->GetEntriesFast();
1202 for (Int_t
i = 0;
i < ncosmic; ++
i) {
1203 recTreecos->GetEntry(
i);
1204 cerr <<
"\r-- Processing event " <<
i <<
" of " << ncosmic;
1216 if(recTreeObject->shw.nshwlid == 0 )
continue;
1217 if(recTreeObject->shw.shwlid[0].gap >= 100.)
continue;
1249 if(recTreeObject->
sel.
remid.
pid >= 0.9 )
continue;
1252 if(recTreeObject->
slc.
calE > 4)
continue;
1253 if(recTreeObject->
slc.
calE < 0.5)
continue;
1255 Run = recTreeObject->
hdr.
run;
1257 Evt = recTreeObject->
hdr.
evt;
1297 muanglediff = recTreeObject->
sel.
nuecosrej.muanglediff;
1299 muclosestapproach = recTreeObject->
sel.
nuecosrej.muclosestapproach;
1304 numupid = recTreeObject->
sel.
cosrej.numucontpid;
1326 shwnhit = recTreeObject->shw.shwlid[0].nhit;
1327 shwnhitx = recTreeObject->shw.shwlid[0].nhitx;
1329 shwnplane = recTreeObject->shw.shwlid[0].nplane;
1330 shwmaxplanecont = recTreeObject->shw.shwlid[0].maxplanecont;
1331 shwmaxplanegap = recTreeObject->shw.shwlid[0].maxplanegap;
1333 shwstartX = recTreeObject->shw.shwlid[0].start.fX;
1334 shwstartY = recTreeObject->shw.shwlid[0].start.fY;
1335 shwstartZ = recTreeObject->shw.shwlid[0].start.fZ;
1336 shwdirX = recTreeObject->shw.shwlid[0].dir.fX;
1338 shwdirZ = recTreeObject->shw.shwlid[0].dir.fZ;
1341 shwNplaneX = recTreeObject->shw.shwlid[0].nplanex;
1342 shwNplaneY = recTreeObject->shw.shwlid[0].nplaney;
1357 shwnhit = recTreeObject->shw.shwlid[0].nhit;
1358 shwnhitx = recTreeObject->shw.shwlid[0].nhitx;
1359 shwnhity = recTreeObject->shw.shwlid[0].nhity;
1363 shwcalE = recTreeObject->shw.shwlid[0].calE;
1364 shwdirY = recTreeObject->shw.shwlid[0].dir.fY;
1365 shwlen = recTreeObject->shw.shwlid[0].len;
1366 shwwwidth = recTreeObject->shw.shwlid[0].width;
1367 shwGap = recTreeObject->shw.shwlid[0].gap;
1368 nshwlid = recTreeObject->shw.nshwlid;
1372 dirFY = recTreeObject->
trk.
kalman[0].dir.fY;
1373 boxmaxFY = recTreeObject->
slc.
boxmax.fY;
1374 kalnhit = recTreeObject->
trk.
kalman[0].nhit;
1375 kallen = recTreeObject->
trk.
kalman[0].len;
1379 nhit = recTreeObject->
slc.
nhit;
1380 energy = recTreeObject->
slc.
calE;
1381 boxminFY = recTreeObject->
slc.
boxmin.fY;
1382 nkal = recTreeObject->
trk.nkalman;
float ncid
Likelihood Neutral Current.
SRHeader hdr
Header branch: run, subrun, etc.
SRCosRej cosrej
Output from CosRej (Cosmic Rejection)
float len
Track length of identified track.
SRVector3D boxmax
Maximum coordinates box containing all the hits [cm].
static Var numuid(const std::shared_ptr< CAFAnaModel > &model)
float scatt
sum of all all angular deviation (looping over kaltrk traj pts) / trk len
SRKalman kalman
Tracks produced by KalmanTrack.
float pid
PID value output by kNN.
virtual int NFiles() const
May return -1 indicating the number of files is not known.
SRVector3D boxmin
Minimum coordinates box containing all the hits [cm].
float anglekal
cos of angle of best ReMId Kalman track
static Var nutauid(const std::shared_ptr< CAFAnaModel > &model)
SRCVNResult cvn
Horrible hack to appease CAFAna.
static Var nueid(const std::shared_ptr< CAFAnaModel > &model)
unsigned int nmiphit
number of minimum ionizing hits
SRNueCosRej nuecosrej
Output from NueCosRej (Nue Cosmic Rejection)
SRRemid remid
Output from RecoMuonID (ReMId) package.
float calE
Calorimetric energy of the cluster [GeV].
std::vector< float > output
List of net output nodes.
SRVector3D vtx
Vertex position in detector coordinates. [cm].
short nnu
Number of neutrinos in nu vector (0 or 1)
unsigned int nhit
number of hits
virtual TFile * GetNextFile()=0
Returns the next file in sequence, ready for reading.
The StandardRecord is the primary top-level object in the Common Analysis File trees.
int kalfwdcell
Kalmantrack projected # cells from end point forwards to det edge.
Interface class for accessing ROOT files in sequence.
void SetProgress(double frac)
Update the progress fraction between zero and one.
Collaborates with Spectrum and OscillatableSpectrum to fill spectra from CAF files.
SRIDBranch sel
Selector (PID) branch.
SRElastic elastic
Single vertex found by Elastic Arms.
int kalbakcell
Kalmantrack projected # cells from start point backwards to det edge.
A simple ascii-art progress bar.
SRSlice slc
Slice branch: nhit, extents, time, etc.
SRTruthBranch mc
Truth branch for MC: energy, flavor, etc.
void Format(TGraph *gr, int lcol, int lsty, int lwid, int mcol, int msty, double msiz)
unsigned int ncontplanes
number of continuous planes
SRTrackBranch trk
Track branch: nhit, len, etc.
SRContain contain
Output from SRContain (containment related variables)
std::vector< SRNeutrino > nu
implemented as a vector to maintain mc.nu structure, i.e. not a pointer, but with 0 or 1 entries...
SRVertexBranch vtx
Vertex branch: location, time, etc.