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 e7e478c5fac6cb906f6a0fbbd0985796a94adfce..76bf1627544f7d6634646e8040ca38be2dbf269c 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 839b20b8b05273f5bb89655ec42b6b8eb0fc6258..fbd94bdf4cb76eb4e7e21c1df06514aa93854208 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 c8e1a041a3d5a3786adf37652d310ee6d1fcba73..94363ea5011f8317ac314b8d0fc16b91b57a0581 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 60942319b0b258ae98678470308e95355f1e34f8..174af021b55f88904001f05ba585aee659ece4b0 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);