]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ITS/AliITSmodule.h
New version of ITS for the TDR
[u/mrichter/AliRoot.git] / ITS / AliITSmodule.h
1 #ifndef ALIITSMODULE_H
2 #define ALIITSMODULE_H
3
4 //#include "AliITSpoint.h"
5 #include "AliITS.h"
6 #include "AliITSdigit.h"
7 #include "AliITShit.h"
8 #include "TObjArray.h"
9 #include "TArray.h"
10
11
12 //________________________________________________________________
13 //
14 //  Class AliITSmodule 
15 //  is a superclass for AliITSmoduleSSD, SPD and SDD.
16 //  The main function of modules is to simulate DIGITS from  
17 //  GEANT HITS and produce POINTS from DIGITS
18 //  It also make fast simulation without use of DIGITS
19 //
20 //  created by: A.Boucham, W.Peryt, S.Radomski, P.Skowronski
21 //              R.Barbera, B. Batynia, B. Nilsen
22 //  ver. 1.0    CERN, 16.09.1999  
23 // 
24 //________________________________________________________________
25 //
26
27
28 class AliITSmodule : public TObject {
29
30 public:
31
32     //________________________________________________________________
33     //
34     // Constructors and deconstructor
35     //________________________________________________________________
36     //
37     
38     AliITSmodule();             // default constructor
39     AliITSmodule(Int_t index);   // index in TObjectArray in ITS object
40
41     virtual ~AliITSmodule() ;
42
43     //________________________________________________________________
44     //
45     // Position menagenent
46     //________________________________________________________________
47     //
48     
49     inline Int_t GetIndex()  { return fIndex;}
50     //inline Int_t GetLayer()  { return fLayer;}
51     //inline Int_t GetLadder() { return fLadder;}
52     //inline Int_t GetDet()    { return fDet;}
53     
54     
55     //________________________________________________________________
56     //
57     // Hits menagement
58     //________________________________________________________________
59     //
60     
61     inline Int_t GetNhits() { return fNhitsM;} 
62     // returns number of hits in this module
63                   
64     inline TObjArray *GetHits() { return fHitsM; }
65     // returns pointer to array (TClonesArray) of pointers to hits
66     
67     Int_t  AddHit(AliITShit *hit); 
68     // Adds pointer of hit belonging to this module
69     // and returns number of hits in this module
70     
71     //________________________________________________________________ 
72     //
73     // Full Simulation
74     //________________________________________________________________
75     //
76     
77     virtual void HitToDigit() {};
78     // this functon is virtual, becouse each type of a detector 
79     // make simulation in its own specific methods
80     
81     //________________________________________________________________
82     //
83     // Reconstruction
84     //________________________________________________________________
85     //
86     
87     virtual void DigitToPoint() {};
88     // this functon is virtual, becouse each type of a detector 
89     // make reconstruction in its own specific methods
90     // classes DIGIT and POINT are specyfic to detector type
91     
92     //________________________________________________________________
93     //
94     // Fast Simulation
95     //________________________________________________________________
96     //
97          
98     virtual void HitToPoint() {};
99     // this functon is virtual, becouse each type of a detector 
100     // make fast simulation in its own specific methods
101     // this simulation do not use DIGITS 
102     
103     
104 protected:
105     
106     //________________________________________________________________
107     //
108     // Data members
109     //________________________________________________________________
110     //
111     
112     AliDetector *fITS;      // Pointer to ITS detector
113     Int_t       fIndex;     // Index of this module in ITSmodules TObjectArray
114     
115     TObjArray   *fHitsM;    // Pointer to list of hits on this module
116     Int_t       fNhitsM;    // Number of hits 
117     
118     TArrayI     *fIdigits;  // Indexes of DIGITS belonging to this module
119                             // in array in ITS
120     Int_t       fNdigits;   // Number of DIGITS
121                                
122     TArrayI     *fIpoints;  // Indexes of POINTS belonging to this module
123                             // in array in ITS  
124     Int_t       fNpoints;   // Number of POINTS
125       
126 public:
127
128     //________________________________________________________________
129     //
130     // ROOT compatibility
131     //________________________________________________________________
132     //
133     ClassDef(AliITSmodule,1)  
134 };
135
136 #endif