]> git.uio.no Git - u/mrichter/AliRoot.git/blob - EVE/EveDet/AliEveTRDModuleImp.h
Coverity
[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 AliEveTRDModuleImp_H
11 #define AliEveTRDModuleImp_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 TTree;
29 class TObjArray;
30 class TClonesArray;
31
32 class TEveTrack;
33 class TEveGeoTopNode;
34
35 class AliTRDgeometry;
36 class AliTRDdataArrayI;
37 class AliTRDdigitsManager;
38
39 class AliEveTRDHits;
40 class AliEveTRDDigits;
41 class AliTRDtrackingChamber;
42 class AliEveTRDChamber : public TEveElement, public AliEveTRDModule
43 {
44   friend class AliEveTRDDigits;
45
46 public:
47
48   AliEveTRDChamber(Int_t det=-1);
49   virtual ~AliEveTRDChamber() {}
50
51   Int_t GetNrows()  const {return fNrows;}
52   Int_t GetNcols()  const {return fNcols;}
53   Int_t GetNtime() const {return fNtime;}
54
55   void  LoadHits(TClonesArray *hits, Int_t &idx);
56   void  LoadClusters(TObjArray *cs);
57   void  LoadClusters(AliTRDtrackingChamber *tc);
58   void  LoadDigits(AliTRDdigitsManager *digits);
59   void  LoadTracklets(TTree *trklTree);
60
61   void  SetGeometry(AliTRDgeometry *geo);
62   void  SetNtime(Int_t nt) {fNtime = nt;}
63
64 protected:
65   AliEveTRDDigits  *fDigits;    // digits representation
66   AliEveTRDHits    *fHits;      // hits representation
67   AliEveTRDHits    *fRecPoints; // cluster representation
68   TClonesArray     *fTracklets; // mcm tracklets
69   AliTRDgeometry   *fGeo;      // TRD geometry
70   TEveGeoTopNode   *fShape;    // rendarable geometry of the chamber 
71   // data representation section
72   Int_t           fNrows;   // number of rows for this pad plane
73   Int_t           fNcols;   // number of columns for this pad plane
74   Int_t           fNtime;  // number of timebins
75
76 private:
77   AliEveTRDChamber(const AliEveTRDChamber&);            // Not implemented.
78   AliEveTRDChamber& operator=(const AliEveTRDChamber&); // Not implemented.
79
80   ClassDef(AliEveTRDChamber, 0); // Holder for TRD chamber data
81 };
82
83
84 class AliEveTRDNode : public TEveElement, public AliEveTRDModule
85 {
86 public:
87   AliEveTRDNode(const char *typ, Int_t det=0);
88
89   void Paint(Option_t* option="");
90   void Reset();
91
92   void Collapse();            // *MENU*
93   void Expand();              // *MENU*
94   void EnableListElements(Bool_t rnr_self = kTRUE, Bool_t rnr_children = kTRUE);  // *MENU*
95   void DisableListElements(Bool_t rnr_self = kTRUE, Bool_t rnr_children = kTRUE); // *MENU*
96   void UpdateLeaves();
97   void UpdateNode();
98
99   List_i begin() { return fChildren.begin(); }
100   List_i end()   { return fChildren.end(); }
101
102   ClassDef(AliEveTRDNode, 0);
103 };
104
105 #endif