The present commit corresponds to an important change in the way the
[u/mrichter/AliRoot.git] / EVE / alice-macros / kine_tracks.C
index 010e1f5..3f38153 100644 (file)
@@ -13,7 +13,7 @@
 #include "TParticlePDG.h"
 
 TEveTrackList*
-kine_tracks(Double_t min_pt  = 0.1,   Double_t min_p   = 0.2,
+kine_tracks(Double_t min_pt  = 0,     Double_t min_p   = 0,
            Bool_t   pdg_col = kTRUE, Bool_t   recurse = kTRUE,
            Bool_t   use_track_refs = kTRUE)
 {
@@ -28,19 +28,20 @@ kine_tracks(Double_t min_pt  = 0.1,   Double_t min_p   = 0.2,
   gEve->DisableRedraw();
 
   TEveTrackList* cont = new TEveTrackList("Kine Tracks");
-  cont->SetMainColor(Color_t(3));
+  cont->SetMainColor(3);
   TEveTrackPropagator* rnrStyle = cont->GetPropagator();
-  // !!! Watch the '-', apparently different sign convention then for ESD.
-  rnrStyle->SetMagField( - gAlice->Field()->SolenoidField() );
+  AliMagF* fld = (AliMagF*)TGeoGlobalMagField::Instance()->GetField();
+  rnrStyle->SetMagField(fld ? -0.1*fld->SolenoidField() : 0);
 
   gEve->AddElement(cont);
   Int_t count = 0;
   Int_t N = stack->GetNtrack();
-  for (Int_t i=0; i<N; ++i)
+  Int_t Np = stack->GetNprimary();
+  for (Int_t i = 0; i < Np; ++i)
   {
-    if(stack->IsPhysicalPrimary(i))
+    TParticle* p = stack->Particle(i);
+    if (p->GetStatusCode() <= 1)
     {
-      TParticle* p = stack->Particle(i);
       if (p->Pt() < min_pt && p->P() < min_p) continue;
 
       ++count;
@@ -54,6 +55,13 @@ kine_tracks(Double_t min_pt  = 0.1,   Double_t min_p   = 0.2,
       sprintf(form,"%s [%d]", p->GetName(), i);
       track->SetName(form);
       track->SetStdTitle();
+      Int_t ml = p->GetMother(0);
+      if (ml != -1)
+      {
+        track->SetTitle(Form("%s\nMother label=%d\nMother Pdg=%d",
+                             track->GetElementTitle(),
+                             ml, stack->Particle(ml)->GetPdgCode()));
+      }
       set_track_color(track, pdg_col);
 
       gEve->AddElement(track, cont);
@@ -77,7 +85,6 @@ kine_tracks(Double_t min_pt  = 0.1,   Double_t min_p   = 0.2,
   char tooltip[1000];
   sprintf(tooltip,"min pT=%.2lf, min P=%.2lf), N=%d", min_pt, min_p, count);
   cont->SetTitle(tooltip); // Not broadcasted automatically ...
-  cont->UpdateItems();
 
   cont->MakeTracks(recurse);
   gEve->EnableRedraw();
@@ -119,7 +126,7 @@ Color_t set_track_color(TEveTrack* t, Bool_t pdg_col)
   if (pdg_col)
     t->SetMainColor(get_pdg_color(t->GetPdg()));
   else
-    t->SetMainColor((Color_t)30);
+    t->SetMainColor(30);
 }
 
 Color_t get_pdg_color(Int_t pdg)
@@ -213,7 +220,8 @@ kine_track(Int_t  label,
 
       TEveTrackPropagator* rnrStyle = tlist->GetPropagator();
       // !!! Watch the '-', apparently different sign convention then for ESD.
-      rnrStyle->SetMagField( - gAlice->Field()->SolenoidField() );
+      AliMagF* fld = (AliMagF*)TGeoGlobalMagField::Instance()->GetField();
+      rnrStyle->SetMagField( fld ? -0.1*fld->SolenoidField() : 0 );
       char tooltip[1000];
       sprintf(tooltip,"Ndaughters=%d", p->GetNDaughters());
       tlist->SetTitle(tooltip);
@@ -273,7 +281,6 @@ kine_track(Int_t  label,
     }
   }
 
-  cont->UpdateItems();
   gEve->Redraw3D();
   return cont;
 }