With Boris and Antonin - improvements for V0 visualization.
authormtadel <mtadel@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 18 Apr 2008 11:38:46 +0000 (11:38 +0000)
committermtadel <mtadel@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 18 Apr 2008 11:38:46 +0000 (11:38 +0000)
Use TEveLine for pointing line so that it can be displayed correctly
in projected views.

Propagate more information from AliESDv0 to AliEVEV0.

Consolidate visual parameters of V0 components.

Remove obsolete methods, document remaining ones.

EVE/EveBase/AliEveV0.cxx
EVE/EveBase/AliEveV0.h
EVE/alice-macros/esd_V0.C
EVE/alice-macros/esd_V0_points.C

index e7e478c..76bf162 100644 (file)
@@ -7,12 +7,6 @@
  * full copyright notice.                                                 *
  **************************************************************************/
 
-/***********************************************************************
-*  This code defines the reconstructed v0 visualized with EVE
-*
-* Ludovic Gaudichet (gaudichet@to.infn.it)
-************************************************************************/
-
 #include "AliEveV0.h"
 
 #include <TEveTrack.h>
@@ -34,6 +28,7 @@
 
 ClassImp(AliEveV0)
 
+//______________________________________________________________________________
 AliEveV0::AliEveV0() :
   TEvePointSet(),
 
@@ -43,7 +38,7 @@ AliEveV0::AliEveV0() :
   fNegTrack(0),
   fPosTrack(0),
   fRnrStyle(0),
-  fPolyLineV0(),
+  fPointingLine(0),
   fESDIndex(-1),
   fOnFlyStatus(kFALSE),
   fDaughterDCA(999),
@@ -53,8 +48,10 @@ AliEveV0::AliEveV0() :
 
   // Override from TEveElement.
   fPickable = kTRUE;
+  fMainColorPtr = &fMarkerColor;
 }
 
+//______________________________________________________________________________
 AliEveV0::AliEveV0(TEveRecTrack* tNeg, TEveRecTrack* tPos,
                   TEveRecV0* v0, TEveTrackPropagator* rs) :
   TEvePointSet(),
