]> git.uio.no Git - u/mrichter/AliRoot.git/blame - TPC/macros/gainCalib.C
.so cleanup: more gSystem->Load()
[u/mrichter/AliRoot.git] / TPC / macros / gainCalib.C
CommitLineData
f987e214 1/*
2 Small macro to show perforamance of the gain calibration
3 tHe list of the files with tpc calib tracks is supposed to be in cosmic.txt file
4 Supposing the
5
6
b0635849 7 gSystem->Load("libSTAT")
f987e214 8 .x ~/rootlogon.C
9 .L $ALICE_ROOT/TPC/macros/AliXRDPROOFtoolkit.cxx+
10 AliXRDPROOFtoolkit tool;
b0635849 11 //gSystem->Load("/usr/local/grid/XRootd/GSI/lib/libXrdClient");
f987e214 12 //TProof * proof = TProof::Open("miranov@lxgrid2.gsi.de");
13
14*/
15
16TChain * chain = 0;
17TChain * chaing = 0;
18
19TStatToolkit toolkit;
20
21void Init(){
22
23 AliCDBManager::Instance()->SetRun(0);
162637e4 24 AliCDBManager::Instance()->SetDefaultStorage("local://$ALICE_ROOT/OCDB");
f987e214 25 AliTPCClusterParam *clparam = AliTPCcalibDB::Instance()->GetClusterParam();
26 AliTPCClusterParam::SetInstance(clparam);
27 //
28 AliXRDPROOFtoolkit tool;
29 chain = tool.MakeChain("cosmic.txt","dEdxT",0,1000)
30 chain->Lookup();
31 chaing = tool.MakeChain("cosmic.txt","TrackG",0,1000)
32 chaing->Lookup();
33 //
34 chain->SetAlias("dr","(250-abs(meanPos.fElements[4]))/250.");
35 chain->SetAlias("tz","(0+abs(parZ.fElements[1]))");
36 chain->SetAlias("ty","(0+abs(parY.fElements[1]))");
37 chain->SetAlias("corrg","sqrt((1+ty^2)*(1+tz^2))");
38}
39
40
41
42
43
44void MakeFits(){
45 TStatToolkit toolkit;
46 Double_t chi2;
47 TVectorD param;
48 TMatrixD covar;
49 Int_t npoints;
50 TString *strq0 = toolkit.FitPlane(chain,"dedxQ.fElements[2]","dr++tz++ty++dr*tz++dr*ty++ty*tz","IPad==0",chi2,npoints,param,covar,0,20000);
51 TString *strq1 = toolkit.FitPlane(chain,"dedxQ.fElements[2]","dr++tz++ty++dr*tz++dr*ty++ty*tz","IPad==1",chi2,npoints,param,covar,0,20000);
52 TString *strq2 = toolkit.FitPlane(chain,"dedxQ.fElements[2]","dr++tz++ty++dr*tz++dr*ty++ty*tz","IPad==2",chi2,npoints,param,covar,0,20000);
53 TString *strm0 = toolkit.FitPlane(chain,"dedxM.fElements[2]","dr++tz++ty++dr*tz++dr*ty++ty*tz","IPad==0",chi2,npoints,param,covar,0,20000);
54 TString *strm1 = toolkit.FitPlane(chain,"dedxM.fElements[2]","dr++tz++ty++dr*tz++dr*ty++ty*tz","IPad==1",chi2,npoints,param,covar,0,20000);
55 TString *strm2 = toolkit.FitPlane(chain,"dedxM.fElements[2]","dr++tz++ty++dr*tz++dr*ty++ty*tz","IPad==2",chi2,npoints,param,covar,0,20000);
56 chain->SetAlias("normqt0",strq0.Data());
57 chain->SetAlias("normqt1",strq1.Data());
58 chain->SetAlias("normqt2",strq2.Data());
59 chain->SetAlias("normqm0",strm0.Data());
60 chain->SetAlias("normqm1",strm1.Data());
61 chain->SetAlias("normqm2",strm2.Data());
62}
63
64TFile fqplot("qplot.root","update");
65
66
67void MakePlotsQS(){
68
69 chain->Draw("dedxQ.fElements[2]:sector>>hisQ_sector(36,0,36)","IPad==0&&P>1","prof*",1000000);
70 chain->Draw("dedxQ.fElements[2]/corrg:sector>>hisQ_sector_corrg(36,0,36)","IPad==0&&P>1","prof*",1000000);
71 chain->Draw("dedxQ.fElements[2]/AliTPCClusterParam::SQnorm(0,0,dr,ty,tz):sector>>hisQ_sector_corrcal(36,0,36)","IPad==0&&P>1","prof*",1000000);
72
73 TProfile * profq_sector = (TProfile*) gROOT->FindObject("hisQ_sector");
74 TProfile * profq_sector_corrg = (TProfile*) gROOT->FindObject("hisQ_sector_corrg");
75 TProfile * profq_sector_corrcal = (TProfile*) gROOT->FindObject("hisQ_sector_corrcal");
76 profq_sector->SetMarkerStyle(22);
77 profq_sector_corrg->SetMarkerStyle(24);
78 profq_sector_corrcal->SetMarkerStyle(26);
79 //
80 profq_sector->SetXTitle("Sector number");
81 profq_sector->SetYTitle("Mean amplitude");
82 profq_sector->SetMinimum(0);
83 profq_sector->Draw();
84 profq_sector_corrg->Draw("same");
85 profq_sector_corrcal->Draw("same");
86 fqplot.cd();
87 profq_sector->Write("qt_sector_0");
88 profq_sector_corrg->Write("qt_sector_1");
89 profq_sector_corrcal->Write("qt_sector_2");
90 gPad->Write("qt_sector");
91}
92
93
94void MakePlotsTY(){
95 //
96 //
97 //
98 chain->Draw("dedxQ.fElements[2]:ty>>hisQ_ty(20,0,1.5)","IPad==0&&P>1","prof*",1000000);
99 chain->Draw("dedxQ.fElements[2]/corrg:ty>>hisQ_ty_corrg(20,0,1.5)","IPad==0&&P>1","prof*",1000000);
100 chain->Draw("dedxQ.fElements[2]/AliTPCClusterParam::SQnorm(0,0,dr,ty,tz):ty>>hisQ_ty_corrcal(20,0,1.5)","IPad==0&&P>1","prof*",1000000);
101
102 TProfile * profq_ty = (TProfile*) gROOT->FindObject("hisQ_ty");
103 TProfile * profq_ty_corrg = (TProfile*) gROOT->FindObject("hisQ_ty_corrg");
104 TProfile * profq_ty_corrcal = (TProfile*) gROOT->FindObject("hisQ_ty_corrcal");
105 profq_ty->SetMarkerStyle(22);
106 profq_ty_corrg->SetMarkerStyle(24);
107 profq_ty_corrcal->SetMarkerStyle(26);
108 //
109 profq_ty->SetXTitle("tan(#phi)");
110 profq_ty->SetYTitle("Mean amplitude");
111 profq_ty->SetMinimum(0);
112 profq_ty->Draw();
113 profq_ty_corrg->Draw("same");
114 profq_ty_corrcal->Draw("same");
115 fqplot.cd();
116 profq_ty->Write("qt_ty_0");
117 profq_ty_corrg->Write("qt_ty_1");
118 profq_ty_corrcal->Write("qt_ty_2");
119 gPad->Write("qt_ty");
120}
121
122
123void MakePlotsTZ(){
124 //
125 //
126 //
127 chain->Draw("dedxQ.fElements[2]:tz>>hisQ_tz(20,0,1.5)","IPad==0&&P>1","prof*",1000000);
128 chain->Draw("dedxQ.fElements[2]/corrg:tz>>hisQ_tz_corrg(20,0,1.5)","IPad==0&&P>1","prof*",1000000);
129 chain->Draw("dedxQ.fElements[2]/AliTPCClusterParam::SQnorm(0,0,dr,ty,tz):tz>>hisQ_tz_corrcal(20,0,1.5)","IPad==0&&P>1","prof*",1000000);
130
131 TProfile * profq_tz = (TProfile*) gROOT->FindObject("hisQ_tz");
132 TProfile * profq_tz_corrg = (TProfile*) gROOT->FindObject("hisQ_tz_corrg");
133 TProfile * profq_tz_corrcal = (TProfile*) gROOT->FindObject("hisQ_tz_corrcal");
134 profq_tz->SetMarkerStyle(22);
135 profq_tz_corrg->SetMarkerStyle(24);
136 profq_tz_corrcal->SetMarkerStyle(26);
137 //
138 profq_tz->SetXTitle("tan(#theta)");
139 profq_tz->SetYTitle("Mean amplitude");
140 profq_tz->SetMinimum(0);
141 profq_tz->Draw();
142 profq_tz_corrg->Draw("same");
143 profq_tz_corrcal->Draw("same");
144 fqplot.cd();
145 profq_tz->Write("qt_tz_0");
146 profq_tz_corrg->Write("qt_tz_1");
147 profq_tz_corrcal->Write("qt_tz_2");
148 gPad->Write("qt_tz");
149}
150
151void MakePlotsDR(){
152 //
153 //
154 //
155 chain->Draw("dedxQ.fElements[2]:dr>>hisQ_dr(20,0,1.)","IPad==0&&P>1","prof*",1000000);
156 chain->Draw("dedxQ.fElements[2]/corrg:dr>>hisQ_dr_corrg(20,0,1.)","IPad==0&&P>1","prof*",1000000);
157 chain->Draw("dedxQ.fElements[2]/AliTPCClusterParam::SQnorm(0,0,dr,ty,dr):dr>>hisQ_dr_corrcal(20,0,1.)","IPad==0&&P>1","prof*",1000000);
158
159 TProfile * profq_dr = (TProfile*) gROOT->FindObject("hisQ_dr");
160 TProfile * profq_dr_corrg = (TProfile*) gROOT->FindObject("hisQ_dr_corrg");
161 TProfile * profq_dr_corrcal = (TProfile*) gROOT->FindObject("hisQ_dr_corrcal");
162 profq_dr->SetMarkerStyle(22);
163 profq_dr_corrg->SetMarkerStyle(24);
164 profq_dr_corrcal->SetMarkerStyle(26);
165 //
166 profq_dr->SetXTitle("drift length(unit)");
167 profq_dr->SetYTitle("Mean amplitude");
168 profq_dr->SetMinimum(0);
169 profq_dr->Draw();
170 profq_dr_corrg->Draw("same");
171 profq_dr_corrcal->Draw("same");
172 fqplot.cd();
173 profq_dr->Write("qt_dr_0");
174 profq_dr_corrg->Write("qt_dr_1");
175 profq_dr_corrcal->Write("qt_dr_2");
176 gPad->Write("qt_dr");
177}
178
179
180
181void MakePlotsQ(){
182 //
183 //
184 //
185 //
186 chaing->Draw("Track.fdEdx>>his0dedx(100,0,200)","Track.fN>100&&abs(Track.P()-15)<3","",20000);
187 chaing->Draw("Track.CookdEdxNorm(0.02,0.6,0,0,160)/3.71>>his0dedxnormQ(100,0,200)","Track.fN>100&&abs(Track.P()-15)<3","",20000);
188 TH1F * his0dedx = gROOT->FindObject("his0dedx");
189 TH1F * his0dedxnormq = gROOT->FindObject("his0dedxnormQ");
190 his0dedxnormq->SetXTitle("dEdx (rel. unit)")
191 his0dedxnormq->Draw();
192 his0dedx->Draw("same");
193
194
195 chaing->Draw("Track.CookdEdxNorm(0.02,0.6,0,0,160)/3.71:Track.GetP()>>hispdedxnorm(10,5,100)","Track.fN>100","prof",20000);
196
197
198 chaing->Draw("Track.fdEdx:sector0>>hisdedx(36,0,36)","Track.fN>60","prof",10000);
199 chaing->Draw("Track.CookdEdxNorm(0.02,0.6,0,0,160)/3.71:sector0>>hisdedxnormQ(36,0,36)","Track.fN>60","prof",10000);
200
201}
202
203
204
205
206
207
208
209
210
211
212
213