]>
Commit | Line | Data |
---|---|---|
d810d0de | 1 | // $Id$ |
2 | // Main authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007 | |
3 | ||
4 | /************************************************************************** | |
5 | * Copyright(c) 1998-2008, ALICE Experiment at CERN, all rights reserved. * | |
6 | * See http://aliceinfo.cern.ch/Offline/AliRoot/License.html for * | |
51346b82 | 7 | * full copyright notice. * |
d810d0de | 8 | **************************************************************************/ |
cb4245bb | 9 | |
43a5f43c | 10 | TEveElementList* esd_spd_tracklets(Float_t radius=8, Width_t line_width=2, |
c12be4d4 | 11 | Float_t dPhiWindow=0.080, Float_t dThetaWindow=0.025, |
12 | Float_t dPhiShift05T=0.0045) | |
c46fd838 | 13 | { |
57e8f8f1 | 14 | // radius - cylindrical radius to which the tracklets should be extrapolated |
c46fd838 | 15 | |
57e8f8f1 | 16 | AliESDEvent *esd = AliEveEventManager::AssertESD(); |
17 | AliESDVertex *pv = esd->GetPrimaryVertexSPD(); | |
18 | AliMultiplicity *mul = esd->GetMultiplicity(); | |
c46fd838 | 19 | |
bccc8088 | 20 | AliMagF *field = AliEveEventManager::AssertMagField(); |
21 | ||
c12be4d4 | 22 | TEveElementList* cont = new TEveElementList("SPD Tracklets"); |
57e8f8f1 | 23 | gEve->AddElement(cont); |
c46fd838 | 24 | |
c12be4d4 | 25 | TEveTrackList *tg = new TEveTrackList("Good"); |
72ffcfba | 26 | tg->SetMainColor(kCyan); |
c12be4d4 | 27 | tg->SetLineWidth(line_width); |
28 | cont->AddElement(tg); | |
29 | ||
30 | TEveTrackPropagator* pg = tg->GetPropagator(); | |
31 | pg->SetMaxR(radius); | |
32 | ||
33 | TEveTrackList *tb = new TEveTrackList("Bad"); | |
72ffcfba | 34 | tb->SetMainColor(kMagenta); |
c12be4d4 | 35 | tb->SetLineWidth(line_width); |
36 | cont->AddElement(tb); | |
37 | ||
38 | TEveTrackPropagator* pb = tb->GetPropagator(); | |
39 | pb->SetMaxR(radius); | |
40 | ||
786d9102 | 41 | const Float_t Bz = TMath::Abs(field->SolenoidField()); |
42 | ||
43 | const Double_t dPhiShift = dPhiShift05T / 5.0 * Bz; | |
44 | const Double_t dPhiWindow2 = dPhiWindow * dPhiWindow; | |
45 | const Double_t dThetaWindow2 = dThetaWindow * dThetaWindow; | |
46 | ||
3a20f984 | 47 | for (Int_t i = 0; i < mul->GetNumberOfTracklets(); ++i) |
c46fd838 | 48 | { |
786d9102 | 49 | Float_t theta = mul->GetTheta(i); |
50 | Float_t phi = mul->GetPhi(i); | |
51 | Float_t dTheta = mul->GetDeltaTheta(i); | |
c12be4d4 | 52 | Float_t dPhi = mul->GetDeltaPhi(i) - dPhiShift; |
53 | Float_t d = dPhi*dPhi/dPhiWindow2 + dTheta*dTheta/dThetaWindow2; | |
54 | ||
55 | TEveTrackList* tl = (d < 1.0f) ? tg : tb; | |
57e8f8f1 | 56 | |
c12be4d4 | 57 | AliEveTracklet *t = new AliEveTracklet(i, pv, theta, phi, tl->GetPropagator()); |
58 | t->SetAttLineAttMarker(tl); | |
3a20f984 | 59 | t->SetElementName(Form("Tracklet %d", i)); |
786d9102 | 60 | t->SetElementTitle(Form("Id = %d\nEta=%.3f, Theta=%.3f, dTheta=%.3f\nPhi=%.3f dPhi=%.3f", |
61 | i, mul->GetEta(i), theta, dTheta, phi, dPhi)); | |
62 | ||
c12be4d4 | 63 | tl->AddElement(t); |
64 | } | |
786d9102 | 65 | |
c12be4d4 | 66 | tg->MakeTracks(); |
67 | tg->SetTitle(Form("N=%d", tg->NumChildren())); | |
57e8f8f1 | 68 | |
c12be4d4 | 69 | tb->MakeTracks(); |
70 | tb->SetTitle(Form("N=%d", tb->NumChildren())); | |
c46fd838 | 71 | |
c12be4d4 | 72 | if (AliEveTrackCounter::IsActive()) |
73 | { | |
74 | AliEveTrackCounter::fgInstance->RegisterTracklets(tg, kTRUE); | |
75 | AliEveTrackCounter::fgInstance->RegisterTracklets(tb, kFALSE); | |
76 | } | |
77 | else | |
78 | { | |
3aff0c2e | 79 | //========================================== |
80 | tb->SetLineStyle(1); | |
81 | tb->SetLineWidth(2); | |
82 | //========================================== | |
83 | ||
c12be4d4 | 84 | } |
3a20f984 | 85 | |
84aff7a4 | 86 | gEve->Redraw3D(); |
c46fd838 | 87 | |
57e8f8f1 | 88 | return cont; |
c46fd838 | 89 | } |