]> git.uio.no Git - u/mrichter/AliRoot.git/blame - EVE/alice-macros/esd_spd_tracklets.C
Add full support for SPD tracklets.
[u/mrichter/AliRoot.git] / EVE / alice-macros / esd_spd_tracklets.C
CommitLineData
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
57e8f8f1 10// Lines commented with //x should be reactivated when we
11// move to a newer ROOT (after 5.25.2).
12// Corresponding lines that are now replacing them should be removed.
13//
14// The problem was the TEveTrackProjected did not support projection
15// of tracks with locked points -- and we do that for tracklets.
16//
17// Maybe it would be even better to have AliEveTracklet : public TEveLine
18// and support both in AliEveTrackCounter.
19// Or have trackelt counter -- as not all histograms collected for tracks
20// are relevant for tracklets.
cb4245bb 21
3a20f984 22TEveTrackList* esd_spd_tracklets(Float_t radius=8, Width_t line_width=3)
c46fd838 23{
57e8f8f1 24 // radius - cylindrical radius to which the tracklets should be extrapolated
c46fd838 25
57e8f8f1 26 AliESDEvent *esd = AliEveEventManager::AssertESD();
27 AliESDVertex *pv = esd->GetPrimaryVertexSPD();
28 AliMultiplicity *mul = esd->GetMultiplicity();
c46fd838 29
3a20f984 30 TEveTrackList *cont = new TEveTrackList("SPD Tracklets");
57e8f8f1 31 cont->SetTitle(Form("N=%d", mul->GetNumberOfTracklets()));
32 cont->SetMainColor(7);
3a20f984 33 cont->SetLineWidth(line_width);
57e8f8f1 34
3a20f984 35 TEveTrackPropagator* prop = cont->GetPropagator();
36 prop->SetMaxR(radius);
57e8f8f1 37 gEve->AddElement(cont);
c46fd838 38
3a20f984 39 for (Int_t i = 0; i < mul->GetNumberOfTracklets(); ++i)
c46fd838 40 {
57e8f8f1 41 Float_t theta = mul->GetTheta(i);
42 Float_t phi = mul->GetPhi(i);
57e8f8f1 43
3a20f984 44 AliEveTracklet* t = new AliEveTracklet(pv, theta, phi, prop);
45 t->SetAttLineAttMarker(cont);
46 t->SetElementName(Form("Tracklet %d", i));
47 t->SetElementTitle(Form("id=%d: theta=%.3f, phi=%.3f", i, theta, phi));
57e8f8f1 48
3a20f984 49 cont->AddElement(t);
c46fd838 50 }
51
3a20f984 52 cont->MakeTracks();
53
84aff7a4 54 gEve->Redraw3D();
c46fd838 55
57e8f8f1 56 return cont;
c46fd838 57}