]> git.uio.no Git - u/mrichter/AliRoot.git/blob - EVE/EveDet/AliEveTRDModuleImp.h
From Massimo: remove usage of AliITSgeom, use AliITSgeomTGeo instead.
[u/mrichter/AliRoot.git] / EVE / EveDet / AliEveTRDModuleImp.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 #ifndef ALIEVE_TRDModuleImp_H
11 #define ALIEVE_TRDModuleImp_H
12
13 /////////////////////////////////////////////////////////////////////////
14 //
15 // Implementation of AliEveTRDModule:
16 //    - AliEveTRDChamber - Data holder
17 //    - AliEveTRDNode    - Node structure
18 //
19 // by A.Bercuci (A.Bercuci@gsi.de)   Fri Oct 27 2006
20 /////////////////////////////////////////////////////////////////////////
21
22 #include <vector>
23
24 #include <TEveElement.h>
25
26 #include "AliEveTRDModule.h"
27
28 class AliTRDpadPlane;
29 class AliTRDgeometry;
30 class AliTRDhit;
31 class AliTRDdataArrayI;
32 class AliTRDdigitsManager;
33 class TObjArray;
34
35 class TEveTrack;
36
37 class AliEveTRDHits;
38 class AliEveTRDDigits;
39
40 class AliEveTRDChamber : public TEveElement, public AliEveTRDModule
41 {
42   friend class AliEveTRDDigits;
43
44 private:
45   AliEveTRDChamber(const AliEveTRDChamber&);            // Not implemented.
46   AliEveTRDChamber& operator=(const AliEveTRDChamber&); // Not implemented.
47
48 public:
49
50   AliEveTRDChamber(Int_t det=0);
51   virtual ~AliEveTRDChamber() {}
52
53   void  AddHit(AliTRDhit *hit);
54   Int_t GetRowMax()  const {return fRowMax;}
55   Int_t GetColMax()  const {return fColMax;}
56   Int_t GetTimeMax() const {return fTimeMax;}
57   Int_t GetSM() const;
58   Int_t GetSTK() const;
59   Int_t GetPlane() const {return fPla;}
60
61   void  LoadClusters(TObjArray *cs);
62   void  LoadDigits(AliTRDdigitsManager *digits);
63   void  LoadTracklets(TObjArray *ts);
64   void  Paint(Option_t* option="");
65   void  Reset();
66   void  SetGeometry(AliTRDgeometry *geo);
67
68 protected:
69   AliEveTRDDigits         *fDigits;    // digits representation
70   AliEveTRDHits           *fHits;      // hits representation
71   AliEveTRDHits           *fRecPoints; // cluster representation
72   std::vector<TEveTrack*> *fTracklets; // mcm tracklets
73
74   // data representation section
75   Int_t           fRowMax;   // number of rows for this pad plane
76   Int_t           fColMax;   // number of columns for this pad plane
77   Int_t           fTimeMax;  // number of timebins
78   Float_t         fSamplingFrequency; // sampling frequency
79   Float_t         fX0;       // radial distance from vertex to the chamber
80   Int_t           fPla;      // detector plane
81   AliTRDpadPlane *fPadPlane; // pad plane object
82   AliTRDgeometry *fGeo;      // TRD geometry
83
84   ClassDef(AliEveTRDChamber,1); // Holder for TRD chamber data
85 };
86
87
88 class AliEveTRDNode : public TEveElement, public AliEveTRDModule
89 {
90 public:
91   AliEveTRDNode(const char *typ, Int_t det=0);
92
93   void Paint(Option_t* option="");
94   void Reset();
95
96   void Collapse();            // *MENU*
97   void Expand();              // *MENU*
98   void EnableListElements();  // *MENU*
99   void DisableListElements(); // *MENU*
100   void UpdateLeaves();
101   void UpdateNode();
102
103   List_i begin(){return fChildren.begin();}
104   List_i end(){return fChildren.end();}
105
106   ClassDef(AliEveTRDNode, 1);
107 };
108
109 #endif