3 TFile* fp =
new TFile(
"roads.root");
5 tr[0] = (TTree*)fp->Get(
"tr_new");
6 tr[1] = (TTree*)fp->Get(
"tr_tgt");
7 tr[2] = (TTree*)fp->Get(
"tr_old");
22 int detector_id[2][4];
23 float detector_zpos[2][4];
25 float element_xpos[2][4];
30 for(
int itr=0; itr<3; itr++)
33 sprintf(name,
"roads_%d.txt",itr);
35 FILE* fo = fopen(name,
"w");
37 tr[itr] -> SetBranchAddress(
"nDimuon",&nDimuon);
38 tr[itr] -> SetBranchAddress(
"mass",&mass);
39 tr[itr] -> SetBranchAddress(
"xf",&xf);
40 tr[itr] -> SetBranchAddress(
"x1",&x1);
41 tr[itr] -> SetBranchAddress(
"x2",&x2);
42 tr[itr] -> SetBranchAddress(
"px",px);
43 tr[itr] -> SetBranchAddress(
"track_id",track_id);
44 tr[itr] -> SetBranchAddress(
"charge",charge);
45 tr[itr] -> SetBranchAddress(
"nHit",&nHit);
46 tr[itr] -> SetBranchAddress(
"tb",tb);
47 tr[itr] -> SetBranchAddress(
"unique_id",unique_id);
48 tr[itr] -> SetBranchAddress(
"detector_id",detector_id);
49 tr[itr] -> SetBranchAddress(
"detector_zpos",detector_zpos);
50 tr[itr] -> SetBranchAddress(
"element_id",element_id);
51 tr[itr] -> SetBranchAddress(
"element_xpos",element_xpos);
52 tr[itr] -> SetBranchAddress(
"road_id",road_id);
53 tr[itr] -> SetBranchAddress(
"road_freq",road_freq);
56 const int nevt = tr[itr]->GetEntries();
57 for(
int ievt=0; ievt<nevt; ievt++)
59 tr[itr]->GetEntry(ievt);
63 if( nDimuon!=1 )
continue;
65 if( (road_id[0]*road_id[1])==0 )
continue;
68 for(
int icharge=0; icharge<2; icharge++)
70 int rid = road_id[icharge];
72 for(
int i=0; i<4; i++){ uid[i] = unique_id[icharge][i]; }
74 it[icharge] = find(comp_id[icharge].begin(), comp_id[icharge].end(), rid);
76 if( (it[icharge] == comp_id.end()) || (comp_id[icharge].size()==0) )
78 comp_id[icharge].push_back(rid);
83 fprintf(fo,
"%d\t %d\t %d\t %d\t %d\t %d\t %d\t %d\t %d\t \n",charge, rid, uid[0], uid[1], uid[2], uid[3], 0, 0, 0);
88 cout<<
"Done for loop "<<itr<<endl;