]> git.uio.no Git - u/mrichter/AliRoot.git/blame - TPC/Upgrade/macros/toyMCRecPlots.C
Next Steps for tracking from seed of associated clusters:
[u/mrichter/AliRoot.git] / TPC / Upgrade / macros / toyMCRecPlots.C
CommitLineData
376089b6 1/*
2
3root.exe -l $ALICE_ROOT/TPC/Upgrade/macros/{loadlibs.C,ConfigOCDB.C}
4.x $ALICE_ROOT/TPC/Upgrade/macros/toyMCRecPlots.C
5
6*/
7
642d0249 8void 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
c0ebc0e0 37 // special settings for all clusters reconstruction
38 if(inFileName.Contains("allClusters")){
39 sSel.Append("&& nClus>-1"); // only tracks with enough clusters (not yet used)!
40 sTrackParams[nTrackParams-1] = "nClus";
41 tTrackParams[nTrackParams-1] = "Number of used clusters";
42 }
642d0249 43 // retrieve configuration string
c0ebc0e0 44 TPRegexp reg(".*([0-9]_[0-9]_[0-9]_[0-9]{3}_[0-9]{2}).*debug.root");
642d0249 45 TObjArray *arrMatch=0x0;
46 arrMatch=reg.MatchS(inFileName);
47 TString sConfig = arrMatch->At(1)->GetName();
48
376089b6 49 // get file
50 TFile *fIn = TFile::Open(inFileName.Data(),"READ");
51 if(!fIn){
52 Printf("No file %s found",inFileName.Data());
53 return;
54 }
55
56 // get tree
57 TTree *Tracks = fIn->Get("Tracks");
58 if(!Tracks){
59 Printf("No TTree found");
60 return;
61 }
642d0249 62
376089b6 63 // output canvases
642d0249 64 TCanvas *cT0 = new TCanvas(Form("cT0_%s",sConfig.Data()),Form("cT0_%s",sConfig.Data()),1200,500);
376089b6 65 cT0->Divide(2,1);
66
642d0249 67 TCanvas *cT02D = new TCanvas(Form("cT02D_%s",sConfig.Data()),Form("cT02D_%s",sConfig.Data()),1200,500);
376089b6 68 cT02D->Divide(2,1);
69
642d0249 70 TCanvas *cZ0 = new TCanvas(Form("cZ0_%s",sConfig.Data()),Form("cZ0_%s",sConfig.Data()),1200,500);
71 cZ0->Divide(2,1);
72
73 TCanvas *cTrackParams = new TCanvas(Form("cTrackParams_%s",sConfig.Data()),Form("cTrackParams_%s",sConfig.Data()),1200,900);
376089b6 74 cTrackParams->Divide(3,3);
75
3240a856 76
376089b6 77 // legends
78 TLegend *l[nT0];
79
80
81
82 // draw T0 resolution
83 for(Int_t iT0 = 0; iT0 < nT0; iT0 ++){
84
85 cT0->cd(iT0+1);
642d0249 86 TStatToolkit::DrawHistogram(Tracks,sT0[iT0].Data(),sSel.Data(),Form("hT0_%s_%d",sConfig.Data(),iT0),Form("%s",tT0[iT0].Data()),3);
376089b6 87
88 //hT0[iT0]->Fit("gaus","","");
89 //l[iT0]= new TLegend(0.55,0.7,0.8,0.8,Form(""));
90 //myLegendSetUp(l[iT0],0.03);
91 //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));
92 //l[iT0]->Draw();
93
94 }
95
96
97 // draw T0 resolution (2D)
98 for(Int_t iT02D = 0; iT02D < nT02D; iT02D ++){
99
376089b6 100
101 cT02D->cd(iT02D+1);
642d0249 102 TStatToolkit::DrawHistogram(Tracks,sT02D[iT02D].Data(),sSel.Data(),Form("hT02D_%s_%d",sConfig.Data(),iT02D),Form("%s",tT02D[iT02D].Data()),3);
376089b6 103
104 }
105
642d0249 106 // draw Z0 resolution
107 for(Int_t iZ0 = 0; iZ0 < nZ0; iZ0 ++){
108
109 cZ0->cd(iZ0+1);
110 TStatToolkit::DrawHistogram(Tracks,sZ0[iZ0].Data(),sSel.Data(),Form("hZ0_%s_%d",sConfig.Data(),iZ0),Form("%s",tZ0[iZ0].Data()),3);
111
112 }
376089b6 113
114 // draw track parameters
115 for(Int_t iTrackParams = 0; iTrackParams < nTrackParams; iTrackParams ++){
116
117 cTrackParams->cd(iTrackParams+1);
642d0249 118 TStatToolkit::DrawHistogram(Tracks,sTrackParams[iTrackParams].Data(),sSel.Data(),Form("hTrackParams_%s_%d",sConfig.Data(),iTrackParams),Form("%s",tTrackParams[iTrackParams].Data()),3);
c0ebc0e0 119 if(inFileName.Contains("allClusters")) TStatToolkit::DrawHistogram(Tracks,sTrackParams[iTrackParams].Data(),sSel.Data(),Form("hTrackParams_%s_%d",sConfig.Data(),iTrackParams),Form("%s",tTrackParams[iTrackParams].Data()),5);
376089b6 120
121 }
122
123
124 // plots
642d0249 125 if(doPlots){
126 TString outFileName = inFileName;
127 outFileName.ReplaceAll(".root","");
128 cT0->SaveAs(Form("%s_T0.eps",outFileName.Data()));
129 cT02D->SaveAs(Form("%s_T02D.eps",outFileName.Data()));
130 cTrackParams->SaveAs(Form("%s_TrackParams.eps",outFileName.Data()));
131 }
376089b6 132}
133
134void myLegendSetUp(TLegend *currentLegend = NULL,Float_t currentTextSize=0.07){
135 currentLegend->SetTextFont(42);
136 currentLegend->SetBorderSize(0);
137 currentLegend->SetFillStyle(1);
138 currentLegend->SetFillColor(0);
139 currentLegend->SetMargin(0.25);
140 currentLegend->SetTextSize(currentTextSize);
141 currentLegend->SetEntrySeparation(0.5);
142 return;
143}
144
145void myHistoSetUp( TH1 *h = NULL, Int_t col = kBlack, Int_t mar = 20){
146
147 h->SetLineColor(col);
148 h->SetMarkerColor(col);
149 h->SetMarkerStyle(mar);
150
151}
152