]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - EVE/alice-macros/esd_spd_tracklets.C
Add full support for SPD tracklets.
[u/mrichter/AliRoot.git] / EVE / alice-macros / esd_spd_tracklets.C
index 461e02b10b14c47d26e024b6e946f3f50879f290..9166f7d73b18e557d3d952f8d806794a2cd375e1 100644 (file)
@@ -19,8 +19,7 @@
 // Or have trackelt counter -- as not all histograms collected for tracks
 // are relevant for tracklets.
 
-TEveElementList* esd_spd_tracklets(Float_t radius=8, Width_t line_width=3)
-//x TEveTrackList* esd_spd_tracklets(Float_t rad=8)
+TEveTrackList* esd_spd_tracklets(Float_t radius=8, Width_t line_width=3)
 {
   // radius - cylindrical radius to which the tracklets should be extrapolated
 
@@ -28,46 +27,30 @@ TEveElementList* esd_spd_tracklets(Float_t radius=8, Width_t line_width=3)
   AliESDVertex    *pv  = esd->GetPrimaryVertexSPD();
   AliMultiplicity *mul = esd->GetMultiplicity();
 
-  Double_t pvx[3], pve[3];
-  pv->GetXYZ(pvx);
-  pv->GetSigmaXYZ(pve);
-
-  TEveCompound *cont = new TEveCompound("SPD Tracklets");
-  cont->OpenCompound();
-  //x TEveTrackList *cont = new TEveTrackList("SPD Tracklets");
+  TEveTrackList *cont = new TEveTrackList("SPD Tracklets");
   cont->SetTitle(Form("N=%d", mul->GetNumberOfTracklets()));
   cont->SetMainColor(7);
-  //x cont->SetLineWidth(line_width);
+  cont->SetLineWidth(line_width);
 
+  TEveTrackPropagator* prop = cont->GetPropagator();
+  prop->SetMaxR(radius);
   gEve->AddElement(cont);
 
-  for (Int_t i=0; i<mul->GetNumberOfTracklets(); ++i)
+  for (Int_t i = 0; i < mul->GetNumberOfTracklets(); ++i)
   {
-    using namespace TMath;
     Float_t theta = mul->GetTheta(i);
     Float_t phi   = mul->GetPhi(i);
-    Float_t dr[3];
-    dr[0] = radius*Cos(phi);
-    dr[1] = radius*Sin(phi);
-    dr[2] = radius/Tan(theta);
-
-    TEveLine* track = new TEveLine;
-    track->SetMainColor(7);
-    track->SetLineWidth(line_width);
-    //x AliEveTrack* track = new AliEveTrack;
-    //x track->SetPropagator(cont->GetPropagator());
-    //x track->SetAttLineAttMarker(cont);
-    track->SetElementName(Form("Tracklet %d", i));
-    track->SetElementTitle(Form("id=%d: theta=%.3f, phi=%.3f", i, theta, phi));
 
-    track->SetPoint(0, pvx[0], pvx[1], pvx[2]);
-    track->SetPoint(1,pvx[0]+dr[0], pvx[1]+dr[1], pvx[2]+dr[2]);
+    AliEveTracklet* t = new AliEveTracklet(pv, theta, phi, prop);
+    t->SetAttLineAttMarker(cont);
+    t->SetElementName(Form("Tracklet %d", i));
+    t->SetElementTitle(Form("id=%d: theta=%.3f, phi=%.3f", i, theta, phi));
 
-    //x track->SetLockPoints(kTRUE);
-
-    cont->AddElement(track);
+    cont->AddElement(t);
   }
 
+  cont->MakeTracks();
+
   gEve->Redraw3D();
 
   return cont;