]> git.uio.no Git - u/mrichter/AliRoot.git/blob - EVE/Alieve/TRDModuleImp.h
Add some class docs.
[u/mrichter/AliRoot.git] / EVE / Alieve / TRDModuleImp.h
1 #ifndef ALIEVE_TRDModuleImp_H
2 #define ALIEVE_TRDModuleImp_H
3
4 /////////////////////////////////////////////////////////////////////////
5 //
6 // Implementation of TRDModule:
7 //    - TRDChamber - Data holder
8 //    - TRDNode    - Node structure 
9 //
10 // by A.Bercuci (A.Bercuci@gsi.de)   Fri Oct 27 2006
11 /////////////////////////////////////////////////////////////////////////
12
13 #include <vector>
14
15 #ifndef REVE_RenderElement_H
16 #include <Reve/RenderElement.h>
17 #endif
18
19 #ifndef ALIEVE_TRDModule_H
20 #include "TRDModule.h"
21 #endif
22
23 class AliTRDpadPlane;
24 class AliTRDgeometry;
25 class AliTRDhit;
26 class AliTRDdataArrayI;
27 class AliTRDdigitsManager;
28 class TObjArray;
29
30 namespace Reve {
31         class Track;
32 }
33 namespace Alieve {
34         class TRDHits;
35         class TRDDigits;
36
37         class TRDChamber : public Reve::RenderElement, public TRDModule
38         {
39         friend class TRDDigits;
40         public:
41         
42                 TRDChamber(Int_t det=0);
43                 virtual ~TRDChamber() {}
44         
45                 TRDChamber(const TRDChamber&);
46                 TRDChamber& operator=(const TRDChamber&);
47                 
48                 void    AddHit(AliTRDhit *hit);
49                 Int_t   GetRowMax() const {return rowMax;}
50                 Int_t   GetColMax() const {return colMax;}
51                 Int_t   GetTimeMax() const {return timeMax;}
52                 Int_t   GetSM() const;
53                 Int_t   GetSTK() const;
54                 Int_t   GetPlane() const {return fPla;}
55                 void    LoadClusters(TObjArray *cs);
56                 void    LoadDigits(AliTRDdigitsManager *digits);
57                 void    LoadTracklets(TObjArray *ts);
58                 void    Paint(Option_t* option="");
59                 void    Reset();
60                 void    SetGeometry(AliTRDgeometry *geo);
61                 
62         protected:
63                 TRDDigits       *fDigits;   // digits representation
64                 TRDHits         *fHits;     // hits representation
65                 TRDHits         *fRecPoints;// cluster representation
66                 std::vector<Reve::Track*> *fTracklets; // mcm tracklets
67
68                 // data representation section
69                 Int_t           rowMax; // number of rows for this pad plane
70         Int_t           colMax; // number of columns for this pad plane
71         Int_t           timeMax; // number of timebins
72                 Float_t samplingFrequency; // sampling frequency
73                 Float_t fX0; // radial distance from vertex to the chamber
74                 Int_t           fPla; // detector plane
75                 AliTRDpadPlane *fPadPlane; // pad plane object
76                 AliTRDgeometry *fGeo; // TRD geometry
77         
78         ClassDef(TRDChamber,1) // Holder for TRD chamber data
79         };
80
81         
82         class TRDNode : public Reve::RenderElement, public TRDModule
83         {
84         public:
85                 TRDNode(const char *typ, Int_t det=0);
86                 void    Paint(Option_t* option="");
87                 void    Reset();
88
89                 void    Collapse(); // *MENU*
90                 void    Expand(); // *MENU*
91                 void    EnableListElements(); // *MENU*
92                 void    DisableListElements(); // *MENU*
93                 void    UpdateLeaves();
94                 void    UpdateNode();
95                 
96                 List_i begin(){return fChildren.begin();}
97                 List_i end(){return fChildren.end();}
98         
99         ClassDef(TRDNode, 1)
100         };
101 }
102
103 #endif