2b680d9b |
1 | /************************************************************************** |
2 | * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * |
3 | * * |
4 | * Author: The ALICE Off-line Project. * |
5 | * Contributors are mentioned in the code where appropriate. * |
6 | * * |
7 | * Permission to use, copy, modify and distribute this software and its * |
8 | * documentation strictly for non-commercial purposes is hereby granted * |
9 | * without fee, provided that the above copyright notice appears in all * |
10 | * copies and that both the copyright notice and this permission notice * |
11 | * appear in the supporting documentation. The authors make no claims * |
12 | * about the suitability of this software for any purpose. It is * |
13 | * provided "as is" without express or implied warranty. * |
14 | **************************************************************************/ |
15 | |
16 | /* |
17 | $Log$ |
aa9bc63b |
18 | Revision 1.5 2003/02/01 14:02:20 nilsen |
19 | Work continues. |
20 | |
2cf828ba |
21 | Revision 1.4 2003/01/29 16:01:14 nilsen |
22 | Update today's work. |
23 | |
db708caf |
24 | Revision 1.3 2003/01/28 17:59:54 nilsen |
25 | Work continuing. |
26 | |
3717ba94 |
27 | Revision 1.2 2003/01/26 14:35:15 nilsen |
28 | Some more geometry interface functions added and a start at the SSD support |
29 | cone geometry. Committed to allow easy updates of partical work between authors. |
30 | |
dfefbaec |
31 | Revision 1.1 2003/01/20 23:32:49 nilsen |
32 | New ITS geometry. Only a Skeleton for now. |
33 | |
2b680d9b |
34 | $Id$ |
35 | */ |
36 | |
37 | ////////////////////////////////////////////////////////////////////////////// |
38 | // // |
39 | // Inner Traking System version 11 // |
40 | // This class contains the base procedures for the Inner Tracking System // |
41 | // // |
42 | // Authors: R. Barbera // |
43 | // version 6. // |
44 | // Created 2000. // |
45 | // // |
46 | // NOTE: THIS IS THE SYMMETRIC PPR geometry of the ITS. // |
47 | // THIS WILL NOT WORK // |
48 | // with the geometry or module classes or any analysis classes. You are // |
49 | // strongly encouraged to uses AliITSv5. // |
50 | // // |
51 | ////////////////////////////////////////////////////////////////////////////// |
52 | // See AliITSv11::StepManager(). |
53 | #include <Riostream.h> |
54 | #include <stdio.h> |
55 | #include <stdlib.h> |
56 | #include <TMath.h> |
57 | #include <TGeometry.h> |
58 | #include <TNode.h> |
59 | #include <TTUBE.h> |
60 | #include <TTUBS.h> |
61 | #include <TPCON.h> |
62 | #include <TFile.h> // only required for Tracking function? |
63 | #include <TCanvas.h> |
64 | #include <TObjArray.h> |
65 | #include <TLorentzVector.h> |
66 | #include <TObjString.h> |
67 | #include <TClonesArray.h> |
68 | #include <TBRIK.h> |
69 | #include <TSystem.h> |
70 | |
71 | |
72 | #include "AliRun.h" |
73 | #include "AliMagF.h" |
74 | #include "AliConst.h" |
75 | #include "AliITSGeant3Geometry.h" |
76 | #include "AliITShit.h" |
77 | #include "AliITS.h" |
78 | #include "AliITSv11.h" |
79 | #include "AliITSgeom.h" |
80 | #include "AliITSgeomSPD.h" |
81 | #include "AliITSgeomSDD.h" |
82 | #include "AliITSgeomSSD.h" |
83 | #include "AliITSDetType.h" |
84 | #include "AliITSresponseSPD.h" |
85 | #include "AliITSresponseSDD.h" |
86 | #include "AliITSresponseSSD.h" |
87 | #include "AliITSsegmentationSPD.h" |
88 | #include "AliITSsegmentationSDD.h" |
89 | #include "AliITSsegmentationSSD.h" |
90 | #include "AliITSsimulationSPD.h" |
91 | #include "AliITSsimulationSDD.h" |
92 | #include "AliITSsimulationSSD.h" |
93 | #include "AliITSClusterFinderSPD.h" |
94 | #include "AliITSClusterFinderSDD.h" |
95 | #include "AliITSClusterFinderSSD.h" |
aa9bc63b |
96 | // |
97 | #include "AliITSGeometrySSDCone.h" |
2b680d9b |
98 | |
99 | |
100 | ClassImp(AliITSv11) |
101 | |
102 | //______________________________________________________________________ |
103 | AliITSv11::AliITSv11() : AliITS() { |
aa9bc63b |
104 | // Standard default constructor for the ITS version 11. |
2b680d9b |
105 | // Inputs: |
aa9bc63b |
106 | // none. |
2b680d9b |
107 | // Outputs: |
aa9bc63b |
108 | // none. |
109 | // Return |
110 | // A default constructed AliITSv11 class. |
2b680d9b |
111 | |
aa9bc63b |
112 | fc = 0; |
2b680d9b |
113 | } |
114 | //______________________________________________________________________ |
aa9bc63b |
115 | AliITSv11::AliITSv11(const char *title) : AliITS("ITS", title){ |
116 | // Standard constructor for the ITS version 11. |
2b680d9b |
117 | // Inputs: |
aa9bc63b |
118 | // none. |
2b680d9b |
119 | // Outputs: |
aa9bc63b |
120 | // none. |
121 | // Return |
122 | // A Standard constructed AliITSv11 class. |
2b680d9b |
123 | |
aa9bc63b |
124 | fc = 0; |
2b680d9b |
125 | } |
126 | //______________________________________________________________________ |
aa9bc63b |
127 | AliITSv11::~AliITSv11() { |
128 | // Standard destructor for the ITS version 11. |
dfefbaec |
129 | // Inputs: |
aa9bc63b |
130 | // none. |
dfefbaec |
131 | // Outputs: |
aa9bc63b |
132 | // none. |
133 | // Return |
134 | // none. |
dfefbaec |
135 | |
aa9bc63b |
136 | if(fc!=0) delete fc; |
dfefbaec |
137 | } |
138 | //______________________________________________________________________ |
aa9bc63b |
139 | void AliITSv11::BuildGeometry(){ |
140 | // This routine defines and Creates the geometry for version 11 of the ITS |
141 | // for use in the simulation display routines. This is a very simplified |
142 | // geometry for speed of viewing. |
2b680d9b |
143 | // Inputs: |
aa9bc63b |
144 | // none. |
2b680d9b |
145 | // Outputs: |
aa9bc63b |
146 | // none. |
147 | // Return |
148 | // none. |
2b680d9b |
149 | |
aa9bc63b |
150 | if(fc==0) fc = new AliITSGeometrySSDCone(new TVector3(0.0,0.0,0.0),"TSV",0); |
2b680d9b |
151 | |
aa9bc63b |
152 | fc->BuildDisplayGeometry(); |
2b680d9b |
153 | } |
154 | //______________________________________________________________________ |
aa9bc63b |
155 | void AliITSv11::CreateGeometry(){ |
156 | // This routine defines and Creates the geometry for version 11 of the ITS. |
dfefbaec |
157 | // Inputs: |
aa9bc63b |
158 | // none. |
dfefbaec |
159 | // Outputs: |
aa9bc63b |
160 | // none. |
161 | // Return |
162 | // none. |
3717ba94 |
163 | |
aa9bc63b |
164 | if(fc==0) fc = new AliITSGeometrySSDCone(new TVector3(0.0,0.0,0.0),"TSV",0); |
165 | TVector3 t(0.0,0.0,0.0); |
166 | fc->CreateG3Geometry(t,"ITSV",0); |
3717ba94 |
167 | } |
168 | //______________________________________________________________________ |
aa9bc63b |
169 | void AliITSv11::CreateMaterials(){ |
170 | // Create ITS materials |
171 | // This function defines the default materials used in the Geant |
172 | // Monte Carlo simulations for the geometries AliITSv1, AliITSv3, |
173 | // AliITSv11. |
174 | // In general it is automatically replaced by |
175 | // the CreatMaterials routine defined in AliITSv?. Should the function |
176 | // CreateMaterials not exist for the geometry version you are using this |
177 | // one is used. See the definition found in AliITSv5 or the other routine |
178 | // for a complete definition. |
3717ba94 |
179 | // Inputs: |
aa9bc63b |
180 | // none. |
3717ba94 |
181 | // Outputs: |
182 | // none. |
aa9bc63b |
183 | // Return |
3717ba94 |
184 | // none. |
3717ba94 |
185 | |
aa9bc63b |
186 | if(fc==0) fc = new AliITSGeometrySSDCone(new TVector3(0.0,0.0,0.0),"TSV",0); |
187 | |
188 | fc->CreateG3Materials(); |
dfefbaec |
189 | } |
190 | //______________________________________________________________________ |
191 | void AliITSv11::InitAliITSgeom(){ |
aa9bc63b |
192 | // Based on the geometry tree defined in Geant 3.21, this |
dfefbaec |
193 | // routine initilizes the Class AliITSgeom from the Geant 3.21 ITS geometry |
194 | // sturture. |
aa9bc63b |
195 | // Inputs: |
196 | // none. |
197 | // Outputs: |
198 | // none. |
199 | // Return |
200 | // none. |
dfefbaec |
201 | } |
dfefbaec |
202 | //______________________________________________________________________ |
203 | void AliITSv11::Init(){ |
aa9bc63b |
204 | // Initialise the ITS after it has been created. |
205 | // Inputs: |
206 | // none. |
207 | // Outputs: |
208 | // none. |
209 | // Return |
210 | // none. |
dfefbaec |
211 | } |
212 | //______________________________________________________________________ |
213 | void AliITSv11::SetDefaults(){ |
214 | // sets the default segmentation, response, digit and raw cluster classes |
aa9bc63b |
215 | // Inputs: |
216 | // none. |
217 | // Outputs: |
218 | // none. |
219 | // Return |
220 | // none. |
dfefbaec |
221 | } |
222 | //______________________________________________________________________ |
223 | void AliITSv11::DrawModule(){ |
aa9bc63b |
224 | // Draw a shaded view of the ITS version 11. |
225 | // Inputs: |
226 | // none. |
227 | // Outputs: |
228 | // none. |
229 | // Return |
230 | // none. |
dfefbaec |
231 | } |
232 | //______________________________________________________________________ |
233 | void AliITSv11::StepManager(){ |
aa9bc63b |
234 | // Called for every step in the ITS, then calles the AliITShit class |
dfefbaec |
235 | // creator with the information to be recoreded about that hit. |
aa9bc63b |
236 | // The value of the macro ALIITSPRINTGEOM if set to 1 will allow the |
dfefbaec |
237 | // printing of information to a file which can be used to create a .det |
238 | // file read in by the routine CreateGeometry(). If set to 0 or any other |
239 | // value except 1, the default behavior, then no such file is created nor |
240 | // it the extra variables and the like used in the printing allocated. |
2b680d9b |
241 | } |
dfefbaec |
242 | |