]>
Commit | Line | Data |
---|---|---|
376089b6 | 1 | /* |
2 | ||
3 | root.exe -l $ALICE_ROOT/TPC/Upgrade/macros/{loadlibs.C,ConfigOCDB.C} | |
4 | .x $ALICE_ROOT/TPC/Upgrade/macros/toyMCRecPlots.C | |
5 | ||
6 | */ | |
7 | ||
642d0249 | 8 | void toyMCRecPlots(TString inFileName = "toyMC.debug.root",Bool_t doPlots = kFALSE){ |
376089b6 | 9 | // |
10 | // do all the plots for Toy MC Reconstruction for the TDR | |
11 | // | |
12 | ||
13 | //gStyle->SetOptStat(0); | |
14 | ||
15 | // parameters | |
16 | const Int_t nT0 = 2; | |
17 | const Int_t nT02D = 2; | |
642d0249 | 18 | const Int_t nZ0 = 2; |
376089b6 | 19 | const Int_t nTrackParams = 9; |
20 | ||
21 | Int_t col = kBlack; | |
22 | ||
23 | TString sT0[nT0] = {"fTime0-t0","fTime0-t0+z0*TMath::Sign(1,tOrig.Eta())/vdrift"}; | |
24 | TString sT02D[nT02D] = {"fTime0-t0+z0*TMath::Sign(1,tOrig.Eta())/vdrift:tOrig.fP[3]","fTime0-t0+z0*TMath::Sign(1,tOrig.Eta())/vdrift:tOrig.fP[4]"}; | |
25 | TString sTrackParams[nTrackParams] = {"track.fP[0]-tOrig.fP[0]","track.fP[1]-tOrig.fP[1]","track.fP[2]-tOrig.fP[2]","track.fP[3]-tOrig.fP[3]","track.fP[4]-tOrig.fP[4]","track.fAlpha-tOrig.fAlpha","track.fX/tOrig.fX","track.fY/tOrig.fY","track.fZ/tOrig.fZ"}; | |
642d0249 | 26 | TString sZ0[nZ0] = {"(fTime0-t0)*vdrift","(fTime0-t0+z0*TMath::Sign(1,tOrig.Eta())/vdrift)*vdrift"}; |
27 | ||
376089b6 | 28 | |
29 | TString tT0[nT0] = {"T_{0} resolution","intrinsic T_{0} resolution"}; | |
30 | TString tT02D[nT0] = {"intrinsic T_{0} resolution vs. tan#lambda","intrinsic T_{0} resolution vs. 1/p_{T}"}; | |
31 | TString tTrackParams[nTrackParams] = {"local y","z","sin inclination angle","tan#lambda","1/p_{T}","#alpha","X","Y","Z"}; | |
642d0249 | 32 | TString tZ0[nZ0] = {"Z_{0} resolution","intrinsic Z_{0} resolution"}; |
33 | ||
376089b6 | 34 | |
35 | TString sSel = "fTime0>-1"; // seeding successful | |
36 | ||
642d0249 | 37 | // retrieve configuration string |
38 | TPRegexp reg(".*([0-9]_[0-9]_[0-9]_[0-9]{3}_[0-9]{2}).debug.root"); | |
39 | TObjArray *arrMatch=0x0; | |
40 | arrMatch=reg.MatchS(inFileName); | |
41 | TString sConfig = arrMatch->At(1)->GetName(); | |
42 | ||
376089b6 | 43 | // get file |
44 | TFile *fIn = TFile::Open(inFileName.Data(),"READ"); | |
45 | if(!fIn){ | |
46 | Printf("No file %s found",inFileName.Data()); | |
47 | return; | |
48 | } | |
49 | ||
50 | // get tree | |
51 | TTree *Tracks = fIn->Get("Tracks"); | |
52 | if(!Tracks){ | |
53 | Printf("No TTree found"); | |
54 | return; | |
55 | } | |
642d0249 | 56 | |
376089b6 | 57 | // output canvases |
642d0249 | 58 | TCanvas *cT0 = new TCanvas(Form("cT0_%s",sConfig.Data()),Form("cT0_%s",sConfig.Data()),1200,500); |
376089b6 | 59 | cT0->Divide(2,1); |
60 | ||
642d0249 | 61 | TCanvas *cT02D = new TCanvas(Form("cT02D_%s",sConfig.Data()),Form("cT02D_%s",sConfig.Data()),1200,500); |
376089b6 | 62 | cT02D->Divide(2,1); |
63 | ||
642d0249 | 64 | TCanvas *cZ0 = new TCanvas(Form("cZ0_%s",sConfig.Data()),Form("cZ0_%s",sConfig.Data()),1200,500); |
65 | cZ0->Divide(2,1); | |
66 | ||
67 | TCanvas *cTrackParams = new TCanvas(Form("cTrackParams_%s",sConfig.Data()),Form("cTrackParams_%s",sConfig.Data()),1200,900); | |
376089b6 | 68 | cTrackParams->Divide(3,3); |
69 | ||
3240a856 | 70 | |
376089b6 | 71 | // legends |
72 | TLegend *l[nT0]; | |
73 | ||
74 | ||
75 | ||
76 | // draw T0 resolution | |
77 | for(Int_t iT0 = 0; iT0 < nT0; iT0 ++){ | |
78 | ||
79 | cT0->cd(iT0+1); | |
642d0249 | 80 | TStatToolkit::DrawHistogram(Tracks,sT0[iT0].Data(),sSel.Data(),Form("hT0_%s_%d",sConfig.Data(),iT0),Form("%s",tT0[iT0].Data()),3); |
376089b6 | 81 | |
82 | //hT0[iT0]->Fit("gaus","",""); | |
83 | //l[iT0]= new TLegend(0.55,0.7,0.8,0.8,Form("")); | |
84 | //myLegendSetUp(l[iT0],0.03); | |
85 | //l[iT0]->AddEntry( hT0[iT0], Form("#sigma = (%.2f #pm %.2f) #mus",hT0[iT0]->GetFunction("gaus")->GetParameter(2)*1e6,hT0[iT0]->GetFunction("gaus")->GetParError(2)*1e6)); | |
86 | //l[iT0]->Draw(); | |
87 | ||
88 | } | |
89 | ||
90 | ||
91 | // draw T0 resolution (2D) | |
92 | for(Int_t iT02D = 0; iT02D < nT02D; iT02D ++){ | |
93 | ||
376089b6 | 94 | |
95 | cT02D->cd(iT02D+1); | |
642d0249 | 96 | TStatToolkit::DrawHistogram(Tracks,sT02D[iT02D].Data(),sSel.Data(),Form("hT02D_%s_%d",sConfig.Data(),iT02D),Form("%s",tT02D[iT02D].Data()),3); |
376089b6 | 97 | |
98 | } | |
99 | ||
642d0249 | 100 | // draw Z0 resolution |
101 | for(Int_t iZ0 = 0; iZ0 < nZ0; iZ0 ++){ | |
102 | ||
103 | cZ0->cd(iZ0+1); | |
104 | TStatToolkit::DrawHistogram(Tracks,sZ0[iZ0].Data(),sSel.Data(),Form("hZ0_%s_%d",sConfig.Data(),iZ0),Form("%s",tZ0[iZ0].Data()),3); | |
105 | ||
106 | } | |
376089b6 | 107 | |
108 | // draw track parameters | |
109 | for(Int_t iTrackParams = 0; iTrackParams < nTrackParams; iTrackParams ++){ | |
110 | ||
111 | cTrackParams->cd(iTrackParams+1); | |
642d0249 | 112 | TStatToolkit::DrawHistogram(Tracks,sTrackParams[iTrackParams].Data(),sSel.Data(),Form("hTrackParams_%s_%d",sConfig.Data(),iTrackParams),Form("%s",tTrackParams[iTrackParams].Data()),3); |
376089b6 | 113 | |
114 | } | |
115 | ||
116 | ||
117 | // plots | |
642d0249 | 118 | if(doPlots){ |
119 | TString outFileName = inFileName; | |
120 | outFileName.ReplaceAll(".root",""); | |
121 | cT0->SaveAs(Form("%s_T0.eps",outFileName.Data())); | |
122 | cT02D->SaveAs(Form("%s_T02D.eps",outFileName.Data())); | |
123 | cTrackParams->SaveAs(Form("%s_TrackParams.eps",outFileName.Data())); | |
124 | } | |
376089b6 | 125 | } |
126 | ||
127 | void myLegendSetUp(TLegend *currentLegend = NULL,Float_t currentTextSize=0.07){ | |
128 | currentLegend->SetTextFont(42); | |
129 | currentLegend->SetBorderSize(0); | |
130 | currentLegend->SetFillStyle(1); | |
131 | currentLegend->SetFillColor(0); | |
132 | currentLegend->SetMargin(0.25); | |
133 | currentLegend->SetTextSize(currentTextSize); | |
134 | currentLegend->SetEntrySeparation(0.5); | |
135 | return; | |
136 | } | |
137 | ||
138 | void myHistoSetUp( TH1 *h = NULL, Int_t col = kBlack, Int_t mar = 20){ | |
139 | ||
140 | h->SetLineColor(col); | |
141 | h->SetMarkerColor(col); | |
142 | h->SetMarkerStyle(mar); | |
143 | ||
144 | } | |
145 |