there have been some changes in the on-line tracklet and GTU track
[u/mrichter/AliRoot.git] / EVE / EveDet / AliEveTRDData.h
CommitLineData
d810d0de 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 *
51346b82 7 * full copyright notice. *
d810d0de 8 **************************************************************************/
9/////////////////////////////////////////////////////////////////////////
10//
11// - AliEVE implementation -
51346b82 12// Containers for visualisation of TRD data structures
d810d0de 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
a15e6d7d 19#ifndef AliEveTRDData_H
20#define AliEveTRDData_H
d810d0de 21
d810d0de 22#include <TEveQuadSet.h>
d810d0de 23#include <TEveBoxSet.h>
d810d0de 24#include <TEvePointSet.h>
6983e87a 25#include <TEveLine.h>
d810d0de 26
9330a7aa 27#ifndef ALITRDARRAYADC_H
28#include "AliTRDarrayADC.h"
9fb2a3ed 29#endif
d810d0de 30
fd31e9de 31class AliEveTRDChamber;
fd31e9de 32class AliEveTRDHits : public TEvePointSet
33{
fd31e9de 34public:
a4197d2e 35 AliEveTRDHits();
6983e87a 36 ~AliEveTRDHits();
fd31e9de 37
38 void PointSelected(Int_t n);
39
fd31e9de 40
4b456ebb 41private:
42 AliEveTRDHits(const AliEveTRDHits&); // Not implemented
43 AliEveTRDHits& operator=(const AliEveTRDHits&); // Not implemented
44
45 ClassDef(AliEveTRDHits, 0); // Base class for TRD hits visualisation
fd31e9de 46};
47
48
6983e87a 49class AliTRDdigitsManager;
fd31e9de 50class AliEveTRDDigits : public TEveQuadSet
51{
52 friend class AliEveTRDDigitsEditor;
d810d0de 53
fd31e9de 54public:
55 AliEveTRDDigits(AliEveTRDChamber *p);
6983e87a 56 ~AliEveTRDDigits();
d810d0de 57
fd31e9de 58 void ComputeRepresentation();
004e0620 59 const AliTRDarrayADC* GetData() const {return fData.HasData() ? &fData : NULL;}
6e0bc469 60 //void Paint(Option_t *opt="");
fd31e9de 61 void Reset();
62 void SetData(AliTRDdigitsManager *digits);
d810d0de 63
fd31e9de 64protected:
65 AliEveTRDChamber *fParent;
d810d0de 66
fd31e9de 67private:
a15e6d7d 68 TEveBoxSet fBoxes; // Boxset for didigit representation.
9330a7aa 69 AliTRDarrayADC fData; // Raw-data array.
d810d0de 70
4b456ebb 71 AliEveTRDDigits(const AliEveTRDDigits&); // Not implemented
72 AliEveTRDDigits& operator=(const AliEveTRDDigits&); // Not implemented
73
74 ClassDef(AliEveTRDDigits, 0); // Digits visualisation for TRD
fd31e9de 75};
d810d0de 76
51346b82 77
6983e87a 78
79class AliEveTRDClusters : public AliEveTRDHits
fd31e9de 80{
fd31e9de 81public:
a4197d2e 82 AliEveTRDClusters();
d810d0de 83
b3d20a1c 84 void Load(Char_t *what="all", Bool_t stkwise=kTRUE) const; // *MENU*
6983e87a 85 void PointSelected(Int_t n);
57d55fae 86 void Print(Option_t *o = "") const; // *MENU*
b3d20a1c 87
4b456ebb 88private:
6983e87a 89 AliEveTRDClusters(const AliEveTRDClusters&); // Not implemented
90 AliEveTRDClusters& operator=(const AliEveTRDClusters&); // Not implemented
4b456ebb 91
6983e87a 92 ClassDef(AliEveTRDClusters, 0); // Base class for TRD clusters visualisation
fd31e9de 93};
d810d0de 94
d810d0de 95
6983e87a 96
a4197d2e 97class AliTRDseedV1;
98class AliEveTRDTracklet : public TEveLine
fd31e9de 99{
fd31e9de 100public:
a4197d2e 101 AliEveTRDTracklet(AliTRDseedV1 *trklt);
98b9b8b2 102 ~AliEveTRDTracklet();
a4197d2e 103 AliEveTRDClusters* GetClusters() const {return fClusters;}
57d55fae 104 void Print(Option_t *o="") const; // *MENU*
a879a24a 105
6983e87a 106private:
a4197d2e 107 AliEveTRDClusters *fClusters; // clusters
108
6983e87a 109 AliEveTRDTracklet(const AliEveTRDTracklet&); // Not implemented
110 AliEveTRDTracklet& operator=(const AliEveTRDTracklet&); // Not implemented
111
112 ClassDef(AliEveTRDTracklet, 0); // TRD tracklet visualisation
113};
114
d810d0de 115
baee73d3 116class AliTrackPoint;
a4197d2e 117class AliTRDtrackV1;
dfe8369a 118class AliRieman;
a4197d2e 119class AliEveTRDTrack : public TEveLine
6983e87a 120{
121public:
baee73d3 122 enum AliEveTRDTrackState{
123 kSource = 0
124 ,kPID = 1
125 ,kTrackCosmics = 2
126 ,kTrackModel = 3
e94beec4 127 };
128 enum AliEveTRDTrackModel{
baee73d3 129 kRieman = 0
130 ,kKalman = 1
e94beec4 131 };
132
133
a4197d2e 134 AliEveTRDTrack(AliTRDtrackV1 *trk);
baee73d3 135 virtual ~AliEveTRDTrack();
004e0620 136 //AliEveTRDTracklet* GetTracklet(Int_t plane) const {return plane <6 && plane >= 0 ? fTracklet[plane] : NULL;}
14eef4aa 137 void Print(Option_t *opt="a") const; // *MENU*
004e0620 138 void SetStatus(UChar_t s=0); // *MENU*
baee73d3 139 void SetESDstatus(ULong_t stat) {fESDStatus = stat;}
4b456ebb 140private:
6983e87a 141 AliEveTRDTrack(const AliEveTRDTrack&); // Not implemented
142 AliEveTRDTrack& operator=(const AliEveTRDTrack&); // Not implemented
4b456ebb 143
baee73d3 144 UChar_t fTrackState; // bit map for the track drawing state
145 ULong_t fESDStatus; // ESD status bit for this track
146 Float_t fAlpha; // sector angle for this track
dfe8369a 147 AliTrackPoint *fPoints; // track crossing points
148 AliRieman *fRim; // rieman fitter
baee73d3 149 ClassDef(AliEveTRDTrack, 0); // TRD track visualisation
fd31e9de 150};
d810d0de 151
6983e87a 152
a879a24a 153#include "TEveElement.h"
154
155class AliTRDtrackletMCM;
156class AliTRDtrackletWord;
157class AliEveTRDTrackletOnline : public TEveLine
158{
159public:
160 AliEveTRDTrackletOnline(AliTRDtrackletMCM *tracklet);
161 AliEveTRDTrackletOnline(AliTRDtrackletWord *tracklet);
162 ~AliEveTRDTrackletOnline();
163
a879a24a 164 void ShowMCM(Option_t *opt = "RHT") const; // *MENU*
165private:
166 Int_t fDetector;
167 Int_t fROB;
168 Int_t fMCM;
169
170 AliEveTRDTrackletOnline(const AliEveTRDTrackletOnline&); // Not implemented
171 AliEveTRDTrackletOnline& operator=(const AliEveTRDTrackletOnline&); // Not implemented
172
173 ClassDef(AliEveTRDTrackletOnline, 0); // TRD tracklet visualisation
174};
175
176
177class AliTRDmcmSim;
178class AliEveTRDmcm : public TEveElement, public TNamed
179{
180 public:
181 AliEveTRDmcm();
182 ~AliEveTRDmcm();
183
184 Bool_t Init(Int_t det, Int_t rob, Int_t mcm); // *MENU*
185 Bool_t LoadDigits(); // *MENU*
186 Bool_t Filter(); // *MENU*
187 Bool_t Tracklet(); // *MENU*
188 void Draw(Option_t* option = "FHT"); // *MENU*
189 Bool_t AssignPointer(const char* ptrname = "mcmtest"); // *MENU*
190
191 protected:
192 AliTRDmcmSim *fMCM;
193
194 AliEveTRDmcm(const AliEveTRDmcm&); // not implemented
195 AliEveTRDmcm& operator=(const AliEveTRDmcm&); // not implemented
196
197 ClassDef(AliEveTRDmcm, 0);
198};
199
d810d0de 200#endif