From Alexandru:
[u/mrichter/AliRoot.git] / EVE / EveDet / AliEveTRDModuleImp.h
CommitLineData
d810d0de 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 *
51346b82 7 * full copyright notice. *
d810d0de 8 **************************************************************************/
fd31e9de 9
a15e6d7d 10#ifndef AliEveTRDModuleImp_H
11#define AliEveTRDModuleImp_H
a282bf09 12
13/////////////////////////////////////////////////////////////////////////
14//
d810d0de 15// Implementation of AliEveTRDModule:
16// - AliEveTRDChamber - Data holder
51346b82 17// - AliEveTRDNode - Node structure
a282bf09 18//
19// by A.Bercuci (A.Bercuci@gsi.de) Fri Oct 27 2006
20/////////////////////////////////////////////////////////////////////////
21
0b28fd57 22#include <vector>
23
84aff7a4 24#include <TEveElement.h>
a282bf09 25
d810d0de 26#include "AliEveTRDModule.h"
a282bf09 27
a282bf09 28class TObjArray;
6983e87a 29class TClonesArray;
a282bf09 30
84aff7a4 31class TEveTrack;
6983e87a 32class TEveGeoTopNode;
33
34class AliTRDgeometry;
35class AliTRDdataArrayI;
36class AliTRDdigitsManager;
84aff7a4 37
fd31e9de 38class AliEveTRDHits;
39class AliEveTRDDigits;
fd31e9de 40class AliEveTRDChamber : public TEveElement, public AliEveTRDModule
41{
42 friend class AliEveTRDDigits;
43
fd31e9de 44public:
45
6983e87a 46 AliEveTRDChamber(Int_t det=-1);
fd31e9de 47 virtual ~AliEveTRDChamber() {}
48
6983e87a 49 Int_t GetNrows() const {return fNrows;}
50 Int_t GetNcols() const {return fNcols;}
51 Int_t GetNtime() const {return fNtime;}
fd31e9de 52
6983e87a 53 void LoadHits(TClonesArray *hits, Int_t &idx);
fd31e9de 54 void LoadClusters(TObjArray *cs);
55 void LoadDigits(AliTRDdigitsManager *digits);
56 void LoadTracklets(TObjArray *ts);
6983e87a 57
fd31e9de 58 void Paint(Option_t* option="");
59 void Reset();
6983e87a 60
fd31e9de 61 void SetGeometry(AliTRDgeometry *geo);
6983e87a 62 void SetNtime(Int_t nt) {fNtime = nt;}
fd31e9de 63
64protected:
6983e87a 65 AliEveTRDDigits *fDigits; // digits representation
66 AliEveTRDHits *fHits; // hits representation
67 AliEveTRDHits *fRecPoints; // cluster representation
fd31e9de 68 std::vector<TEveTrack*> *fTracklets; // mcm tracklets
6983e87a 69 AliTRDgeometry *fGeo; // TRD geometry
70 TEveGeoTopNode *fShape; // rendarable geometry of the chamber
fd31e9de 71 // data representation section
6983e87a 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
fd31e9de 75
4b456ebb 76private:
77 AliEveTRDChamber(const AliEveTRDChamber&); // Not implemented.
78 AliEveTRDChamber& operator=(const AliEveTRDChamber&); // Not implemented.
79
80 ClassDef(AliEveTRDChamber, 0); // Holder for TRD chamber data
fd31e9de 81};
82
83
84class AliEveTRDNode : public TEveElement, public AliEveTRDModule
85{
86public:
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(); // *MENU*
95 void DisableListElements(); // *MENU*
96 void UpdateLeaves();
97 void UpdateNode();
98
4b456ebb 99 List_i begin() { return fChildren.begin(); }
100 List_i end() { return fChildren.end(); }
fd31e9de 101
4b456ebb 102 ClassDef(AliEveTRDNode, 0);
fd31e9de 103};
104
a282bf09 105#endif