15 TTree* t0 =
new TTree(
"EsTimeOffset",
"EsTimeOffset" );
16 double offset[2] = { 0. };
20 for (
int i = 0; i < 2; i++ )
22 sprintf( estbrname,
"Offset%d", i );
23 sprintf( estptname,
"Offset%d/D", i );
24 t0->Branch( estbrname, &offset[i], estptname );
29 inf0.open(
"calib_EsTimeOffset.txt", ios::in );
30 inf01.open(
"EsTimeOffset.txt", ios::in );
31 if ( inf0.good() && inf01.good() )
43 std::cerr <<
"file: calib_estimeOffset.txt or est_estimeOffset can't be found!"
49 TTree*
t =
new TTree(
"BarTofPar",
"barrel parameters" );
51 double p[20] = { 0. };
55 for (
int i = 0; i < 20; i++ )
59 t->Branch( brname, &p[i], ptname );
62 for (
int i = 0; i < 4; i++ )
66 t->Branch( brname, &
w[i], ptname );
68 double Atten[8] = { 0. };
69 for (
int i = 0; i < 8; i++ )
71 sprintf( brname,
"Atten%d", i );
72 sprintf( ptname,
"Atten%d/D", i );
73 t->Branch( brname, &Atten[i], ptname );
75 double Speed[2] = { 0. }, Q0[1] = { 0. };
76 t->Branch(
"Speed0", &Speed[0],
"Speed0/D" );
77 t->Branch(
"Speed1", &Speed[1],
"Speed1/D" );
78 t->Branch(
"Q0", Q0,
"Q0[1]/D" );
79 double fitfun[20] = { 0. };
87 for (
int i = 0; i < 5; i++ )
89 sprintf( fbrname1,
"FLeft%d", i );
90 sprintf( fptname1,
"fleft%d/D", i );
91 t->Branch( fbrname1, &fitfun[i], fptname1 );
92 sprintf( fbrname2,
"FRight%d", i );
93 sprintf( fptname2,
"fright%d/D", i );
94 t->Branch( fbrname2, &fitfun[5 + i], fptname2 );
96 for (
int i = 0; i < 10; i++ )
98 sprintf( fbrname3,
"FCounter%d", i );
99 sprintf( fptname3,
"fcounter%d/D", i );
100 t->Branch( fbrname3, &fitfun[10 + i], fptname3 );
104 bool is_open[N] = {
false };
105 const char* filelist[N] = {
"calib_barrel_left.txt",
"calib_barrel_right.txt",
106 "calib_barrel_w.txt",
"calib_barrel_atten.txt",
107 "calib_barrel_veff.txt",
"calib_barrel_sigma.txt",
108 "calib_barrel_left1.txt",
"calib_barrel_right1.txt",
109 "calib_barrel_common.txt",
"calib_barrel_q0.txt" };
110 for (
int m = 0; m < N; m++ )
112 inf[m].open( filelist[m], ios::in );
113 if ( inf[m].good() ) is_open[m] =
true;
114 else std::cerr <<
"file: " << filelist[N] <<
" can't be found!" << std::endl;
118 for (
int k = 0; k < 176; k++ )
121 if ( is_open[0] && is_open[1] )
123 for (
int j = 0; j < 7; j++ )
128 for (
int l = 10; l < 17; l++ ) inf[1] >> p[l];
133 for (
int j = 0; j < 4; j++ ) inf[2] >>
w[j];
138 for (
int j = 0; j < 2; j++ ) { inf[3] >> Atten[j]; }
139 Atten[0] = 1. / Atten[0];
144 for (
int j = 0; j < 2; j++ ) { inf[4] >> Speed[j]; }
145 Speed[0] = 1. / Speed[0];
149 for (
int j = 0; j < 4; j++ ) { inf[5] >> fitfun[j]; }
150 for (
int j = 5; j < 9; j++ ) { inf[5] >> fitfun[j]; }
151 for (
int j = 10; j < 13; j++ ) { inf[5] >> fitfun[j]; }
156 for (
int j = 2; j < 5; j++ ) { inf[9] >> Atten[j]; }
167 TTree* t1 =
new TTree(
"BarTofParInner",
"barrel inner layer parameters" );
169 double p1[20] = { 0. };
173 for (
int i = 0; i < 20; i++ )
176 sprintf( ptname1,
"p%d/D", i );
177 t1->Branch( brname1, &
p1[i], ptname1 );
181 for (
int k = 0; k < 88; k++ )
184 if ( is_open[6] && is_open[7] )
186 for (
int j = 0; j < 7; j++ )
191 for (
int l = 10; l < 17; l++ ) inf[7] >>
p1[l];
198 TTree* t2 =
new TTree(
"BarTofParCommon",
"common part of barrel" );
199 double t0Offset[2] = { 0. }, sigmaCorr[8] = { 0. };
200 for (
int i = 0; i < 2; i++ )
202 sprintf( brname,
"t0offset%d", i );
203 sprintf( ptname,
"t0offset%d/D", i );
204 t2->Branch( brname, &t0Offset[i], ptname );
206 for (
int i = 0; i < 8; i++ )
208 sprintf( brname,
"sigmaCorr%d", i );
209 sprintf( ptname,
"sigmaCorr%d/D", i );
210 t2->Branch( brname, &sigmaCorr[i], ptname );
214 if ( is_open[8] ) { inf[8] >> sigmaCorr[0] >> sigmaCorr[1] >> t0Offset[0] >> t0Offset[1]; }
218 for (
int m = 0; m < N; m++ ) inf[m].close();
220 TFile
f(
"BarTofPar.root",
"RECREATE" );
244 TTree* t0 =
new TTree(
"EsTimeOffset",
"EsTimeOffset" );
245 double offset[2] = { 0. };
248 for (
int i = 0; i < 2; i++ )
250 sprintf( estbrname,
"Offset%d", i );
251 sprintf( estptname,
"Offset%d/D", i );
252 t0->Branch( estbrname, &offset[i], estptname );
257 inf0.open(
"calib_estimeOffset.txt", ios::in );
258 inf01.open(
"est_estimeOffset.txt", ios::in );
259 if ( inf0.good() && inf01.good() )
271 std::cerr <<
"file: calib_estimeOffset.txt or est_estimeOffset can't be found!"
277 TTree*
t =
new TTree(
"EndTofPar",
"endcap parameters" );
279 double p[8] = { 0. };
283 for (
int i = 0; i < 8; i++ )
287 t->Branch( brname, &p[i], ptname );
289 double Atten[5] = { 0. }, Speed[3] = { 0. }, Q0[1] = { 0. };
290 t->Branch(
"Atten0", &Atten[0],
"Atten0/D" );
291 t->Branch(
"Atten1", &Atten[1],
"Atten1/D" );
292 t->Branch(
"Atten2", &Atten[2],
"Atten2/D" );
293 t->Branch(
"Atten3", &Atten[3],
"Atten3/D" );
294 t->Branch(
"Atten4", &Atten[4],
"Atten4/D" );
295 t->Branch(
"Speed0", &Speed[0],
"Speed0/D" );
296 t->Branch(
"Speed1", &Speed[1],
"Speed1/D" );
297 t->Branch(
"Speed2", &Speed[2],
"Speed2/D" );
298 t->Branch(
"Q0", Q0,
"Q0[1]/D" );
301 bool is_open[N] = {
false };
302 const char* filelist[N] = {
"calib_endcap_left.txt",
"calib_endcap_atten.txt",
303 "calib_endcap_veff.txt" };
304 for (
int m = 0; m < N; m++ )
306 inf[m].open( filelist[m], ios::in );
307 if ( inf[m].good() ) is_open[m] =
true;
308 else { std::cerr <<
"File: " << filelist[m] <<
" can't be opened" << std::endl; }
312 for (
int k = 0; k < 96; k++ )
315 if ( is_open[0] && is_open[1] )
317 for (
int j = 0; j < 5; j++ )
326 for (
int j = 0; j < 3; j++ ) { inf[1] >> Atten[j]; }
327 Atten[0] = 1. / Atten[0];
332 for (
int j = 0; j < 3; j++ ) { inf[2] >> Speed[j]; }
333 Speed[0] = 1. / Speed[0];
343 for (
int m = 0; m < N; m++ ) inf[m].close();
345 TFile
f(
"EndTofPar.root",
"RECREATE" );
sprintf(cut, "kal_costheta0_em>-0.93&&kal_costheta0_em<0.93&&kal_pxy0_em>=0.05+%d*0.1&&kal_" "pxy0_em<0.15+%d*0.1&&NGch>=2", j, j)