]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PHOS/html/src/AliPHOSv0.cxx.html
new html documentatin
[u/mrichter/AliRoot.git] / PHOS / html / src / AliPHOSv0.cxx.html
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
69 ClassImp(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>