* AliEveTrack
authormtadel <mtadel@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 18 Aug 2009 16:57:05 +0000 (16:57 +0000)
committermtadel <mtadel@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 18 Aug 2009 16:57:05 +0000 (16:57 +0000)
  - Add constructors from AliESDtrack* and AliAODTrack*.
    This simplifies eve-track construction everywhere.

* alice-macros/esd_tracks.C
  - Simplify code for instantiation of ESD track.

EVE/EveBase/AliEveTrack.cxx
EVE/EveBase/AliEveTrack.h
EVE/alice-macros/esd_tracks.C

index fcb027b..3c711b6 100644 (file)
@@ -9,6 +9,9 @@
 
 #include "AliEveTrack.h"
 
+#include "AliESDtrack.h"
+#include "AliAODTrack.h"
+
 #include <TROOT.h>
 
 //______________________________________________________________________________
@@ -25,24 +28,68 @@ AliEveTrack::AliEveTrack() :
 }
 
 //______________________________________________________________________________
-AliEveTrack::AliEveTrack(TParticle* t, Int_t label, TEveTrackPropagator* rs) :
-  TEveTrack(t, label, rs)
+AliEveTrack::AliEveTrack(TParticle* t, Int_t label, TEveTrackPropagator* prop) :
+  TEveTrack(t, label, prop)
+{
+  // Constructor.
+}
+
+//______________________________________________________________________________
+AliEveTrack::AliEveTrack(TEveMCTrack*  t, TEveTrackPropagator* prop) :
+  TEveTrack(t, prop)
+{
+  // Constructor.
+}
+
+//______________________________________________________________________________
+AliEveTrack::AliEveTrack(TEveRecTrack* t, TEveTrackPropagator* prop) :
+  TEveTrack(t, prop)
 {
   // Constructor.
 }
 
 //______________________________________________________________________________
-AliEveTrack::AliEveTrack(TEveMCTrack*  t, TEveTrackPropagator* rs) :
-  TEveTrack(t, rs)
+AliEveTrack::AliEveTrack(AliESDtrack* t, TEveTrackPropagator* prop) :
+  TEveTrack()
 {
   // Constructor.
+
+  Double_t buf[3];
+  t->GetXYZ(buf);    fV.Set(buf);
+  t->GetPxPyPz(buf); fP.Set(buf);
+
+  Double_t ep = t->GetP(), mc = t->GetMass();
+  fBeta = ep/TMath::Sqrt(ep*ep + mc*mc);
+  // fPdg = 0; // ??? Use PID ?
+  fCharge= t->GetSign();
+  
+  fLabel = t->GetLabel();
+  fIndex = t->GetID();
+  // fStatus = (Int_t) t->GetStatus(); // RRRR Uncomment for root-5.26.
+
+  SetPropagator(prop);
 }
 
 //______________________________________________________________________________
-AliEveTrack::AliEveTrack(TEveRecTrack* t, TEveTrackPropagator* rs) :
-  TEveTrack(t, rs)
+AliEveTrack::AliEveTrack(AliAODTrack* t, TEveTrackPropagator* prop) :
+  TEveTrack()
 {
   // Constructor.
+
+  Double_t buf[3];
+
+  t->GetXYZ(buf); fV.Set(buf);
+  t->PxPyPz(buf); fP.Set(buf);
+
+  // fBeta = 0; // Unknown, no mass function
+  // fPdg = 0;  // ??? Use PID ?
+  fCharge= t->Charge();
+  
+  fLabel = t->GetLabel();
+  fIndex = t->GetID();
+  // fStatus = (Int_t) t->GetStatus(); // RRRR Uncomment for root-5.26.
+
+  SetPropagator(prop);
 }
 
 //______________________________________________________________________________
index d597621..abe9647 100644 (file)
@@ -12,6 +12,9 @@
 
 #include <TEveTrack.h>
 
+class AliESDtrack;
+class AliAODTrack;
+
 //______________________________________________________________________________
 // Short description of AliEveTrack
 //
@@ -20,9 +23,11 @@ class AliEveTrack : public TEveTrack
 {
 public:
   AliEveTrack();
-  AliEveTrack(TParticle* t, Int_t label, TEveTrackPropagator* rs);
-  AliEveTrack(TEveMCTrack*  t, TEveTrackPropagator* rs);
-  AliEveTrack(TEveRecTrack* t, TEveTrackPropagator* rs);
+  AliEveTrack(TParticle* t, Int_t label, TEveTrackPropagator* prop=0);
+  AliEveTrack(TEveMCTrack*  t, TEveTrackPropagator* prop=0);
+  AliEveTrack(TEveRecTrack* t, TEveTrackPropagator* prop=0);
+  AliEveTrack(AliESDtrack*  t, TEveTrackPropagator* prop=0);
+  AliEveTrack(AliAODTrack*  t, TEveTrackPropagator* prop=0);
   AliEveTrack(const AliEveTrack& t);
   virtual ~AliEveTrack();
 
index ca616b7..86038e4 100644 (file)
@@ -117,21 +117,7 @@ TEveTrack* esd_make_track(AliESDtrack *at, TEveTrackList* cont)
     innerTaken = kTRUE;
   }
 
-  Double_t pbuf[3], vbuf[3];
-  tp->GetXYZ(vbuf);
-  tp->GetPxPyPz(pbuf);
-
-  TEveRecTrack rt;
-  rt.fLabel  = at->GetLabel();
-  rt.fIndex  = at->GetID();
-  rt.fStatus = (Int_t) at->GetStatus();
-  rt.fSign   = at->GetSign();
-  rt.fV.Set(vbuf);
-  rt.fP.Set(pbuf);
-  Double_t ep = at->GetP(), mc = at->GetMass();
-  rt.fBeta = ep/TMath::Sqrt(ep*ep + mc*mc);
-
-  AliEveTrack* track = new AliEveTrack(&rt, cont->GetPropagator());
+  AliEveTrack* track = new AliEveTrack(at, cont->GetPropagator());
   track->SetAttLineAttMarker(cont);
   track->SetName(Form("AliEveTrack %d", at->GetID()));
   track->SetElementTitle(esd_track_title(at));