2 // Main authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007
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 /////////////////////////////////////////////////////////////////////////
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
16 // by A.Bercuci (A.Bercuci@gsi.de) Fri Oct 27 2006
17 ///////////////////////////////////////////////////////////////////////
19 #ifndef AliEveTRDData_H
20 #define AliEveTRDData_H
22 #include <TEveQuadSet.h>
23 #include <TEveBoxSet.h>
24 #include <TEvePointSet.h>
27 #ifndef ALITRDARRAYADC_H
28 #include "AliTRDarrayADC.h"
31 class AliEveTRDChamber;
32 class AliEveTRDHits : public TEvePointSet
38 void PointSelected(Int_t n);
42 AliEveTRDHits(const AliEveTRDHits&); // Not implemented
43 AliEveTRDHits& operator=(const AliEveTRDHits&); // Not implemented
45 ClassDef(AliEveTRDHits, 0); // Base class for TRD hits visualisation
49 class AliTRDdigitsManager;
50 class AliEveTRDDigits : public TEveQuadSet
52 friend class AliEveTRDDigitsEditor;
55 AliEveTRDDigits(AliEveTRDChamber *p);
58 void ComputeRepresentation();
59 const AliTRDarrayADC* GetData() const {return fData.HasData() ? &fData : 0x0;}
60 void Paint(Option_t *opt="");
62 void SetData(AliTRDdigitsManager *digits);
65 AliEveTRDChamber *fParent;
68 TEveBoxSet fBoxes; // Boxset for didigit representation.
69 AliTRDarrayADC fData; // Raw-data array.
71 AliEveTRDDigits(const AliEveTRDDigits&); // Not implemented
72 AliEveTRDDigits& operator=(const AliEveTRDDigits&); // Not implemented
74 ClassDef(AliEveTRDDigits, 0); // Digits visualisation for TRD
79 class AliEveTRDClusters : public AliEveTRDHits
84 void Load(Char_t *what="all", Bool_t stkwise=kTRUE) const; // *MENU*
85 void PointSelected(Int_t n);
86 void Print(Option_t *o = "") const; // *MENU*
89 AliEveTRDClusters(const AliEveTRDClusters&); // Not implemented
90 AliEveTRDClusters& operator=(const AliEveTRDClusters&); // Not implemented
92 ClassDef(AliEveTRDClusters, 0); // Base class for TRD clusters visualisation
98 class AliTRDtrackletMCM;
99 class AliEveTRDTracklet : public TEveLine
102 AliEveTRDTracklet(AliTRDseedV1 *trklt);
103 AliEveTRDTracklet(AliTRDtrackletMCM *tracklet);
104 ~AliEveTRDTracklet();
105 AliEveTRDClusters* GetClusters() const {return fClusters;}
106 void Print(Option_t *o="") const; // *MENU*
107 void ShowMCM(Option_t *opt = "RHT") const; // *MENU*
109 AliEveTRDClusters *fClusters; // clusters
111 AliEveTRDTracklet(const AliEveTRDTracklet&); // Not implemented
112 AliEveTRDTracklet& operator=(const AliEveTRDTracklet&); // Not implemented
114 ClassDef(AliEveTRDTracklet, 0); // TRD tracklet visualisation
121 class AliEveTRDTrack : public TEveLine
124 enum AliEveTRDTrackState{
130 enum AliEveTRDTrackModel{
136 AliEveTRDTrack(AliTRDtrackV1 *trk);
137 virtual ~AliEveTRDTrack();
138 //AliEveTRDTracklet* GetTracklet(Int_t plane) const {return plane <6 && plane >= 0 ? fTracklet[plane] : 0x0;}
139 void Print(Option_t *opt="a") const; // *MENU*
140 void SetStatus(UChar_t s);
141 void SetESDstatus(ULong_t stat) {fESDStatus = stat;}
143 AliEveTRDTrack(const AliEveTRDTrack&); // Not implemented
144 AliEveTRDTrack& operator=(const AliEveTRDTrack&); // Not implemented
146 UChar_t fTrackState; // bit map for the track drawing state
147 ULong_t fESDStatus; // ESD status bit for this track
148 Float_t fAlpha; // sector angle for this track
149 AliTrackPoint *fPoints; // track crossing points
150 AliRieman *fRim; // rieman fitter
151 ClassDef(AliEveTRDTrack, 0); // TRD track visualisation