]>
Commit | Line | Data |
---|---|---|
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 |