2 |
// Program to convert rootples to ntuples and viceversa for the PAMELA ground data. |
// Program to convert rootples to ntuples and viceversa for the PAMELA ground data. |
3 |
// Written by Emiliano Mocchiutti. |
// Written by Emiliano Mocchiutti. |
4 |
// |
// |
5 |
// Version 3.01 (2006/02/14) |
// Version 4.00 (2006/03/09) |
6 |
// |
// |
7 |
// Changelog: |
// Changelog: |
8 |
// |
// |
9 |
|
// 3.01 - 4.00 (2006/03/09): convert tracker software output release r3v04. |
10 |
|
// |
11 |
// 3.00 - 3.01 (2006/02/14): bug in the booking of the level2 tracker rootple (wrong dimension of axv and wrong dereference to image[ntrk]), fixed (thanks to Silvio Orsi). |
// 3.00 - 3.01 (2006/02/14): bug in the booking of the level2 tracker rootple (wrong dimension of axv and wrong dereference to image[ntrk]), fixed (thanks to Silvio Orsi). |
12 |
// |
// |
13 |
// 2.00 - 3.00 (2005/11/29): compiled. |
// 2.00 - 3.00 (2005/11/29): compiled. |
37 |
#include <iostream> |
#include <iostream> |
38 |
#include <iomanip> |
#include <iomanip> |
39 |
// |
// |
|
//#include <trklev1struct.h> |
|
40 |
#include <ctrkstruct.h> |
#include <ctrkstruct.h> |
41 |
#include <ctofstruct.h> |
#include <ctofstruct.h> |
42 |
#include <cacstruct.h> |
#include <cacstruct.h> |
390 |
tree = new TTree("TrkLevel1","PAMELA level1 tracker data"); |
tree = new TTree("TrkLevel1","PAMELA level1 tracker data"); |
391 |
tree->Branch("good1",&trklev1.good1,"good1/O"); |
tree->Branch("good1",&trklev1.good1,"good1/O"); |
392 |
tree->Branch("nev1",&trklev1.nev1,"nev1/I"); |
tree->Branch("nev1",&trklev1.nev1,"nev1/I"); |
393 |
|
tree->Branch("whic_calib1",&trklev1.whic_calib1,"whic_calib1/I"); |
394 |
|
tree->Branch("swcode1",&trklev1.swcode1,"swcode1/I"); |
395 |
|
// tree->Branch("crc1",trklev1.crc1,"crc1[12]/O"); |
396 |
|
tree->Branch("crc1",trklev1.crc1,"crc1[12]/I"); |
397 |
tree->Branch("pkt_type1",&trklev1.pkt_type1,"pkt_type1/I"); |
tree->Branch("pkt_type1",&trklev1.pkt_type1,"pkt_type1/I"); |
398 |
tree->Branch("pkt_num1",&trklev1.pkt_num1,"pkt_num1/I"); |
tree->Branch("pkt_num1",&trklev1.pkt_num1,"pkt_num1/I"); |
399 |
tree->Branch("obt1",&trklev1.obt1,"obt1/I"); |
tree->Branch("obt1",&trklev1.obt1,"obt1/I"); |
400 |
tree->Branch("which_calib1",&trklev1.which_calib1,"which_calib1/I"); |
tree->Branch("cpu_crc1",&trklev1.cpu_crc1,"cpu_crc1/O"); |
401 |
tree->Branch("nclstr1",&trklev1.nclstr1,"nclstr1/I"); |
tree->Branch("nclstr1",&trklev1.nclstr1,"nclstr1/I"); |
402 |
tree->Branch("view",trklev1.view,"view[nclstr1]/I"); |
tree->Branch("view",trklev1.view,"view[nclstr1]/I"); |
403 |
tree->Branch("ladder",trklev1.ladder,"ladder[nclstr1]/I"); |
tree->Branch("ladder",trklev1.ladder,"ladder[nclstr1]/I"); |
461 |
TTree *tree = 0; |
TTree *tree = 0; |
462 |
hfile = new TFile(file2.str().c_str(),type,"Tracker LEVEL2 data"); |
hfile = new TFile(file2.str().c_str(),type,"Tracker LEVEL2 data"); |
463 |
tree = new TTree("TrkLevel2","PAMELA level2 tracker data"); |
tree = new TTree("TrkLevel2","PAMELA level2 tracker data"); |
464 |
|
// GENERAL |
465 |
tree->Branch("good2",&trklev2.good2,"good2/O"); |
tree->Branch("good2",&trklev2.good2,"good2/O"); |
466 |
tree->Branch("nev2",&trklev2.nev2,"nev2/I"); |
tree->Branch("nev2",&trklev2.nev2,"nev2/I"); |
467 |
|
tree->Branch("which_calib",&trklev2.which_calib,"which_calib/I"); |
468 |
|
tree->Branch("swcode",&trklev2.swcode,"swcode/I"); |
469 |
|
// tree->Branch("crc",trklev2.crc,"crc[12]/O"); |
470 |
|
tree->Branch("crc",trklev2.crc,"crc[12]/I"); |
471 |
|
// CPU |
472 |
tree->Branch("pkt_type",&trklev2.pkt_type,"pkt_type/I"); |
tree->Branch("pkt_type",&trklev2.pkt_type,"pkt_type/I"); |
473 |
tree->Branch("pkt_num",&trklev2.pkt_num,"pkt_num/I"); |
tree->Branch("pkt_num",&trklev2.pkt_num,"pkt_num/I"); |
474 |
tree->Branch("obt",&trklev2.obt,"obt/I"); |
tree->Branch("obt",&trklev2.obt,"obt/I"); |
475 |
tree->Branch("which_calib",&trklev2.which_calib,"which_calib/I"); |
tree->Branch("cpu_crc",&trklev2.cpu_crc,"cpu_crc/I"); |
476 |
|
// TRACKS |
477 |
tree->Branch("ntrk",&trklev2.ntrk,"ntrk/I"); |
tree->Branch("ntrk",&trklev2.ntrk,"ntrk/I"); |
478 |
tree->Branch("image",trklev2.image,"image[ntrk]/I"); |
tree->Branch("image",trklev2.image,"image[ntrk]/I"); |
479 |
tree->Branch("xm",trklev2.xm,"xm[ntrk][6]/F"); |
tree->Branch("xm",trklev2.xm,"xm[ntrk][6]/F"); |
491 |
tree->Branch("zv",trklev2.zv,"zv[ntrk][6]/F"); |
tree->Branch("zv",trklev2.zv,"zv[ntrk][6]/F"); |
492 |
tree->Branch("axv",trklev2.axv,"axv[ntrk][6]/F"); |
tree->Branch("axv",trklev2.axv,"axv[ntrk][6]/F"); |
493 |
tree->Branch("ayv",trklev2.ayv,"ayv[ntrk][6]/F"); |
tree->Branch("ayv",trklev2.ayv,"ayv[ntrk][6]/F"); |
494 |
tree->Branch("dedxp",trklev2.dedxp,"dedxp[ntrk][6]/F"); |
tree->Branch("dedx_x",trklev2.dedx_x,"dedx_x[ntrk][6]/F"); |
495 |
tree->Branch("nclsx",trklev2.nclsx,"nclsx[6]/I"); |
tree->Branch("dedx_y",trklev2.dedx_y,"dedx_y[ntrk][6]/F"); |
496 |
tree->Branch("nclsy",trklev2.nclsy,"nclsy[6]/I"); |
tree->Branch("bdl",trklev2.bdl,"bdl[ntrk]/F"); |
497 |
|
// SINGLETX |
498 |
|
tree->Branch("nclsx",&trklev2.nclsx,"nclsx/I"); |
499 |
|
tree->Branch("planex",trklev2.planex,"planex[nclsx]/I"); |
500 |
|
tree->Branch("xs",trklev2.xs,"xs[nclsx][2]/F"); |
501 |
|
tree->Branch("sgnlxs",trklev2.sgnlxs,"sgnlxs[nclsx]/F"); |
502 |
|
// SINGLETY |
503 |
|
tree->Branch("nclsy",&trklev2.nclsy,"nclsy/I"); |
504 |
|
tree->Branch("planey",trklev2.planey,"planey[nclsy]/I"); |
505 |
|
tree->Branch("ys",trklev2.ys,"ys[nclsy][2]/F"); |
506 |
|
tree->Branch("sgnlys",trklev2.sgnlys,"sgnlys[nclsy]/F"); |
507 |
// |
// |
508 |
Int_t trnev = 0; |
Int_t trnev = 0; |
509 |
coptrklev2(ifile.str().c_str(),trklev2,trnev); |
coptrklev2(ifile.str().c_str(),trklev2,trnev); |