]> git.uio.no Git - u/mrichter/AliRoot.git/blob - EVE/alice-macros/esd_spd_tracklets.C
Clarify cluster loop. Add check for cluster being 0 (seen in online reco-viz).
[u/mrichter/AliRoot.git] / EVE / alice-macros / esd_spd_tracklets.C
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          *
7  * full copyright notice.                                                 *
8  **************************************************************************/
9
10 // To use when per-line id is supported
11
12 class TrackletId : public TObject
13 {
14 public:
15   // label, phi, theta
16   // virtual void Print(const Option_t* opt="") {}
17 };
18
19 TEveStraightLineSet* esd_spd_tracklets(Float_t rad=8)
20 {
21   AliESDEvent         * esd = AliEveEventManager::AssertESD();
22   AliESDVertex   * pv  = esd->GetPrimaryVertexSPD();
23   AliMultiplicity* mul = esd->GetMultiplicity();
24
25   Double_t pvx[3], pve[3];
26   pv->GetXYZ(pvx);
27   pv->GetSigmaXYZ(pve);
28
29   TEveStraightLineSet* ls = new TEveStraightLineSet("SPD tracklets");
30
31   for (Int_t i=0; i<mul->GetNumberOfTracklets(); ++i)
32   {
33     using namespace TMath;
34     Float_t dr[3];
35     Float_t phi = mul->GetPhi(i);
36     dr[0] = rad*Cos(phi);
37     dr[1] = rad*Sin(phi);
38     dr[2] = rad/Tan(mul->GetTheta(i));
39     ls->AddLine(pvx[0], pvx[1], pvx[2],
40                 pvx[0]+dr[0], pvx[1]+dr[1], pvx[2]+dr[2]);
41   }
42
43   ls->SetElementTitle(Form("N=%d", mul->GetNumberOfTracklets()));
44   gEve->AddElement(ls);
45   gEve->Redraw3D();
46
47   return ls;
48 }