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