]> git.uio.no Git - u/mrichter/AliRoot.git/blame - TPC/CalibMacros/CalibAlign.C
Merge branch 'master' into TPCdev
[u/mrichter/AliRoot.git] / TPC / CalibMacros / CalibAlign.C
CommitLineData
1a5016fc 1/*
2 .x ~/UliStyle.C
3 .x ~/rootlogon.C
4 gSystem->Load("libSTAT.so");
5 gSystem->Load("libANALYSIS");
6 gSystem->Load("libTPCcalib");
7 gSystem->Load("libSTAT.so");
8 gSystem->AddIncludePath("-I$ALICE_ROOT/TPC/macros");
9
10
11
12 gROOT->LoadMacro("$ALICE_ROOT/TPC/macros/AliXRDPROOFtoolkit.cxx+")
13 AliXRDPROOFtoolkit tool;
14 TChain * chainCosmic = tool.MakeChain("cosmic.txt","Track0",0,1000000);
15 chainCosmic->Lookup();
16 chainCosmic->SetProof(kTRUE);
17 TChain * chainTr = tool.MakeChain("align.txt","Tracklet",0,10200);
18 chainTr->Lookup();
19 //chainTr->SetProof(kTRUE);
20 //
21 //
22 //
23 .L $ALICE_ROOT/TPC/CalibMacros/CalibAlign.C
24 SetAlias();
25 InitCutsAlign();
26 MakeAlign();
27
28*/
29/*
30#include "TMath.h"
31#include "TFile.h"
32#include "TLinearFitter.h"
33#include "TChain.h"
34#include "TTreeStream.h"
35#include "TStatToolkit.h"
36#include "TH2F.h"
37#include "TLegend.h"
38#include "TCut.h"
39#include "TPad.h"
40#include "AliTPCcalibAlign.h"
41*/
42
43
44
45AliTPCcalibAlign align;
46TChain * chainTr;
47
48void SetAlias(){
49 //
50 //
51 //
52 chainTr->SetAlias("dP0","tp1.fP[0]-tp2.fP[0]");
53 chainTr->SetAlias("dP1","tp1.fP[1]-tp2.fP[1]");
54 chainTr->SetAlias("dP2","tp1.fP[2]-tp2.fP[2]");
55 chainTr->SetAlias("dP3","tp1.fP[3]-tp2.fP[3]");
56 chainTr->SetAlias("dP4","tp1.fP[4]-tp2.fP[4]");
57 //
58 chainTr->SetAlias("sP0","sqrt(tp1.fC[0]+tp2.fC[0])");
59 chainTr->SetAlias("sP1","sqrt(tp1.fC[2]+tp2.fC[2])");
60 chainTr->SetAlias("sP2","sqrt(tp1.fC[5]+tp2.fC[5])");
61 chainTr->SetAlias("sP3","sqrt(tp1.fC[9]+tp2.fC[9])");
62 chainTr->SetAlias("sP4","sqrt(tp1.fC[14]+tp2.fC[14])");
63 //
64 chainTr->SetAlias("pP0","dP0/sP0");
65 chainTr->SetAlias("pP1","dP1/sP1");
66 chainTr->SetAlias("pP2","dP2/sP2");
67 chainTr->SetAlias("pP3","dP3/sP3");
68 //
69 chainTr->SetAlias("side","(sign(tp1.fP[1])+0)");
70 chainTr->SetAlias("dR","(1-abs(tp1.fP[1]/250.))");
71 chainTr->SetAlias("ta0","(tp1.fP[2]+tp2.fP[2])*0.5");
72 chainTr->SetAlias("ta1","(tp1.fP[3]+tp2.fP[3])*0.5");
73 chainTr->SetAlias("ca","cos(tp1.fAlpha+0)");
74 chainTr->SetAlias("sa","sin(tp1.fAlpha+0)");
75 //
76 chainTr->SetAlias("meanZ","(tp1.fP[1]+tp2.fP[1])*0.5");
77 chainTr->SetAlias("vx1","(v1.fElements[0]+0)");
78 chainTr->SetAlias("vy1","(v1.fElements[1]+0)");
79 chainTr->SetAlias("vz1","(v1.fElements[2]+0)");
80 chainTr->SetAlias("vdydx1","(v1.fElements[3]+0)");
81 chainTr->SetAlias("vdzdx1","(v1.fElements[4]+0)");
82 chainTr->SetAlias("vx2","(v2.fElements[0]+0)");
83 chainTr->SetAlias("vy2","(v2.fElements[1]+0)");
84 chainTr->SetAlias("vz2","(v2.fElements[2]+0)");
85 chainTr->SetAlias("vdydx2","(v2.fElements[3]+0)");
86 chainTr->SetAlias("vdzdx2","(v2.fElements[4]+0)");
87 //
88 //
89 //
90 chainTr->SetAlias("dx1","(AliTPCcalibAlign::SCorrect(0,0,s1,s2,vx1,vy1,vz1,vdydx1,vdzdx1)-vx1)");
91 chainTr->SetAlias("dy1","(AliTPCcalibAlign::SCorrect(0,1,s1,s2,vx1,vy1,vz1,vdydx1,vdzdx1)-vy1)");
92 chainTr->SetAlias("dz1","(AliTPCcalibAlign::SCorrect(0,2,s1,s2,vx1,vy1,vz1,vdydx1,vdzdx1)-vz1)");
93 chainTr->SetAlias("ddy1","(AliTPCcalibAlign::SCorrect(0,3,s1,s2,vx1,vy1,vz1,vdydx1,vdzdx1)-vdydx1)");
94 chainTr->SetAlias("ddz1","(AliTPCcalibAlign::SCorrect(0,4,s1,s2,vx1,vy1,vz1,vdydx1,vdzdx1)-vdzdx1)");
95 chainTr->SetAlias("ddy01","(AliTPCcalibAlign::SCorrect(0,5,s1,s2,vx1,vy1,vz1,vdydx1,vdzdx1)-vdydx1)");
96 chainTr->SetAlias("ddz01","(AliTPCcalibAlign::SCorrect(0,6,s1,s2,vx1,vy1,vz1,vdydx1,vdzdx1)-vdzdx1)");
97
98
99}
100
101
102void InitCutsAlign(){
103 // resolution cuts
104 TCut cutS0("sqrt(tp2.fC[0]+tp2.fC[0])<0.2");
105 TCut cutS1("sqrt(tp2.fC[2]+tp2.fC[2])<0.2");
106 TCut cutS2("sqrt(tp2.fC[5]+tp2.fC[5])<0.01");
107 TCut cutS3("sqrt(tp2.fC[9]+tp2.fC[9])<0.01");
108 TCut cutS4("sqrt(tp2.fC[14]+tp2.fC[14])<0.5");
109 TCut cutS=cutS0+cutS1+cutS2+cutS3+cutS4;
110 //
111 // parameters matching cuts
112 TCut cutP0("abs(tp1.fP[0]-tp2.fP[0])<0.6");
113 TCut cutP1("abs(tp1.fP[1]-tp2.fP[1])<0.6");
114 TCut cutP2("abs(tp1.fP[2]-tp2.fP[2])<0.03");
115 TCut cutP3("abs(tp1.fP[3]-tp2.fP[3])<0.03");
116 TCut cutP=cutP0+cutP1+cutP2+cutP3;
117 //
118 TCut cutAll = cutS+cutP;
119 chainTr->Draw(">>listELP",cutAll,"entryList");
120 TEntryList *elist = (TEntryList*)gDirectory->Get("listELP");
121 chainTr->SetEntryList(elist);
122
123 TCut cutRun("1");
124 TCut cutN120("1");
125
126}
127
128void MakeAlign(){
129
130 align.ProcessTree(chainTr);
131 align.EvalFitters();
132 align.MakeTree("alignTree.root");
133 align.SetInstance(&align);
134}
135
136void MakeCompareAlign(){
137 //
138 //
139 //
140 TFile falignTreeNoMag("/lustre_alpha/alice/miranov/rec/LHC08d/nomag/alignTree.root");
141 TTree * treeAlignNoMag = (TTree*)falignTreeNoMag.Get("Align");
142 TFile falignTree("alignTree.root");
143 TTree * treeAlign = (TTree*)falignTree.Get("Align");
144 treeAlign->AddFriend(treeAlignNoMag,"NoMag");
145 treeAlignNoMag->SetMarkerStyle(26);
146 treeAlign->SetMarkerStyle(25);
147}
148
149TMatrixD * arrayAlign[72];
150TMatrixD * arrayAlignTmp[72];
151
152void ClearMatrices(){
153 //
154 //
155 for (Int_t i=0;i<72; i++) {
156 TMatrixD * mat = new TMatrixD(4,4);
157 mat->UnitMatrix();
158 arrayAlign[i]=mat;
159 arrayAlignTmp[i]=(TMatrixD*)(mat->Clone());
160 }
161
162}
163
164void GlobalAlign(){
165 //
166 // Global Align
167 //
168 TTreeSRedirector *cstream = new TTreeSRedirector("galign.root");
169
170 for (Int_t iter=0; iter<10;iter++){
171 printf("Iter=\t%d\n",iter);
172 for (Int_t is0=0;is0<72; is0++) {
173 //
174 TMatrixD *mati0 = arrayAlign[is0];
175 TMatrixD matDiff(4,4);
176 Double_t sumw=0;
177 for (Int_t is1=0;is1<72; is1++) {
178 Bool_t invers=kFALSE;
179 const TMatrixD *mat = align.GetTransformation(is0,is1,0);
180 if (!mat){
181 invers=kTRUE;
182 mat = align.GetTransformation(is1,is0,0);
183 }
184 if (!mat) continue;
185 Double_t weight=1;
186 if ( (is1%18-is0%18)!=0) weight*=0.3;
187 if (is1/36>is0/36) weight*=2./3.;
188 if (is1/36<is0/36) weight*=1./3.;
189 //
190 //
191 TMatrixD matT = *mat;
192 if (invers) matT.Invert();
193 matDiff+=weight*(*(arrayAlign[is1]))*matT;
194 sumw+=weight;
195 (*cstream)<<"LAlign"<<
196 "iter="<<iter<<
197 "s0="<<is0<<
198 "m6.="<<arrayAlign[is0]<<
199 "\n";
200
201 }
202 if (sumw>0){
203 matDiff*=1/sumw;
204 (*arrayAlignTmp[is0]) = matDiff;
205 }
206 }
207 for (Int_t is0=0;is0<72; is0++) {
208 (*arrayAlign[is0]) = (*arrayAlignTmp[is0]);
209 // TMatrixD * matM1= align.GetTransformation(is0,36+(is0+35)%36,0);
210 //TMatrixD * mat = align.GetTransformation(is0,36+(is0+36)%36,0);
211 //TMatrixD * matP1= align.GetTransformation(is0,36+(is0+37)%36,0);
212 //
213 (*cstream)<<"GAlign"<<
214 "iter="<<iter<<
215 "s0="<<is0<<
216 "m6.="<<arrayAlign[is0]<<
217 "\n";
218 }
219 }
220 delete cstream;
221}
222
223
224
225
226
227void MakeGlobalCorr(){
228 //
229 //
230 //
231 TStatToolkit toolkit;
232 Double_t chi2=0;
233 Int_t npoints=0;
234 TVectorD fitParam;
235 TMatrixD covMatrix;
236 TVectorD chi2V(5);
237 //
238 TString fstring="";
239 fstring+="side++";
240 //
241 fstring+="dR++";
242 fstring+="dR*dR++";
243 fstring+="dR*sa++";
244 fstring+="dR*ca++";
245 fstring+="ta0++";
246 fstring+="ta1++";
247 //
248 fstring+="dR*side++";
249 fstring+="dR*dR*side++";
250 fstring+="dR*sa*side++";
251 fstring+="dR*ca*side++";
252 fstring+="ta0*side++";
253 fstring+="ta1*side++";
254
255 TString * strP0 = TStatToolkit::FitPlane(chainTr,"dP0:sP0", fstring.Data(),cutS, chi2,npoints,fitParam,covMatrix);
256 chi2V[0]=TMath::Sqrt(chi2/npoints);
257 chainTr->SetAlias("corrP0",strP0->Data());
258
259 TString * strP1 = TStatToolkit::FitPlane(chainTr,"dP1:sP1", fstring.Data(),cutS, chi2,npoints,fitParam,covMatrix);
260 chi2V[1]=TMath::Sqrt(chi2/npoints);
261 chainTr->SetAlias("corrP1",strP1->Data());
262
263 TString * strP2 = TStatToolkit::FitPlane(chainTr,"dP2:sP2", fstring.Data(),cutS, chi2,npoints,fitParam,covMatrix);
264 chi2V[2]=TMath::Sqrt(chi2/npoints);
265 chainTr->SetAlias("corrP2",strP2->Data());
266
267 TString * strP3 = TStatToolkit::FitPlane(chainTr,"dP3:sP3", fstring.Data(),cutS, chi2,npoints,fitParam,covMatrix);
268 chi2V[3]=TMath::Sqrt(chi2/npoints);
269 chainTr->SetAlias("corrP3",strP3->Data());
270
271 TString * strP4 = TStatToolkit::FitPlane(chainTr,"dP4:sP4", fstring.Data(),cutS, chi2,npoints,fitParam,covMatrix);
272 chi2V[4]=TMath::Sqrt(chi2/npoints);
273 chainTr->SetAlias("corrP4",strP4->Data());
274}
275
276void P0resolZ(){
277 //
278 //
279 //
280 TH2F * hdP0Z = new TH2F("hdP0Z","hdP0Z",10,-250,250,100,-0.5,0.5);
281 TH2F * hdP0ZNoCor = new TH2F("hdP0ZNoCor","hdP0ZNoCor",10,-250,250,100,-0.5,0.5);
282 chainTr->Draw("(dP0-corrP0)/sqrt(2.):meanZ>>hdP0Z",""+cutRun+cutS+cutN120,"");
283 chainTr->Draw("(dP0-0)/sqrt(2.):meanZ>>hdP0ZNoCor",""+cutRun+cutS+cutN120,"");
284
285 hdP0Z->FitSlicesY();
286 hdP0ZNoCor->FitSlicesY();
287 hdP0Z_2->SetMinimum(0);
288 hdP0Z_2->SetXTitle("Z position (cm)");
289 hdP0Z_2->SetYTitle("#sigma_{y} (cm)");
290 hdP0Z_2->SetMarkerStyle(25);
291 hdP0ZNoCor_2->SetMarkerStyle(26);
292 hdP0Z_2->Draw();
293 hdP0ZNoCor_2->Draw("same");
294 gPad->SaveAs("picAlign/SigmaY_z.gif");
295 gPad->SaveAs("picAlign/SigmaY_z.eps");
296 //
297 hdP0ZNoCor_1->SetXTitle("Z position (cm)");
298 hdP0ZNoCor_1->SetYTitle("#Delta{y} (cm)");
299 hdP0Z_1->SetMarkerStyle(25);
300 hdP0ZNoCor_1->SetMarkerStyle(26);
301 hdP0ZNoCor_1->Draw("");
302 hdP0Z_1->Draw("same");
303 gPad->SaveAs("picAlign/DeltaY_z.gif");
304 gPad->SaveAs("picAlign/DeltaY_z.eps");
305 //
306 //
307 TH2F * hdPP0Z = new TH2F("hdPP0Z","hdPP0Z",8,-200,200,50,-5.05,5.05);
308 TH2F * hncdPP0Z = new TH2F("hncdPP0Z","hncdPP0Z",8,-200,200,50,-5.05,5.05);
309 chainTr->Draw("(dP0-corrP0)/sP0:meanZ>>hdPP0Z",""+cutRun+cutS+cutN120,"");
310 chainTr->Draw("(dP0-0)/sP0:meanZ>>hncdPP0Z",""+cutRun+cutS+cutN120,"");
311 hdPP0Z->FitSlicesY();
312 hncdPP0Z->FitSlicesY();
313 hdPP0Z_2->SetMarkerStyle(25);
314 hncdPP0Z_2->SetMarkerStyle(26);
315 hdPP0Z_2->SetMinimum(0);
316 hdPP0Z_2->SetXTitle("Z position (cm)");
317 hdPP0Z_2->SetYTitle("#sigma y (Unit) ");
318 hdPP0Z_2->Draw();
319 hncdPP0Z_2->Draw("same");
320 gPad->SaveAs("picAlign/PullY_z.gif");
321 gPad->SaveAs("picAlign/PullY_z.eps");
322}
323
324void P1resolZ(){
325 //
326 //
327 //
328 TH2F * hdP1Z = new TH2F("hdP1Z","hdP1Z",10,-250,250,100,-0.2,0.2);
329 TH2F * hdP1ZNoCor = new TH2F("hdP1ZNoCor","hdP1ZNoCor",10,-250,250,100,-0.2,0.2);
330 chainTr->Draw("(dP1-corrP1)/sqrt(2.):meanZ>>hdP1Z",""+cutRun+cutS+cutN120,"");
331 chainTr->Draw("(dP1-0)/sqrt(2.):meanZ>>hdP1ZNoCor",""+cutRun+cutS+cutN120,"");
332
333 hdP1Z->FitSlicesY();
334 hdP1ZNoCor->FitSlicesY();
335 hdP1Z_2->SetMinimum(0);
336 hdP1Z_2->SetXTitle("Z position (cm)");
337 hdP1Z_2->SetYTitle("#sigma_{z} (cm)");
338 hdP1Z_2->SetMarkerStyle(25);
339 hdP1ZNoCor_2->SetMarkerStyle(26);
340 hdP1Z_2->Draw();
341 hdP1ZNoCor_2->Draw("same");
342 gPad->SaveAs("picAlign/SigmaZ_z.gif");
343 gPad->SaveAs("picAlign/SigmaZ_z.eps");
344 //
345 hdP1ZNoCor_1->SetXTitle("Z position (cm)");
346 hdP1ZNoCor_1->SetYTitle("#Delta{z} (cm)");
347 hdP1Z_1->SetMarkerStyle(25);
348 hdP1ZNoCor_1->SetMarkerStyle(26);
349 hdP1ZNoCor_1->Draw("");
350 hdP1Z_1->Draw("same");
351 gPad->SaveAs("picAlign/DeltaZ_z.gif");
352 gPad->SaveAs("picAlign/DeltaZ_z.eps");
353 //
354 //
355 TH2F * hdPP1Z = new TH2F("hdPP1Z","hdPP1Z",8,-200,200,50,-5.05,5.05);
356 TH2F * hncdPP1Z = new TH2F("hncdPP1Z","hncdPP1Z",8,-200,200,50,-5.05,5.05);
357 chainTr->Draw("(dP1-corrP1)/sP1:meanZ>>hdPP1Z",""+cutRun+cutS+cutN120,"");
358 chainTr->Draw("(dP1-0)/sP1:meanZ>>hncdPP1Z",""+cutRun+cutS+cutN120,"");
359 hdPP1Z->FitSlicesY();
360 hncdPP1Z->FitSlicesY();
361 hdPP1Z_2->SetMarkerStyle(25);
362 hncdPP1Z_2->SetMarkerStyle(26);
363 hdPP1Z_2->SetMinimum(0);
364 hdPP1Z_2->SetXTitle("Z position (cm)");
365 hdPP1Z_2->SetYTitle("#sigma z (Unit) ");
366 hdPP1Z_2->Draw();
367 hncdPP1Z_2->Draw("same");
368 gPad->SaveAs("picAlign/PullZ_z.gif");
369 gPad->SaveAs("picAlign/PullZ_z.eps");
370}
371
372
373void P4resolZ(){
374 //
375 //
376 //
377 TH2F * hdP4Z = new TH2F("hdP4Z","hdP4Z",10,-250,250,100,-0.4,0.4);
378 TH2F * hdP4ZNoCor = new TH2F("hdP4ZNoCor","hdP4ZNoCor",10,-250,250,100,-0.4,0.4);
379 chainTr->Draw("(dP4-corrP4)/sqrt(2.):meanZ>>hdP4Z",""+cutRun+cutS+cutN120,"");
380 chainTr->Draw("(dP4-0)/sqrt(2.):meanZ>>hdP4ZNoCor",""+cutRun+cutS+cutN120,"");
381
382 hdP4Z->FitSlicesY();
383 hdP4ZNoCor->FitSlicesY();
384 hdP4Z_2->SetMinimum(0);
385 hdP4Z_2->SetXTitle("Z position (cm)");
386 hdP4Z_2->SetYTitle("#sigma_{1/pt} (1/GeV)");
387 hdP4Z_2->SetMarkerStyle(25);
388 hdP4ZNoCor_2->SetMarkerStyle(26);
389 hdP4Z_2->Draw();
390 hdP4ZNoCor_2->Draw("same");
391 gPad->SaveAs("picAlign/SigmaP4_z.gif");
392 gPad->SaveAs("picAlign/SigmaP4_z.eps");
393 //
394 hdP4ZNoCor_1->SetXTitle("Z position (cm)");
395 hdP4ZNoCor_1->SetYTitle("#Delta_{1/p_{t}} (1/GeV)");
396 hdP4Z_1->SetMarkerStyle(25);
397 hdP4ZNoCor_1->SetMarkerStyle(26);
398 hdP4ZNoCor_1->Draw("");
399 hdP4Z_1->Draw("same");
400 gPad->SaveAs("picAlign/DeltaP4_z.gif");
401 gPad->SaveAs("picAlign/DeltaP4_z.eps");
402 //
403 //
404 TH2F * hdPP4Z = new TH2F("hdPP4Z","hdPP4Z",8,-200,200,50,-5.05,5.05);
405 TH2F * hncdPP4Z = new TH2F("hncdPP4Z","hncdPP4Z",8,-200,200,50,-5.05,5.05);
406 chainTr->Draw("(dP4-corrP4)/sP4:meanZ>>hdPP4Z",""+cutRun+cutS+cutN120,"");
407 chainTr->Draw("(dP4-0)/sP4:meanZ>>hncdPP4Z",""+cutRun+cutS+cutN120,"");
408 hdPP4Z->FitSlicesY();
409 hncdPP4Z->FitSlicesY();
410 hdPP4Z_2->SetMarkerStyle(25);
411 hncdPP4Z_2->SetMarkerStyle(26);
412 hdPP4Z_2->SetMinimum(0);
413 hdPP4Z_2->SetXTitle("Z position (cm)");
414 hdPP4Z_2->SetYTitle("#sigma 1/p_{t} (Unit) ");
415 hdPP4Z_2->Draw();
416 hncdPP4Z_2->Draw("same");
417 gPad->SaveAs("picAlign/PullP4_z.gif");
418 gPad->SaveAs("picAlign/PullP4_z.eps");
419}
420
421
422
423
424
425void MakeFit(){
426 //
427 //
428 //
429 TChain *chainTracklet=chainTr;
430 AliTPCcalibAlign align;
431 //
432 TVectorD * vec1 = 0;
433 TVectorD * vec2 = 0;
434 AliExternalTrackParam * tp1 = 0;
435 AliExternalTrackParam * tp2 = 0;
436 Int_t s1 = 0;
437 Int_t s2 = 0;
438 {
439 for (Int_t i=0; i< elist->GetN(); i++){
440 //for (Int_t i=0; i<100000; i++){
441 chainTracklet->GetBranch("tp1.")->SetAddress(&tp1);
442 chainTracklet->GetBranch("tp2.")->SetAddress(&tp2);
443 chainTracklet->GetBranch("v1.")->SetAddress(&vec1);
444 chainTracklet->GetBranch("v2.")->SetAddress(&vec2);
445 chainTracklet->GetBranch("s1")->SetAddress(&s1);
446 chainTracklet->GetBranch("s2")->SetAddress(&s2);
447 chainTracklet->GetEntry(i);
448 if (i%100==0) printf("%d\t%d\t%d\t\n",i, s1,s2);
449 //vec1.Print();
450 TLinearFitter * fitter = align.GetOrMakeFitter6(s1,s2);
451 if (fitter) align.Process6(vec1->GetMatrixArray(),vec2->GetMatrixArray(),fitter);
452 }
453 }
454}
455
456
457// chainTr->Scan("vy1:AliTPCcalibAlign::SCorrect(0,1,s1,s2,vx1,vy1,vz1,vdydx1,vdzdx1)","","",100);
458
459void MakePlot(){
460 //
461 chainTr->Draw("vy2-vy1:s1>>hisdYNoCor(36,0,36,100,-0.3,0.3)","abs(s2-s1-36)<1","",40000);
462 chainTr->Draw("vy2-vy1-dy1:s1>>hisdYCor(36,0,36,100,-0.3,0.3)","abs(s2-s1-36)<1","",40000);
463 hisdYCor->FitSlicesY();
464 hisdYNoCor->FitSlicesY();
465 hisdYCor_1->Draw("");
466
467}
468
469
470void dPhi(){
471 //
472 //
473 //
474 treeAlign->Draw("1000*m6.fElements[4]","s2==s1+36&&nphi>100");
475 htemp->SetXTitle("#Delta_{#phi} (mrad)");
476 gPad->SaveAs("picAlign/mag5dPhi.eps");
477 gPad->SaveAs("picAlign/mag5dPhi.gif");
478 //
479 treeAlignNoMag->Draw("1000*m6.fElements[4]","s2==s1+36&&nphi>100");
480 htemp->SetXTitle("#Delta_{#phi} (mrad)");
481 gPad->SaveAs("picAlign/nomagdPhi.eps");
482 gPad->SaveAs("picAlign/nomagdPhi.gif");
483 //
484 //
485 //
486 treeAlign->Draw("1000*(m6.fElements[4]-NoMag.m6.fElements[4])","s2==s1+36&&nphi>100");
487 htemp->SetXTitle("#Delta_{#phi} (mrad)");
488 gPad->SaveAs("picAlign/diffnomagmag5dPhi.eps");
489 gPad->SaveAs("picAlign/diffnomagmag5dPhi.gif");
490 //
491}
492
493
494void dTheta(){
495 //
496 //
497 //
498 treeAlign->Draw("1000*m6.fElements[8]","s2==s1+36&&nphi>100");
499 htemp->SetXTitle("#Delta_{#theta} (mrad)");
500 gPad->SaveAs("picAlign/mag5dTheta.eps");
501 gPad->SaveAs("picAlign/mag5dTheta.gif");
502 //
503 treeAlignNoMag->Draw("1000*m6.fElements[8]","s2==s1+36&&nphi>100");
504 htemp->SetXTitle("#Delta_{#theta} (mrad)");
505 gPad->SaveAs("picAlign/nomagdTheta.eps");
506 gPad->SaveAs("picAlign/nomagdTheta.gif");
507 //
508 //
509 //
510 treeAlign->Draw("1000*(m6.fElements[8]-NoMag.m6.fElements[8])","s2==s1+36&&nphi>100");
511 htemp->SetXTitle("#Delta_{#theta} (mrad)");
512 gPad->SaveAs("picAlign/diffnomagmag5dTheta.eps");
513 gPad->SaveAs("picAlign/diffnomagmag5dTheta.gif");
514 //
515 //
516 treeAlign->Draw("1000*(m6.fElements[8]):s1","s2==s1+36&&nphi>100");
517 htemp->SetYTitle("#Delta_{#theta} (mrad)");
518 htemp->SetXTitle("Sector number");
519 treeAlignNoMag->Draw("1000*(m6.fElements[8]):s1","s2==s1+36&&nphi>100","same");
520 gPad->SaveAs("picAlign/diffnomagmag5dTheta_s1.eps");
521 gPad->SaveAs("picAlign/diffnomagmag5dTheta_s1.gif");
522 //
523}
524
525
526
527void dZ(){
528 //
529 //
530 //
531 treeAlign->Draw("dz","s2==s1+36&&nphi>100");
532 htemp->SetXTitle("#Delta_{Z} (cm)");
533 gPad->SaveAs("picAlign/mag5dZ.eps");
534 gPad->SaveAs("picAlign/mag5dZ.gif");
535 //
536 treeAlignNoMag->Draw("dz","s2==s1+36&&nphi>100");
537 htemp->SetXTitle("#Delta_{Z} (cm)");
538 gPad->SaveAs("picAlign/nomagdZ.eps");
539 gPad->SaveAs("picAlign/nomagdZ.gif");
540 //
541 //
542 //
543 treeAlign->Draw("(dz-NoMag.dz)","s2==s1+36&&nphi>100");
544 htemp->SetXTitle("#Delta_{Z} (cm)");
545 gPad->SaveAs("picAlign/diffnomagmag5dZ.eps");
546 gPad->SaveAs("picAlign/diffnomagmag5dZ.gif");
547 //
548 //
549 treeAlign->Draw("dz:s1","s2==s1+36&&nphi>100");
550 htemp->SetYTitle("#Delta_{Z} (cm)");
551 htemp->SetXTitle("Sector number");
552 treeAlignNoMag->Draw("dz:s1","s2==s1+36&&nphi>100","same");
553 gPad->SaveAs("picAlign/diffnomagmag5dZ_s1.eps");
554 gPad->SaveAs("picAlign/diffnomagmag5dZ_s1.gif");
555 //
556}
557
558void dY(){
559 //
560 //
561 //
562 treeAlign->Draw("dy","s2==s1+36&&nphi>100");
563 htemp->SetXTitle("#Delta_{Y} (cm)");
564 gPad->SaveAs("picAlign/mag5dY.eps");
565 gPad->SaveAs("picAlign/mag5dY.gif");
566 //
567 treeAlignNoMag->Draw("dy","s2==s1+36&&nphi>100");
568 htemp->SetXTitle("#Delta_{Y} (cm)");
569 gPad->SaveAs("picAlign/nomagdY.eps");
570 gPad->SaveAs("picAlign/nomagdY.gif");
571 //
572 //
573 //
574 treeAlign->Draw("(dy-NoMag.dy)","s2==s1+36&&nphi>100");
575 htemp->SetXTitle("#Delta_{Y} (cm)");
576 gPad->SaveAs("picAlign/diffnomagmag5dY.eps");
577 gPad->SaveAs("picAlign/diffnomagmag5dY.gif");
578 //
579 //
580 treeAlign->Draw("dy:s1","s2==s1+36&&nphi>100");
581 htemp->SetYTitle("#Delta_{Y} (cm)");
582 htemp->SetXTitle("Sector number");
583 treeAlignNoMag->Draw("dy:s1","s2==s1+36&&nphi>100","same");
584 gPad->SaveAs("picAlign/diffnomagmag5dY_s1.eps");
585 gPad->SaveAs("picAlign/diffnomagmag5dY_s1.gif");
586 //
587}
588
589
590
591
592
593
594
595
596