New version and structure of ITS V11 geometry. Work still in progress.
[u/mrichter/AliRoot.git] / ITS / AliITSv11.cxx
CommitLineData
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 18Revision 1.5 2003/02/01 14:02:20 nilsen
19Work continues.
20
2cf828ba 21Revision 1.4 2003/01/29 16:01:14 nilsen
22Update today's work.
23
db708caf 24Revision 1.3 2003/01/28 17:59:54 nilsen
25Work continuing.
26
3717ba94 27Revision 1.2 2003/01/26 14:35:15 nilsen
28Some more geometry interface functions added and a start at the SSD support
29cone geometry. Committed to allow easy updates of partical work between authors.
30
dfefbaec 31Revision 1.1 2003/01/20 23:32:49 nilsen
32New 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
100ClassImp(AliITSv11)
101
102//______________________________________________________________________
103AliITSv11::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 115AliITSv11::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 127AliITSv11::~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 139void 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 155void 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 169void 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//______________________________________________________________________
191void 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//______________________________________________________________________
203void 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//______________________________________________________________________
213void 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//______________________________________________________________________
223void 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//______________________________________________________________________
233void 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