@@ -67,55 +64,60 @@ AliEveV0::AliEveV0(TEveRecTrack* tNeg, TEveRecTrack* tPos,
   fPosTrack(new TEveTrack(tPos, rs)),
 
   fRnrStyle(rs),
-  fPolyLineV0(),
+  fPointingLine(new TEveLine("Pointing line")),
   fESDIndex(-1),
   fOnFlyStatus(kFALSE),
   fDaughterDCA(999),
   fChi2V0(-1)
 {
+  // Constructor with full V0 specification.
+
   // Override from TEveElement.
   fPickable = kTRUE;
+  fMainColorPtr = &fMarkerColor;
+
+  fMarkerStyle = 2;
+  fMarkerColor = kSpring + 6;
+  fMarkerSize  = 1;
+
+  fPointingLine->SetLineColor(fMarkerColor);
+  fPointingLine->SetLineWidth(2);
+  fPointingLine->IncDenyDestroy();
+  AddElement(fPointingLine);
 
-  fPolyLineV0.SetLineColor(fMarkerColor);
   fPosTrack->SetLineColor(2);  // red
+  fPosTrack->SetStdTitle();
   fNegTrack->SetLineColor(7);  // light blue
+  fNegTrack->SetStdTitle();
 
-  fMainColorPtr = &fMarkerColor;
-  fMarkerStyle = 20;
-  fMarkerColor = 5;
-  fMarkerSize  = 0.3;
-
+  fNegTrack->IncDenyDestroy();
   AddElement(fNegTrack);
+  fPosTrack->IncDenyDestroy();
   AddElement(fPosTrack);
 }
 
+//______________________________________________________________________________
 AliEveV0::~AliEveV0()
-{}
-
-
-void AliEveV0::Reset(TPolyLine3D* polyLine)
 {
-  //polyLine->SetPolyLine(n_points);
-  polyLine->SetPolyLine(0);
-}
+  // Destructor. Dereferences pos/neg tracks and pointing-line objects.
 
-//______________________________________________________________________________
-void AliEveV0::MakeV0path()
-{
-  fPolyLineV0.SetPoint(0, fRecBirthV.fX, fRecBirthV.fY, fRecBirthV.fZ);
-  fPolyLineV0.SetPoint(1, fRecDecayV.fX, fRecDecayV.fY, fRecDecayV.fZ);
+  fNegTrack->DecDenyDestroy();
+  fPosTrack->DecDenyDestroy();
+  fPointingLine->DecDenyDestroy();
 }
 
-
 //______________________________________________________________________________
 void AliEveV0::MakeV0()
 {
+  // Set all dependant components for drawing.
+
   SetPoint(0, fRecDecayV.fX, fRecDecayV.fY, fRecDecayV.fZ);
 
   fNegTrack->MakeTrack();
   fPosTrack->MakeTrack();
-  MakeV0path();
+
+  fPointingLine->SetPoint(0, fRecBirthV.fX, fRecBirthV.fY, fRecBirthV.fZ);
+  fPointingLine->SetPoint(1, fRecDecayV.fX, fRecDecayV.fY, fRecDecayV.fZ);
 }
 
 
@@ -140,6 +142,8 @@ AliEveV0List::AliEveV0List() :
   fMinRCut(0),
   fMaxRCut(250)
 {
+  // Default constructor.
+
   fChildClass = AliEveV0::Class(); // override member from base TEveElementList
 }
 
@@ -156,6 +160,8 @@ AliEveV0List::AliEveV0List(TEveTrackPropagator* rs) :
   fMinRCut(0),
   fMaxRCut(250)
 {
+  // Constructor with given track-propagator..
+
   fChildClass = AliEveV0::Class(); // override member from base TEveElementList
 
   Init();
@@ -174,6 +180,8 @@ AliEveV0List::AliEveV0List(const Text_t* name, TEveTrackPropagator* rs) :
   fMinRCut(0),
   fMaxRCut(100)
 {
+  // Standard constructor.
+
   fChildClass = AliEveV0::Class(); // override member from base TEveElementList
 
   Init();
@@ -183,88 +191,31 @@ AliEveV0List::AliEveV0List(const Text_t* name, TEveTrackPropagator* rs) :
 //______________________________________________________________________________
 void AliEveV0List::Init()
 {
-  if (fRnrStyle== 0) fRnrStyle = new TEveTrackPropagator;
-
-}
-
-//______________________________________________________________________________
-AliEveV0List::~AliEveV0List()
-{
-
-}
-
-//______________________________________________________________________________
-void AliEveV0List::Paint(Option_t* option)
-{
-  if(fRnrSelf) {
-
-    if(fRnrV0vtx) {
-      for(List_i i=fChildren.begin(); i!=fChildren.end(); ++i) {
-       if((*i)->GetRnrSelf()) {
-         ((AliEveV0*)(*i))->Paint(option);
-       }
-      }
-    }
-
-    if(fRnrDaughters) {
-      for(List_i i=fChildren.begin(); i!=fChildren.end(); ++i) {
-       if((*i)->GetRnrSelf()) {
-         ((AliEveV0*)(*i))->PaintDaughters(option);
-       }
-      }
-    }
-
-    if(fRnrV0path) {
-      for(List_i i=fChildren.begin(); i!=fChildren.end(); ++i) {
-       if((*i)->GetRnrSelf()) {
-         ((AliEveV0*)(*i))->PaintPath(option);
-       }
-      }
-    }
-  }
-}
-
-
-//______________________________________________________________________________
-
-void AliEveV0List::SetRnrV0vtx(Bool_t rnr)
-{
-  fRnrV0vtx = rnr;
-  gEve->Redraw3D();
-}
+  // Initialize members needed for drawing operations.
 
-void AliEveV0List::SetRnrV0path(Bool_t rnr)
-{
-  fRnrV0path = rnr;
-  gEve->Redraw3D();
-}
-
-void AliEveV0List::SetRnrDaughters(Bool_t rnr)
-{
-  fRnrDaughters = rnr;
-  gEve->Redraw3D();
+  if (fRnrStyle== 0) fRnrStyle = new TEveTrackPropagator;
 }
 
 /******************************************************************************/
 
+//______________________________________________________________________________
 void AliEveV0List::MakeV0s()
 {
+  // Call MakeV0() for all elements.
+
   for(List_i i=fChildren.begin(); i!=fChildren.end(); ++i) {
     ((AliEveV0*)(*i))->MakeV0();
   }
   gEve->Redraw3D();
 }
 
-
-void AliEveV0List::MakeMarkers()
-{
-  gEve->Redraw3D();
-}
-
 /******************************************************************************/
 
+//______________________________________________________________________________
 void AliEveV0List::FilterByRadius(Float_t minR, Float_t maxR)
 {
+  // Select visibility of elements based on their axial radius.
+
   fMinRCut = minR;
   fMaxRCut = maxR;
 
index 839b20b..fbd94bd 100644 (file)
@@ -42,33 +42,12 @@ public:
      TEveTrackPropagator* rs);
   virtual ~AliEveV0();
 
-  //void  AddPathMarkPos(TEvePathMark* pm) { fPathMarksPos.push_back(pm); }
-  //void  AddPathMarkNeg(TEvePathMark* pm) { fPathMarksNeg.push_back(pm); }
-
-  void Reset(TPolyLine3D* polyLine);
-
-  void MakeV0path();
   void MakeV0();
 
-  virtual void PaintDaughters(Option_t* option="")
-  {
-    if (fRnrSelf) { fNegTrack->Paint(option); fPosTrack->Paint(option);}
-  }
-
-  virtual void Paint(Option_t* option="")
-  {
-    if (fRnrSelf) TEvePointSet::Paint(option);
-  }
-
-  virtual void PaintPath(Option_t* option="")
-  {
-    if (fRnrSelf) fPolyLineV0.Paint(option);
-  }
-
   virtual void  SetMainColor(Color_t col)
   {
-    fMarkerColor = col; fMainColorPtr = &fMarkerColor;
-    fPolyLineV0.SetLineColor(fMarkerColor);
+    TEvePointSet::SetMainColor(col);
+    fPointingLine->SetLineColor(fMarkerColor);
   }
 
   void SetRnrStyle(TEveTrackPropagator* rs) { fRnrStyle = rs; }
@@ -87,14 +66,12 @@ public:
   virtual const Text_t* GetName() const    { return Form("ESDv0_%i",fESDIndex); }
   virtual const Text_t* GetTitle() const   { return Form("ESDv0_%i",fESDIndex); }
 
-  //Int_t          GetLabelPos() const { return fLabel_pos; }
-  //Int_t          GetLabelNeg() const { return fLabel_neg; }
   TEveTrackPropagator* GetPropagator() const  { return fRnrStyle; }
 
-  TEveTrack*   GetNegTrack() { return fNegTrack; }
-  TEveTrack*   GetPosTrack() { return fPosTrack; }
+  TEveTrack* GetNegTrack() { return fNegTrack; }
+  TEveTrack* GetPosTrack() { return fPosTrack; }
 
-  TPolyLine3D*  GetPolyLineV0() { return &fPolyLineV0; }
+  TEveLine*  GetPointingLine() { return fPointingLine; }
 
 protected:
   TEveVector fRecBirthV;    // Reconstucted birth point of neutral particle
@@ -106,7 +83,7 @@ protected:
 
   TEveTrackPropagator *fRnrStyle;
 
-  TPolyLine3D       fPolyLineV0;
+  TEveLine         *fPointingLine;
 
   Int_t             fESDIndex;    // Index in ESD V0 array.
   Bool_t            fOnFlyStatus; // Reconstructed during tracking.
@@ -133,7 +110,7 @@ public:
   AliEveV0List();
   AliEveV0List(TEveTrackPropagator* rs);
   AliEveV0List(const Text_t* name, TEveTrackPropagator* rs=0);
-  virtual ~AliEveV0List();
+  virtual ~AliEveV0List() {}
 
   virtual const Text_t* GetTitle() const { return fTitle; }
   virtual void SetTitle(const Text_t* t) { fTitle = t; }
@@ -142,8 +119,6 @@ public:
 
   virtual Bool_t CanEditMainColor() const { return kTRUE; }
 
-  virtual void Paint(Option_t* option="");
-
   void  SetRnrStyle(TEveTrackPropagator* rst) { fRnrStyle = rst; }
   TEveTrackPropagator* GetPropagator()        { return fRnrStyle; }
 
@@ -151,12 +126,7 @@ public:
   Bool_t GetRnrV0path()    const { return fRnrV0path; }
   Bool_t GetRnrDaughters() const { return fRnrDaughters; }
 
-  void   SetRnrV0vtx(Bool_t);
-  void   SetRnrV0path(Bool_t);
-  void   SetRnrDaughters(Bool_t);
-
   void   MakeV0s();
-  void   MakeMarkers();
 
   void   FilterByRadius(Float_t minR, Float_t maxR);
 
@@ -176,7 +146,7 @@ protected:
   Float_t              fMaxRCut;
 
 private:
-  void  Init();
+  void Init();
 
   AliEveV0List(const AliEveV0List&);            // Not implemented
   AliEveV0List& operator=(const AliEveV0List&); // Not implemented
index c8e1a04..94363ea 100644 (file)
@@ -32,21 +32,25 @@ AliEveV0* esd_make_v0(TEveTrackPropagator* rnrStyle, AliESDVertex* primVtx,
   rcV0.fPNeg.Set(p);
 
   v0->GetPxPyPz(p[0], p[1], p[2]);
+
   Double_t v[3];
+
   v0->GetXYZ(v[0], v[1], v[2]);
+  rcV0.fVCa.Set(v);
 
-  //   printf(" %f %f %f / %f %f %f    %i\n",p[0], p[1], p[2],
-  //    v[0], v[1], v[2], v0->GetOnFlyStatus());
+  v0->GetParamN()->GetXYZ(v);  rcV0.fVNeg.Set(v);
+  v0->GetParamP()->GetXYZ(v);  rcV0.fVPos.Set(v);
 
-  rcV0.fVNeg.Set(v); //original track vertices at dca not stored
-  rcV0.fVPos.Set(v);
-  rcV0.fVCa.Set(v);
+  rcV0.fV0Birth.Set(primVtx->GetXv(), primVtx->GetYv(), primVtx->GetZv());
 
-  rcV0.fDLabel[0] = v0->GetNindex();
-  rcV0.fDLabel[1] = v0->GetPindex();
+  // Simulation data not directly available in AliESDv0
+  //rcV0.fDLabel[0] = v0->GetNindex();
+  //rcV0.fDLabel[1] = v0->GetPindex();
 
   esd_v0_init_rectrack(rcNeg, v0->GetParamN());
+  rcNeg.fIndex = v0->GetNindex();
   esd_v0_init_rectrack(rcPos, v0->GetParamP());
+  rcPos.fIndex = v0->GetPindex();
 
   AliEveV0* myV0 = new AliEveV0(&rcNeg, &rcPos, &rcV0, rnrStyle);
   myV0->SetElementName(Form("ESDv0 %d", i));
index 6094231..174af02 100644 (file)
@@ -34,7 +34,7 @@ TEvePointSet* esd_V0_points_offline()
 
   points->SetTitle(Form("N=%d", points->Size()));
   points->SetMarkerStyle(4);
-  points->SetMarkerSize(2);
+  points->SetMarkerSize(1.5);
   points->SetMarkerColor((Color_t)(kOrange+8));
 
   gEve->AddElement(points);
@@ -51,7 +51,7 @@ TEvePointSet* esd_V0_points_onfly()
 
   points->SetTitle(Form("N=%d", points->Size()));
   points->SetMarkerStyle(4);
-  points->SetMarkerSize(2);
+  points->SetMarkerSize(1.5);
   points->SetMarkerColor((Color_t)(kPink+10));
 
   gEve->AddElement(points);