182{
183 MsgStream log(
msgSvc(), name());
184 log<<MSG::INFO<<"DedxCalibCostheta::WriteHists()"<<endreq;
185
193
195 {
197
198 chientryNo[i] = m_chi[i]->GetEntries();
199 if(m_debug) cout << "get results at " << i << " bin with chi entries " << chientryNo[i] << endl;
200 if(m_chi[i]->GetFunction("gaus"))
201 {
202 chimean[i] = m_chi[i]->GetFunction("gaus")->GetParameter(1);
203 chimeanerr[i] = m_chi[i]->GetFunction("gaus")->GetParError(1);
204 chisigma[i] = m_chi[i]->GetFunction("gaus")->GetParameter(2);
205 chisq[i] = (m_chi[i]->GetFunction("gaus")->GetChisquare())/(m_chi[i]->GetFunction("gaus")->GetNDF());
206 }
207 pos_chientryNo[i] = m_pos_chi[i]->GetEntries();
208 if(m_debug) cout << "get results at " << i << " bin with pos_chi entries " << pos_chientryNo[i] << endl;
209 if(m_pos_chi[i]->GetFunction("gaus"))
210 {
211 pos_chimean[i] = m_pos_chi[i]->GetFunction("gaus")->GetParameter(1);
212 pos_chimeanerr[i] = m_pos_chi[i]->GetFunction("gaus")->GetParError(1);
213 pos_chisigma[i] = m_pos_chi[i]->GetFunction("gaus")->GetParameter(2);
214 pos_chisq[i] = (m_pos_chi[i]->GetFunction("gaus")->GetChisquare())/(m_pos_chi[i]->GetFunction("gaus")->GetNDF());
215 }
216 neg_chientryNo[i] = m_neg_chi[i]->GetEntries();
217 if(m_debug) cout << "get results at " << i << " bin with neg_chi entries " << neg_chientryNo[i] << endl;
218 if(m_neg_chi[i]->GetFunction("gaus"))
219 {
220 neg_chimean[i] = m_neg_chi[i]->GetFunction("gaus")->GetParameter(1);
221 neg_chimeanerr[i] = m_neg_chi[i]->GetFunction("gaus")->GetParError(1);
222 neg_chisigma[i] = m_neg_chi[i]->GetFunction("gaus")->GetParameter(2);
223 neg_chisq[i] = (m_neg_chi[i]->GetFunction("gaus")->GetChisquare())/(m_neg_chi[i]->GetFunction("gaus")->GetNDF());
224 }
225
226 fitentryNo[i] = m_costheta[i]->GetEntries();
227 if(m_debug) cout << "get results at " << i << " bin with fit entries " << fitentryNo[i] << endl;
228 if(m_costheta[i]->GetFunction("gaus"))
229 {
230 fitmean[i] = m_costheta[i]->GetFunction("gaus")->GetParameter(1);
231 fitmeanerr[i] = m_costheta[i]->GetFunction("gaus")->GetParError(1);
232 fitsigma[i] = m_costheta[i]->GetFunction("gaus")->GetParameter(2);
234 fitchisq[i] = (m_costheta[i]->GetFunction("gaus")->GetChisquare())/(m_costheta[i]->GetFunction("gaus")->GetNDF());
235 }
236 pos_fitentryNo[i] = m_pos_costheta[i]->GetEntries();
237 if(m_debug) cout << "get results at " << i << " bin with pos_fit entries " << pos_fitentryNo[i] << endl;
238 if(m_pos_costheta[i]->GetFunction("gaus"))
239 {
240 pos_fitmean[i] = m_pos_costheta[i]->GetFunction("gaus")->GetParameter(1);
241 pos_fitmeanerr[i] = m_pos_costheta[i]->GetFunction("gaus")->GetParError(1);
242 pos_fitsigma[i] = m_pos_costheta[i]->GetFunction("gaus")->GetParameter(2);
244 pos_fitchisq[i] = (m_pos_costheta[i]->GetFunction("gaus")->GetChisquare())/(m_pos_costheta[i]->GetFunction("gaus")->GetNDF());
245 }
246 neg_fitentryNo[i] = m_neg_costheta[i]->GetEntries();
247 if(m_debug) cout << "get results at " << i << " bin with neg_fit entries " << neg_fitentryNo[i] << endl;
248 if(m_neg_costheta[i]->GetFunction("gaus"))
249 {
250 neg_fitmean[i] = m_neg_costheta[i]->GetFunction("gaus")->GetParameter(1);
251 neg_fitmeanerr[i] = m_neg_costheta[i]->GetFunction("gaus")->GetParError(1);
252 neg_fitsigma[i] = m_neg_costheta[i]->GetFunction("gaus")->GetParameter(2);
254 neg_fitchisq[i] = (m_neg_costheta[i]->GetFunction("gaus")->GetChisquare())/(m_neg_costheta[i]->GetFunction("gaus")->GetNDF());
255 }
256
257 if(m_ave){
258 fitmean[i] = (pos_fitmean[i] + neg_fitmean[i])/2;
259 fitmeanerr[i] = sqrt(pow(pos_fitmeanerr[i],2) + pow(neg_fitmeanerr[i],2));
260 fitsigma[i] = sqrt(pow(pos_fitsigma[i],2) + pow(neg_fitsigma[i],2));
262 fitchisq[i] = (pos_fitchisq[i] + neg_fitchisq[i])/2;
263 }
264
265 if(fitentryNo[i]>100) m_dEdxVsCostheta -> SetBinContent(i+1,fitmean[i]);
266 if(pos_fitentryNo[i]>100) m_pos_dEdxVsCostheta -> SetBinContent(i+1,pos_fitmean[i]);
267 if(neg_fitentryNo[i]>100) m_neg_dEdxVsCostheta -> SetBinContent(i+1,neg_fitmean[i]);
268 }
269
270 double dedx1[
Size] = {0};
271 double costheta1[
Size] = {0};
272 cout << "Vec_dedx.size() = " << Vec_dedx.size() << endl;
273 for(
unsigned int i=0;i<
Size && i< Vec_dedx.size();i++)
274 {
275 dedx1[i] = Vec_dedx[i];
276 costheta1[i] = Vec_costheta[i];
277
278 }
279
280 log<<MSG::INFO<<"begin generating root file!!! "<<endreq;
281 TFile*
f =
new TFile(
m_rootfile.c_str(),
"RECREATE");
283 {
284 m_chi[i]->Write();
285 m_pos_chi[i]->Write();
286 m_neg_chi[i]->Write();
287 m_costheta[i]->Write();
288 m_pos_costheta[i]->Write();
289 m_neg_costheta[i]->Write();
290 }
291 m_dEdxVsCostheta->Write();
292 m_pos_dEdxVsCostheta->Write();
293 m_neg_dEdxVsCostheta->Write();
294
295 TTree *costhetacalib = new TTree("costhetacalib","costhetacalib");
296 costhetacalib ->
Branch(
"chientryNo",chientryNo,
"chientryNo[80]/D");
297 costhetacalib ->
Branch(
"chimean",chimean,
"chimean[80]/D");
298 costhetacalib ->
Branch(
"chimeanerr",chimeanerr,
"chimeanerr[80]/D");
299 costhetacalib ->
Branch(
"chisigma",chisigma,
"chisigma[80]/D");
300 costhetacalib ->
Branch(
"chisq",chisq,
"chisq[80]/D");
301 costhetacalib ->
Branch(
"pos_chientryNo",pos_chientryNo,
"pos_chientryNo[80]/D");
302 costhetacalib ->
Branch(
"pos_chimean",pos_chimean,
"pos_chimean[80]/D");
303 costhetacalib ->
Branch(
"pos_chimeanerr",pos_chimeanerr,
"pos_chimeanerr[80]/D");
304 costhetacalib ->
Branch(
"pos_chisigma",pos_chisigma,
"pos_chisigma[80]/D");
305 costhetacalib ->
Branch(
"pos_chisq",pos_chisq,
"pos_chisq[80]/D");
306 costhetacalib ->
Branch(
"neg_chientryNo",neg_chientryNo,
"neg_chientryNo[80]/D");
307 costhetacalib ->
Branch(
"neg_chimean",neg_chimean,
"neg_chimean[80]/D");
308 costhetacalib ->
Branch(
"neg_chimeanerr",neg_chimeanerr,
"neg_chimeanerr[80]/D");
309 costhetacalib ->
Branch(
"neg_chisigma",neg_chisigma,
"neg_chisigma[80]/D");
310 costhetacalib ->
Branch(
"neg_chisq",neg_chisq,
"neg_chisq[80]/D");
311 costhetacalib ->
Branch(
"fitentryNo", fitentryNo,
"fitentryNo[80]/D");
312 costhetacalib ->
Branch(
"fitmean", fitmean,
"fitmean[80]/D");
313 costhetacalib ->
Branch(
"fitmeanerr", fitmeanerr,
"fitmeanerr[80]/D");
314 costhetacalib ->
Branch(
"fitsigma", fitsigma,
"fitsigma[80]/D");
315 costhetacalib ->
Branch(
"costheta", gain,
"gain[80]/D");
316 costhetacalib ->
Branch(
"fitchisq", fitchisq,
"fitchisq[80]/D");
317 costhetacalib ->
Branch(
"pos_fitentryNo", pos_fitentryNo,
"pos_fitentryNo[80]/D");
318 costhetacalib ->
Branch(
"pos_fitmean", pos_fitmean,
"pos_fitmean[80]/D");
319 costhetacalib ->
Branch(
"pos_fitmeanerr", pos_fitmeanerr,
"pos_fitmeanerr[80]/D");
320 costhetacalib ->
Branch(
"pos_fitsigma", pos_fitsigma,
"pos_fitsigma[80]/D");
321 costhetacalib ->
Branch(
"pos_gain", pos_gain,
"pos_gain[80]/D");
322 costhetacalib ->
Branch(
"pos_fitchisq", pos_fitchisq,
"pos_fitchisq[80]/D");
323 costhetacalib ->
Branch(
"neg_fitentryNo", neg_fitentryNo,
"neg_fitentryNo[80]/D");
324 costhetacalib ->
Branch(
"neg_fitmean", neg_fitmean,
"neg_fitmean[80]/D");
325 costhetacalib ->
Branch(
"neg_fitmeanerr", neg_fitmeanerr,
"neg_fitmeanerr[80]/D");
326 costhetacalib ->
Branch(
"neg_fitsigma", neg_fitsigma,
"neg_fitsigma[80]/D");
327 costhetacalib ->
Branch(
"neg_gain", neg_gain,
"neg_gain[80]/D");
328 costhetacalib ->
Branch(
"neg_fitchisq", neg_fitchisq,
"neg_fitchisq[80]/D");
329 costhetacalib ->
Branch(
"cosBin", cosBin,
"cosBin[80]/D");
330 costhetacalib ->
Branch(
"costheta1",costheta1,
"costheta1[700000]/D");
331 costhetacalib ->
Branch(
"dedx1",dedx1,
"dedx1[700000]/D");
332 costhetacalib ->
Fill();
333 costhetacalib ->
Write();
334
335 TCanvas c1("c1", "canvas", 500, 400);
337 costhetacalib ->
Draw(
"dedx1:costheta1",
"dedx1>200 && dedx1<1000");
339 m_dEdxVsCostheta->Draw();
341 m_pos_dEdxVsCostheta->Draw();
343 m_neg_dEdxVsCostheta->Draw();
346 {
347 m_chi[i]->Draw();
349 }
351 {
352 m_pos_chi[i]->Draw();
354 }
356 {
357 m_neg_chi[i]->Draw();
359 }
361 {
362 m_costheta[i]->Draw();
364 }
366 {
367 m_pos_costheta[i]->Draw();
369 }
371 {
372 m_neg_costheta[i]->Draw();
374 }
377
379 {
380 delete m_chi[i];
381 delete m_pos_chi[i];
382 delete m_neg_chi[i];
383 delete m_costheta[i];
384 delete m_pos_costheta[i];
385 delete m_neg_costheta[i];
386 }
387 delete m_dEdxVsCostheta;
388 delete m_pos_dEdxVsCostheta;
389 delete m_neg_dEdxVsCostheta;
390}
curve Branch("CurveSize",&CurveSize,"CurveSize/I")