BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
convElec2root.cxx
Go to the documentation of this file.
1//=====================================================
2// this script is used to convert result in text file//
3// to root files. it is based on files named that start
4// by "calib_barrel" .it means thest result from barrel. //
5//=====================================================
6#include "TFile.h"
7#include "TTree.h"
8#include <assert.h>
9#include <fstream>
10#include <iostream>
11using namespace std;
13 TTree* t1 = new TTree( "QElecBarParEast", "barrel parameters of east end" );
14 TTree* t2 = new TTree( "QElecBarParWest", "barrel parameters of west end" );
15 TTree* t3 = new TTree( "BarBoardNum", "barrel electronics number" );
16 double p1[11] = { 0. };
17 double p2[11] = { 0. };
18 char brname[50]; // branch name
19 char ptname[50]; // pattern name
20 for ( int i = 0; i < 11; i++ )
21 {
22 sprintf( brname, "P%d", i );
23 sprintf( ptname, "p%d/D", i );
24 t1->Branch( brname, &p1[i], ptname );
25 t2->Branch( brname, &p2[i], ptname );
26 }
27
28 double num[4] = { 0. };
29 sprintf( brname, "Board" );
30 sprintf( ptname, "board/D" );
31 t3->Branch( brname, &num[0], ptname );
32 sprintf( brname, "Crate" );
33 sprintf( ptname, "crate/D" );
34 t3->Branch( brname, &num[1], ptname );
35 sprintf( brname, "Fee" );
36 sprintf( ptname, "fee/D" );
37 t3->Branch( brname, &num[2], ptname );
38 sprintf( brname, "Channel" );
39 sprintf( ptname, "channel/D" );
40 t3->Branch( brname, &num[3], ptname );
41
42 const unsigned int N = 2;
43 bool is_open[N] = { false };
44 ifstream infile[N];
45 char inTxtFile[N][500] = { "ElecBarEast.txt", "ElecBarWest.txt" };
46 for ( int m = 0; m < N; m++ )
47 {
48 infile[m].open( inTxtFile[m], ios::in );
49 if ( infile[m].good() ) is_open[m] = true;
50 else std::cerr << "file: " << inTxtFile[N] << " can't be found!" << std::endl;
51 }
52 try
53 {
54 for ( int k = 0; k < 176; k++ )
55 {
56 //------------set p-------------------------
57 if ( is_open[0] )
58 {
59 for ( unsigned int j = 0; j < 4; j++ ) { infile[0] >> num[j]; }
60 for ( unsigned int j = 0; j < 9; j++ ) { infile[0] >> p1[j]; }
61 }
62 t1->Fill();
63 t3->Fill();
64 if ( is_open[1] )
65 {
66 for ( unsigned int j = 0; j < 4; j++ ) { infile[1] >> num[j]; }
67 for ( unsigned int j = 0; j < 9; j++ ) { infile[1] >> p2[j]; }
68 }
69 t2->Fill();
70 t3->Fill();
71 }
72 } catch ( ... )
73 { return false; }
74
75 TFile f( "BarTofQElecPar.root", "RECREATE" );
76 t1->Write();
77 t2->Write();
78 t3->Write();
79 f.Close();
80 delete t1;
81 delete t2;
82 delete t3;
83 t1 = NULL;
84 t2 = NULL;
85 t3 = NULL;
86 return true;
87}
88
90 TTree* t1 = new TTree( "QElecEndPar", "endcap parameters of east end" );
91 TTree* t2 = new TTree( "EndBoardNum", "endcap electronics number" );
92 double p[11] = { 0. };
93 char brname[50]; // branch name
94 char ptname[50]; // pattern name
95 for ( int i = 0; i < 11; i++ )
96 {
97 sprintf( brname, "P%d", i );
98 sprintf( ptname, "p%d/D", i );
99 t1->Branch( brname, &p[i], ptname );
100 }
101
102 double num[4] = { 0. };
103 sprintf( brname, "Board" );
104 sprintf( ptname, "board/D" );
105 t2->Branch( brname, &num[0], ptname );
106 sprintf( brname, "Crate" );
107 sprintf( ptname, "crate/D" );
108 t2->Branch( brname, &num[1], ptname );
109 sprintf( brname, "Fee" );
110 sprintf( ptname, "fee/D" );
111 t2->Branch( brname, &num[2], ptname );
112 sprintf( brname, "Channel" );
113 sprintf( ptname, "channel/D" );
114 t2->Branch( brname, &num[3], ptname );
115
116 bool is_open = false;
117 ifstream infile;
118 char inTxtFile[500] = "ElecEndcap.txt";
119 infile.open( inTxtFile, ios::in );
120 if ( infile.good() ) is_open = true;
121 else std::cerr << "file: " << inTxtFile << " can't be found!" << std::endl;
122 try
123 {
124 for ( int k = 0; k < 96; k++ )
125 {
126 //------------set p-------------------------
127 if ( is_open )
128 {
129 for ( unsigned int j = 0; j < 4; j++ ) { infile >> num[j]; }
130 for ( unsigned int j = 0; j < 9; j++ ) { infile >> p[j]; }
131 }
132 t1->Fill();
133 t2->Fill();
134 }
135 } catch ( ... )
136 { return false; }
137
138 TFile f( "EndTofQElecPar.root", "RECREATE" );
139 t1->Write();
140 t2->Write();
141 f.Close();
142 delete t1;
143 delete t2;
144 t1 = NULL;
145 t2 = NULL;
146 return true;
147}
148
150 TTree* t1 = new TTree( "SimQElecBarParEast", "barrel parameters of east end" );
151 TTree* t2 = new TTree( "SimQElecBarParWest", "barrel parameters of west end" );
152 double p1[11] = { 0. };
153 double p2[11] = { 0. };
154 char brname[50]; // branch name
155 char ptname[50]; // pattern name
156 for ( int i = 0; i < 11; i++ )
157 {
158 sprintf( brname, "P%d", i );
159 sprintf( ptname, "p%d/D", i );
160 t1->Branch( brname, &p1[i], ptname );
161 t2->Branch( brname, &p2[i], ptname );
162 }
163
164 const unsigned int N = 2;
165 bool is_open[N] = { false };
166 ifstream infile[N];
167 char inTxtFile[N][500] = { "ElecBarEast-Curve.txt", "ElecBarWest-Curve.txt" };
168 for ( int m = 0; m < N; m++ )
169 {
170 infile[m].open( inTxtFile[m], ios::in );
171 if ( infile[m].good() ) is_open[m] = true;
172 else std::cerr << "file: " << inTxtFile[N] << " can't be found!" << std::endl;
173 }
174 try
175 {
176 for ( int k = 0; k < 176; k++ )
177 {
178 //------------set p-------------------------
179 if ( is_open[0] )
180 {
181 for ( unsigned int j = 0; j < 11; j++ ) { infile[0] >> p1[j]; }
182 }
183 if ( is_open[1] )
184 {
185 for ( unsigned int j = 0; j < 11; j++ ) { infile[1] >> p2[j]; }
186 }
187 t1->Fill();
188 t2->Fill();
189 }
190 } catch ( ... )
191 { return false; }
192
193 TFile f( "SimBarTofQElecPar.root", "RECREATE" );
194 t1->Write();
195 t2->Write();
196 f.Close();
197 delete t1;
198 delete t2;
199 t1 = NULL;
200 t2 = NULL;
201 return true;
202}
203
205 TTree* t = new TTree( "SimQElecEndPar", "endcap parameters of east end" );
206 double p[11] = { 0. };
207 char brname[50]; // branch name
208 char ptname[50]; // pattern name
209 for ( int i = 0; i < 11; i++ )
210 {
211 sprintf( brname, "P%d", i );
212 sprintf( ptname, "p%d/D", i );
213 t->Branch( brname, &p[i], ptname );
214 }
215
216 bool is_open = false;
217 ifstream infile;
218 char inTxtFile[500] = "ElecEndcap-Curve.txt";
219 infile.open( inTxtFile, ios::in );
220 if ( infile.good() ) is_open = true;
221 else std::cerr << "file: " << inTxtFile << " can't be found!" << std::endl;
222 try
223 {
224 for ( int k = 0; k < 96; k++ )
225 {
226 //------------set p-------------------------
227 if ( is_open )
228 {
229 for ( unsigned int j = 0; j < 11; j++ ) { infile >> p[j]; }
230 }
231 t->Fill();
232 }
233 } catch ( ... )
234 { return false; }
235
236 TFile f( "SimEndTofQElecPar.root", "RECREATE" );
237 t->Write();
238 f.Close();
239 delete t;
240 t = NULL;
241 return true;
242}
243
244bool join() {
245 TFile f1( "EndTofQElecPar.root" );
246 TTree* t11 = (TTree*)f1.Get( "QElecEndPar" );
247 if ( 0 == t11 )
248 {
249 std::cerr << " can't get tree :QElecEndPar in file EndTofQElecPar.root" << std::endl;
250 return false;
251 }
252 TTree* t12 = (TTree*)f1.Get( "EndBoardNum" );
253 if ( 0 == t12 )
254 {
255 std::cerr << " can't get tree :EndBoardNum in file EndTofQElecPar.root" << std::endl;
256 return false;
257 }
258
259 TFile f2( "BarTofQElecPar.root" );
260 TTree* t21 = (TTree*)f2.Get( "QElecBarParEast" );
261 if ( 0 == t21 )
262 {
263 std::cerr << " can't get tree :QElecBarParEast in file BarTofQElecPar.root" << std::endl;
264 return false;
265 }
266 TTree* t22 = (TTree*)f2.Get( "QElecBarParWest" );
267 if ( 0 == t22 )
268 {
269 std::cerr << " can't get tree :QElecBarParWest in file BarTofQElecPar.root" << std::endl;
270 return false;
271 }
272 TTree* t23 = (TTree*)f2.Get( "BarBoardNum" );
273 if ( 0 == t23 )
274 {
275 std::cerr << " can't get tree :BarBoardNum in file BarTofQElecPar.root" << std::endl;
276 return false;
277 }
278
279 TFile f3( "SimEndTofQElecPar.root" );
280 TTree* t31 = (TTree*)f3.Get( "SimQElecEndPar" );
281 if ( 0 == t31 )
282 {
283 std::cerr << " can't get tree :SimQElecEndPar in file SimEndTofQElecPar.root" << std::endl;
284 return false;
285 }
286
287 TFile f4( "SimBarTofQElecPar.root" );
288 TTree* t41 = (TTree*)f4.Get( "SimQElecBarParEast" );
289 if ( 0 == t41 )
290 {
291 std::cerr << " can't get tree :SimQElecBarParEast in file SimBarTofQElecPar.root"
292 << std::endl;
293 return false;
294 }
295 TTree* t42 = (TTree*)f4.Get( "SimQElecBarParWest" );
296 if ( 0 == t42 )
297 {
298 std::cerr << " can't get tree :SimQElecBarParWest in file SimBarTofQElecPar.root"
299 << std::endl;
300 return false;
301 }
302
303 TFile fnew( "TofQElecConst.root", "RECREATE" );
304 t11->Write();
305 t12->Write();
306 t21->Write();
307 t22->Write();
308 t23->Write();
309 t31->Write();
310 t41->Write();
311 t42->Write();
312 f1.Close();
313 f2.Close();
314 f3.Close();
315 f4.Close();
316 fnew.Close();
317 t11 = NULL;
318 t12 = NULL;
319 t21 = NULL;
320 t22 = NULL;
321 t23 = NULL;
322 t31 = NULL;
323 t41 = NULL;
324 t42 = NULL;
325 return true;
326}
327
double p2[4]
double p1[4]
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")
TFile * f1
bool join()
bool sim_endcap_conv2root()
bool sim_barrel_conv2root()
bool endcap_conv2root()
bool main()
bool barrel_conv2root()
int t()
Definition t.c:1