]> git.uio.no Git - u/mrichter/AliRoot.git/blob - EVE/alice-macros/esd_spd_tracklets.C
Put all classes in Alieve/ sub-module out of the Alieve namespace and
[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 // To use when per-line id is supported
10 class TrackletId : public TObject
11 {
12 public:
13   // label, phi, theta
14   // virtual void Print(const Option_t* opt="") {}
15 };
16
17 TEveStraightLineSet* esd_spd_tracklets(Float_t rad=8)
18 {
19   AliESDEvent         * esd = AliEveEventManager::AssertESD();
20   AliESDVertex   * pv  = esd->GetPrimaryVertex();
21   AliMultiplicity* mul = esd->GetMultiplicity();
22
23   Double_t pvx[3], pve[3];
24   pv->GetXYZ(pvx);
25   pv->GetSigmaXYZ(pve);
26
27   TEveStraightLineSet* ls = new TEveStraightLineSet();
28
29   for (Int_t i=0; i<mul->GetNumberOfTracklets(); ++i)
30   {
31     using namespace TMath;
32     Float_t dr[3];
33     Float_t phi = PiOver2() - mul->GetPhi(i); // strange people
34     dr[0] = rad*Cos(phi);
35     dr[1] = rad*Sin(phi);
36     dr[2] = rad/Tan(mul->GetTheta(i));
37     ls->AddLine(pvx[0], pvx[1], pvx[2],
38                 pvx[0]+dr[0], pvx[1]+dr[1], pvx[2]+dr[2]);
39   }
40
41   gEve->AddElement(ls);
42   gEve->Redraw3D();
43
44   return ls;
45 }