]> git.uio.no Git - u/mrichter/AliRoot.git/blob - EVE/EveDet/AliEveTRDData.h
linked loaders at clusters level
[u/mrichter/AliRoot.git] / EVE / EveDet / AliEveTRDData.h
1 // $Id$
2 // Main authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 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 //
11 // - AliEVE implementation -
12 // Containers for visualisation of TRD data structures
13 //    - AliEveTRDHits - visualisation of MC Hits, Clusters (RecPoints)
14 //    - AliEveTRDDigits - visualisation of TRD digits
15 //
16 // by A.Bercuci (A.Bercuci@gsi.de)   Fri Oct 27 2006
17 ///////////////////////////////////////////////////////////////////////
18
19 #ifndef AliEveTRDData_H
20 #define AliEveTRDData_H
21
22 #include <TEveQuadSet.h>
23 #include <TEveBoxSet.h>
24 #include <TEvePointSet.h>
25 #include <TEveLine.h>
26
27
28 #include "AliTRDdataArrayI.h"
29
30 class AliEveTRDChamber;
31 class AliEveTRDHits : public TEvePointSet
32 {
33 public:
34   AliEveTRDHits();
35   ~AliEveTRDHits();
36
37   void PointSelected(Int_t n);
38
39
40 private:
41   AliEveTRDHits(const AliEveTRDHits&);            // Not implemented
42   AliEveTRDHits& operator=(const AliEveTRDHits&); // Not implemented
43
44   ClassDef(AliEveTRDHits, 0); // Base class for TRD hits visualisation
45 };
46
47
48 class AliTRDdigitsManager;
49 class AliEveTRDDigits : public TEveQuadSet
50 {
51   friend class AliEveTRDDigitsEditor;
52
53 public:
54   AliEveTRDDigits(AliEveTRDChamber *p);
55   ~AliEveTRDDigits();
56
57   void                  ComputeRepresentation();
58   const AliTRDdataArrayI*       GetData() const {return fData.GetNelems() ? &fData : 0x0;}
59   void                  Paint(Option_t *opt="");
60   void                  Reset();
61   void                  SetData(AliTRDdigitsManager *digits);
62
63 protected:
64   AliEveTRDChamber *fParent;
65
66 private:
67   TEveBoxSet            fBoxes; // Boxset for didigit representation.
68   AliTRDdataArrayI      fData;  // Raw-data array.
69
70   AliEveTRDDigits(const AliEveTRDDigits&);            // Not implemented
71   AliEveTRDDigits& operator=(const AliEveTRDDigits&); // Not implemented
72
73   ClassDef(AliEveTRDDigits, 0); // Digits visualisation for TRD
74 };
75
76
77
78 class AliEveTRDClusters : public AliEveTRDHits
79 {
80 public:
81   AliEveTRDClusters();
82
83   void Load(Char_t *what="all", Bool_t stkwise=kTRUE) const; // *MENU*
84   void PointSelected(Int_t n);
85   void Print(Option_t *o = "") const; // *MENU*
86
87 private:
88   AliEveTRDClusters(const AliEveTRDClusters&);            // Not implemented
89   AliEveTRDClusters& operator=(const AliEveTRDClusters&); // Not implemented
90
91   ClassDef(AliEveTRDClusters, 0); // Base class for TRD clusters visualisation
92 };
93
94
95
96 class AliTRDseedV1;
97 class AliEveTRDTracklet : public TEveLine
98 {
99 public:
100   AliEveTRDTracklet(AliTRDseedV1 *trklt);
101 //  ~AliEveTRDTracklet();
102   AliEveTRDClusters* GetClusters() const {return fClusters;}
103   void               Print(Option_t *o="") const; // *MENU*
104 private:
105   AliEveTRDClusters *fClusters;  // clusters
106
107   AliEveTRDTracklet(const AliEveTRDTracklet&);            // Not implemented
108   AliEveTRDTracklet& operator=(const AliEveTRDTracklet&); // Not implemented
109
110   ClassDef(AliEveTRDTracklet, 0); // TRD tracklet visualisation
111 };
112
113
114 class AliTrackPoint;
115 class AliTRDtrackV1;
116 class AliEveTRDTrack : public TEveLine
117 {
118 public:
119   enum AliEveTRDTrackState{
120     kSource        = 0 
121     ,kPID          = 1 
122     ,kTrackCosmics = 2
123     ,kTrackModel   = 3
124   };
125   enum AliEveTRDTrackModel{
126     kRieman  = 0
127     ,kKalman = 1
128   };
129
130
131   AliEveTRDTrack(AliTRDtrackV1 *trk);
132   virtual ~AliEveTRDTrack();
133   //AliEveTRDTracklet*  GetTracklet(Int_t plane) const {return plane <6 && plane >= 0 ? fTracklet[plane] : 0x0;}
134   void    SetStatus(UChar_t s);
135   void    SetESDstatus(ULong_t stat) {fESDStatus = stat;} 
136 private:
137   AliEveTRDTrack(const AliEveTRDTrack&);            // Not implemented
138   AliEveTRDTrack& operator=(const AliEveTRDTrack&); // Not implemented
139
140   UChar_t        fTrackState;   // bit map for the track drawing state
141   ULong_t        fESDStatus;    // ESD status bit for this track
142   Float_t        fAlpha;        // sector angle for this track  
143   AliTrackPoint* fPoints;       // track crossing points
144
145   ClassDef(AliEveTRDTrack, 0);  // TRD track visualisation
146 };
147
148
149 #endif