]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PHOS/html/src/AliPHOSv0.cxx.html
new html documentatin
[u/mrichter/AliRoot.git] / PHOS / html / src / AliPHOSv0.cxx.html
CommitLineData
aa7c9120 1<!DOCTYPE HTML PUBLIC "-// IETF/DTD HTML 2.0// EN">
2<html>
3<!-- -->
4<!-- Author: ROOT team (rootdev@hpsalo.cern.ch) -->
5<!-- -->
6<!-- Date: Tue Apr 3 16:13:36 2001 -->
7<!-- -->
8<head>
9<title>AliPHOSv0 - source file</title>
10<link rev=made href="mailto:rootdev@root.cern.ch">
11<meta name="rating" content="General">
12<meta name="objecttype" content="Manual">
13<meta name="keywords" content="software development, oo, object oriented, unix, x11, windows, c++, html, rene brun, fons rademakers">
14<meta name="description" content="ROOT - An Object Oriented Framework For Large Scale Data Analysis.">
15</head>
16<body BGCOLOR="#ffffff" LINK="#0000ff" VLINK="#551a8b" ALINK="#ff0000" TEXT="#000000">
17<a name="TopOfPage"></a>
18<pre>
19/**************************************************************************
20 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
21 * *
22 * Author: The ALICE Off-line Project. *
23 * Contributors are mentioned in the code where appropriate. *
24 * *
25 * Permission to use, copy, modify and distribute this software and its *
26 * documentation strictly for non-commercial purposes is hereby granted *
27 * without fee, provided that the above copyright notice appears in all *
28 * copies and that both the copyright notice and this permission notice *
29 * appear in the supporting documentation. The authors make no claims *
30 * about the suitability of this software for any purpose. It is *
31 * provided "as is" without express or implied warranty. *
32 **************************************************************************/
33
34/* $Id$ */
35
36<b>//_________________________________________________________________________</b>
37<b>// Implementation version v0 of PHOS Manager class </b>
38<b>// Layout EMC + PPSD has name GPS2 </b>
39<b>// Layout EMC + CPV has name IHEP</b>
40<b>// An object of this class does not produce hits nor digits</b>
41<b>// It is the one to use if you do not want to produce outputs in TREEH or TREED</b>
42<b>// </b>
43<b>//*-- Author: Yves Schutz (SUBATECH)</b>
44
45
46<b>// --- ROOT system ---</b>
47
48#include "TBRIK.h"
49#include "TNode.h"
50#include "TRandom.h"
51#include "TGeometry.h"
52
53
54<b>// --- Standard library ---</b>
55
56#include &lt;stdio.h&gt;
57#include &lt;string.h&gt;
58#include &lt;stdlib.h&gt;
59#include &lt;strstream.h&gt;
60
61<b>// --- AliRoot header files ---</b>
62
63#include "<a href="../AliPHOSv0.h">AliPHOSv0.h</a>"
64#include "AliRun.h"
65#include "AliConst.h"
66#include "AliMC.h"
67#include "AliPHOSGeometry.h"
68
69ClassImp(AliPHOSv0)
70
71<b>//____________________________________________________________________________</b>
72<a name="AliPHOSv0:AliPHOSv0"> </a><a href=".././AliPHOSv0.html#AliPHOSv0:AliPHOSv0">AliPHOSv0::AliPHOSv0</a>(const <a href="../ListOfTypes.html#char">char</a> *name, const <a href="../ListOfTypes.html#char">char</a> *title):
73 <a href=".././AliPHOS.html">AliPHOS</a>(name,title)
74{
75<b> // ctor : title is used to identify the layout</b>
76<b> // GPS2 = 5 modules (EMC + PPSD)</b>
77<b> // IHEP = 5 modules (EMC + CPV)</b>
78<b> // MIXT = 4 modules (EMC + CPV) and 1 module (EMC + PPSD)</b>
79
80<b> // gets an instance of the geometry parameters class </b>
81
82 if (strcmp(GetTitle(),"") != 0 )
83 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a> = <a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetInstance">AliPHOSGeometry::GetInstance</a>(GetTitle(), "") ;
84
85}
86
87<b>//____________________________________________________________________________</b>
88<a name="AliPHOSv0:BuildGeometry"> </a><a href="../ListOfTypes.html#void">void</a> <a href=".././AliPHOSv0.html#AliPHOSv0:BuildGeometry">AliPHOSv0::BuildGeometry</a>()
89{
90<b> // Build the PHOS geometry for the ROOT display</b>
91<b> //</b>
92 /*
93 <H2>
94 PHOS in ALICE displayed by root
95 </H2>
96 <UL>
97 <LI> All Views
98 <P>
99 <CENTER>
100 <IMG Align=BOTTOM ALT="All Views" SRC="../images/AliPHOSv0AllViews.gif">
101 </CENTER></P></LI>
102 <LI> Front View
103 <P>
104 <CENTER>
105 <IMG Align=BOTTOM ALT="Front View" SRC="../images/AliPHOSv0FrontView.gif">
106 </CENTER></P></LI>
107 <LI> 3D View 1
108 <P>
109 <CENTER>
110 <IMG Align=BOTTOM ALT="3D View 1" SRC="../images/AliPHOSv03DView1.gif">
111 </CENTER></P></LI>
112 <LI> 3D View 2
113 <P>
114 <CENTER>
115 <IMG Align=BOTTOM ALT="3D View 2" SRC="../images/AliPHOSv03DView2.gif">
116 </CENTER></P></LI>
117 </UL>
118 */
119<b> // </b>
120
121 this-&gt;<a href="#AliPHOSv0:BuildGeometryforPHOS">BuildGeometryforPHOS</a>() ;
122 if (strcmp(<a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;GetName(),"GPS2") == 0)
123 this-&gt;<a href="#AliPHOSv0:BuildGeometryforPPSD">BuildGeometryforPPSD</a>() ;
124 else if (strcmp(<a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;GetName(),"IHEP") == 0)
125 this-&gt;<a href="#AliPHOSv0:BuildGeometryforCPV">BuildGeometryforCPV</a>() ;
126 else if (strcmp(<a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;GetName(),"MIXT") == 0) {
127 this-&gt;<a href="#AliPHOSv0:BuildGeometryforPPSD">BuildGeometryforPPSD</a>() ;
128 this-&gt;<a href="#AliPHOSv0:BuildGeometryforCPV">BuildGeometryforCPV</a>() ;
129 }
130 else
131 cout &lt;&lt; "<a href=".././AliPHOSv0.html#AliPHOSv0:BuildGeometry">AliPHOSv0::BuildGeometry</a> : no charged particle identification system installed: "
132 &lt;&lt; "Geometry name = " &lt;&lt; <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;GetName() &lt;&lt; endl;
133
134}
135
136<b>//____________________________________________________________________________</b>
137<a name="AliPHOSv0:BuildGeometryforPHOS"> </a><a href="../ListOfTypes.html#void">void</a> <a href=".././AliPHOSv0.html#AliPHOSv0:BuildGeometryforPHOS">AliPHOSv0::BuildGeometryforPHOS</a>(<a href="../ListOfTypes.html#void">void</a>)
138{
139<b> // Build the PHOS-EMC geometry for the ROOT display</b>
140
141 const <a href="../ListOfTypes.html#Int_t">Int_t</a> kColorPHOS = kRed ;
142 const <a href="../ListOfTypes.html#Int_t">Int_t</a> kColorXTAL = kBlue ;
143
144 <a href="../ListOfTypes.html#Double_t">Double_t</a> const kRADDEG = 180.0 / kPI ;
145
146 new TBRIK( "OuterBox", "PHOS box", "<a href="../ListOfTypes.html#void">void</a>", <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetOuterBoxSize">GetOuterBoxSize</a>(0)/2,
147 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetOuterBoxSize">GetOuterBoxSize</a>(1)/2,
148 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetOuterBoxSize">GetOuterBoxSize</a>(2)/2 );
149
150<b> // Textolit Wall box, position inside PHOS </b>
151
152 new TBRIK( "TextolitBox", "PHOS Textolit box ", "<a href="../ListOfTypes.html#void">void</a>", <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetTextolitBoxSize">GetTextolitBoxSize</a>(0)/2,
153 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetTextolitBoxSize">GetTextolitBoxSize</a>(1)/2,
154 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetTextolitBoxSize">GetTextolitBoxSize</a>(2)/2);
155
156<b> // Polystyrene Foam Plate</b>
157
158 new TBRIK( "UpperFoamPlate", "PHOS Upper foam plate", "<a href="../ListOfTypes.html#void">void</a>", <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetTextolitBoxSize">GetTextolitBoxSize</a>(0)/2,
159 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetSecondUpperPlateThickness">GetSecondUpperPlateThickness</a>()/2,
160 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetTextolitBoxSize">GetTextolitBoxSize</a>(2)/2 ) ;
161
162<b> // Air Filled Box</b>
163
164 new TBRIK( "AirFilledBox", "PHOS air filled box", "<a href="../ListOfTypes.html#void">void</a>", <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAirFilledBoxSize">GetAirFilledBoxSize</a>(0)/2,
165 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAirFilledBoxSize">GetAirFilledBoxSize</a>(1)/2,
166 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAirFilledBoxSize">GetAirFilledBoxSize</a>(2)/2 );
167
168<b> // Crystals Box</b>
169
170 <a href="../ListOfTypes.html#Float_t">Float_t</a> xtlX = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalSize">GetCrystalSize</a>(0) ;
171 <a href="../ListOfTypes.html#Float_t">Float_t</a> xtlY = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalSize">GetCrystalSize</a>(1) ;
172 <a href="../ListOfTypes.html#Float_t">Float_t</a> xtlZ = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalSize">GetCrystalSize</a>(2) ;
173
174 <a href="../ListOfTypes.html#Float_t">Float_t</a> xl = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNPhi">GetNPhi</a>() * ( xtlX + 2 * <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetGapBetweenCrystals">GetGapBetweenCrystals</a>() ) / 2.0 + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetModuleBoxThickness">GetModuleBoxThickness</a>() ;
175 <a href="../ListOfTypes.html#Float_t">Float_t</a> yl = ( xtlY + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalSupportHeight">GetCrystalSupportHeight</a>() + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalWrapThickness">GetCrystalWrapThickness</a>() + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalHolderThickness">GetCrystalHolderThickness</a>() ) / 2.0
176 + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetModuleBoxThickness">GetModuleBoxThickness</a>() / 2.0 ;
177 <a href="../ListOfTypes.html#Float_t">Float_t</a> zl = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNZ">GetNZ</a>() * ( xtlZ + 2 * <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetGapBetweenCrystals">GetGapBetweenCrystals</a>() ) / 2.0 + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetModuleBoxThickness">GetModuleBoxThickness</a>() ;
178
179 new TBRIK( "CrystalsBox", "PHOS crystals box", "<a href="../ListOfTypes.html#void">void</a>", xl, yl, zl ) ;
180
181<b>// position PHOS into ALICE</b>
182
183 <a href="../ListOfTypes.html#Float_t">Float_t</a> r = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetIPtoOuterCoverDistance">GetIPtoOuterCoverDistance</a>() + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetOuterBoxSize">GetOuterBoxSize</a>(1) / 2.0 ;
184 <a href="../ListOfTypes.html#Int_t">Int_t</a> <a href="../ListOfTypes.html#number">number</a> = 988 ;
185 <a href="../ListOfTypes.html#Float_t">Float_t</a> pphi = TMath::ATan( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetOuterBoxSize">GetOuterBoxSize</a>(0) / ( 2.0 * <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetIPtoOuterCoverDistance">GetIPtoOuterCoverDistance</a>() ) ) ;
186 pphi *= kRADDEG ;
187 TNode * top = gAlice-&gt;GetGeometry()-&gt;GetNode("alice") ;
188
189 <a href="../ListOfTypes.html#char">char</a> * nodename = new <a href="../ListOfTypes.html#char">char</a>[20] ;
190 <a href="../ListOfTypes.html#char">char</a> * rotname = new <a href="../ListOfTypes.html#char">char</a>[20] ;
191
192 for( <a href="../ListOfTypes.html#Int_t">Int_t</a> i = 1; i &lt;= <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNModules">GetNModules</a>(); i++ ) {
193 <a href="../ListOfTypes.html#Float_t">Float_t</a> angle = pphi * 2 * ( i - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNModules">GetNModules</a>() / 2.0 - 0.5 ) ;
194 sprintf(rotname, "%s%d", "rot", <a href="../ListOfTypes.html#number">number</a>++) ;
195 new TRotMatrix(rotname, rotname, 90, angle, 90, 90 + angle, 0, 0);
196 top-&gt;cd();
197 sprintf(nodename,"%s%d", "Module", i) ;
198 <a href="../ListOfTypes.html#Float_t">Float_t</a> x = r * TMath::Sin( angle / kRADDEG ) ;
199 <a href="../ListOfTypes.html#Float_t">Float_t</a> y = -r * TMath::Cos( angle / kRADDEG ) ;
200 TNode * outerboxnode = new TNode(nodename, nodename, "OuterBox", x, y, 0, rotname ) ;
201 outerboxnode-&gt;SetLineColor(kColorPHOS) ;
202 fNodes-&gt;Add(outerboxnode) ;
203 outerboxnode-&gt;cd() ;
204<b> // now inside the outer box the textolit box</b>
205 y = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetOuterBoxThickness">GetOuterBoxThickness</a>(1) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetUpperPlateThickness">GetUpperPlateThickness</a>() ) / 2. ;
206 sprintf(nodename,"%s%d", "TexBox", i) ;
207 TNode * textolitboxnode = new TNode(nodename, nodename, "TextolitBox", 0, y, 0) ;
208 textolitboxnode-&gt;SetLineColor(kColorPHOS) ;
209 fNodes-&gt;Add(textolitboxnode) ;
210<b> // upper foam plate inside outre box</b>
211 outerboxnode-&gt;cd() ;
212 sprintf(nodename, "%s%d", "UFPlate", i) ;
213 y = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetTextolitBoxSize">GetTextolitBoxSize</a>(1) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetSecondUpperPlateThickness">GetSecondUpperPlateThickness</a>() ) / 2.0 ;
214 TNode * upperfoamplatenode = new TNode(nodename, nodename, "UpperFoamPlate", 0, y, 0) ;
215 upperfoamplatenode-&gt;SetLineColor(kColorPHOS) ;
216 fNodes-&gt;Add(upperfoamplatenode) ;
217<b> // air filled box inside textolit box (not drawn)</b>
218 textolitboxnode-&gt;cd();
219 y = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetTextolitBoxSize">GetTextolitBoxSize</a>(1) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAirFilledBoxSize">GetAirFilledBoxSize</a>(1) ) / 2.0 - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetSecondUpperPlateThickness">GetSecondUpperPlateThickness</a>() ;
220 sprintf(nodename, "%s%d", "AFBox", i) ;
221 TNode * airfilledboxnode = new TNode(nodename, nodename, "AirFilledBox", 0, y, 0) ;
222 fNodes-&gt;Add(airfilledboxnode) ;
223<b> // crystals box inside air filled box</b>
224 airfilledboxnode-&gt;cd() ;
225 y = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAirFilledBoxSize">GetAirFilledBoxSize</a>(1) / 2.0 - yl
226 - ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetIPtoCrystalSurface">GetIPtoCrystalSurface</a>() - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetIPtoOuterCoverDistance">GetIPtoOuterCoverDistance</a>() - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetModuleBoxThickness">GetModuleBoxThickness</a>()
227 - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetUpperPlateThickness">GetUpperPlateThickness</a>() - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetSecondUpperPlateThickness">GetSecondUpperPlateThickness</a>() ) ;
228 sprintf(nodename, "%s%d", "XTBox", i) ;
229 TNode * crystalsboxnode = new TNode(nodename, nodename, "CrystalsBox", 0, y, 0) ;
230 crystalsboxnode-&gt;SetLineColor(kColorXTAL) ;
231 fNodes-&gt;Add(crystalsboxnode) ;
232 }
233
234 delete[] rotname ;
235 delete[] nodename ;
236}
237
238<b>//____________________________________________________________________________</b>
239<a name="AliPHOSv0:BuildGeometryforPPSD"> </a><a href="../ListOfTypes.html#void">void</a> <a href=".././AliPHOSv0.html#AliPHOSv0:BuildGeometryforPPSD">AliPHOSv0::BuildGeometryforPPSD</a>(<a href="../ListOfTypes.html#void">void</a>)
240{
241<b> // Build the PHOS-PPSD geometry for the ROOT display</b>
242<b> //</b>
243 /*
244 <H2>
245 PPSD displayed by root
246 </H2>
247 <UL>
248 <LI> Zoom on PPSD: Front View
249 <P>
250 <CENTER>
251 <IMG Align=BOTTOM ALT="PPSD Front View" SRC="../images/AliPHOSv0PPSDFrontView.gif">
252 </CENTER></P></LI>
253 <LI> Zoom on PPSD: Perspective View
254 <P>
255 <CENTER>
256 <IMG Align=BOTTOM ALT="PPSD Prespective View" SRC="../images/AliPHOSv0PPSDPerspectiveView.gif">
257 </CENTER></P></LI>
258 </UL>
259 */
260<b> // </b>
261 <a href="../ListOfTypes.html#Double_t">Double_t</a> const kRADDEG = 180.0 / kPI ;
262
263 const <a href="../ListOfTypes.html#Int_t">Int_t</a> kColorPHOS = kRed ;
264 const <a href="../ListOfTypes.html#Int_t">Int_t</a> kColorPPSD = kGreen ;
265 const <a href="../ListOfTypes.html#Int_t">Int_t</a> kColorGas = kBlue ;
266 const <a href="../ListOfTypes.html#Int_t">Int_t</a> kColorAir = kYellow ;
267
268<b> // Box for a full PHOS module</b>
269
270 new TBRIK( "PPSDBox", "PPSD box", "<a href="../ListOfTypes.html#void">void</a>", <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(0)/2,
271 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(1)/2,
272 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(2)/2 );
273
274<b> // Box containing one micromegas module </b>
275
276 new TBRIK( "PPSDModule", "PPSD module", "<a href="../ListOfTypes.html#void">void</a>", <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(0)/2,
277 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(1)/2,
278 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(2)/2 );
279<b> // top lid</b>
280
281 new TBRIK ( "TopLid", "Micromegas top lid", "<a href="../ListOfTypes.html#void">void</a>", <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(0)/2,
282 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetLidThickness">GetLidThickness</a>()/2,
283 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(2)/2 ) ;
284<b> // composite panel (top and bottom)</b>
285
286 new TBRIK ( "TopPanel", "Composite top panel", "<a href="../ListOfTypes.html#void">void</a>", ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(0) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicromegasWallThickness">GetMicromegasWallThickness</a>() )/2,
287 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCompositeThickness">GetCompositeThickness</a>()/2,
288 ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(2) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicromegasWallThickness">GetMicromegasWallThickness</a>() )/2 ) ;
289
290 new TBRIK ( "BottomPanel", "Composite bottom panel", "<a href="../ListOfTypes.html#void">void</a>", ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(0) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicromegasWallThickness">GetMicromegasWallThickness</a>() )/2,
291 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCompositeThickness">GetCompositeThickness</a>()/2,
292 ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(2) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicromegasWallThickness">GetMicromegasWallThickness</a>() )/2 ) ;
293<b> // gas gap (conversion and avalanche)</b>
294
295 new TBRIK ( "GasGap", "gas gap", "<a href="../ListOfTypes.html#void">void</a>", ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(0) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicromegasWallThickness">GetMicromegasWallThickness</a>() )/2,
296 ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetConversionGap">GetConversionGap</a>() + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAvalancheGap">GetAvalancheGap</a>() )/2,
297 ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(2) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicromegasWallThickness">GetMicromegasWallThickness</a>() )/2 ) ;
298
299<b> // anode and cathode </b>
300
301 new TBRIK ( "Anode", "Anode", "<a href="../ListOfTypes.html#void">void</a>", ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(0) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicromegasWallThickness">GetMicromegasWallThickness</a>() )/2,
302 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAnodeThickness">GetAnodeThickness</a>()/2,
303 ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(2) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicromegasWallThickness">GetMicromegasWallThickness</a>() )/2 ) ;
304
305 new TBRIK ( "Cathode", "Cathode", "<a href="../ListOfTypes.html#void">void</a>", ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(0) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicromegasWallThickness">GetMicromegasWallThickness</a>() )/2,
306 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCathodeThickness">GetCathodeThickness</a>()/2,
307 ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(2) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicromegasWallThickness">GetMicromegasWallThickness</a>() )/2 ) ;
308<b> // PC </b>
309
310 new TBRIK ( "PCBoard", "Printed Circuit", "<a href="../ListOfTypes.html#void">void</a>", ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(0) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicromegasWallThickness">GetMicromegasWallThickness</a>() )/2,
311 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPCThickness">GetPCThickness</a>()/2,
312 ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(2) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicromegasWallThickness">GetMicromegasWallThickness</a>() )/2 ) ;
313<b> // Gap between Lead and top micromegas</b>
314
315 new TBRIK ( "LeadToM", "Air Gap top", "<a href="../ListOfTypes.html#void">void</a>", <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(0)/2,
316 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicro1ToLeadGap">GetMicro1ToLeadGap</a>()/2,
317 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(2)/2 ) ;
318
319<b>// Gap between Lead and bottom micromegas</b>
320
321 new TBRIK ( "MToLead", "Air Gap bottom", "<a href="../ListOfTypes.html#void">void</a>", <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(0)/2,
322 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetLeadToMicro2Gap">GetLeadToMicro2Gap</a>()/2,
323 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(2)/2 ) ;
324<b> // Lead converter</b>
325
326 new TBRIK ( "Lead", "Lead converter", "<a href="../ListOfTypes.html#void">void</a>", <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(0)/2,
327 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetLeadConverterThickness">GetLeadConverterThickness</a>()/2,
328 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(2)/2 ) ;
329
330<b> // position PPSD into ALICE</b>
331
332 <a href="../ListOfTypes.html#char">char</a> * nodename = new <a href="../ListOfTypes.html#char">char</a>[20] ;
333 <a href="../ListOfTypes.html#char">char</a> * rotname = new <a href="../ListOfTypes.html#char">char</a>[20] ;
334
335 <a href="../ListOfTypes.html#Float_t">Float_t</a> r = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetIPtoTopLidDistance">GetIPtoTopLidDistance</a>() + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(1) / 2.0 ;
336 <a href="../ListOfTypes.html#Int_t">Int_t</a> <a href="../ListOfTypes.html#number">number</a> = 988 ;
337 TNode * top = gAlice-&gt;GetGeometry()-&gt;GetNode("alice") ;
338
339 <a href="../ListOfTypes.html#Int_t">Int_t</a> firstModule = 0 ;
340 if (strcmp(<a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;GetName(),"GPS2") == 0)
341 firstModule = 1;
342 else if (strcmp(<a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;GetName(),"MIXT") == 0)
343 firstModule = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNModules">GetNModules</a>() - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNPPSDModules">GetNPPSDModules</a>() + 1;
344
345 for( <a href="../ListOfTypes.html#Int_t">Int_t</a> i = firstModule; i &lt;= <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNModules">GetNModules</a>(); i++ ) { // the <a href="../ListOfTypes.html#number">number</a> of PHOS modules
346 <a href="../ListOfTypes.html#Float_t">Float_t</a> angle = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPHOSAngle">GetPHOSAngle</a>(i) ;
347 sprintf(rotname, "%s%d", "rotg", <a href="../ListOfTypes.html#number">number</a>+i) ;
348 new TRotMatrix(rotname, rotname, 90, angle, 90, 90 + angle, 0, 0);
349 top-&gt;cd();
350 sprintf(nodename, "%s%d", "Moduleg", i) ;
351 <a href="../ListOfTypes.html#Float_t">Float_t</a> x = r * TMath::Sin( angle / kRADDEG ) ;
352 <a href="../ListOfTypes.html#Float_t">Float_t</a> y = -r * TMath::Cos( angle / kRADDEG ) ;
353 TNode * ppsdboxnode = new TNode(nodename , nodename ,"PPSDBox", x, y, 0, rotname ) ;
354 ppsdboxnode-&gt;SetLineColor(kColorPPSD) ;
355 fNodes-&gt;Add(ppsdboxnode) ;
356 ppsdboxnode-&gt;cd() ;
357<b> // inside the PPSD box: </b>
358<b> // 1. fNumberOfModulesPhi x fNumberOfModulesZ top micromegas</b>
359 x = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(0) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(0) ) / 2. ;
360 {
361 for ( <a href="../ListOfTypes.html#Int_t">Int_t</a> iphi = 1; iphi &lt;= <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNumberOfModulesPhi">GetNumberOfModulesPhi</a>(); iphi++ ) { // the <a href="../ListOfTypes.html#number">number</a> of micromegas modules in phi per PHOS module
362 <a href="../ListOfTypes.html#Float_t">Float_t</a> z = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(2) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(2) ) / 2. ;
363 TNode * micro1node ;
364 for ( <a href="../ListOfTypes.html#Int_t">Int_t</a> iz = 1; iz &lt;= <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNumberOfModulesZ">GetNumberOfModulesZ</a>(); iz++ ) { // the <a href="../ListOfTypes.html#number">number</a> of micromegas modules in z per PHOS module
365 y = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(1) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicromegas1Thickness">GetMicromegas1Thickness</a>() ) / 2. ;
366 sprintf(nodename, "%s%d%d%d", "Mic1", i, iphi, iz) ;
367 micro1node = new TNode(nodename, nodename, "PPSDModule", x, y, z) ;
368 micro1node-&gt;SetLineColor(kColorPPSD) ;
369 fNodes-&gt;Add(micro1node) ;
370<b> // inside top micromegas</b>
371 micro1node-&gt;cd() ;
372<b> // a. top lid</b>
373 y = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicromegas1Thickness">GetMicromegas1Thickness</a>() - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetLidThickness">GetLidThickness</a>() ) / 2. ;
374 sprintf(nodename, "%s%d%d%d", "Lid", i, iphi, iz) ;
375 TNode * toplidnode = new TNode(nodename, nodename, "TopLid", 0, y, 0) ;
376 toplidnode-&gt;SetLineColor(kColorPPSD) ;
377 fNodes-&gt;Add(toplidnode) ;
378<b> // b. composite panel</b>
379 y = y - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetLidThickness">GetLidThickness</a>() / 2. - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCompositeThickness">GetCompositeThickness</a>() / 2. ;
380 sprintf(nodename, "%s%d%d%d", "CompU", i, iphi, iz) ;
381 TNode * compupnode = new TNode(nodename, nodename, "TopPanel", 0, y, 0) ;
382 compupnode-&gt;SetLineColor(kColorPPSD) ;
383 fNodes-&gt;Add(compupnode) ;
384<b> // c. anode</b>
385 y = y - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCompositeThickness">GetCompositeThickness</a>() / 2. - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAnodeThickness">GetAnodeThickness</a>() / 2. ;
386 sprintf(nodename, "%s%d%d%d", "Ano", i, iphi, iz) ;
387 TNode * anodenode = new TNode(nodename, nodename, "Anode", 0, y, 0) ;
388 anodenode-&gt;SetLineColor(kColorPHOS) ;
389 fNodes-&gt;Add(anodenode) ;
390<b> // d. gas </b>
391 y = y - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAnodeThickness">GetAnodeThickness</a>() / 2. - ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetConversionGap">GetConversionGap</a>() + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAvalancheGap">GetAvalancheGap</a>() ) / 2. ;
392 sprintf(nodename, "%s%d%d%d", "GGap", i, iphi, iz) ;
393 TNode * ggapnode = new TNode(nodename, nodename, "GasGap", 0, y, 0) ;
394 ggapnode-&gt;SetLineColor(kColorGas) ;
395 fNodes-&gt;Add(ggapnode) ;
396<b> // f. cathode</b>
397 y = y - ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetConversionGap">GetConversionGap</a>() + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAvalancheGap">GetAvalancheGap</a>() ) / 2. - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCathodeThickness">GetCathodeThickness</a>() / 2. ;
398 sprintf(nodename, "%s%d%d%d", "Cathode", i, iphi, iz) ;
399 TNode * cathodenode = new TNode(nodename, nodename, "Cathode", 0, y, 0) ;
400 cathodenode-&gt;SetLineColor(kColorPHOS) ;
401 fNodes-&gt;Add(cathodenode) ;
402<b> // g. printed circuit</b>
403 y = y - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCathodeThickness">GetCathodeThickness</a>() / 2. - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPCThickness">GetPCThickness</a>() / 2. ;
404 sprintf(nodename, "%s%d%d%d", "PC", i, iphi, iz) ;
405 TNode * pcnode = new TNode(nodename, nodename, "PCBoard", 0, y, 0) ;
406 pcnode-&gt;SetLineColor(kColorPPSD) ;
407 fNodes-&gt;Add(pcnode) ;
408<b> // h. composite panel</b>
409 y = y - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPCThickness">GetPCThickness</a>() / 2. - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCompositeThickness">GetCompositeThickness</a>() / 2. ;
410 sprintf(nodename, "%s%d%d%d", "CompDown", i, iphi, iz) ;
411 TNode * compdownnode = new TNode(nodename, nodename, "BottomPanel", 0, y, 0) ;
412 compdownnode-&gt;SetLineColor(kColorPPSD) ;
413 fNodes-&gt;Add(compdownnode) ;
414 z = z - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(2) ;
415 ppsdboxnode-&gt;cd() ;
416 } // end of Z module loop
417 x = x - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(0) ;
418 ppsdboxnode-&gt;cd() ;
419 } // end of phi module loop
420 }
421<b> // 2. air gap </b>
422 ppsdboxnode-&gt;cd() ;
423 y = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(1) - 2 * <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicromegas1Thickness">GetMicromegas1Thickness</a>() - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicro1ToLeadGap">GetMicro1ToLeadGap</a>() ) / 2. ;
424 sprintf(nodename, "%s%d", "GapUp", i) ;
425 TNode * gapupnode = new TNode(nodename, nodename, "LeadToM", 0, y, 0) ;
426 gapupnode-&gt;SetLineColor(kColorAir) ;
427 fNodes-&gt;Add(gapupnode) ;
428<b> // 3. lead converter</b>
429 y = y - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicro1ToLeadGap">GetMicro1ToLeadGap</a>() / 2. - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetLeadConverterThickness">GetLeadConverterThickness</a>() / 2. ;
430 sprintf(nodename, "%s%d", "LeadC", i) ;
431 TNode * leadcnode = new TNode(nodename, nodename, "Lead", 0, y, 0) ;
432 leadcnode-&gt;SetLineColor(kColorPPSD) ;
433 fNodes-&gt;Add(leadcnode) ;
434<b> // 4. air gap</b>
435 y = y - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetLeadConverterThickness">GetLeadConverterThickness</a>() / 2. - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetLeadToMicro2Gap">GetLeadToMicro2Gap</a>() / 2. ;
436 sprintf(nodename, "%s%d", "GapDown", i) ;
437 TNode * gapdownnode = new TNode(nodename, nodename, "MToLead", 0, y, 0) ;
438 gapdownnode-&gt;SetLineColor(kColorAir) ;
439 fNodes-&gt;Add(gapdownnode) ;
440<b> // 5. fNumberOfModulesPhi x fNumberOfModulesZ bottom micromegas</b>
441 x = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(0) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(0) ) / 2. - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPhiDisplacement">GetPhiDisplacement</a>() ;
442 {
443 for ( <a href="../ListOfTypes.html#Int_t">Int_t</a> iphi = 1; iphi &lt;= <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNumberOfModulesPhi">GetNumberOfModulesPhi</a>(); iphi++ ) {
444 <a href="../ListOfTypes.html#Float_t">Float_t</a> z = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(2) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(2) ) / 2. - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetZDisplacement">GetZDisplacement</a>() ;;
445 TNode * micro2node ;
446 for ( <a href="../ListOfTypes.html#Int_t">Int_t</a> iz = 1; iz &lt;= <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNumberOfModulesZ">GetNumberOfModulesZ</a>(); iz++ ) {
447 y = - ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(1) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicromegas2Thickness">GetMicromegas2Thickness</a>() ) / 2. ;
448 sprintf(nodename, "%s%d%d%d", "Mic2", i, iphi, iz) ;
449 micro2node = new TNode(nodename, nodename, "PPSDModule", x, y, z) ;
450 micro2node-&gt;SetLineColor(kColorPPSD) ;
451 fNodes-&gt;Add(micro2node) ;
452<b> // inside bottom micromegas</b>
453 micro2node-&gt;cd() ;
454<b> // a. top lid</b>
455 y = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicromegas2Thickness">GetMicromegas2Thickness</a>() - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetLidThickness">GetLidThickness</a>() ) / 2. ;
456 sprintf(nodename, "%s%d", "Lidb", i) ;
457 TNode * toplidbnode = new TNode(nodename, nodename, "TopLid", 0, y, 0) ;
458 toplidbnode-&gt;SetLineColor(kColorPPSD) ;
459 fNodes-&gt;Add(toplidbnode) ;
460<b> // b. composite panel</b>
461 y = y - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetLidThickness">GetLidThickness</a>() / 2. - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCompositeThickness">GetCompositeThickness</a>() / 2. ;
462 sprintf(nodename, "%s%d", "CompUb", i) ;
463 TNode * compupbnode = new TNode(nodename, nodename, "TopPanel", 0, y, 0) ;
464 compupbnode-&gt;SetLineColor(kColorPPSD) ;
465 fNodes-&gt;Add(compupbnode) ;
466<b> // c. anode</b>
467 y = y - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCompositeThickness">GetCompositeThickness</a>() / 2. - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAnodeThickness">GetAnodeThickness</a>() / 2. ;
468 sprintf(nodename, "%s%d", "Anob", i) ;
469 TNode * anodebnode = new TNode(nodename, nodename, "Anode", 0, y, 0) ;
470 anodebnode-&gt;SetLineColor(kColorPPSD) ;
471 fNodes-&gt;Add(anodebnode) ;
472<b> // d. conversion gas</b>
473 y = y - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAnodeThickness">GetAnodeThickness</a>() / 2. - ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetConversionGap">GetConversionGap</a>() + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAvalancheGap">GetAvalancheGap</a>() ) / 2. ;
474 sprintf(nodename, "%s%d", "GGapb", i) ;
475 TNode * ggapbnode = new TNode(nodename, nodename, "GasGap", 0, y, 0) ;
476 ggapbnode-&gt;SetLineColor(kColorGas) ;
477 fNodes-&gt;Add(ggapbnode) ;
478<b> // f. cathode</b>
479 y = y - ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetConversionGap">GetConversionGap</a>() + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAvalancheGap">GetAvalancheGap</a>() ) / 2. - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCathodeThickness">GetCathodeThickness</a>() / 2. ;
480 sprintf(nodename, "%s%d", "Cathodeb", i) ;
481 TNode * cathodebnode = new TNode(nodename, nodename, "Cathode", 0, y, 0) ;
482 cathodebnode-&gt;SetLineColor(kColorPPSD) ;
483 fNodes-&gt;Add(cathodebnode) ;
484<b> // g. printed circuit</b>
485 y = y - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCathodeThickness">GetCathodeThickness</a>() / 2. - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPCThickness">GetPCThickness</a>() / 2. ;
486 sprintf(nodename, "%s%d", "PCb", i) ;
487 TNode * pcbnode = new TNode(nodename, nodename, "PCBoard", 0, y, 0) ;
488 pcbnode-&gt;SetLineColor(kColorPPSD) ;
489 fNodes-&gt;Add(pcbnode) ;
490<b> // h. composite pane</b>
491 y = y - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPCThickness">GetPCThickness</a>() / 2. - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCompositeThickness">GetCompositeThickness</a>() / 2. ;
492 sprintf(nodename, "%s%d", "CompDownb", i) ;
493 TNode * compdownbnode = new TNode(nodename, nodename, "BottomPanel", 0, y, 0) ;
494 compdownbnode-&gt;SetLineColor(kColorPPSD) ;
495 fNodes-&gt;Add(compdownbnode) ;
496 z = z - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(2) ;
497 ppsdboxnode-&gt;cd() ;
498 } // end of Z module loop
499 x = x - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(0) ;
500 ppsdboxnode-&gt;cd() ;
501 } // end of phi module loop
502 }
503 } // PHOS modules
504
505 delete[] rotname ;
506 delete[] nodename ;
507
508}
509
510<b>//____________________________________________________________________________</b>
511<a name="AliPHOSv0:BuildGeometryforCPV"> </a><a href="../ListOfTypes.html#void">void</a> <a href=".././AliPHOSv0.html#AliPHOSv0:BuildGeometryforCPV">AliPHOSv0::BuildGeometryforCPV</a>(<a href="../ListOfTypes.html#void">void</a>)
512{
513<b> // Build the PHOS-CPV geometry for the ROOT display</b>
514<b> // Author: Yuri Kharlov 11 September 2000</b>
515<b> //</b>
516<b> //</b>
517 /*
518 <H2>
519 CPV displayed by root
520 </H2>
521 <table width=700>
522
523 <tr>
524 <td>CPV perspective view</td>
525 <td>CPV front view </td>
526 </tr>
527
528 <tr>
529 <td> <img height=300 width=290 src="../images/CPVRootPersp.gif"> </td>
530 <td> <img height=300 width=290 src="../images/CPVRootFront.gif"> </td>
531 </tr>
532
533 </table>
534
535 */
536<b> // </b>
537
538 const <a href="../ListOfTypes.html#Double_t">Double_t</a> kRADDEG = 180.0 / kPI ;
539 const <a href="../ListOfTypes.html#Int_t">Int_t</a> kColorCPV = kGreen ;
540 const <a href="../ListOfTypes.html#Int_t">Int_t</a> kColorFrame = kYellow ;
541 const <a href="../ListOfTypes.html#Int_t">Int_t</a> kColorGassiplex = kRed;
542 const <a href="../ListOfTypes.html#Int_t">Int_t</a> kColorPCB = kCyan;
543
544<b> // Box for a full PHOS module</b>
545
546 new TBRIK ("CPVBox", "CPV box", "<a href="../ListOfTypes.html#void">void</a>", <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(0)/2,
547 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(1)/2,
548 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(2)/2 );
549 new TBRIK ("CPVFrameLR", "CPV frame Left-Right", "<a href="../ListOfTypes.html#void">void</a>", <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVFrameSize">GetCPVFrameSize</a>(0)/2,
550 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVFrameSize">GetCPVFrameSize</a>(1)/2,
551 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(2)/2 );
552 new TBRIK ("CPVFrameUD", "CPV frame Up-Down", "<a href="../ListOfTypes.html#void">void</a>", <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(0)/2 - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVFrameSize">GetCPVFrameSize</a>(0),
553 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVFrameSize">GetCPVFrameSize</a>(1)/2,
554 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVFrameSize">GetCPVFrameSize</a>(2)/2);
555 new TBRIK ("CPVPCB", "CPV PCB", "<a href="../ListOfTypes.html#void">void</a>", <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVActiveSize">GetCPVActiveSize</a>(0)/2,
556 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVTextoliteThickness">GetCPVTextoliteThickness</a>()/2,
557 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVActiveSize">GetCPVActiveSize</a>(1)/2);
558 new TBRIK ("CPVGassiplex", "CPV Gassiplex PCB", "<a href="../ListOfTypes.html#void">void</a>", <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetGassiplexChipSize">GetGassiplexChipSize</a>(0)/2,
559 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetGassiplexChipSize">GetGassiplexChipSize</a>(1)/2,
560 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetGassiplexChipSize">GetGassiplexChipSize</a>(2)/2);
561
562<b> // position CPV into ALICE</b>
563
564 <a href="../ListOfTypes.html#char">char</a> * nodename = new <a href="../ListOfTypes.html#char">char</a>[25] ;
565 <a href="../ListOfTypes.html#char">char</a> * rotname = new <a href="../ListOfTypes.html#char">char</a>[25] ;
566
567 <a href="../ListOfTypes.html#Float_t">Float_t</a> r = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetIPtoCPVDistance">GetIPtoCPVDistance</a>() + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(1) / 2.0 ;
568 <a href="../ListOfTypes.html#Int_t">Int_t</a> <a href="../ListOfTypes.html#number">number</a> = 988 ;
569 TNode * top = gAlice-&gt;GetGeometry()-&gt;GetNode("alice") ;
570
571 <a href="../ListOfTypes.html#Int_t">Int_t</a> lastModule = 0 ;
572 if (strcmp(<a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;GetName(),"IHEP") == 0)
573 lastModule = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNModules">GetNModules</a>();
574 else if (strcmp(<a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;GetName(),"MIXT") == 0)
575 lastModule = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNModules">GetNModules</a>() - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNPPSDModules">GetNPPSDModules</a>();
576
577 for( <a href="../ListOfTypes.html#Int_t">Int_t</a> i = 1; i &lt;= lastModule; i++ ) { // the <a href="../ListOfTypes.html#number">number</a> of PHOS modules
578
579<b> // One CPV module</b>
580
581 <a href="../ListOfTypes.html#Float_t">Float_t</a> angle = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPHOSAngle">GetPHOSAngle</a>(i) ;
582 sprintf(rotname, "%s%d", "rotg", <a href="../ListOfTypes.html#number">number</a>+i) ;
583 new TRotMatrix(rotname, rotname, 90, angle, 90, 90 + angle, 0, 0);
584 top-&gt;cd();
585 sprintf(nodename, "%s%d", "CPVModule", i) ;
586 <a href="../ListOfTypes.html#Float_t">Float_t</a> x = r * TMath::Sin( angle / kRADDEG ) ;
587 <a href="../ListOfTypes.html#Float_t">Float_t</a> y = -r * TMath::Cos( angle / kRADDEG ) ;
588 <a href="../ListOfTypes.html#Float_t">Float_t</a> z;
589 TNode * cpvBoxNode = new TNode(nodename , nodename ,"CPVBox", x, y, 0, rotname ) ;
590 cpvBoxNode-&gt;SetLineColor(kColorCPV) ;
591 fNodes-&gt;Add(cpvBoxNode) ;
592 cpvBoxNode-&gt;cd() ;
593
594<b> // inside each CPV box:</b>
595
596<b> // Frame around CPV</b>
597 <a href="../ListOfTypes.html#Int_t">Int_t</a> j;
598 for (j=0; j&lt;=1; j++) {
599 sprintf(nodename, "CPVModule%d Frame%d", i, j+1) ;
600 x = TMath::Sign(1,2*j-1) * (<a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(0) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVFrameSize">GetCPVFrameSize</a>(0)) / 2;
601 TNode * cpvFrameNode = new TNode(nodename , nodename ,"CPVFrameLR", x, 0, 0) ;
602 cpvFrameNode-&gt;SetLineColor(kColorFrame) ;
603 fNodes-&gt;Add(cpvFrameNode) ;
604
605 sprintf(nodename, "CPVModule%d Frame%d", i, j+3) ;
606 z = TMath::Sign(1,2*j-1) * (<a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(2) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVFrameSize">GetCPVFrameSize</a>(2)) / 2;
607 cpvFrameNode = new TNode(nodename , nodename ,"CPVFrameUD", 0, 0, z) ;
608 cpvFrameNode-&gt;SetLineColor(kColorFrame) ;
609 fNodes-&gt;Add(cpvFrameNode) ;
610 }
611
612<b> // 4 printed circuit boards</b>
613 for (j=0; j&lt;4; j++) {
614 sprintf(nodename, "CPVModule%d PCB%d", i, j+1) ;
615 y = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVFrameSize">GetCPVFrameSize</a>(1) / 2 - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetFTPosition">GetFTPosition</a>(j) + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVTextoliteThickness">GetCPVTextoliteThickness</a>()/2;
616 TNode * cpvPCBNode = new TNode(nodename , nodename ,"CPVPCB", 0, y, 0) ;
617 cpvPCBNode-&gt;SetLineColor(kColorPCB) ;
618 fNodes-&gt;Add(cpvPCBNode) ;
619 }
620
621<b> // Gassiplex chips</b>
622 <a href="../ListOfTypes.html#Float_t">Float_t</a> xStep = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVActiveSize">GetCPVActiveSize</a>(0) / (<a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNumberOfCPVChipsPhi">GetNumberOfCPVChipsPhi</a>() + 1);
623 <a href="../ListOfTypes.html#Float_t">Float_t</a> zStep = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVActiveSize">GetCPVActiveSize</a>(1) / (<a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNumberOfCPVChipsZ">GetNumberOfCPVChipsZ</a>() + 1);
624 y = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVFrameSize">GetCPVFrameSize</a>(1)/2 - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetFTPosition">GetFTPosition</a>(0) +
625 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVTextoliteThickness">GetCPVTextoliteThickness</a>() / 2 + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetGassiplexChipSize">GetGassiplexChipSize</a>(1) / 2 + 0.1;
626 for (<a href="../ListOfTypes.html#Int_t">Int_t</a> ix=0; ix&lt;<a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNumberOfCPVChipsPhi">GetNumberOfCPVChipsPhi</a>(); ix++) {
627 x = xStep * (ix+1) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVActiveSize">GetCPVActiveSize</a>(0)/2;
628 for (<a href="../ListOfTypes.html#Int_t">Int_t</a> iz=0; iz&lt;<a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNumberOfCPVChipsZ">GetNumberOfCPVChipsZ</a>(); iz++) {
629 z = zStep * (iz+1) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVActiveSize">GetCPVActiveSize</a>(1)/2;
630 sprintf(nodename, "CPVModule%d Chip(%dx%d)", i, ix+1,iz+1) ;
631 TNode * cpvGassiplexNode = new TNode(nodename , nodename ,"CPVGassiplex", x, y, z) ;
632 cpvGassiplexNode-&gt;SetLineColor(kColorGassiplex) ;
633 fNodes-&gt;Add(cpvGassiplexNode) ;
634 }
635 }
636
637 } // PHOS modules
638
639 delete[] rotname ;
640 delete[] nodename ;
641}
642
643<b>//____________________________________________________________________________</b>
644<a name="AliPHOSv0:CreateGeometry"> </a><a href="../ListOfTypes.html#void">void</a> <a href=".././AliPHOSv0.html#AliPHOSv0:CreateGeometry">AliPHOSv0::CreateGeometry</a>()
645{
646<b> // Create the PHOS geometry for Geant</b>
647
648 <a href=".././AliPHOSv0.html">AliPHOSv0</a> *phostmp = (<a href=".././AliPHOSv0.html">AliPHOSv0</a>*)gAlice-&gt;GetModule("PHOS") ;
649
650 if ( phostmp == NULL ) {
651
652 fprintf(stderr, "PHOS detector not found!n") ;
653 return;
654
655 }
656<b> // Get pointer to the array containing media indeces</b>
657 <a href="../ListOfTypes.html#Int_t">Int_t</a> *idtmed = fIdtmed-&gt;GetArray() - 699 ;
658
659<b> // Create a box a PHOS module.</b>
660<b> // In case of MIXT geometry 2 different boxes are needed</b>
661
662 <a href="../ListOfTypes.html#Float_t">Float_t</a> bigbox[3] ;
663 bigbox[0] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetOuterBoxSize">GetOuterBoxSize</a>(0) / 2.0 ;
664 bigbox[1] = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetOuterBoxSize">GetOuterBoxSize</a>(1) + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(1) ) / 2.0 ;
665 bigbox[2] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetOuterBoxSize">GetOuterBoxSize</a>(2) / 2.0 ;
666
667 gMC-&gt;Gsvolu("PHOS", "BOX ", idtmed[798], bigbox, 3) ;
668
669 if ( strcmp( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;GetName(),"MIXT") == 0 &amp;&amp; <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNPPSDModules">GetNPPSDModules</a>() &gt; 0)
670 gMC-&gt;Gsvolu("PHO1", "BOX ", idtmed[798], bigbox, 3) ;
671
672 this-&gt;<a href="#AliPHOSv0:CreateGeometryforPHOS">CreateGeometryforPHOS</a>() ;
673 if ( strcmp( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;GetName(), "GPS2") == 0 )
674 this-&gt;<a href="#AliPHOSv0:CreateGeometryforPPSD">CreateGeometryforPPSD</a>() ;
675 else if ( strcmp( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;GetName(), "IHEP") == 0 )
676 this-&gt;<a href="#AliPHOSv0:CreateGeometryforCPV">CreateGeometryforCPV</a>() ;
677 else if ( strcmp( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;GetName(), "MIXT") == 0 ) {
678 this-&gt;<a href="#AliPHOSv0:CreateGeometryforPPSD">CreateGeometryforPPSD</a>() ;
679 this-&gt;<a href="#AliPHOSv0:CreateGeometryforCPV">CreateGeometryforCPV</a>() ;
680 }
681 else
682 cout &lt;&lt; "<a href=".././AliPHOSv0.html#AliPHOSv0:CreateGeometry">AliPHOSv0::CreateGeometry</a> : no charged particle identification system installed" &lt;&lt; endl;
683
684 this-&gt;<a href="#AliPHOSv0:CreateGeometryforSupport">CreateGeometryforSupport</a>() ;
685
686<b> // --- Position PHOS mdules in ALICE setup ---</b>
687
688 <a href="../ListOfTypes.html#Int_t">Int_t</a> idrotm[99] ;
689 <a href="../ListOfTypes.html#Double_t">Double_t</a> const kRADDEG = 180.0 / kPI ;
690
691 <a href="../ListOfTypes.html#Int_t">Int_t</a> lastModule;
692 if (strcmp(<a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;GetName(),"MIXT") == 0)
693 lastModule = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNModules">GetNModules</a>() - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNPPSDModules">GetNPPSDModules</a>();
694 else
695 lastModule = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNModules">GetNModules</a>();
696
697 <a href="../ListOfTypes.html#Int_t">Int_t</a> i;
698 for( i = 1; i &lt;= lastModule ; i++ ) {
699
700 <a href="../ListOfTypes.html#Float_t">Float_t</a> angle = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPHOSAngle">GetPHOSAngle</a>(i) ;
701 AliMatrix(idrotm[i-1], 90.0, angle, 90.0, 90.0+angle, 0.0, 0.0) ;
702
703 <a href="../ListOfTypes.html#Float_t">Float_t</a> r = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetIPtoOuterCoverDistance">GetIPtoOuterCoverDistance</a>() + ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetOuterBoxSize">GetOuterBoxSize</a>(1) + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(1) ) / 2.0 ;
704
705 <a href="../ListOfTypes.html#Float_t">Float_t</a> xP1 = r * TMath::Sin( angle / kRADDEG ) ;
706 <a href="../ListOfTypes.html#Float_t">Float_t</a> yP1 = -r * TMath::Cos( angle / kRADDEG ) ;
707
708 gMC-&gt;Gspos("PHOS", i, "ALIC", xP1, yP1, 0.0, idrotm[i-1], "ONLY") ;
709
710 } // for GetNModules
711
712 for( i = lastModule+1; i &lt;= <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNModules">GetNModules</a>(); i++ ) {
713
714 <a href="../ListOfTypes.html#Float_t">Float_t</a> angle = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPHOSAngle">GetPHOSAngle</a>(i) ;
715 AliMatrix(idrotm[i-1], 90.0, angle, 90.0, 90.0+angle, 0.0, 0.0) ;
716
717 <a href="../ListOfTypes.html#Float_t">Float_t</a> r = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetIPtoOuterCoverDistance">GetIPtoOuterCoverDistance</a>() + ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetOuterBoxSize">GetOuterBoxSize</a>(1) + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(1) ) / 2.0 ;
718
719 <a href="../ListOfTypes.html#Float_t">Float_t</a> xP1 = r * TMath::Sin( angle / kRADDEG ) ;
720 <a href="../ListOfTypes.html#Float_t">Float_t</a> yP1 = -r * TMath::Cos( angle / kRADDEG ) ;
721
722 gMC-&gt;Gspos("PHO1", i-lastModule, "ALIC", xP1, yP1, 0.0, idrotm[i-1], "ONLY") ;
723
724 } // for GetNModules
725
726}
727
728<b>//____________________________________________________________________________</b>
729<a name="AliPHOSv0:CreateGeometryforPHOS"> </a><a href="../ListOfTypes.html#void">void</a> <a href=".././AliPHOSv0.html#AliPHOSv0:CreateGeometryforPHOS">AliPHOSv0::CreateGeometryforPHOS</a>()
730{
731<b> // Create the PHOS-EMC geometry for GEANT</b>
732<b> //</b>
733 /*
734 <H2>
735 Geant3 geometry tree of PHOS-EMC in ALICE
736 </H2>
737 <P><CENTER>
738 <IMG Align=BOTTOM ALT="EMC geant tree" SRC="../images/EMCinAlice.gif">
739 </CENTER><P>
740 */
741<b> // </b>
742
743<b> // Get pointer to the array containing media indexes</b>
744 <a href="../ListOfTypes.html#Int_t">Int_t</a> *idtmed = fIdtmed-&gt;GetArray() - 699 ;
745
746<b> // ---</b>
747<b> // --- Define PHOS box volume, fPUFPill with thermo insulating foam ---</b>
748<b> // --- Foam Thermo Insulating outer cover dimensions ---</b>
749<b> // --- Put it in bigbox = PHOS</b>
750
751 <a href="../ListOfTypes.html#Float_t">Float_t</a> dphos[3] ;
752 dphos[0] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetOuterBoxSize">GetOuterBoxSize</a>(0) / 2.0 ;
753 dphos[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetOuterBoxSize">GetOuterBoxSize</a>(1) / 2.0 ;
754 dphos[2] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetOuterBoxSize">GetOuterBoxSize</a>(2) / 2.0 ;
755
756 gMC-&gt;Gsvolu("PEMC", "BOX ", idtmed[706], dphos, 3) ;
757
758 <a href="../ListOfTypes.html#Float_t">Float_t</a> yO = - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(1) / 2.0 ;
759
760 gMC-&gt;Gspos("PEMC", 1, "PHOS", 0.0, yO, 0.0, 0, "ONLY") ;
761 if ( strcmp( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;GetName(),"MIXT") == 0 &amp;&amp; <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNPPSDModules">GetNPPSDModules</a>() &gt; 0)
762 gMC-&gt;Gspos("PEMC", 1, "PHO1", 0.0, yO, 0.0, 0, "ONLY") ;
763
764<b> // ---</b>
765<b> // --- Define Textolit Wall box, position inside PEMC ---</b>
766<b> // --- Textolit Wall box dimentions ---</b>
767
768
769 <a href="../ListOfTypes.html#Float_t">Float_t</a> dptxw[3];
770 dptxw[0] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetTextolitBoxSize">GetTextolitBoxSize</a>(0) / 2.0 ;
771 dptxw[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetTextolitBoxSize">GetTextolitBoxSize</a>(1) / 2.0 ;
772 dptxw[2] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetTextolitBoxSize">GetTextolitBoxSize</a>(2) / 2.0 ;
773
774 gMC-&gt;Gsvolu("PTXW", "BOX ", idtmed[707], dptxw, 3);
775
776 yO = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetOuterBoxThickness">GetOuterBoxThickness</a>(1) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetUpperPlateThickness">GetUpperPlateThickness</a>() ) / 2. ;
777
778 gMC-&gt;Gspos("PTXW", 1, "PEMC", 0.0, yO, 0.0, 0, "ONLY") ;
779
780<b> // --- </b>
781<b> // --- Define Upper Polystyrene Foam Plate, place inside PTXW ---</b>
782<b> // --- immediately below Foam Thermo Insulation Upper plate ---</b>
783
784<b> // --- Upper Polystyrene Foam plate thickness ---</b>
785
786 <a href="../ListOfTypes.html#Float_t">Float_t</a> dpufp[3] ;
787 dpufp[0] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetTextolitBoxSize">GetTextolitBoxSize</a>(0) / 2.0 ;
788 dpufp[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetSecondUpperPlateThickness">GetSecondUpperPlateThickness</a>() / 2. ;
789 dpufp[2] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetTextolitBoxSize">GetTextolitBoxSize</a>(2) /2.0 ;
790
791 gMC-&gt;Gsvolu("PUFP", "BOX ", idtmed[703], dpufp, 3) ;
792
793 yO = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetTextolitBoxSize">GetTextolitBoxSize</a>(1) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetSecondUpperPlateThickness">GetSecondUpperPlateThickness</a>() ) / 2.0 ;
794
795 gMC-&gt;Gspos("PUFP", 1, "PTXW", 0.0, yO, 0.0, 0, "ONLY") ;
796
797<b> // ---</b>
798<b> // --- Define air-filled box, place inside PTXW ---</b>
799<b> // --- Inner AIR volume dimensions ---</b>
800
801
802 <a href="../ListOfTypes.html#Float_t">Float_t</a> dpair[3] ;
803 dpair[0] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAirFilledBoxSize">GetAirFilledBoxSize</a>(0) / 2.0 ;
804 dpair[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAirFilledBoxSize">GetAirFilledBoxSize</a>(1) / 2.0 ;
805 dpair[2] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAirFilledBoxSize">GetAirFilledBoxSize</a>(2) / 2.0 ;
806
807 gMC-&gt;Gsvolu("PAIR", "BOX ", idtmed[798], dpair, 3) ;
808
809 yO = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetTextolitBoxSize">GetTextolitBoxSize</a>(1) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAirFilledBoxSize">GetAirFilledBoxSize</a>(1) ) / 2.0 - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetSecondUpperPlateThickness">GetSecondUpperPlateThickness</a>() ;
810
811 gMC-&gt;Gspos("PAIR", 1, "PTXW", 0.0, yO, 0.0, 0, "ONLY") ;
812
813<b>// --- Dimensions of PbWO4 crystal ---</b>
814
815 <a href="../ListOfTypes.html#Float_t">Float_t</a> xtlX = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalSize">GetCrystalSize</a>(0) ;
816 <a href="../ListOfTypes.html#Float_t">Float_t</a> xtlY = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalSize">GetCrystalSize</a>(1) ;
817 <a href="../ListOfTypes.html#Float_t">Float_t</a> xtlZ = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalSize">GetCrystalSize</a>(2) ;
818
819 <a href="../ListOfTypes.html#Float_t">Float_t</a> dptcb[3] ;
820 dptcb[0] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNPhi">GetNPhi</a>() * ( xtlX + 2 * <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetGapBetweenCrystals">GetGapBetweenCrystals</a>() ) / 2.0 + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetModuleBoxThickness">GetModuleBoxThickness</a>() ;
821 dptcb[1] = ( xtlY + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalSupportHeight">GetCrystalSupportHeight</a>() + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalWrapThickness">GetCrystalWrapThickness</a>() + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalHolderThickness">GetCrystalHolderThickness</a>() ) / 2.0
822 + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetModuleBoxThickness">GetModuleBoxThickness</a>() / 2.0 ;
823 dptcb[2] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNZ">GetNZ</a>() * ( xtlZ + 2 * <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetGapBetweenCrystals">GetGapBetweenCrystals</a>() ) / 2.0 + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetModuleBoxThickness">GetModuleBoxThickness</a>() ;
824
825 gMC-&gt;Gsvolu("PTCB", "BOX ", idtmed[706], dptcb, 3) ;
826
827 yO = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAirFilledBoxSize">GetAirFilledBoxSize</a>(1) / 2.0 - dptcb[1]
828 - ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetIPtoCrystalSurface">GetIPtoCrystalSurface</a>() - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetIPtoOuterCoverDistance">GetIPtoOuterCoverDistance</a>() - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetModuleBoxThickness">GetModuleBoxThickness</a>()
829 - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetUpperPlateThickness">GetUpperPlateThickness</a>() - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetSecondUpperPlateThickness">GetSecondUpperPlateThickness</a>() ) ;
830
831 gMC-&gt;Gspos("PTCB", 1, "PAIR", 0.0, yO, 0.0, 0, "ONLY") ;
832
833<b> // ---</b>
834<b> // --- Define Crystal BLock filled with air, position it inside PTCB ---</b>
835 <a href="../ListOfTypes.html#Float_t">Float_t</a> dpcbl[3] ;
836
837 dpcbl[0] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNPhi">GetNPhi</a>() * ( xtlX + 2 * <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetGapBetweenCrystals">GetGapBetweenCrystals</a>() ) / 2.0 ;
838 dpcbl[1] = ( xtlY + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalSupportHeight">GetCrystalSupportHeight</a>() + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalWrapThickness">GetCrystalWrapThickness</a>() + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalHolderThickness">GetCrystalHolderThickness</a>() ) / 2.0 ;
839 dpcbl[2] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNZ">GetNZ</a>() * ( xtlZ + 2 * <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetGapBetweenCrystals">GetGapBetweenCrystals</a>() ) / 2.0 ;
840
841 gMC-&gt;Gsvolu("PCBL", "BOX ", idtmed[798], dpcbl, 3) ;
842
843<b> // --- Divide PCBL in X (phi) and Z directions --</b>
844 gMC-&gt;Gsdvn("PROW", "PCBL", <a href="../ListOfTypes.html#Int_t">Int_t</a> (<a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNPhi">GetNPhi</a>()), 1) ;
845 gMC-&gt;Gsdvn("PCEL", "PROW", <a href="../ListOfTypes.html#Int_t">Int_t</a> (<a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNZ">GetNZ</a>()), 3) ;
846
847 yO = -<a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetModuleBoxThickness">GetModuleBoxThickness</a>() / 2.0 ;
848
849 gMC-&gt;Gspos("PCBL", 1, "PTCB", 0.0, yO, 0.0, 0, "ONLY") ;
850
851<b> // ---</b>
852<b> // --- Define STeel (actually, it's titanium) Cover volume, place inside PCEL</b>
853 <a href="../ListOfTypes.html#Float_t">Float_t</a> dpstc[3] ;
854
855 dpstc[0] = ( xtlX + 2 * <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalWrapThickness">GetCrystalWrapThickness</a>() ) / 2.0 ;
856 dpstc[1] = ( xtlY + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalSupportHeight">GetCrystalSupportHeight</a>() + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalWrapThickness">GetCrystalWrapThickness</a>() + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalHolderThickness">GetCrystalHolderThickness</a>() ) / 2.0 ;
857 dpstc[2] = ( xtlZ + 2 * <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalWrapThickness">GetCrystalWrapThickness</a>() + 2 * <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalHolderThickness">GetCrystalHolderThickness</a>() ) / 2.0 ;
858
859 gMC-&gt;Gsvolu("PSTC", "BOX ", idtmed[704], dpstc, 3) ;
860
861 gMC-&gt;Gspos("PSTC", 1, "PCEL", 0.0, 0.0, 0.0, 0, "ONLY") ;
862
863<b> // ---</b>
864<b> // --- Define Tyvek volume, place inside PSTC ---</b>
865 <a href="../ListOfTypes.html#Float_t">Float_t</a> dppap[3] ;
866
867 dppap[0] = xtlX / 2.0 + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalWrapThickness">GetCrystalWrapThickness</a>() ;
868 dppap[1] = ( xtlY + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalSupportHeight">GetCrystalSupportHeight</a>() + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalWrapThickness">GetCrystalWrapThickness</a>() ) / 2.0 ;
869 dppap[2] = xtlZ / 2.0 + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalWrapThickness">GetCrystalWrapThickness</a>() ;
870
871 gMC-&gt;Gsvolu("PPAP", "BOX ", idtmed[702], dppap, 3) ;
872
873 yO = ( xtlY + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalSupportHeight">GetCrystalSupportHeight</a>() + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalWrapThickness">GetCrystalWrapThickness</a>() ) / 2.0
874 - ( xtlY + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalSupportHeight">GetCrystalSupportHeight</a>() + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalWrapThickness">GetCrystalWrapThickness</a>() + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalHolderThickness">GetCrystalHolderThickness</a>() ) / 2.0 ;
875
876 gMC-&gt;Gspos("PPAP", 1, "PSTC", 0.0, yO, 0.0, 0, "ONLY") ;
877
878<b> // ---</b>
879<b> // --- Define PbWO4 crystal volume, place inside PPAP ---</b>
880 <a href="../ListOfTypes.html#Float_t">Float_t</a> dpxtl[3] ;
881
882 dpxtl[0] = xtlX / 2.0 ;
883 dpxtl[1] = xtlY / 2.0 ;
884 dpxtl[2] = xtlZ / 2.0 ;
885
886 gMC-&gt;Gsvolu("PXTL", "BOX ", idtmed[699], dpxtl, 3) ;
887
888 yO = ( xtlY + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalSupportHeight">GetCrystalSupportHeight</a>() + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalWrapThickness">GetCrystalWrapThickness</a>() ) / 2.0 - xtlY / 2.0 - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalWrapThickness">GetCrystalWrapThickness</a>() ;
889
890 gMC-&gt;Gspos("PXTL", 1, "PPAP", 0.0, yO, 0.0, 0, "ONLY") ;
891
892<b> // ---</b>
893<b> // --- Define crystal support volume, place inside PPAP ---</b>
894 <a href="../ListOfTypes.html#Float_t">Float_t</a> dpsup[3] ;
895
896 dpsup[0] = xtlX / 2.0 + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalWrapThickness">GetCrystalWrapThickness</a>() ;
897 dpsup[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalSupportHeight">GetCrystalSupportHeight</a>() / 2.0 ;
898 dpsup[2] = xtlZ / 2.0 + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalWrapThickness">GetCrystalWrapThickness</a>() ;
899
900 gMC-&gt;Gsvolu("PSUP", "BOX ", idtmed[798], dpsup, 3) ;
901
902 yO = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalSupportHeight">GetCrystalSupportHeight</a>() / 2.0 - ( xtlY + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalSupportHeight">GetCrystalSupportHeight</a>() + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalWrapThickness">GetCrystalWrapThickness</a>() ) / 2.0 ;
903
904 gMC-&gt;Gspos("PSUP", 1, "PPAP", 0.0, yO, 0.0, 0, "ONLY") ;
905
906<b> // ---</b>
907<b> // --- Define PIN-diode volume and position it inside crystal support ---</b>
908<b> // --- right behind PbWO4 crystal</b>
909
910<b> // --- PIN-diode dimensions ---</b>
911
912
913 <a href="../ListOfTypes.html#Float_t">Float_t</a> dppin[3] ;
914 dppin[0] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPinDiodeSize">GetPinDiodeSize</a>(0) / 2.0 ;
915 dppin[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPinDiodeSize">GetPinDiodeSize</a>(1) / 2.0 ;
916 dppin[2] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPinDiodeSize">GetPinDiodeSize</a>(2) / 2.0 ;
917
918 gMC-&gt;Gsvolu("PPIN", "BOX ", idtmed[705], dppin, 3) ;
919
920 yO = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalSupportHeight">GetCrystalSupportHeight</a>() / 2.0 - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPinDiodeSize">GetPinDiodeSize</a>(1) / 2.0 ;
921
922 gMC-&gt;Gspos("PPIN", 1, "PSUP", 0.0, yO, 0.0, 0, "ONLY") ;
923
924<b> // ---</b>
925<b> // --- Define Upper Cooling Panel, place it on top of PTCB ---</b>
926 <a href="../ListOfTypes.html#Float_t">Float_t</a> dpucp[3] ;
927<b> // --- Upper Cooling Plate thickness ---</b>
928
929 dpucp[0] = dptcb[0] ;
930 dpucp[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetUpperCoolingPlateThickness">GetUpperCoolingPlateThickness</a>() ;
931 dpucp[2] = dptcb[2] ;
932
933 gMC-&gt;Gsvolu("PUCP", "BOX ", idtmed[701], dpucp,3) ;
934
935 yO = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAirFilledBoxSize">GetAirFilledBoxSize</a>(1) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetUpperCoolingPlateThickness">GetUpperCoolingPlateThickness</a>() ) / 2.
936 - ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetIPtoCrystalSurface">GetIPtoCrystalSurface</a>() - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetIPtoOuterCoverDistance">GetIPtoOuterCoverDistance</a>() - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetModuleBoxThickness">GetModuleBoxThickness</a>()
937 - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetUpperPlateThickness">GetUpperPlateThickness</a>() - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetSecondUpperPlateThickness">GetSecondUpperPlateThickness</a>() - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetUpperCoolingPlateThickness">GetUpperCoolingPlateThickness</a>() ) ;
938
939 gMC-&gt;Gspos("PUCP", 1, "PAIR", 0.0, yO, 0.0, 0, "ONLY") ;
940
941<b> // ---</b>
942<b> // --- Define Al Support Plate, position it inside PAIR ---</b>
943<b> // --- right beneath PTCB ---</b>
944<b> // --- Al Support Plate thickness ---</b>
945
946 <a href="../ListOfTypes.html#Float_t">Float_t</a> dpasp[3] ;
947 dpasp[0] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAirFilledBoxSize">GetAirFilledBoxSize</a>(0) / 2.0 ;
948 dpasp[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetSupportPlateThickness">GetSupportPlateThickness</a>() / 2.0 ;
949 dpasp[2] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAirFilledBoxSize">GetAirFilledBoxSize</a>(2) / 2.0 ;
950
951 gMC-&gt;Gsvolu("PASP", "BOX ", idtmed[701], dpasp, 3) ;
952
953 yO = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAirFilledBoxSize">GetAirFilledBoxSize</a>(1) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetSupportPlateThickness">GetSupportPlateThickness</a>() ) / 2.
954 - ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetIPtoCrystalSurface">GetIPtoCrystalSurface</a>() - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetIPtoOuterCoverDistance">GetIPtoOuterCoverDistance</a>()
955 - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetUpperPlateThickness">GetUpperPlateThickness</a>() - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetSecondUpperPlateThickness">GetSecondUpperPlateThickness</a>() + dpcbl[1] * 2 ) ;
956
957 gMC-&gt;Gspos("PASP", 1, "PAIR", 0.0, yO, 0.0, 0, "ONLY") ;
958
959<b> // ---</b>
960<b> // --- Define Thermo Insulating Plate, position it inside PAIR ---</b>
961<b> // --- right beneath PASP ---</b>
962<b> // --- Lower Thermo Insulating Plate thickness ---</b>
963
964 <a href="../ListOfTypes.html#Float_t">Float_t</a> dptip[3] ;
965 dptip[0] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAirFilledBoxSize">GetAirFilledBoxSize</a>(0) / 2.0 ;
966 dptip[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetLowerThermoPlateThickness">GetLowerThermoPlateThickness</a>() / 2.0 ;
967 dptip[2] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAirFilledBoxSize">GetAirFilledBoxSize</a>(2) / 2.0 ;
968
969 gMC-&gt;Gsvolu("PTIP", "BOX ", idtmed[706], dptip, 3) ;
970
971 yO = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAirFilledBoxSize">GetAirFilledBoxSize</a>(1) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetLowerThermoPlateThickness">GetLowerThermoPlateThickness</a>() ) / 2.
972 - ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetIPtoCrystalSurface">GetIPtoCrystalSurface</a>() - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetIPtoOuterCoverDistance">GetIPtoOuterCoverDistance</a>() - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetUpperPlateThickness">GetUpperPlateThickness</a>()
973 - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetSecondUpperPlateThickness">GetSecondUpperPlateThickness</a>() + dpcbl[1] * 2 + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetSupportPlateThickness">GetSupportPlateThickness</a>() ) ;
974
975 gMC-&gt;Gspos("PTIP", 1, "PAIR", 0.0, yO, 0.0, 0, "ONLY") ;
976
977<b> // ---</b>
978<b> // --- Define Textolit Plate, position it inside PAIR ---</b>
979<b> // --- right beneath PTIP ---</b>
980<b> // --- Lower Textolit Plate thickness ---</b>
981
982 <a href="../ListOfTypes.html#Float_t">Float_t</a> dptxp[3] ;
983 dptxp[0] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAirFilledBoxSize">GetAirFilledBoxSize</a>(0) / 2.0 ;
984 dptxp[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetLowerTextolitPlateThickness">GetLowerTextolitPlateThickness</a>() / 2.0 ;
985 dptxp[2] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAirFilledBoxSize">GetAirFilledBoxSize</a>(2) / 2.0 ;
986
987 gMC-&gt;Gsvolu("PTXP", "BOX ", idtmed[707], dptxp, 3) ;
988
989 yO = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAirFilledBoxSize">GetAirFilledBoxSize</a>(1) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetLowerTextolitPlateThickness">GetLowerTextolitPlateThickness</a>() ) / 2.
990 - ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetIPtoCrystalSurface">GetIPtoCrystalSurface</a>() - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetIPtoOuterCoverDistance">GetIPtoOuterCoverDistance</a>() - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetUpperPlateThickness">GetUpperPlateThickness</a>()
991 - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetSecondUpperPlateThickness">GetSecondUpperPlateThickness</a>() + dpcbl[1] * 2 + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetSupportPlateThickness">GetSupportPlateThickness</a>()
992 + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetLowerThermoPlateThickness">GetLowerThermoPlateThickness</a>() ) ;
993
994 gMC-&gt;Gspos("PTXP", 1, "PAIR", 0.0, yO, 0.0, 0, "ONLY") ;
995
996}
997
998<b>//____________________________________________________________________________</b>
999<a name="AliPHOSv0:CreateGeometryforPPSD"> </a><a href="../ListOfTypes.html#void">void</a> <a href=".././AliPHOSv0.html#AliPHOSv0:CreateGeometryforPPSD">AliPHOSv0::CreateGeometryforPPSD</a>()
1000{
1001<b> // Create the PHOS-PPSD geometry for GEANT</b>
1002<b> //</b>
1003 /*
1004 <H2>
1005 Geant3 geometry tree of PHOS-PPSD in ALICE
1006 </H2>
1007 <P><CENTER>
1008 <IMG Align=BOTTOM ALT="PPSD geant tree" SRC="../images/PPSDinAlice.gif">
1009 </CENTER><P>
1010 */
1011<b> // </b>
1012
1013<b> // Get pointer to the array containing media indexes</b>
1014 <a href="../ListOfTypes.html#Int_t">Int_t</a> *idtmed = fIdtmed-&gt;GetArray() - 699 ;
1015
1016<b> // The box containing all ppsd's for one PHOS module filled with air </b>
1017 <a href="../ListOfTypes.html#Float_t">Float_t</a> ppsd[3] ;
1018 ppsd[0] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(0) / 2.0 ;
1019 ppsd[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(1) / 2.0 ;
1020 ppsd[2] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(2) / 2.0 ;
1021
1022 gMC-&gt;Gsvolu("PPSD", "BOX ", idtmed[798], ppsd, 3) ;
1023
1024 <a href="../ListOfTypes.html#Float_t">Float_t</a> yO = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetOuterBoxSize">GetOuterBoxSize</a>(1) / 2.0 ;
1025
1026 if ( strcmp( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;GetName(),"MIXT") == 0 &amp;&amp; <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNPPSDModules">GetNPPSDModules</a>() &gt; 0)
1027 gMC-&gt;Gspos("PPSD", 1, "PHO1", 0.0, yO, 0.0, 0, "ONLY") ;
1028 else
1029 gMC-&gt;Gspos("PPSD", 1, "PHOS", 0.0, yO, 0.0, 0, "ONLY") ;
1030
1031<b> // Now we build a micromegas module</b>
1032<b> // The box containing the whole module filled with epoxy (FR4)</b>
1033
1034 <a href="../ListOfTypes.html#Float_t">Float_t</a> mppsd[3] ;
1035 mppsd[0] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(0) / 2.0 ;
1036 mppsd[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(1) / 2.0 ;
1037 mppsd[2] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(2) / 2.0 ;
1038
1039 gMC-&gt;Gsvolu("PMPP", "BOX ", idtmed[708], mppsd, 3) ;
1040
1041<b> // Inside mppsd :</b>
1042<b> // 1. The Top Lid made of epoxy (FR4) </b>
1043
1044 <a href="../ListOfTypes.html#Float_t">Float_t</a> tlppsd[3] ;
1045 tlppsd[0] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(0) / 2.0 ;
1046 tlppsd[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetLidThickness">GetLidThickness</a>() / 2.0 ;
1047 tlppsd[2] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(2) / 2.0 ;
1048
1049 gMC-&gt;Gsvolu("PTLP", "BOX ", idtmed[708], tlppsd, 3) ;
1050
1051 <a href="../ListOfTypes.html#Float_t">Float_t</a> y0 = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicromegas1Thickness">GetMicromegas1Thickness</a>() - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetLidThickness">GetLidThickness</a>() ) / 2. ;
1052
1053 gMC-&gt;Gspos("PTLP", 1, "PMPP", 0.0, y0, 0.0, 0, "ONLY") ;
1054
1055<b> // 2. the upper panel made of composite material</b>
1056
1057 <a href="../ListOfTypes.html#Float_t">Float_t</a> upppsd[3] ;
1058 upppsd[0] = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(0) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicromegasWallThickness">GetMicromegasWallThickness</a>() ) / 2.0 ;
1059 upppsd[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCompositeThickness">GetCompositeThickness</a>() / 2.0 ;
1060 upppsd[2] = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(2) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicromegasWallThickness">GetMicromegasWallThickness</a>() ) / 2.0 ;
1061
1062 gMC-&gt;Gsvolu("PUPP", "BOX ", idtmed[709], upppsd, 3) ;
1063
1064 y0 = y0 - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetLidThickness">GetLidThickness</a>() / 2. - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCompositeThickness">GetCompositeThickness</a>() / 2. ;
1065
1066 gMC-&gt;Gspos("PUPP", 1, "PMPP", 0.0, y0, 0.0, 0, "ONLY") ;
1067
1068<b> // 3. the anode made of Copper</b>
1069
1070 <a href="../ListOfTypes.html#Float_t">Float_t</a> anppsd[3] ;
1071 anppsd[0] = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(0) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicromegasWallThickness">GetMicromegasWallThickness</a>() ) / 2.0 ;
1072 anppsd[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAnodeThickness">GetAnodeThickness</a>() / 2.0 ;
1073 anppsd[2] = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(2) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicromegasWallThickness">GetMicromegasWallThickness</a>() ) / 2.0 ;
1074
1075 gMC-&gt;Gsvolu("PANP", "BOX ", idtmed[710], anppsd, 3) ;
1076
1077 y0 = y0 - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCompositeThickness">GetCompositeThickness</a>() / 2. - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAnodeThickness">GetAnodeThickness</a>() / 2. ;
1078
1079 gMC-&gt;Gspos("PANP", 1, "PMPP", 0.0, y0, 0.0, 0, "ONLY") ;
1080
1081<b> // 4. the conversion gap + avalanche gap filled with gas</b>
1082
1083 <a href="../ListOfTypes.html#Float_t">Float_t</a> ggppsd[3] ;
1084 ggppsd[0] = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(0) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicromegasWallThickness">GetMicromegasWallThickness</a>() ) / 2.0 ;
1085 ggppsd[1] = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetConversionGap">GetConversionGap</a>() + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAvalancheGap">GetAvalancheGap</a>() ) / 2.0 ;
1086 ggppsd[2] = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(2) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicromegasWallThickness">GetMicromegasWallThickness</a>() ) / 2.0 ;
1087
1088 gMC-&gt;Gsvolu("PGGP", "BOX ", idtmed[715], ggppsd, 3) ;
1089
1090<b> // --- Divide GGPP in X (phi) and Z directions --</b>
1091 gMC-&gt;Gsdvn("PROW", "PGGP", <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNumberOfPadsPhi">GetNumberOfPadsPhi</a>(), 1) ;
1092 gMC-&gt;Gsdvn("PCEL", "PROW", <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNumberOfPadsZ">GetNumberOfPadsZ</a>() , 3) ;
1093
1094 y0 = y0 - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAnodeThickness">GetAnodeThickness</a>() / 2. - ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetConversionGap">GetConversionGap</a>() + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAvalancheGap">GetAvalancheGap</a>() ) / 2. ;
1095
1096 gMC-&gt;Gspos("PGGP", 1, "PMPP", 0.0, y0, 0.0, 0, "ONLY") ;
1097
1098
1099<b> // 6. the cathode made of Copper</b>
1100
1101 <a href="../ListOfTypes.html#Float_t">Float_t</a> cappsd[3] ;
1102 cappsd[0] = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(0) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicromegasWallThickness">GetMicromegasWallThickness</a>() ) / 2.0 ;
1103 cappsd[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCathodeThickness">GetCathodeThickness</a>() / 2.0 ;
1104 cappsd[2] = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(2) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicromegasWallThickness">GetMicromegasWallThickness</a>() ) / 2.0 ;
1105
1106 gMC-&gt;Gsvolu("PCAP", "BOX ", idtmed[710], cappsd, 3) ;
1107
1108 y0 = y0 - ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetConversionGap">GetConversionGap</a>() + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAvalancheGap">GetAvalancheGap</a>() ) / 2. - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCathodeThickness">GetCathodeThickness</a>() / 2. ;
1109
1110 gMC-&gt;Gspos("PCAP", 1, "PMPP", 0.0, y0, 0.0, 0, "ONLY") ;
1111
1112<b> // 7. the printed circuit made of G10 </b>
1113
1114 <a href="../ListOfTypes.html#Float_t">Float_t</a> pcppsd[3] ;
1115 pcppsd[0] = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(0) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicromegasWallThickness">GetMicromegasWallThickness</a>() ) / 2,.0 ;
1116 pcppsd[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPCThickness">GetPCThickness</a>() / 2.0 ;
1117 pcppsd[2] = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(2) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicromegasWallThickness">GetMicromegasWallThickness</a>() ) / 2.0 ;
1118
1119 gMC-&gt;Gsvolu("PCPS", "BOX ", idtmed[711], cappsd, 3) ;
1120
1121 y0 = y0 - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCathodeThickness">GetCathodeThickness</a>() / 2. - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPCThickness">GetPCThickness</a>() / 2. ;
1122
1123 gMC-&gt;Gspos("PCPS", 1, "PMPP", 0.0, y0, 0.0, 0, "ONLY") ;
1124
1125<b> // 8. the lower panel made of composite material</b>
1126
1127 <a href="../ListOfTypes.html#Float_t">Float_t</a> lpppsd[3] ;
1128 lpppsd[0] = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(0) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicromegasWallThickness">GetMicromegasWallThickness</a>() ) / 2.0 ;
1129 lpppsd[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCompositeThickness">GetCompositeThickness</a>() / 2.0 ;
1130 lpppsd[2] = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(2) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicromegasWallThickness">GetMicromegasWallThickness</a>() ) / 2.0 ;
1131
1132 gMC-&gt;Gsvolu("PLPP", "BOX ", idtmed[709], lpppsd, 3) ;
1133
1134 y0 = y0 - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPCThickness">GetPCThickness</a>() / 2. - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCompositeThickness">GetCompositeThickness</a>() / 2. ;
1135
1136 gMC-&gt;Gspos("PLPP", 1, "PMPP", 0.0, y0, 0.0, 0, "ONLY") ;
1137
1138<b> // Position the fNumberOfModulesPhi x fNumberOfModulesZ modules (mppsd) inside PPSD to cover a PHOS module</b>
1139<b> // the top and bottom one's (which are assumed identical) :</b>
1140
1141 <a href="../ListOfTypes.html#Float_t">Float_t</a> yt = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(1) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicromegas1Thickness">GetMicromegas1Thickness</a>() ) / 2. ;
1142 <a href="../ListOfTypes.html#Float_t">Float_t</a> yb = - ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(1) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicromegas2Thickness">GetMicromegas2Thickness</a>() ) / 2. ;
1143
1144 <a href="../ListOfTypes.html#Int_t">Int_t</a> copyNumbertop = 0 ;
1145 <a href="../ListOfTypes.html#Int_t">Int_t</a> copyNumberbot = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNumberOfModulesPhi">GetNumberOfModulesPhi</a>() * <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNumberOfModulesZ">GetNumberOfModulesZ</a>() ;
1146
1147 <a href="../ListOfTypes.html#Float_t">Float_t</a> x = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(0) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(0) ) / 2. ;
1148
1149 for ( <a href="../ListOfTypes.html#Int_t">Int_t</a> iphi = 1; iphi &lt;= <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNumberOfModulesPhi">GetNumberOfModulesPhi</a>(); iphi++ ) { // the <a href="../ListOfTypes.html#number">number</a> of micromegas modules in phi per PHOS module
1150 <a href="../ListOfTypes.html#Float_t">Float_t</a> z = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(2) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(2) ) / 2. ;
1151
1152 for ( <a href="../ListOfTypes.html#Int_t">Int_t</a> iz = 1; iz &lt;= <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNumberOfModulesZ">GetNumberOfModulesZ</a>(); iz++ ) { // the <a href="../ListOfTypes.html#number">number</a> of micromegas modules in z per PHOS module
1153 gMC-&gt;Gspos("PMPP", ++copyNumbertop, "PPSD", x, yt, z, 0, "ONLY") ;
1154 gMC-&gt;Gspos("PMPP", ++copyNumberbot, "PPSD", x, yb, z, 0, "ONLY") ;
1155 z = z - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(2) ;
1156 } // end of Z module loop
1157 x = x - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(0) ;
1158 } // end of phi module loop
1159
1160<b> // The Lead converter between two air gaps</b>
1161<b> // 1. Upper air gap</b>
1162
1163 <a href="../ListOfTypes.html#Float_t">Float_t</a> uappsd[3] ;
1164 uappsd[0] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(0) / 2.0 ;
1165 uappsd[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicro1ToLeadGap">GetMicro1ToLeadGap</a>() / 2.0 ;
1166 uappsd[2] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(2) / 2.0 ;
1167
1168 gMC-&gt;Gsvolu("PUAPPS", "BOX ", idtmed[798], uappsd, 3) ;
1169
1170 y0 = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(1) - 2 * <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicromegas1Thickness">GetMicromegas1Thickness</a>() - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicro1ToLeadGap">GetMicro1ToLeadGap</a>() ) / 2. ;
1171
1172 gMC-&gt;Gspos("PUAPPS", 1, "PPSD", 0.0, y0, 0.0, 0, "ONLY") ;
1173
1174<b> // 2. Lead converter</b>
1175
1176 <a href="../ListOfTypes.html#Float_t">Float_t</a> lcppsd[3] ;
1177 lcppsd[0] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(0) / 2.0 ;
1178 lcppsd[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetLeadConverterThickness">GetLeadConverterThickness</a>() / 2.0 ;
1179 lcppsd[2] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(2) / 2.0 ;
1180
1181 gMC-&gt;Gsvolu("PLCPPS", "BOX ", idtmed[712], lcppsd, 3) ;
1182
1183 y0 = y0 - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicro1ToLeadGap">GetMicro1ToLeadGap</a>() / 2. - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetLeadConverterThickness">GetLeadConverterThickness</a>() / 2. ;
1184
1185 gMC-&gt;Gspos("PLCPPS", 1, "PPSD", 0.0, y0, 0.0, 0, "ONLY") ;
1186
1187<b> // 3. Lower air gap</b>
1188
1189 <a href="../ListOfTypes.html#Float_t">Float_t</a> lappsd[3] ;
1190 lappsd[0] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(0) / 2.0 ;
1191 lappsd[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetLeadToMicro2Gap">GetLeadToMicro2Gap</a>() / 2.0 ;
1192 lappsd[2] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(2) / 2.0 ;
1193
1194 gMC-&gt;Gsvolu("PLAPPS", "BOX ", idtmed[798], lappsd, 3) ;
1195
1196 y0 = y0 - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetLeadConverterThickness">GetLeadConverterThickness</a>() / 2. - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetLeadToMicro2Gap">GetLeadToMicro2Gap</a>() / 2. ;
1197
1198 gMC-&gt;Gspos("PLAPPS", 1, "PPSD", 0.0, y0, 0.0, 0, "ONLY") ;
1199
1200}
1201
1202
1203<b>//____________________________________________________________________________</b>
1204<a name="AliPHOSv0:CreateGeometryforCPV"> </a><a href="../ListOfTypes.html#void">void</a> <a href=".././AliPHOSv0.html#AliPHOSv0:CreateGeometryforCPV">AliPHOSv0::CreateGeometryforCPV</a>()
1205{
1206<b> // Create the PHOS-CPV geometry for GEANT</b>
1207<b> // Author: Yuri Kharlov 11 September 2000</b>
1208<b> //</b>
1209 /*
1210 <H2>
1211 Geant3 geometry of PHOS-CPV in ALICE
1212 </H2>
1213 <table width=700>
1214
1215 <tr>
1216 <td>CPV perspective view</td>
1217 <td>CPV front view </td>
1218 </tr>
1219
1220 <tr>
1221 <td> <img height=300 width=290 src="../images/CPVallPersp.gif"> </td>
1222 <td> <img height=300 width=290 src="../images/CPVallFront.gif"> </td>
1223 </tr>
1224
1225 <tr>
1226 <td>One CPV module, perspective view </td>
1227 <td>One CPV module, front view (extended in vertical direction) </td>
1228 </tr>
1229
1230 <tr>
1231 <td><img height=300 width=290 src="../images/CPVmodulePers.gif"></td>
1232 <td><img height=300 width=290 src="../images/CPVmoduleSide.gif"></td>
1233 </tr>
1234
1235 </table>
1236
1237 <H2>
1238 Geant3 geometry tree of PHOS-CPV in ALICE
1239 </H2>
1240 <center>
1241 <img height=300 width=290 src="../images/CPVtree.gif">
1242 </center>
1243 */
1244<b> // </b>
1245
1246 <a href="../ListOfTypes.html#Float_t">Float_t</a> par[3], x,y,z;
1247
1248<b> // Get pointer to the array containing media indexes</b>
1249 <a href="../ListOfTypes.html#Int_t">Int_t</a> *idtmed = fIdtmed-&gt;GetArray() - 699 ;
1250
1251<b> // The box containing all CPV for one PHOS module filled with air </b>
1252 par[0] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(0) / 2.0 ;
1253 par[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(1) / 2.0 ;
1254 par[2] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(2) / 2.0 ;
1255 gMC-&gt;Gsvolu("PCPV", "BOX ", idtmed[798], par, 3) ;
1256
1257 y = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetOuterBoxSize">GetOuterBoxSize</a>(1) / 2.0 ;
1258 gMC-&gt;Gspos("PCPV", 1, "PHOS", 0.0, y, 0.0, 0, "ONLY") ;
1259
1260<b> // Gassiplex board</b>
1261
1262 par[0] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetGassiplexChipSize">GetGassiplexChipSize</a>(0)/2.;
1263 par[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetGassiplexChipSize">GetGassiplexChipSize</a>(1)/2.;
1264 par[2] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetGassiplexChipSize">GetGassiplexChipSize</a>(2)/2.;
1265 gMC-&gt;Gsvolu("PCPC","BOX ",idtmed[707],par,3);
1266
1267<b> // Cu+Ni foil covers Gassiplex board</b>
1268
1269 par[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVCuNiFoilThickness">GetCPVCuNiFoilThickness</a>()/2;
1270 gMC-&gt;Gsvolu("PCPD","BOX ",idtmed[710],par,3);
1271 y = -(<a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetGassiplexChipSize">GetGassiplexChipSize</a>(1)/2 - par[1]);
1272 gMC-&gt;Gspos("PCPD",1,"PCPC",0,y,0,0,"ONLY");
1273
1274<b> // Position of the chip inside CPV</b>
1275
1276 <a href="../ListOfTypes.html#Float_t">Float_t</a> xStep = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVActiveSize">GetCPVActiveSize</a>(0) / (<a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNumberOfCPVChipsPhi">GetNumberOfCPVChipsPhi</a>() + 1);
1277 <a href="../ListOfTypes.html#Float_t">Float_t</a> zStep = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVActiveSize">GetCPVActiveSize</a>(1) / (<a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNumberOfCPVChipsZ">GetNumberOfCPVChipsZ</a>() + 1);
1278 <a href="../ListOfTypes.html#Int_t">Int_t</a> copy = 0;
1279 y = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVFrameSize">GetCPVFrameSize</a>(1)/2 - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetFTPosition">GetFTPosition</a>(0) +
1280 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVTextoliteThickness">GetCPVTextoliteThickness</a>() / 2 + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetGassiplexChipSize">GetGassiplexChipSize</a>(1) / 2 + 0.1;
1281 for (<a href="../ListOfTypes.html#Int_t">Int_t</a> ix=0; ix&lt;<a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNumberOfCPVChipsPhi">GetNumberOfCPVChipsPhi</a>(); ix++) {
1282 x = xStep * (ix+1) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVActiveSize">GetCPVActiveSize</a>(0)/2;
1283 for (<a href="../ListOfTypes.html#Int_t">Int_t</a> iz=0; iz&lt;<a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNumberOfCPVChipsZ">GetNumberOfCPVChipsZ</a>(); iz++) {
1284 copy++;
1285 z = zStep * (iz+1) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVActiveSize">GetCPVActiveSize</a>(1)/2;
1286 gMC-&gt;Gspos("PCPC",copy,"PCPV",x,y,z,0,"ONLY");
1287 }
1288 }
1289
1290<b> // Foiled textolite (1 mm of textolite + 50 mkm of Cu + 6 mkm of Ni)</b>
1291
1292 par[0] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVActiveSize">GetCPVActiveSize</a>(0) / 2;
1293 par[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVTextoliteThickness">GetCPVTextoliteThickness</a>() / 2;
1294 par[2] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVActiveSize">GetCPVActiveSize</a>(1) / 2;
1295 gMC-&gt;Gsvolu("PCPF","BOX ",idtmed[707],par,3);
1296
1297<b> // Argon gas volume</b>
1298
1299 par[1] = (<a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetFTPosition">GetFTPosition</a>(2) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetFTPosition">GetFTPosition</a>(1) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVTextoliteThickness">GetCPVTextoliteThickness</a>()) / 2;
1300 gMC-&gt;Gsvolu("PCPG","BOX ",idtmed[715],par,3);
1301
1302 for (<a href="../ListOfTypes.html#Int_t">Int_t</a> i=0; i&lt;4; i++) {
1303 y = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVFrameSize">GetCPVFrameSize</a>(1) / 2 - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetFTPosition">GetFTPosition</a>(i) + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVTextoliteThickness">GetCPVTextoliteThickness</a>()/2;
1304 gMC-&gt;Gspos("PCPF",i+1,"PCPV",0,y,0,0,"ONLY");
1305 if(i==1){
1306 y-= (<a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetFTPosition">GetFTPosition</a>(2) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetFTPosition">GetFTPosition</a>(1)) / 2;
1307 gMC-&gt;Gspos("PCPG",1,"PCPV ",0,y,0,0,"ONLY");
1308 }
1309 }
1310
1311<b> // Dummy sensitive plane in the middle of argone gas volume</b>
1312
1313 par[1]=0.001;
1314 gMC-&gt;Gsvolu("PCPQ","BOX ",idtmed[715],par,3);
1315 gMC-&gt;Gspos ("PCPQ",1,"PCPG",0,0,0,0,"ONLY");
1316
1317<b> // Cu+Ni foil covers textolite</b>
1318
1319 par[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVCuNiFoilThickness">GetCPVCuNiFoilThickness</a>() / 2;
1320 gMC-&gt;Gsvolu("PCP1","BOX ",idtmed[710],par,3);
1321 y = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVTextoliteThickness">GetCPVTextoliteThickness</a>()/2 - par[1];
1322 gMC-&gt;Gspos ("PCP1",1,"PCPF",0,y,0,0,"ONLY");
1323
1324<b> // Aluminum frame around CPV</b>
1325
1326 par[0] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVFrameSize">GetCPVFrameSize</a>(0)/2;
1327 par[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVFrameSize">GetCPVFrameSize</a>(1)/2;
1328 par[2] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(2) /2;
1329 gMC-&gt;Gsvolu("PCF1","BOX ",idtmed[701],par,3);
1330
1331 par[0] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(0)/2 - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVFrameSize">GetCPVFrameSize</a>(0);
1332 par[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVFrameSize">GetCPVFrameSize</a>(1)/2;
1333 par[2] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVFrameSize">GetCPVFrameSize</a>(2)/2;
1334 gMC-&gt;Gsvolu("PCF2","BOX ",idtmed[701],par,3);
1335
1336 for (<a href="../ListOfTypes.html#Int_t">Int_t</a> j=0; j&lt;=1; j++) {
1337 x = TMath::Sign(1,2*j-1) * (<a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(0) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVFrameSize">GetCPVFrameSize</a>(0)) / 2;
1338 gMC-&gt;Gspos("PCF1",j+1,"PCPV", x,0,0,0,"ONLY");
1339 z = TMath::Sign(1,2*j-1) * (<a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(2) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVFrameSize">GetCPVFrameSize</a>(2)) / 2;
1340 gMC-&gt;Gspos("PCF2",j+1,"PCPV",0, 0,z,0,"ONLY");
1341 }
1342
1343}
1344
1345
1346<b>//____________________________________________________________________________</b>
1347<a name="AliPHOSv0:CreateGeometryforSupport"> </a><a href="../ListOfTypes.html#void">void</a> <a href=".././AliPHOSv0.html#AliPHOSv0:CreateGeometryforSupport">AliPHOSv0::CreateGeometryforSupport</a>()
1348{
1349<b> // Create the PHOS' support geometry for GEANT</b>
1350<b> //</b>
1351 /*
1352 <H2>
1353 Geant3 geometry of the PHOS's support
1354 </H2>
1355 <P><CENTER>
1356 <IMG Align=BOTTOM ALT="EMC geant tree" SRC="../images/PHOS_support.gif">
1357 </CENTER><P>
1358 */
1359<b> // </b>
1360
1361 <a href="../ListOfTypes.html#Float_t">Float_t</a> par[5], x0,y0,z0 ;
1362 <a href="../ListOfTypes.html#Int_t">Int_t</a> i,j,copy;
1363
1364<b> // Get pointer to the array containing media indexes</b>
1365 <a href="../ListOfTypes.html#Int_t">Int_t</a> *idtmed = fIdtmed-&gt;GetArray() - 699 ;
1366
1367<b> // --- Dummy box containing two rails on which PHOS support moves</b>
1368<b> // --- Put these rails to the bottom of the L3 magnet</b>
1369
1370 par[0] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetRailRoadSize">GetRailRoadSize</a>(0) / 2.0 ;
1371 par[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetRailRoadSize">GetRailRoadSize</a>(1) / 2.0 ;
1372 par[2] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetRailRoadSize">GetRailRoadSize</a>(2) / 2.0 ;
1373 gMC-&gt;Gsvolu("PRRD", "BOX ", idtmed[798], par, 3) ;
1374
1375 y0 = -(<a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetRailsDistanceFromIP">GetRailsDistanceFromIP</a>() - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetRailRoadSize">GetRailRoadSize</a>(1) / 2.0) ;
1376 gMC-&gt;Gspos("PRRD", 1, "ALIC", 0.0, y0, 0.0, 0, "ONLY") ;
1377
1378<b> // --- Dummy box containing one rail</b>
1379
1380 par[0] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetRailOuterSize">GetRailOuterSize</a>(0) / 2.0 ;
1381 par[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetRailOuterSize">GetRailOuterSize</a>(1) / 2.0 ;
1382 par[2] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetRailOuterSize">GetRailOuterSize</a>(2) / 2.0 ;
1383 gMC-&gt;Gsvolu("PRAI", "BOX ", idtmed[798], par, 3) ;
1384
1385 for (i=0; i&lt;2; i++) {
1386 x0 = (2*i-1) * <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetDistanceBetwRails">GetDistanceBetwRails</a>() / 2.0 ;
1387 gMC-&gt;Gspos("PRAI", i, "PRRD", x0, 0.0, 0.0, 0, "ONLY") ;
1388 }
1389
1390<b> // --- Upper and bottom steel parts of the rail</b>
1391
1392 par[0] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetRailPart1">GetRailPart1</a>(0) / 2.0 ;
1393 par[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetRailPart1">GetRailPart1</a>(1) / 2.0 ;
1394 par[2] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetRailPart1">GetRailPart1</a>(2) / 2.0 ;
1395 gMC-&gt;Gsvolu("PRP1", "BOX ", idtmed[716], par, 3) ;
1396
1397 y0 = - (<a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetRailOuterSize">GetRailOuterSize</a>(1) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetRailPart1">GetRailPart1</a>(1)) / 2.0 ;
1398 gMC-&gt;Gspos("PRP1", 1, "PRAI", 0.0, y0, 0.0, 0, "ONLY") ;
1399 y0 = (<a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetRailOuterSize">GetRailOuterSize</a>(1) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetRailPart1">GetRailPart1</a>(1)) / 2.0 - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetRailPart3">GetRailPart3</a>(1);
1400 gMC-&gt;Gspos("PRP1", 2, "PRAI", 0.0, y0, 0.0, 0, "ONLY") ;
1401
1402<b> // --- The middle vertical steel parts of the rail</b>
1403
1404 par[0] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetRailPart2">GetRailPart2</a>(0) / 2.0 ;
1405 par[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetRailPart2">GetRailPart2</a>(1) / 2.0 ;
1406 par[2] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetRailPart2">GetRailPart2</a>(2) / 2.0 ;
1407 gMC-&gt;Gsvolu("PRP2", "BOX ", idtmed[716], par, 3) ;
1408
1409 y0 = - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetRailPart3">GetRailPart3</a>(1) / 2.0 ;
1410 gMC-&gt;Gspos("PRP2", 1, "PRAI", 0.0, y0, 0.0, 0, "ONLY") ;
1411
1412<b> // --- The most upper steel parts of the rail</b>
1413
1414 par[0] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetRailPart3">GetRailPart3</a>(0) / 2.0 ;
1415 par[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetRailPart3">GetRailPart3</a>(1) / 2.0 ;
1416 par[2] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetRailPart3">GetRailPart3</a>(2) / 2.0 ;
1417 gMC-&gt;Gsvolu("PRP3", "BOX ", idtmed[716], par, 3) ;
1418
1419 y0 = (<a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetRailOuterSize">GetRailOuterSize</a>(1) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetRailPart3">GetRailPart3</a>(1)) / 2.0 ;
1420 gMC-&gt;Gspos("PRP3", 1, "PRAI", 0.0, y0, 0.0, 0, "ONLY") ;
1421
1422<b> // --- The wall of the cradle</b>
1423<b> // --- The wall is empty: steel thin walls and air inside</b>
1424
1425 par[1] = TMath::Sqrt(
1426 TMath::Power((<a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetIPtoOuterCoverDistance">GetIPtoOuterCoverDistance</a>() + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetOuterBoxSize">GetOuterBoxSize</a>(1)),2) +
1427 TMath::Power((<a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetOuterBoxSize">GetOuterBoxSize</a>(0)/2),2)) + 10.;
1428 par[0] = par[1] - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCradleWall">GetCradleWall</a>(1) ;
1429 par[2] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCradleWall">GetCradleWall</a>(2) / 2.0 ;
1430 par[3] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCradleWall">GetCradleWall</a>(3) ;
1431 par[4] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCradleWall">GetCradleWall</a>(4) ;
1432 gMC-&gt;Gsvolu("PCRA", "TUBS", idtmed[716], par, 5) ;
1433
1434 par[0] -= <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCradleWallThickness">GetCradleWallThickness</a>() ;
1435 par[1] -= <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCradleWallThickness">GetCradleWallThickness</a>() ;
1436 par[2] -= <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCradleWallThickness">GetCradleWallThickness</a>() ;
1437 gMC-&gt;Gsvolu("PCRE", "TUBS", idtmed[798], par, 5) ;
1438 gMC-&gt;Gspos ("PCRE", 1, "PCRA", 0.0, 0.0, 0.0, 0, "ONLY") ;
1439
1440 for (i=0; i&lt;2; i++) {
1441 z0 = (2*i-1) * (<a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetOuterBoxSize">GetOuterBoxSize</a>(2) + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCradleWall">GetCradleWall</a>(2)) / 2.0 ;
1442 gMC-&gt;Gspos("PCRA", i, "ALIC", 0.0, 0.0, z0, 0, "ONLY") ;
1443 }
1444
1445<b> // --- The "wheels" of the cradle</b>
1446
1447 par[0] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCradleWheel">GetCradleWheel</a>(0) / 2;
1448 par[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCradleWheel">GetCradleWheel</a>(1) / 2;
1449 par[2] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCradleWheel">GetCradleWheel</a>(2) / 2;
1450 gMC-&gt;Gsvolu("PWHE", "BOX ", idtmed[716], par, 3) ;
1451
1452 y0 = -(<a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetRailsDistanceFromIP">GetRailsDistanceFromIP</a>() - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetRailRoadSize">GetRailRoadSize</a>(1) -
1453 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCradleWheel">GetCradleWheel</a>(1)/2) ;
1454 for (i=0; i&lt;2; i++) {
1455 z0 = (2*i-1) * ((<a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetOuterBoxSize">GetOuterBoxSize</a>(2) + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCradleWheel">GetCradleWheel</a>(2)) / 2.0 +
1456 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCradleWall">GetCradleWall</a>(2));
1457 for (j=0; j&lt;2; j++) {
1458 copy = 2*i + j;
1459 x0 = (2*j-1) * <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetDistanceBetwRails">GetDistanceBetwRails</a>() / 2.0 ;
1460 gMC-&gt;Gspos("PWHE", copy, "ALIC", x0, y0, z0, 0, "ONLY") ;
1461 }
1462 }
1463
1464}
1465
1466<b>//____________________________________________________________________________</b>
1467<a name="AliPHOSv0:ZMin"> </a><a href="../ListOfTypes.html#Float_t">Float_t</a> <a href=".././AliPHOSv0.html#AliPHOSv0:ZMin">AliPHOSv0::ZMin</a>(<a href="../ListOfTypes.html#void">void</a>) const
1468{
1469<b> // Overall dimension of the PHOS (min)</b>
1470<b> // Take it twice more than the PHOS module size</b>
1471 return -<a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetOuterBoxSize">GetOuterBoxSize</a>(2);
1472}
1473
1474<b>//____________________________________________________________________________</b>
1475<a name="AliPHOSv0:ZMax"> </a><a href="../ListOfTypes.html#Float_t">Float_t</a> <a href=".././AliPHOSv0.html#AliPHOSv0:ZMax">AliPHOSv0::ZMax</a>(<a href="../ListOfTypes.html#void">void</a>) const
1476{
1477<b> // Overall dimension of the PHOS (max)</b>
1478<b> // Take it twice more than the PHOS module size</b>
1479 return <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetOuterBoxSize">GetOuterBoxSize</a>(2);
1480}
1481
1482<b>//____________________________________________________________________________</b>
1483<a name="AliPHOSv0:Init"> </a><a href="../ListOfTypes.html#void">void</a> <a href=".././AliPHOSv0.html#AliPHOSv0:Init">AliPHOSv0::Init</a>(<a href="../ListOfTypes.html#void">void</a>)
1484{
1485<b> // Just prints an information message</b>
1486
1487 <a href="../ListOfTypes.html#Int_t">Int_t</a> i;
1488
1489 printf("n");
1490 for(i=0;i&lt;35;i++) printf("*");
1491 printf(" PHOS_INIT ");
1492 for(i=0;i&lt;35;i++) printf("*");
1493 printf("n");
1494
1495<b> // Here the PHOS initialisation code (if any!)</b>
1496
1497 if (<a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>!=0)
1498 cout &lt;&lt; "<a href=".././AliPHOS.html">AliPHOS</a>" &lt;&lt; <a href="#AliPHOSv0:Version">Version</a>() &lt;&lt; " : PHOS geometry intialized for " &lt;&lt; <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;GetName() &lt;&lt; endl ;
1499 else
1500 cout &lt;&lt; "<a href=".././AliPHOS.html">AliPHOS</a>" &lt;&lt; <a href="#AliPHOSv0:Version">Version</a>() &lt;&lt; " : PHOS geometry initialization failed !" &lt;&lt; endl ;
1501
1502 for(i=0;i&lt;80;i++) printf("*");
1503 printf("n");
1504
1505}
1506
1507</pre>
1508
1509<!--SIGNATURE-->
1510<br>
1511<address>
1512<hr>
1513<center>
1514<a href="http://root.cern.ch/root/Welcome.html">ROOT page</a> - <a href="../ClassIndex.html">Class index</a> - <a href="#TopOfPage">Top of the page</a><br>
1515</center>
1516<hr>This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to <a href="mailto:rootdev@root.cern.ch">ROOT support</a>, or contact <a href="mailto:rootdev@root.cern.ch">the developers</a> with any questions or problems regarding ROOT.
1517</address>
1518</body>
1519</html>