2 Draw result of perfomance test:
4 aliroot -b -q $ALICE_ROOT/TPC/scripts/loadTPCcalib.C $ALICE_ROOT/TPC/CalibMacros/CalibCosmic.C
6 //gROOT->Macro("~/NimStyle.C");
7 gSystem->AddIncludePath("-I$ALICE_ROOT/STAT")
8 gSystem->AddIncludePath("-I$ALICE_ROOT/TPC")
9 gSystem->AddIncludePath("-I$ALICE_ROOT/TPC/macros")
11 gSystem->Load("libANALYSIS");
12 gSystem->Load("libTPCcalib");
13 .L $ALICE_ROOT/TPC/CalibMacros/CalibCosmic.C
16 SetDefaultCut(); // check defualt cut
20 gROOT->Macro("~/NimStyle.C");
21 TFile f("cosmicPlots.root");
23 b.Add(CosmicPlots,"CosmicPlot");
27 #if !defined(__CINT__) || defined(__MAKECINT__)
28 #include "THnSparse.h"
38 #include "TProfile3D.h"
42 #include "TTreeStream.h"
43 #include "AliExternalTrackParam.h"
44 #include "AliESDfriend.h"
45 #include "AliTPCcalibCosmic.h"
47 #include "TPostScript.h"
49 #include "AliTrackerBase.h"
50 #include "AliTPCExBEffective.h"
51 #include "TEntryList.h"
56 class AliTPCcalibCosmic;
57 AliTPCcalibCosmic * cosmicScan =0;
59 Int_t colors[3]={1,2,4};
60 TObjArray *picArray = new TObjArray();
61 const char * chsign[3]={"all", "Positive","Negative"};
63 void SetRangeAll(Int_t axis, Float_t xmin, Float_t xmax);
65 void MakeDefaultPlots();
81 TFile fcalib("TPCCosmicObjects.root");
82 cosmicScan = ( AliTPCcalibCosmic *)fcalib.Get("cosmicTPC");
84 axisName[0] ="#Delta"; axisName[1] ="N_{cl}";
85 axisName[2] ="DCA_{r}(cm)";
86 axisName[3] ="z (cm)"; axisName[4] ="sin(#phi)";
87 axisName[5] ="tan(#theta)"; axisName[6] ="1/p_{t} (1/GeV)";
88 axisName[7] ="p_{t} (GeV)"; axisName[8] ="alpha";
91 for (Int_t ivar=0;ivar<6;ivar++){
92 for (Int_t ivar2=0;ivar2<9;ivar2++){
93 cosmicScan->fHistoDelta[ivar]->GetAxis(ivar2)->SetName(axisName[ivar2].Data());
94 cosmicScan->fHistoDelta[ivar]->GetAxis(ivar2)->SetTitle(axisName[ivar2].Data());
95 cosmicScan->fHistoPull[ivar]->GetAxis(ivar2)->SetName(axisName[ivar2].Data());
96 cosmicScan->fHistoPull[ivar]->GetAxis(ivar2)->SetTitle(axisName[ivar2].Data());
102 void SetRangeAll(Int_t axis, Float_t xmin, Float_t xmax){
104 for (Int_t i=0;i<6;i++){
106 cosmicScan->fHistoDelta[i]->GetAxis(axis)->SetRangeUser(xmin,xmax);
107 cosmicScan->fHistoPull[i]->GetAxis(axis)->SetRangeUser(xmin,xmax);
112 void SetDefaultCut(){
113 for (Int_t i=0;i<6;i++){
115 //cut on number of clusters
116 cosmicScan->fHistoDelta[i]->GetAxis(1)->SetRangeUser(130,200);
117 cosmicScan->fHistoPull[i]->GetAxis(1)->SetRangeUser(130,200);
119 cosmicScan->fHistoDelta[i]->GetAxis(2)->SetRangeUser(0,15);
120 cosmicScan->fHistoPull[i]->GetAxis(2)->SetRangeUser(0,15);
122 cosmicScan->fHistoDelta[i]->GetAxis(3)->SetRangeUser(-20,20);
123 cosmicScan->fHistoPull[i]->GetAxis(3)->SetRangeUser(-20,20);
125 cosmicScan->fHistoDelta[0]->GetAxis(0)->SetRangeUser(-1,1);
126 cosmicScan->fHistoDelta[1]->GetAxis(0)->SetRangeUser(-1,1);
127 cosmicScan->fHistoDelta[4]->GetAxis(0)->SetRangeUser(-0.1,0.1);
130 TH2 * GetDelta2D(Int_t type, Int_t var){
131 TH2 * his = cosmicScan->fHistoDelta[type]->Projection(0,var);
132 his->SetXTitle(cosmicScan->fHistoDelta[type]->GetAxis(var)->GetName());
133 his->SetYTitle(cosmicScan->fHistoDelta[type]->GetAxis(0)->GetName());
138 TH1* GetFit2D(Int_t type, Int_t var, Bool_t resol){
140 TH2 * his = cosmicScan->fHistoDelta[type]->Projection(0,var);
141 his->SetXTitle(cosmicScan->fHistoDelta[type]->GetAxis(var)->GetName());
142 his->SetYTitle(cosmicScan->fHistoDelta[type]->GetAxis(0)->GetName());
143 his->FitSlicesY(0,0,-1,0,"QNR",&fitArr);
145 if (resol) hres = (TH1*)(fitArr.At(2)->Clone());
146 if (!resol) hres = (TH1*)(fitArr.At(1)->Clone());
147 hres->SetMarkerStyle(20);
148 hres->SetMarkerColor(2);
149 hres->GetYaxis()->SetTitleOffset(1.8);
150 hres->GetYaxis()->SetDecimals(kTRUE);
155 TH1 * GetDelta(Int_t type){
156 TH1 * his = cosmicScan->fHistoDelta[type]->Projection(0);
157 his->SetXTitle(cosmicScan->fHistoDelta[type]->GetAxis(0)->GetName());
161 TH2 * GetPull2D(Int_t type, Int_t var){
162 TH2 * his = cosmicScan->fHistoPull[type]->Projection(0,var);
163 his->SetXTitle(cosmicScan->fHistoPull[type]->GetAxis(var)->GetName());
164 his->SetYTitle(cosmicScan->fHistoPull[type]->GetAxis(0)->GetName());
168 TH1* GetPull2DSigma(Int_t type, Int_t var){
170 TH2 * his = cosmicScan->fHistoPull[type]->Projection(0,var);
171 his->SetXTitle(cosmicScan->fHistoPull[type]->GetAxis(var)->GetName());
172 his->SetYTitle(cosmicScan->fHistoPull[type]->GetAxis(0)->GetName());
173 his->FitSlicesY(0,0,-1,0,"QNR",&fitArr);
174 TH1 * hres = (TH1*)(fitArr.At(2)->Clone());
180 TH1 * GetPull(Int_t type){
181 TH1 * his = cosmicScan->fHistoPull[type]->Projection(0);
182 his->SetXTitle(cosmicScan->fHistoPull[type]->GetAxis(0)->GetName());
187 void DrawResoldEdx(){
191 Int_t kmicolors[10]={1,2,3,6,7,8,9,10,11,12};
192 Int_t kmimarkers[10]={21,22,23,24,25,26,27,28,29,30};
198 for (Int_t ipad=0;ipad<4;ipad++){
199 cosmicScan->fHistodEdxTot[ipad]->GetAxis(4)->SetRangeUser(-0.6,0.6);
200 cosmicScan->fHistodEdxMax[ipad]->GetAxis(4)->SetRangeUser(-0.6,0.6);
202 cosmicScan->fHistodEdxTot[0]->GetAxis(1)->SetRangeUser(30,62);
203 cosmicScan->fHistodEdxTot[1]->GetAxis(1)->SetRangeUser(30,62);
204 cosmicScan->fHistodEdxTot[2]->GetAxis(1)->SetRangeUser(10,35);
205 cosmicScan->fHistodEdxTot[3]->GetAxis(1)->SetRangeUser(10,150);
206 cosmicScan->fHistodEdxMax[0]->GetAxis(1)->SetRangeUser(30,62);
207 cosmicScan->fHistodEdxMax[1]->GetAxis(1)->SetRangeUser(30,62);
208 cosmicScan->fHistodEdxMax[2]->GetAxis(1)->SetRangeUser(10,35);
209 cosmicScan->fHistodEdxMax[3]->GetAxis(1)->SetRangeUser(10,150);
212 for (Int_t ipad=0;ipad<4;ipad++){
213 htemp = cosmicScan->fHistodEdxTot[ipad]->Projection(0,1);
214 htemp->FitSlicesY(0,0,-1,0,"QNR",&arr);
215 hResolTot[ipad] = (TH1*)(arr.At(2)->Clone());
219 hResolTot[ipad]->Scale(1./TMath::Sqrt(2.));
221 htemp = cosmicScan->fHistodEdxMax[ipad]->Projection(0,1);
222 htemp->FitSlicesY(0,0,-1,0,"QNR",&arr);
223 hResolMax[ipad] = (TH1*)(arr.At(2)->Clone());
227 hResolMax[ipad]->Scale(1./TMath::Sqrt(2.));
229 hResolTot[3]->GetXaxis()->SetRangeUser(0,160);
230 hResolTot[3]->SetXTitle("N_{cl}");
231 hResolTot[3]->SetYTitle("#sigma(dEdx/dEdx_{d})/#sqrt{2.}");
232 hResolTot[3]->SetTitle("Relative dEdx resolution");
233 for (Int_t ipad=3;ipad>=0;ipad--){
234 hResolTot[ipad]->SetMaximum(0.1);
235 hResolTot[ipad]->SetMinimum(0.);
236 hResolTot[ipad]->SetMarkerColor(kmicolors[ipad]+0);
237 hResolTot[ipad]->SetMarkerStyle(kmimarkers[ipad]+1);
238 if (ipad==3) hResolTot[ipad]->Draw();
239 hResolTot[ipad]->Draw("same");
241 hResolMax[ipad]->SetMaximum(0.1);
242 hResolMax[ipad]->SetMinimum(0.);
243 hResolMax[ipad]->SetMarkerColor(kmicolors[ipad]+0);
244 hResolMax[ipad]->SetMarkerStyle(kmimarkers[ipad]+4);
245 hResolMax[ipad]->Draw("same");
250 void DrawStat(Int_t coord, TObjArray *array=0){
254 TCanvas *cStat = new TCanvas(Form("Cosmic stat%d",coord), Form("CosmicStat%d",coord),1000,800);
255 Float_t mx0=0.2, mx1=0.05, my0=0.15, my1=0.1;
256 cStat->SetMargin(mx0,mx1,my0,my1);
258 for (Int_t i=1; i<8; i++){
260 cosmicScan->fHistoDelta[0]->Projection(i)->Draw();
262 if (array) array->AddLast(cStat);
265 void SetStylePad(TVirtualPad *pad){
266 Float_t mx0=0.2, mx1=0.05, my0=0.15, my1=0.1;
267 pad->SetMargin(mx0,mx1,my0,my1);
273 void MakePlotPt(TObjArray * array){
276 TCanvas *cptRes = new TCanvas("TPCPtResol","TPCPtResol",900,600);
278 SetStylePad(cptRes->cd(1));
279 SetStylePad(cptRes->cd(2));
281 TLegend *legend = new TLegend(0.2,0.7,0.6,0.9,"");
286 for (Int_t i=0; i<3; i++){
287 if (i==0) cosmicScan->fHistoDelta[5]->GetAxis(6)->SetRangeUser(-1,1);
288 if (i==1) cosmicScan->fHistoDelta[5]->GetAxis(6)->SetRangeUser(0.001,1);
289 if (i==2) cosmicScan->fHistoDelta[5]->GetAxis(6)->SetRangeUser(-1,-0.001);
290 hisRes = (TH1*)GetFit2D(5,7,kTRUE)->Clone();
291 hisMean = (TH1*)GetFit2D(5,7,kFALSE)->Clone();
292 hisMean->SetName(Form("#Deltap_{t}/p_{t} %s",chsign[i]));
293 hisRes->SetName(Form("#sigma_{p_{t}}/p_{t} %s",chsign[i]));
294 hisMean->SetTitle(Form("#Delta_{p_{t}}/p_{t} %s",chsign[i]));
295 hisRes->SetTitle(Form("#sigma_{p_{t}}/p_{t} %s",chsign[i]));
297 hisRes->SetMarkerStyle(20);
298 hisMean->SetMarkerStyle(20);
299 hisRes->SetMarkerColor(colors[i]);
300 hisMean->SetMarkerColor(colors[i]);
303 hisRes->SetMaximum(30);
304 hisRes->SetMinimum(0);
305 hisMean->SetMaximum(20);
306 hisMean->SetMinimum(-20);
307 hisRes->SetYTitle("#sigma_{p_{t}}/p_{t} (%)");
308 hisMean->SetYTitle("#Delta_{p_{t}}/p_{t} (%)");
309 hisRes->GetXaxis()->SetRangeUser(0,50);
310 hisMean->GetXaxis()->SetRangeUser(0,50);
312 hisRes->Draw("same");
313 if (i==0) hisRes->Draw("");
315 hisMean->Draw("same");
316 if (i==0) hisMean->Draw("");
317 legend->AddEntry(hisMean);
320 if (array) array->AddLast(cptRes);
324 void MakePlotP4(TObjArray * array){
327 TCanvas *cptRes = new TCanvas("TPCP4Resol","TPCP4Resol",900,600);
329 SetStylePad(cptRes->cd(1));
330 SetStylePad(cptRes->cd(2));
332 TLegend *legend = new TLegend(0.2,0.7,0.6,0.9,"");
338 for (Int_t i=0; i<3; i++){
339 if (i==0) cosmicScan->fHistoDelta[4]->GetAxis(6)->SetRangeUser(-1,1);
340 if (i==1) cosmicScan->fHistoDelta[4]->GetAxis(6)->SetRangeUser(0.001,1);
341 if (i==2) cosmicScan->fHistoDelta[4]->GetAxis(6)->SetRangeUser(-1,-0.001);
342 hisRes = (TH1*)GetFit2D(4,7,kTRUE)->Clone();
343 hisMean = (TH1*)GetFit2D(4,7,kFALSE)->Clone();
344 hisMean->SetName(Form("#Delta_{1/p_{t}} %s",chsign[i]));
345 hisRes->SetName(Form("#sigma_{1/p_{t}} %s",chsign[i]));
346 hisMean->SetTitle(Form("#Delta_{1/p_{t}} %s",chsign[i]));
347 hisRes->SetTitle(Form("#sigma_{1/p_{t}} %s",chsign[i]));
349 hisRes->SetMarkerStyle(20+i);
350 hisMean->SetMarkerStyle(20+i);
351 hisMean->SetMarkerColor(colors[i]);
352 hisRes->SetMarkerColor(colors[i]);
353 hisRes->SetMaximum(0.02);
354 hisRes->SetMinimum(-0.0);
355 hisMean->SetMaximum(0.02);
356 hisMean->SetMinimum(-0.02);
357 hisRes->SetYTitle("#sigma_{1/pt} (1/GeV)");
358 hisMean->SetYTitle("#Delta_{1/pt} (1/GeV)");
359 hisMean->SetXTitle("p_{t} (GeV)");
360 hisRes->SetXTitle("p_{t} (GeV)");
361 hisRes->GetXaxis()->SetRangeUser(0,50);
362 hisMean->GetXaxis()->SetRangeUser(0,50);
364 hisRes->Draw("same");
365 if (i==0) hisRes->Draw("");
367 hisMean->Draw("same");
368 if (i==0) hisMean->Draw("");
369 legend->AddEntry(hisMean);
372 if (array) array->AddLast(cptRes);
380 void MakePlotPosY(TObjArray * array){
383 TCanvas *cptRes = new TCanvas("TPCPosResolY","TPCPosResolY",900,600);
385 SetStylePad(cptRes->cd(1));
386 SetStylePad(cptRes->cd(2));
388 TLegend *legend = new TLegend(0.2,0.7,0.6,0.9,"");
393 for (Int_t i=0; i<3; i++){
394 if (i==1) cosmicScan->fHistoDelta[0]->GetAxis(6)->SetRangeUser(0.0001,1);
395 if (i==2) cosmicScan->fHistoDelta[0]->GetAxis(6)->SetRangeUser(-1,-0.0001);
396 if (i==0) cosmicScan->fHistoDelta[0]->GetAxis(6)->SetRangeUser(-1,1);
397 hisRes = (TH1*)GetFit2D(0,7,kTRUE)->Clone();
398 hisMean = (TH1*)GetFit2D(0,7,kFALSE)->Clone();
399 hisMean->SetName(Form("#Delta_{r#phi} %s",chsign[i]));
400 hisRes->SetName(Form("#sigma_{r#phi} %s",chsign[i]));
401 hisMean->SetTitle(Form("#Delta_{r#phi} %s",chsign[i]));
402 hisRes->SetTitle(Form("#sigma_{r#phi} %s",chsign[i]));
404 hisRes->SetMarkerStyle(20+i);
405 hisMean->SetMarkerStyle(20+i);
406 hisMean->SetMarkerColor(colors[i]);
407 hisRes->SetMarkerColor(colors[i]);
410 hisRes->SetMaximum(0.4);
411 hisRes->SetMinimum(0.0);
412 hisMean->SetMaximum(0.4);
413 hisMean->SetMinimum(-0.4);
414 hisRes->SetName("Y resol");
415 hisRes->SetName("Y resolution");
416 hisRes->SetYTitle("#sigma_{y} (cm)");
417 hisMean->SetYTitle("#Delta_{y} (cm)");
418 hisRes->GetXaxis()->SetRangeUser(0,50);
419 hisMean->GetXaxis()->SetRangeUser(0,50);
421 hisRes->Draw("same");
422 if (i==0) hisRes->Draw("");
424 hisMean->Draw("same");
425 if (i==0) hisMean->Draw("");
426 legend->AddEntry(hisMean);
429 if (array) array->AddLast(cptRes);
432 void MakePlotSnp(TObjArray * array){
435 TCanvas *cptRes = new TCanvas("TPCSnp","TPCSnp",900,600);
437 SetStylePad(cptRes->cd(1));
438 SetStylePad(cptRes->cd(2));
440 TLegend *legend = new TLegend(0.2,0.7,0.6,0.9,"");
445 for (Int_t i=0; i<3; i++){
446 if (i==1) cosmicScan->fHistoDelta[2]->GetAxis(6)->SetRangeUser(0.0001,1);
447 if (i==2) cosmicScan->fHistoDelta[2]->GetAxis(6)->SetRangeUser(-1,-0.0001);
448 if (i==0) cosmicScan->fHistoDelta[2]->GetAxis(6)->SetRangeUser(-1,1);
449 hisRes = (TH1*)GetFit2D(2,7,kTRUE)->Clone();
450 hisMean = (TH1*)GetFit2D(2,7,kFALSE)->Clone();
451 hisMean->SetName(Form("#Delta_{#phi} %s",chsign[i]));
452 hisRes->SetName(Form("#sigma_{#phi} %s",chsign[i]));
453 hisMean->SetTitle(Form("#Delta_{#phi} %s",chsign[i]));
454 hisRes->SetTitle(Form("#sigma_{#phi} %s",chsign[i]));
456 hisRes->SetMarkerStyle(20+i);
457 hisMean->SetMarkerStyle(20+i);
458 hisMean->SetMarkerColor(colors[i]);
459 hisRes->SetMarkerColor(colors[i]);
462 hisRes->SetMaximum(4);
463 hisRes->SetMinimum(4);
464 hisMean->SetMaximum(4);
465 hisMean->SetMinimum(-4);
466 hisRes->SetYTitle("#sigma_{#phi} (mrad)");
467 hisMean->SetYTitle("#Delta_{#phi} (mrad)");
468 hisRes->GetXaxis()->SetRangeUser(0,50);
469 hisMean->GetXaxis()->SetRangeUser(0,50);
471 hisRes->Draw("same");
472 if (i==0) hisRes->Draw("");
474 hisMean->Draw("same");
475 if (i==0) hisMean->Draw("");
476 legend->AddEntry(hisMean);
479 if (array) array->AddLast(cptRes);
481 void MakePlotTgl(TObjArray * array){
484 TCanvas *cptRes = new TCanvas("TPCtgl","TPCtgl",900,600);
486 SetStylePad(cptRes->cd(1));
487 SetStylePad(cptRes->cd(2));
489 TLegend *legend = new TLegend(0.2,0.7,0.6,0.9,"");
494 for (Int_t i=0; i<3; i++){
495 if (i==1) cosmicScan->fHistoDelta[3]->GetAxis(6)->SetRangeUser(0.0001,1);
496 if (i==2) cosmicScan->fHistoDelta[3]->GetAxis(6)->SetRangeUser(-1,-0.0001);
497 if (i==0) cosmicScan->fHistoDelta[3]->GetAxis(6)->SetRangeUser(-1,1);
498 hisRes = (TH1*)GetFit2D(3,7,kTRUE)->Clone();
499 hisMean = (TH1*)GetFit2D(3,7,kFALSE)->Clone();
500 hisMean->SetName(Form("#Delta_{#theta} %s",chsign[i]));
501 hisRes->SetName(Form("#sigma_{#theta} %s",chsign[i]));
502 hisMean->SetTitle(Form("#Delta_{#theta} %s",chsign[i]));
503 hisRes->SetTitle(Form("#sigma_{#theta} %s",chsign[i]));
505 hisRes->SetMarkerStyle(20+i);
506 hisMean->SetMarkerStyle(20+i);
507 hisMean->SetMarkerColor(colors[i]);
508 hisRes->SetMarkerColor(colors[i]);
511 hisRes->SetMaximum(4);
512 hisRes->SetMinimum(4);
513 hisMean->SetMaximum(4);
514 hisMean->SetMinimum(-4);
515 hisRes->SetYTitle("#sigma_{#theta} (mrad)");
516 hisMean->SetYTitle("#Delta_{#theta} (mrad)");
517 hisRes->GetXaxis()->SetRangeUser(0,50);
518 hisMean->GetXaxis()->SetRangeUser(0,50);
520 hisRes->Draw("same");
521 if (i==0) hisRes->Draw("");
523 hisMean->Draw("same");
524 if (i==0) hisMean->Draw("");
525 legend->AddEntry(hisMean);
528 if (array) array->AddLast(cptRes);
531 void MakePlotPosZ(TObjArray * array){
534 TCanvas *cptRes = new TCanvas("TPCPosResolZ","TPCPosResolZ",900,600);
536 SetStylePad(cptRes->cd(1));
537 SetStylePad(cptRes->cd(2));
539 TLegend *legend = new TLegend(0.2,0.7,0.6,0.9,"");
544 for (Int_t i=0; i<3; i++){
545 if (i==1) cosmicScan->fHistoDelta[1]->GetAxis(6)->SetRangeUser(0.001,1.);
546 if (i==2) cosmicScan->fHistoDelta[1]->GetAxis(6)->SetRangeUser(-1,-0.001);
547 if (i==0) cosmicScan->fHistoDelta[1]->GetAxis(6)->SetRangeUser(-1,1);
549 hisRes = (TH1*)GetFit2D(1,7,kTRUE)->Clone();
550 hisMean = (TH1*)GetFit2D(1,7,kFALSE)->Clone();
551 hisMean->SetName(Form("#Delta_{z} %s",chsign[i]));
552 hisRes->SetName(Form("#sigma_{z} %s",chsign[i]));
553 hisMean->SetTitle(Form("#Delta_{z} %s",chsign[i]));
554 hisRes->SetTitle(Form("#sigma_{z} %s",chsign[i]));
557 hisRes->SetMaximum(0.4);
558 hisRes->SetMinimum(0.0);
559 hisMean->SetMaximum(0.2);
560 hisMean->SetMinimum(-0.2);
561 hisRes->SetMarkerStyle(20);
562 hisMean->SetMarkerStyle(20);
563 hisRes->SetMarkerColor(colors[i]);
564 hisMean->SetMarkerColor(colors[i]);
566 hisRes->SetName("Z resol");
567 hisRes->SetName("Z resolution");
568 hisRes->SetYTitle("#sigma_{z} (cm)");
569 hisMean->SetYTitle("#Delta_{z} (cm)");
570 hisRes->GetXaxis()->SetRangeUser(0,50);
571 hisMean->GetXaxis()->SetRangeUser(0,50);
573 hisRes->Draw("same");
574 if (i==0) hisRes->Draw();
576 hisMean->Draw("same");
577 if (i==0) hisMean->Draw();
578 legend->AddEntry(hisMean);
581 if (array) array->AddLast(cptRes);
585 void MakeDefaultPlots(){
589 gStyle->SetOptStat(1100);
590 DrawStat(0,picArray);
591 gStyle->SetOptStat(0);
592 MakePlotPosY(picArray);
593 MakePlotPosZ(picArray);
594 MakePlotSnp(picArray);
595 MakePlotTgl(picArray);
596 MakePlotP4(picArray);
597 MakePlotPt(picArray);
600 TFile f("cosmicPlots.root","recreate");
601 picArray->Write("CosmicPlots",TObject::kSingleKey);
603 TPostScript *ps=new TPostScript("cosmicPerformance.ps", 112);
605 for (Int_t ipad=0;ipad<picArray->GetEntries();ipad++){
606 TCanvas *c =dynamic_cast<TCanvas*> (picArray->At(ipad));