]>
Commit | Line | Data |
---|---|---|
0116859c | 1 | void AliTPCCorrectionDemo() { |
2 | ||
3 | // | |
4 | // This is a Demo function of the general class AliTPCCorrection, which is used for | |
5 | // general space point correction due to different effects. | |
6 | // The effects used in this Demo are: | |
7 | // 1. ExB twist - general offset of the TPC axis in comparison to the B field axis | |
8 | // 2. GG error (Gating Grid volt. error) - not perfectly aligned GG voltage (in terms of voltage) | |
9 | // 3. ExBBShape - B field shape correction of the secound order | |
10 | // | |
11 | // See class descriptions for further details | |
12 | // | |
13 | // Authors: Magnus Mager, Stefan Rossegger, Jim Thomas | |
14 | // | |
15 | // | |
16 | // omegaTau (wt) of the langevin equation | |
17 | // This is a function of the drift vel., the magnetic and electric field | |
18 | // e.g. vd=2.6 cm/usc; Ez=400 V/cm; Bz=0.5 T | |
19 | // wt = -10.0*(Bz*10)*vd/Ez = -0.325 | |
20 | ||
21 | Double_t vdrift = 2.6; // [cm/us] // to be updated: per second (ideally) | |
22 | Double_t bzField = -0.5; // [Tesla] // to be updated: per run | |
23 | Double_t ezField = 400; // [V/cm] // to be updated: never (hopefully) | |
24 | Double_t wt = -10.0 * (bzField*10) * vdrift / ezField ; | |
25 | ||
26 | // Correction Terms for effective omegaTau; obtained by a laser calibration run | |
27 | Double_t T1 = 0.9; | |
28 | Double_t T2 = 1.5; | |
29 | ||
30 | AliMagF mag("mag","mag"); | |
31 | ||
32 | AliTPCExBTwist twist; | |
33 | twist.SetXTwist(0.001); | |
34 | ||
35 | AliTPCGGVoltError GGerror; | |
36 | GGerror.SetDeltaVGGA(50.); | |
37 | GGerror.SetDeltaVGGC(50.); | |
38 | GGerror.InitGGVoltErrorDistortion(); | |
39 | ||
40 | AliTPCExBBShape exb; | |
41 | exb.SetBField(&mag); | |
42 | ||
43 | TObjArray cs; | |
44 | cs.Add(&twist); | |
45 | cs.Add(&GGerror); | |
46 | cs.Add(&exb); | |
47 | ||
48 | AliTPCComposedCorrection cc; | |
49 | cc.SetCorrections(&cs); | |
50 | cc.SetOmegaTauT1T2(wt,T1,T2); | |
51 | cc.SetMode(1); | |
52 | ||
53 | cc.Print("DA"); // Print used correction classes | |
54 | ||
55 | TCanvas *c=new TCanvas; // Plots | |
56 | c->Divide(2,2); | |
57 | c->cd(1);twist.CreateHistoDRPhiinZR(1.,100,100)->Draw("surf2"); | |
58 | c->cd(2);GGerror.CreateHistoDRPhiinZR(1.,100,100)->Draw("surf2"); | |
59 | c->cd(3);exb.CreateHistoDRPhiinZR(1.)->Draw("surf2"); | |
60 | c->cd(4);cc.CreateHistoDRPhiinZR(1.)->Draw("surf2"); | |
61 | } |