1 /**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
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 **************************************************************************/
18 Revision 1.5 2003/02/01 14:02:20 nilsen
21 Revision 1.4 2003/01/29 16:01:14 nilsen
24 Revision 1.3 2003/01/28 17:59:54 nilsen
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.
31 Revision 1.1 2003/01/20 23:32:49 nilsen
32 New ITS geometry. Only a Skeleton for now.
37 //////////////////////////////////////////////////////////////////////////////
39 // Inner Traking System version 11 //
40 // This class contains the base procedures for the Inner Tracking System //
42 // Authors: R. Barbera //
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. //
51 //////////////////////////////////////////////////////////////////////////////
52 // See AliITSv11::StepManager().
53 #include <Riostream.h>
57 #include <TGeometry.h>
62 #include <TFile.h> // only required for Tracking function?
64 #include <TObjArray.h>
65 #include <TLorentzVector.h>
66 #include <TObjString.h>
67 #include <TClonesArray.h>
75 #include "AliITSGeant3Geometry.h"
76 #include "AliITShit.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"
97 #include "AliITSGeometrySSDCone.h"
102 //______________________________________________________________________
103 AliITSv11::AliITSv11() : AliITS() {
104 // Standard default constructor for the ITS version 11.
110 // A default constructed AliITSv11 class.
114 //______________________________________________________________________
115 AliITSv11::AliITSv11(const char *title) : AliITS("ITS", title){
116 // Standard constructor for the ITS version 11.
122 // A Standard constructed AliITSv11 class.
126 //______________________________________________________________________
127 AliITSv11::~AliITSv11() {
128 // Standard destructor for the ITS version 11.
138 //______________________________________________________________________
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.
150 if(fc==0) fc = new AliITSGeometrySSDCone(new TVector3(0.0,0.0,0.0),"TSV",0);
152 fc->BuildDisplayGeometry();
154 //______________________________________________________________________
155 void AliITSv11::CreateGeometry(){
156 // This routine defines and Creates the geometry for version 11 of the ITS.
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);
168 //______________________________________________________________________
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,
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.
186 if(fc==0) fc = new AliITSGeometrySSDCone(new TVector3(0.0,0.0,0.0),"TSV",0);
188 fc->CreateG3Materials();
190 //______________________________________________________________________
191 void AliITSv11::InitAliITSgeom(){
192 // Based on the geometry tree defined in Geant 3.21, this
193 // routine initilizes the Class AliITSgeom from the Geant 3.21 ITS geometry
202 //______________________________________________________________________
203 void AliITSv11::Init(){
204 // Initialise the ITS after it has been created.
212 //______________________________________________________________________
213 void AliITSv11::SetDefaults(){
214 // sets the default segmentation, response, digit and raw cluster classes
222 //______________________________________________________________________
223 void AliITSv11::DrawModule(){
224 // Draw a shaded view of the ITS version 11.
232 //______________________________________________________________________
233 void AliITSv11::StepManager(){
234 // Called for every step in the ITS, then calles the AliITShit class
235 // creator with the information to be recoreded about that hit.
236 // The value of the macro ALIITSPRINTGEOM if set to 1 will allow the
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.