]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - EVE/Reve/Track.h
In class Track: renamed ImportDaughters() to ImportKine(), added ImportKineWithArgs...
[u/mrichter/AliRoot.git] / EVE / Reve / Track.h
index c835ef9121996b6c301f5280aa573ab665738acb..a5cf13d5153b6abff29f75451923d8053753eee1 100644 (file)
@@ -1,42 +1,47 @@
-// $Header$
-
 #ifndef REVE_Track_H
 #define REVE_Track_H
 
+/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
+ * See cxx source for full Copyright notice                               */
+
+/* $Id$ */
+
+#include <vector>
+
 #include <Reve/PODs.h>
 #include <Reve/RenderElement.h>
+#include <Reve/Line.h>
 
 #include <TPolyMarker3D.h>
-#include <TPolyLine3D.h>
+#include <TQObject.h>
 
 namespace Reve {
 
 class TrackRnrStyle;
 class TrackList;
 
-class Track : public RenderElement,
-             public TPolyLine3D
+class Track : public Line, public TQObject
 {
   friend class TrackList;
+  friend class TrackCounter;
+  friend class TrackGL;
 
   Track(const Track&);            // Not implemented
   Track& operator=(const Track&); // Not implemented
 
-protected:
+public:
   typedef std::vector<Reve::PathMark*>           vpPathMark_t;
   typedef std::vector<Reve::PathMark*>::iterator vpPathMark_i;
-
+protected:
   Reve::Vector      fV;
   Reve::Vector      fP;
   Double_t          fBeta;
   Int_t             fCharge;
   Int_t             fLabel;
+  Int_t             fIndex;
   vpPathMark_t      fPathMarks;
 
   TrackRnrStyle*    fRnrStyle;
-    
-  TString           fName;
-  TString           fTitle;
 
 public: 
   Track();
@@ -45,32 +50,32 @@ public:
   Track(Reve::RecTrack* t, TrackRnrStyle* rs);
   virtual ~Track();
 
-  void Reset(Int_t n_points=0);
-
-  virtual void SetLineColor(Color_t col)
-  { SetMainColor(col); }
-
-  virtual void Paint(Option_t* option="")
-  { if(fRnrElement) TPolyLine3D::Paint(option); }
-
   void MakeTrack();
 
   TrackRnrStyle* GetRnrStyle() const  { return fRnrStyle; }
   void SetRnrStyle(TrackRnrStyle* rs) { fRnrStyle = rs; }
 
-  virtual const Text_t* GetName() const    { return fName; }
-  virtual void SetName(const Text_t* name) { fName = name; }
+  Int_t GetLabel() const    { return fLabel; }
+  void  SetLabel(Int_t lbl) { fLabel = lbl;  }
+  Int_t GetIndex() const    { return fIndex; }
+  void  SetIndex(Int_t idx) { fIndex = idx;  }
 
-  virtual const Text_t* GetTitle() const     { return fTitle; }
-  virtual void SetTitle(const Text_t* title) { fTitle = title; }
-
-  Int_t GetLabel() const { return fLabel; }
   void  AddPathMark(Reve::PathMark* pm) { fPathMarks.push_back(pm); }
 
   //--------------------------------
 
-  void ImportHits();     // *MENU*
-  void ImportClusters(); // *MENU*
+  void ImportHits();              // *MENU*
+  void ImportClusters();          // *MENU*
+  void ImportClustersFromIndex(); // *MENU*  
+  void ImportKine();              // *MENU*
+  void ImportKineWithArgs(Bool_t importMother=kTRUE,
+                         Bool_t impDaugters =kTRUE); // *MENU*
+  void PrintKineStack();          // *MENU*
+  void PrintPathMarks();          // *MENU*
+
+  //--------------------------------
+
+  void CtrlClicked(Reve::Track*); // *SIGNAL*
 
   ClassDef(Track, 1);
 }; // endclass Track
@@ -88,10 +93,11 @@ public:
 // TrackList has Get/Set methods for RnrStlye and
 // TrackListEditor provides editor access to them.
 
-class TrackRnrStyle : public TObject 
+class TrackRnrStyle : public TObject
 {
 public:
   Color_t                  fColor;
+  Width_t                  fWidth;
   Float_t                  fMagField;  
   // track limits
   Float_t                  fMaxR;       
@@ -101,9 +107,21 @@ public:
   Float_t                  fMinAng;  // Minimal angular step between two helix points.
   Float_t                  fDelta;   // Maximal error at the mid-point of the line connecting to helix points.
 
+  Float_t                  fMinPt;
+  Float_t                  fMaxPt;
+
+  Color_t                  fPMColor;
+  Style_t                  fPMStyle;
+  Size_t                   fPMSize;
+
   Bool_t                   fFitDaughters;   
+  Bool_t                   fFitReferences;   
   Bool_t                   fFitDecay;   
 
+  Bool_t                   fRnrDaughters;
+  Bool_t                   fRnrReferences;
+  Bool_t                   fRnrDecay;
+
   TrackRnrStyle();
 
   void    SetColor(Color_t c) { fColor = c; }
@@ -140,6 +158,7 @@ protected:
 
   Bool_t               fRnrMarkers;
   Bool_t               fRnrTracks;
+  Bool_t               fEditPathMarks;
 
 public:
   TrackList(Int_t n_tracks=0, TrackRnrStyle* rs=0);
@@ -147,8 +166,8 @@ public:
 
   void Reset(Int_t n_tracks=0);
 
-  virtual const Text_t* GetTitle() const { return fTitle; }
-  virtual void SetTitle(const Text_t* t) { fTitle = t; }
+  virtual const Text_t* GetTitle() const  { return fTitle; }
+  virtual void  SetTitle(const Text_t* t) { fTitle = t; }
 
   virtual Bool_t CanEditMainColor()  { return kTRUE; }
 
@@ -156,34 +175,58 @@ public:
 
   virtual void AddElement(RenderElement* el);
 
-  void  SetRnrStyle(TrackRnrStyle* rst) { fRnrStyle= rst; }
-  TrackRnrStyle* GetRnrStyle()          { return fRnrStyle; } 
+  virtual void SetMarkerColor(Color_t c) {TAttMarker::SetMarkerColor(c); if(fRnrStyle) fRnrStyle->fPMColor =c;}
+  virtual void SetMarkerStyle(Style_t s){TAttMarker::SetMarkerStyle(s); if(fRnrStyle) fRnrStyle->fPMStyle = s;}
+  virtual void SetMarkerSize(Size_t s){TAttMarker::SetMarkerSize(s); if(fRnrStyle) fRnrStyle->fPMSize = s;}
+
+  TrackRnrStyle* GetRnrStyle()           { fRnrStyle->fPMColor = GetMarkerColor();fRnrStyle->fPMStyle = GetMarkerStyle();fRnrStyle->fPMSize = GetMarkerSize(); return fRnrStyle;  } 
+  void   SetRnrStyle(TrackRnrStyle* rst) { fRnrStyle= rst; }
+
+  Bool_t GetEditPathMarks() const   { return fEditPathMarks; }
+  void   SetEditPathMarks(Bool_t x) { fEditPathMarks = x; }
 
   Bool_t GetRnrTracks() const { return fRnrTracks; }
   void   SetRnrTracks(Bool_t);
 
+  Bool_t GetRnrDaughters()  const { return fRnrStyle->fRnrDaughters; }
+  Bool_t GetRnrReferences() const { return fRnrStyle->fRnrReferences; }
+  Bool_t GetRnrDecay()      const { return fRnrStyle->fRnrDecay; }
+
+  void   SetRnrDaughters(Bool_t x);
+  void   SetRnrReferences(Bool_t x);
+  void   SetRnrDecay(Bool_t x);
+
   Bool_t GetRnrMarkers() const { return fRnrMarkers; }
   void   SetRnrMarkers(Bool_t);
 
   void   MakeTracks();
   void   MakeMarkers();
 
+  Width_t GetWidth() const { return fRnrStyle->fWidth; }
+  void  SetWidth(Width_t w);
+
   Float_t GetMaxR()         const { return fRnrStyle->fMaxZ; }
   Float_t GetMaxZ()         const { return fRnrStyle->fMaxR; }
   Float_t GetMaxOrbs()      const { return fRnrStyle->fMaxOrbs; }
   Float_t GetMinAng()       const { return fRnrStyle->fMinAng; }
   Float_t GetDelta()        const { return fRnrStyle->fDelta; }
-  Bool_t  GetFitDaughters() const { return fRnrStyle->fFitDaughters; }
-  Bool_t  GetFitDecay()     const { return fRnrStyle->fFitDecay; }
+  
+  Float_t GetMinPt()        const { return fRnrStyle->fMinPt; }
+  Float_t GetMaxPt()        const { return fRnrStyle->fMaxPt; }
+
+  Bool_t  GetFitDaughters()  const { return fRnrStyle->fFitDaughters; }
+  Bool_t  GetFitReferences() const { return fRnrStyle->fFitReferences; }
+  Bool_t  GetFitDecay()      const { return fRnrStyle->fFitDecay; }
+
+  void SetFitDaughters(Bool_t x);
+  void SetFitReferences(Bool_t x);
+  void SetFitDecay(Bool_t x);
 
   void SetMaxR(Float_t x);
   void SetMaxZ(Float_t x);
   void SetMaxOrbs(Float_t x);
   void SetMinAng(Float_t x);
   void SetDelta(Float_t x);
-  void SetFitDaughters(Bool_t x);
-  void SetFitDecay(Bool_t x);
-
 
   // void  UpdateBounds();
   Int_t   GetNTracks() { return fN; }
@@ -198,6 +241,55 @@ public:
   ClassDef(TrackList, 1);
 };
 
+/**************************************************************************/
+// TrackCounter
+/**************************************************************************/
+
+class TrackCounter : public RenderElement, public TNamed
+{
+  friend class TrackCounterEditor;
+
+public:
+  enum ClickAction_e { CA_PrintTrackInfo, CA_ToggleTrack };
+
+private:
+  TrackCounter(const TrackCounter&);            // Not implemented
+  TrackCounter& operator=(const TrackCounter&); // Not implemented
+
+protected:
+  Int_t fBadLineStyle;
+  Int_t fClickAction;
+
+  Int_t fEventId;
+
+  Int_t fAllTracks;
+  Int_t fGoodTracks;
+
+  TList fTrackLists;
+
+public:
+  TrackCounter(const Text_t* name="TrackCounter", const Text_t* title="");
+  virtual ~TrackCounter();
+
+  Int_t GetEventId() const { return fEventId; }
+  void  SetEventId(Int_t id) { fEventId = id; }
+
+  void Reset();
+
+  void RegisterTracks(TrackList* tlist, Bool_t goodTracks);
+
+  void DoTrackAction(Track* track);
+
+  Int_t GetClickAction() const  { return fClickAction; }
+  void  SetClickAction(Int_t a) { fClickAction = a; }
+
+  void OutputEventTracks(FILE* out=0);
+
+  static TrackCounter* fgInstance;
+
+  ClassDef(TrackCounter, 1);
+}; // endclass TrackCounter
+
 
 } // namespace Reve