12 {
13
14
15 TTree* t0 = new TTree( "EsTimeOffset", "EsTimeOffset" );
16 double offset[2] = { 0. };
17 ;
18 char estbrname[20];
19 char estptname[20];
20 for ( int i = 0; i < 2; i++ )
21 {
22 sprintf( estbrname,
"Offset%d", i );
23 sprintf( estptname,
"Offset%d/D", i );
24 t0->Branch( estbrname, &offset[i], estptname );
25 }
26
27 ifstream inf0;
28 ifstream inf01;
29 inf0.open( "calib_EsTimeOffset.txt", ios::in );
30 inf01.open( "EsTimeOffset.txt", ios::in );
31 if ( inf0.good() && inf01.good() )
32 {
33 try
34 {
35 inf0 >> offset[0];
36 inf01 >> offset[1];
37 t0->Fill();
38 } catch ( ... )
39 { return false; }
40 }
41 else
42 {
43 std::cerr << "file: calib_estimeOffset.txt or est_estimeOffset can't be found!"
44 << std::endl;
45 }
46 inf0.close();
47 inf01.close();
48
49 TTree*
t =
new TTree(
"BarTofPar",
"barrel parameters" );
50
51 double p[20] = { 0. };
52 ;
53 char brname[20];
54 char ptname[20];
55 for ( int i = 0; i < 20; i++ )
56 {
59 t->Branch( brname, &p[i], ptname );
60 }
62 for ( int i = 0; i < 4; i++ )
63 {
66 t->Branch( brname, &
w[i], ptname );
67 }
68 double Atten[8] = { 0. };
69 for ( int i = 0; i < 8; i++ )
70 {
71 sprintf( brname,
"Atten%d", i );
72 sprintf( ptname,
"Atten%d/D", i );
73 t->Branch( brname, &Atten[i], ptname );
74 }
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. };
80 ;
81 char fbrname1[5];
82 char fptname1[5];
83 char fbrname2[5];
84 char fptname2[5];
85 char fbrname3[10];
86 char fptname3[10];
87 for ( int i = 0; i < 5; i++ )
88 {
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 );
95 }
96 for ( int i = 0; i < 10; i++ )
97 {
98 sprintf( fbrname3,
"FCounter%d", i );
99 sprintf( fptname3,
"fcounter%d/D", i );
100 t->Branch( fbrname3, &fitfun[10 + i], fptname3 );
101 }
102 const int N = 10;
103 ifstream inf[N];
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++ )
111 {
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;
115 }
116 try
117 {
118 for ( int k = 0; k < 176; k++ )
119 {
120
121 if ( is_open[0] && is_open[1] )
122 {
123 for ( int j = 0; j < 7; j++ )
124 {
125 inf[0] >> p[j];
126
127 }
128 for ( int l = 10; l < 17; l++ ) inf[1] >> p[l];
129 }
130
131 if ( is_open[2] )
132 {
133 for (
int j = 0; j < 4; j++ ) inf[2] >>
w[j];
134 }
135
136 if ( is_open[3] )
137 {
138 for ( int j = 0; j < 2; j++ ) { inf[3] >> Atten[j]; }
139 Atten[0] = 1. / Atten[0];
140 }
141
142 if ( is_open[4] )
143 {
144 for ( int j = 0; j < 2; j++ ) { inf[4] >> Speed[j]; }
145 Speed[0] = 1. / Speed[0];
146 }
147 if ( is_open[5] )
148 {
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]; }
152 }
153
154 if ( is_open[9] )
155 {
156 for ( int j = 2; j < 5; j++ ) { inf[9] >> Atten[j]; }
157 }
158
159
160
161
163 }
164 } catch ( ... )
165 { return false; }
166
167 TTree* t1 = new TTree( "BarTofParInner", "barrel inner layer parameters" );
168
169 double p1[20] = { 0. };
170 ;
171 char brname1[20];
172 char ptname1[20];
173 for ( int i = 0; i < 20; i++ )
174 {
176 sprintf( ptname1,
"p%d/D", i );
177 t1->Branch( brname1, &
p1[i], ptname1 );
178 }
179 try
180 {
181 for ( int k = 0; k < 88; k++ )
182 {
183
184 if ( is_open[6] && is_open[7] )
185 {
186 for ( int j = 0; j < 7; j++ )
187 {
189
190 }
191 for (
int l = 10; l < 17; l++ ) inf[7] >>
p1[l];
192 }
193 t1->Fill();
194 }
195 } catch ( ... )
196 { return false; }
197
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++ )
201 {
202 sprintf( brname,
"t0offset%d", i );
203 sprintf( ptname,
"t0offset%d/D", i );
204 t2->Branch( brname, &t0Offset[i], ptname );
205 }
206 for ( int i = 0; i < 8; i++ )
207 {
208 sprintf( brname,
"sigmaCorr%d", i );
209 sprintf( ptname,
"sigmaCorr%d/D", i );
210 t2->Branch( brname, &sigmaCorr[i], ptname );
211 }
212 try
213 {
214 if ( is_open[8] ) { inf[8] >> sigmaCorr[0] >> sigmaCorr[1] >> t0Offset[0] >> t0Offset[1]; }
215 t2->Fill();
216 } catch ( ... )
217 { return false; }
218 for ( int m = 0; m < N; m++ ) inf[m].close();
219
220 TFile
f(
"BarTofPar.root",
"RECREATE" );
221 t0->Write();
223 t1->Write();
224 t2->Write();
226 delete t0;
228 delete t1;
229 delete t2;
230 t0 = NULL;
232 t1 = NULL;
233 t2 = NULL;
234 return true;
235}
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)
TFile f("ana_bhabha660a_dqa_mcPat_zy_old.root")