38 MsgStream log(
msgSvc(),
"TreeDedxCalibDataCnv" );
39 log << MSG::DEBUG <<
"SetProperty" << endmsg;
55 TBufferFile* buf1 =
new TBufferFile( TBuffer::kRead );
56 TBufferFile* buf2 =
new TBufferFile( TBuffer::kRead );
57 TBufferFile* buf3 =
new TBufferFile( TBuffer::kRead );
58 TBufferFile* buf4 =
new TBufferFile( TBuffer::kRead );
59 TBufferFile* buf5 =
new TBufferFile( TBuffer::kRead );
60 TBufferFile* buf6 =
new TBufferFile( TBuffer::kRead );
61 TBufferFile* buf7 =
new TBufferFile( TBuffer::kRead );
62 TBufferFile* buf8 =
new TBufferFile( TBuffer::kRead );
63 TBufferFile* buf9 =
new TBufferFile( TBuffer::kRead );
65 buf1->SetBuffer( ( *records )[
"DriftDist"], 512000, kFALSE );
66 buf2->SetBuffer( ( *records )[
"EntranceAng"], 512000, kFALSE );
67 buf3->SetBuffer( ( *records )[
"MeanGain"], 512000, kFALSE );
68 buf4->SetBuffer( ( *records )[
"GasGain"], 512000, kFALSE );
69 buf5->SetBuffer( ( *records )[
"LayerGain"], 512000, kFALSE );
70 buf6->SetBuffer( ( *records )[
"Resolution"], 512000, kFALSE );
71 buf7->SetBuffer( ( *records )[
"WireGain"], 512000, kFALSE );
72 buf8->SetBuffer( ( *records )[
"ZDep"], 512000, kFALSE );
73 buf9->SetBuffer( ( *records )[
"RunGain"], 1024000, kFALSE );
75 std::cout <<
" SftVer is " << ( *records )[
"SftVer"];
76 std::cout <<
" CalVerSft is " << ( *records )[
"CalParVer"];
77 std::cout <<
" File name is " << ( *records )[
"FileName"] << std::endl;
79 TTree* ddgtree =
new TTree();
80 ddgtree->Streamer( *buf1 );
82 TTree* entratree =
new TTree();
83 entratree->Streamer( *buf2 );
85 TTree* gaintree =
new TTree();
86 gaintree->Streamer( *buf3 );
88 TTree* ggstree =
new TTree();
89 ggstree->Streamer( *buf4 );
91 TTree* layergtree =
new TTree();
92 layergtree->Streamer( *buf5 );
94 TTree* resoltree =
new TTree();
95 resoltree->Streamer( *buf6 );
97 TTree* wiregtree =
new TTree();
98 wiregtree->Streamer( *buf7 );
100 TTree* zdeptree =
new TTree();
101 zdeptree->Streamer( *buf8 );
103 TTree* rungtree =
new TTree();
104 rungtree->Streamer( *buf9 );
108 int runno, evtfrom, evtto;
111 rungtree->SetBranchAddress(
"rungain", &rungain );
112 rungtree->SetBranchAddress(
"runmean", &runmean );
113 rungtree->SetBranchAddress(
"runno", &runno );
114 rungtree->SetBranchAddress(
"runresol", &runresol );
115 if ( rungtree->GetBranchStatus(
"evtfrom" ) )
117 rungtree->SetBranchAddress(
"evtfrom", &evtfrom );
118 rungtree->SetBranchAddress(
"evtto", &evtto );
125 int N = rungtree->GetEntries();
127 for (
int i = 0; i < N; i++ )
129 rungtree->GetEntry( i );
130 tmpObject->
setrung( rungain, 0 );
131 tmpObject->
setrung( runmean, 1 );
132 tmpObject->
setrung( runno, 2 );
133 tmpObject->
setrung( runresol, 3 );
134 tmpObject->
setrung( evtfrom, 4 );
135 tmpObject->
setrung( evtto, 5 );
142 double id_doca[1600];
143 double iner_chi[1600];
144 double iner_gain[1600];
145 double iner_hits[1600];
146 double ip_eangle[1600];
147 double out_chi[1600];
148 double out_gain[1600];
149 double out_hits[1600];
151 ddgtree->SetBranchAddress(
"ddg0", ddg0 );
152 ddgtree->SetBranchAddress(
"ddg1", ddg1 );
153 ddgtree->SetBranchAddress(
"ddg2", ddg2 );
154 ddgtree->SetBranchAddress(
"ddg3", ddg3 );
155 TBranch* bbb = ddgtree->FindBranch(
"Id_doca" );
158 ddgtree->SetBranchAddress(
"Id_doca", id_doca );
159 ddgtree->SetBranchAddress(
"Iner_chi", iner_chi );
160 ddgtree->SetBranchAddress(
"Iner_gain", iner_gain );
161 ddgtree->SetBranchAddress(
"Iner_hits", iner_hits );
162 ddgtree->SetBranchAddress(
"Ip_eangle", ip_eangle );
163 ddgtree->SetBranchAddress(
"Out_chi", out_chi );
164 ddgtree->SetBranchAddress(
"Out_gain", out_gain );
165 ddgtree->SetBranchAddress(
"Out_hits", out_hits );
168 ddgtree->GetEntry( 0 );
169 for (
int i = 0; i < 43; i++ )
172 tmpObject->
setddg( ddg0[i], 0, i );
173 tmpObject->
setddg( ddg1[i], 1, i );
174 tmpObject->
setddg( ddg2[i], 2, i );
175 tmpObject->
setddg( ddg3[i], 3, i );
178 for (
int i = 0; i < 1600; i++ )
207 entratree->SetBranchAddress(
"entra0", entra0 );
208 entratree->SetBranchAddress(
"entra1", entra1 );
209 entratree->SetBranchAddress(
"entra2", entra2 );
210 entratree->SetBranchAddress(
"entra3", entra3 );
211 entratree->SetBranchAddress(
"1denangle", engle );
212 entratree->SetBranchAddress(
"1denangle_entry", &engle_no );
213 entratree->GetEntry( 0 );
214 for (
int i = 0; i < 43; i++ )
216 tmpObject->
setenta( entra0[i], 0, i );
217 tmpObject->
setenta( entra1[i], 1, i );
218 tmpObject->
setenta( entra2[i], 2, i );
219 tmpObject->
setenta( entra3[i], 3, i );
223 for (
int i = 0; i < engle_no; i++ ) { tmpObject->
set_enangle( engle[i], i ); }
230 double gcostheta[80];
233 ggstree->SetBranchAddress(
"ggs0", ggs0 );
234 ggstree->SetBranchAddress(
"ggs1", ggs1 );
235 ggstree->SetBranchAddress(
"ggs2", ggs2 );
236 ggstree->SetBranchAddress(
"ggs3", ggs3 );
237 ggstree->SetBranchAddress(
"hadron", hadron );
238 ggstree->SetBranchAddress(
"hadronNo", &hadron_entry );
239 if ( bbb ) { ggstree->SetBranchAddress(
"costheta", gcostheta ); }
240 ggstree->GetEntry( 0 );
241 for (
int i = 0; i < 43; i++ )
243 tmpObject->
setggs( ggs0[i], 0, i );
244 tmpObject->
setggs( ggs1[i], 1, i );
245 tmpObject->
setggs( ggs2[i], 2, i );
246 tmpObject->
setggs( ggs3[i], 3, i );
248 for (
int i = 0; i < 80; i++ )
250 if ( !bbb ) gcostheta[i] = 0;
253 if ( hadron_entry > 20 )
255 log << MSG::FATAL <<
"hadron entry is larger than 20, larger than designed" << endmsg;
256 return StatusCode::FAILURE;
259 for (
int i = 0; i < hadron_entry; i++ ) { tmpObject->
set_hadron( hadron[i], i ); }
266 zdeptree->SetBranchAddress(
"zdep0", zdep0 );
267 zdeptree->SetBranchAddress(
"zdep1", zdep1 );
268 zdeptree->SetBranchAddress(
"zdep2", zdep2 );
269 zdeptree->SetBranchAddress(
"zdep3", zdep3 );
270 zdeptree->GetEntry( 0 );
272 for (
int i = 0; i < 43; i++ )
274 tmpObject->
setzdep( zdep0[i], 0, i );
275 tmpObject->
setzdep( zdep1[i], 1, i );
276 tmpObject->
setzdep( zdep2[i], 2, i );
277 tmpObject->
setzdep( zdep3[i], 3, i );
281 double gt0[35], gdedx[35];
282 gaintree->SetBranchAddress(
"gain", &gain );
285 gaintree->SetBranchAddress(
"t0", gt0 );
286 gaintree->SetBranchAddress(
"dedx", gdedx );
288 gaintree->GetEntry( 0 );
290 for (
int i = 0; i < 35; i++ )
297 tmpObject->
set_t0( gt0[i], i );
303 resoltree->SetBranchAddress(
"resol", &resol );
304 resoltree->GetEntry( 0 );
309 wiregtree->SetBranchAddress(
"wireg", wireg );
310 wiregtree->GetEntry( 0 );
311 for (
int i = 0; i < 6796; i++ )
313 if ( wireg[i] > 5 || wireg[i] < 0.2 ) wireg[i] = 0;
319 layergtree->SetBranchAddress(
"layerg", layerg );
320 layergtree->GetEntry( 0 );
322 for (
int i = 0; i < 43; i++ ) { tmpObject->
setlayerg( layerg[i], i ); }
326 refpObject = tmpObject;
338 return StatusCode::SUCCESS;