e973399698b1cb5f32124ab4b91a1d34df6d98d2
[u/mrichter/AliRoot.git] / ITS / AliITSv11.cxx
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$
18 Revision 1.5  2003/02/01 14:02:20  nilsen
19 Work continues.
20
21 Revision 1.4  2003/01/29 16:01:14  nilsen
22 Update today's work.
23
24 Revision 1.3  2003/01/28 17:59:54  nilsen
25 Work continuing.
26
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
31 Revision 1.1  2003/01/20 23:32:49  nilsen
32 New ITS geometry. Only a Skeleton for now.
33
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"
96 //
97 #include "AliITSGeometrySSDCone.h"
98
99
100 ClassImp(AliITSv11)
101
102 //______________________________________________________________________
103 AliITSv11::AliITSv11() : AliITS() {
104     // Standard default constructor for the ITS version 11.
105     // Inputs:
106     //   none.
107     // Outputs:
108     //   none.
109     // Return
110     //   A default constructed AliITSv11 class.
111
112     fc = 0;
113 }
114 //______________________________________________________________________
115 AliITSv11::AliITSv11(const char *title) : AliITS("ITS", title){
116     // Standard constructor for the ITS version 11.
117     // Inputs:
118     //   none.
119     // Outputs:
120     //   none.
121     // Return
122     //   A Standard constructed AliITSv11 class.
123
124     fc = 0;
125 }
126 //______________________________________________________________________
127 AliITSv11::~AliITSv11() {
128     // Standard destructor for the ITS version 11.
129     // Inputs:
130     //   none.
131     // Outputs:
132     //   none.
133     // Return
134     //   none.
135
136     if(fc!=0) delete fc;
137 }
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.
143     // Inputs:
144     //   none.
145     // Outputs:
146     //   none.
147     // Return
148     //   none.
149
150     if(fc==0) fc = new AliITSGeometrySSDCone(new TVector3(0.0,0.0,0.0),"TSV",0);
151
152     fc->BuildDisplayGeometry();
153 }
154 //______________________________________________________________________
155 void AliITSv11::CreateGeometry(){
156     // This routine defines and Creates the geometry for version 11 of the ITS.
157     // Inputs:
158     //   none.
159     // Outputs:
160     //   none.
161     // Return
162     //   none.
163
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);
167 }
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,
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.
179     // Inputs:
180     //   none.
181     // Outputs:
182     //   none.
183     // Return
184     //   none.
185
186     if(fc==0) fc = new AliITSGeometrySSDCone(new TVector3(0.0,0.0,0.0),"TSV",0);
187
188     fc->CreateG3Materials();
189 }
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
194     // sturture.
195     // Inputs:
196     //   none.
197     // Outputs:
198     //   none.
199     // Return
200     //   none.
201 }
202 //______________________________________________________________________
203 void AliITSv11::Init(){
204     // Initialise the ITS after it has been created.
205     // Inputs:
206     //   none.
207     // Outputs:
208     //   none.
209     // Return
210     //   none.
211 }
212 //______________________________________________________________________
213 void AliITSv11::SetDefaults(){
214     // sets the default segmentation, response, digit and raw cluster classes
215     // Inputs:
216     //   none.
217     // Outputs:
218     //   none.
219     // Return
220     //   none.
221 }
222 //______________________________________________________________________
223 void AliITSv11::DrawModule(){
224     // Draw a shaded view of the ITS version 11.
225     // Inputs:
226     //   none.
227     // Outputs:
228     //   none.
229     // Return
230     //   none.
231 }
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.
241 }
242