a54c735043b3ac3b102decdbb5a195ac15632223
[u/mrichter/AliRoot.git] / EVE / EveBase / AliEveTrackCounter.h
1 // @(#)root/eve:$Id$
2 // Author: Matevz Tadel 2007
3
4 /**************************************************************************
5  * Copyright(c) 1998-2008, ALICE Experiment at CERN, all rights reserved. *
6  * See http://aliceinfo.cern.ch/Offline/AliRoot/License.html for          *
7  * full copyright notice.                                                 *
8  **************************************************************************/
9
10 #ifndef AliEveTrackCounter_H
11 #define AliEveTrackCounter_H
12
13 #include "TEveElement.h"
14 #include "TList.h"
15
16 class AliEveTrack;
17 class TEveTrackList;
18
19 //______________________________________________________________________________
20 // Short description of AliEveTrackCounter
21 //
22
23 class AliEveTrackCounter :  public TEveElement, public TNamed
24 {
25   friend class AliEveTrackCounterEditor;
26
27 public:
28   enum EClickAction_e { kCA_PrintTrackInfo, kCA_ToggleTrack };
29
30   AliEveTrackCounter(const Text_t* name="AliEveTrackCounter", const Text_t* title="");
31   virtual ~AliEveTrackCounter();
32
33   Int_t GetEventId() const { return fEventId; }
34   void  SetEventId(Int_t id) { fEventId = id; }
35
36   void Reset();
37
38   void RegisterTracks(TEveTrackList* tlist, Bool_t goodTracks);
39
40   void DoTrackAction(AliEveTrack* track);
41
42   Int_t GetClickAction() const  { return fClickAction; }
43   void  SetClickAction(Int_t a) { fClickAction = a; }
44
45   void OutputEventTracks(FILE* out=0);
46
47   static AliEveTrackCounter* fgInstance;
48
49 protected:
50   Int_t fBadLineStyle;  // TEveLine-style used for secondary/bad tracks.
51   Int_t fClickAction;   // Action to take when a track is ctrl-clicked.
52
53   Int_t fEventId;       // Current event-id.
54
55   Int_t fAllTracks;     // Counter of all tracks.
56   Int_t fGoodTracks;    // Counter of good tracks.
57
58   TList fTrackLists;    // List of TrackLists registered for management.
59
60 private:
61   AliEveTrackCounter(const AliEveTrackCounter&);            // Not implemented
62   AliEveTrackCounter& operator=(const AliEveTrackCounter&); // Not implemented
63
64   ClassDef(AliEveTrackCounter, 0); // Class for selection of good/primary tracks with basic processing functionality.
65 };
66
67 #endif