]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PHOS/PHOS-HTML/src/AliPHOSv0.cxx.html
This commit was generated by cvs2svn to compensate for changes in r799,
[u/mrichter/AliRoot.git] / PHOS / 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: Sun Mar 12 00:45:57 2000            -->
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, motif, windows nt, 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>//                  </b>
40 <b>//*-- Author: Yves Schutz (SUBATECH)</b>
41
42
43 <b>// --- ROOT system ---</b>
44
45 #include "TBRIK.h"
46 #include "TNode.h"
47 #include "TRandom.h"
48
49 <b>// --- Standard library ---</b>
50
51 #include &lt;cstdio&gt;
52 #include &lt;cstring&gt;
53 #include &lt;cstdlib&gt;
54 #include &lt;strstream&gt;
55 #include &lt;cassert&gt;
56
57 <b>// --- AliRoot header files ---</b>
58
59 #include "<a href="../AliPHOSv0.h">AliPHOSv0.h</a>"
60 #include "<a href="../AliPHOSHit.h">AliPHOSHit.h</a>"
61 #include "<a href="../AliPHOSDigit.h">AliPHOSDigit.h</a>"
62 #include "<a href="../AliPHOSReconstructioner.h">AliPHOSReconstructioner.h</a>"
63 #include "AliRun.h"
64 #include "AliConst.h"
65
66 ClassImp(AliPHOSv0)
67
68 <b>//____________________________________________________________________________</b>
69 <a name="AliPHOSv0:AliPHOSv0"> </a><a href=".././AliPHOSv0.html#AliPHOSv0:AliPHOSv0">AliPHOSv0::AliPHOSv0</a>()
70 {
71 <b>  // ctor</b>
72   <a href=".././AliPHOSv0.html#AliPHOSv0:fNTmpHits">fNTmpHits</a> = 0 ; 
73   <a href=".././AliPHOSv0.html#AliPHOSv0:fTmpHits">fTmpHits</a>  = 0 ; 
74 }
75
76 <b>//____________________________________________________________________________</b>
77 <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):
78   <a href=".././AliPHOS.html">AliPHOS</a>(name,title)
79 {
80 <b>  // ctor : title is used to identify the layout</b>
81 <b>  //        GPS2 = 5 modules (EMC + PPSD)   </b>
82 <b>  // We use 2 arrays of hits :</b>
83 <b>  //</b>
84 <b>  //   - fHits (the "normal" one), which retains the hits associated with</b>
85 <b>  //     the current primary particle being tracked</b>
86 <b>  //     (this array is reset after each primary has been tracked).</b>
87 <b>  //</b>
88 <b>  //   - <a href=".././AliPHOSv0.html#AliPHOSv0:fTmpHits">fTmpHits</a>, which retains all the hits of the current event. It </b>
89 <b>  //     is used for the digitization part.</b>
90
91   <a href=".././AliPHOSv0.html#AliPHOSv0:fPinElectronicNoise">fPinElectronicNoise</a> = 0.010 ;
92   <a href=".././AliPHOSv0.html#AliPHOSv0:fDigitThreshold">fDigitThreshold</a>      = 1. ;   // 1 GeV 
93
94   fHits   = new TClonesArray("<a href=".././AliPHOSHit.html">AliPHOSHit</a>",100) ;
95   gAlice-&gt;AddHitList(fHits) ; 
96
97   <a href=".././AliPHOSv0.html#AliPHOSv0:fTmpHits">fTmpHits</a>= new TClonesArray("<a href=".././AliPHOSHit.html">AliPHOSHit</a>",100) ;
98
99   <a href=".././AliPHOSv0.html#AliPHOSv0:fNTmpHits">fNTmpHits</a> = fNhits = 0 ;
100
101   fDigits = new TClonesArray("<a href=".././AliPHOSDigit.html">AliPHOSDigit</a>",100) ;
102
103
104   fIshunt     =  1 ; // All hits are associated with primary particles
105  
106 <b>  // gets an instance of the geometry parameters class  </b>
107    
108   <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a> =  <a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetInstance">AliPHOSGeometry::GetInstance</a>(title, "") ; 
109
110   if (<a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:IsInitialized">IsInitialized</a>() ) 
111     cout &lt;&lt; "<a href=".././AliPHOSv0.html">AliPHOSv0</a> : PHOS geometry intialized for " &lt;&lt; <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;GetName() &lt;&lt; endl ;
112   else
113    cout &lt;&lt; "<a href=".././AliPHOSv0.html">AliPHOSv0</a> : PHOS geometry initialization failed !" &lt;&lt; endl ;   
114 }
115 <b>//____________________________________________________________________________</b>
116 <a name="AliPHOSv0:AliPHOSv0"> </a><a href=".././AliPHOSv0.html#AliPHOSv0:AliPHOSv0">AliPHOSv0::AliPHOSv0</a>(<a href=".././AliPHOSReconstructioner.html">AliPHOSReconstructioner</a> * Reconstructioner, const <a href="../ListOfTypes.html#char">char</a> *name, const <a href="../ListOfTypes.html#char">char</a> *title):
117   <a href=".././AliPHOS.html">AliPHOS</a>(name,title)
118 {
119 <b>  // ctor : title is used to identify the layout</b>
120 <b>  //        GPS2 = 5 modules (EMC + PPSD)   </b>
121 <b>  // We use 2 arrays of hits :</b>
122 <b>  //</b>
123 <b>  //   - fHits (the "normal" one), which retains the hits associated with</b>
124 <b>  //     the current primary particle being tracked</b>
125 <b>  //     (this array is reset after each primary has been tracked).</b>
126 <b>  //</b>
127 <b>  //   - <a href=".././AliPHOSv0.html#AliPHOSv0:fTmpHits">fTmpHits</a>, which retains all the hits of the current event. It </b>
128 <b>  //     is used for the digitization part.</b>
129
130   <a href=".././AliPHOSv0.html#AliPHOSv0:fPinElectronicNoise">fPinElectronicNoise</a> = 0.010 ;
131   fHits   = new TClonesArray("<a href=".././AliPHOSHit.html">AliPHOSHit</a>",100) ;
132   fDigits = new TClonesArray("<a href=".././AliPHOSDigit.html">AliPHOSDigit</a>",100) ;
133   <a href=".././AliPHOSv0.html#AliPHOSv0:fTmpHits">fTmpHits</a>= new TClonesArray("<a href=".././AliPHOSHit.html">AliPHOSHit</a>",100) ;
134
135   <a href=".././AliPHOSv0.html#AliPHOSv0:fNTmpHits">fNTmpHits</a> = fNhits = 0 ;
136
137   fIshunt     =  1 ; // All hits are associated with primary particles
138  
139 <b>  // gets an instance of the geometry parameters class  </b>
140   <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a> =  <a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetInstance">AliPHOSGeometry::GetInstance</a>(title, "") ; 
141
142   if (<a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:IsInitialized">IsInitialized</a>() ) 
143     cout &lt;&lt; "<a href=".././AliPHOSv0.html">AliPHOSv0</a> : PHOS geometry intialized for " &lt;&lt; <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;GetName() &lt;&lt; endl ;
144   else
145    cout &lt;&lt; "<a href=".././AliPHOSv0.html">AliPHOSv0</a> : PHOS geometry initialization failed !" &lt;&lt; endl ;   
146
147 <b>  // Defining the PHOS Reconstructioner</b>
148  
149  <a href=".././AliPHOSv0.html#AliPHOSv0:fReconstructioner">fReconstructioner</a> = Reconstructioner ;
150 }
151
152 <b>//____________________________________________________________________________</b>
153 <a name="AliPHOSv0:~AliPHOSv0"> </a><a href=".././AliPHOSv0.html">AliPHOSv0</a>::~<a href=".././AliPHOSv0.html">AliPHOSv0</a>()
154 {
155 <b>  // dtor</b>
156
157   <a href=".././AliPHOSv0.html#AliPHOSv0:fTmpHits">fTmpHits</a>-&gt;Delete() ; 
158   delete <a href=".././AliPHOSv0.html#AliPHOSv0:fTmpHits">fTmpHits</a> ;
159   <a href=".././AliPHOSv0.html#AliPHOSv0:fTmpHits">fTmpHits</a> = 0 ; 
160
161   <a href=".././AliPHOSv0.html#AliPHOSv0:fEmcClusters">fEmcClusters</a>-&gt;Delete() ; 
162   delete <a href=".././AliPHOSv0.html#AliPHOSv0:fEmcClusters">fEmcClusters</a> ; 
163   <a href=".././AliPHOSv0.html#AliPHOSv0:fEmcClusters">fEmcClusters</a> = 0 ; 
164
165   <a href=".././AliPHOSv0.html#AliPHOSv0:fPpsdClusters">fPpsdClusters</a>-&gt;Delete() ;
166   delete <a href=".././AliPHOSv0.html#AliPHOSv0:fPpsdClusters">fPpsdClusters</a> ;
167   <a href=".././AliPHOSv0.html#AliPHOSv0:fPpsdClusters">fPpsdClusters</a> = 0 ; 
168
169   <a href=".././AliPHOSv0.html#AliPHOSv0:fTrackSegments">fTrackSegments</a>-&gt;Delete() ; 
170   delete <a href=".././AliPHOSv0.html#AliPHOSv0:fTrackSegments">fTrackSegments</a> ;
171   <a href=".././AliPHOSv0.html#AliPHOSv0:fTrackSegments">fTrackSegments</a> = 0 ; 
172 }
173
174 <b>//____________________________________________________________________________</b>
175 <a name="AliPHOSv0:AddHit"> </a><a href="../ListOfTypes.html#void">void</a> <a href=".././AliPHOSv0.html#AliPHOSv0:AddHit">AliPHOSv0::AddHit</a>(<a href="../ListOfTypes.html#Int_t">Int_t</a> primary, <a href="../ListOfTypes.html#Int_t">Int_t</a> Id, <a href="../ListOfTypes.html#Float_t">Float_t</a> * hits)
176 {
177 <b>  // Add a hit to the hit list.</b>
178 <b>  // A PHOS hit is the sum of all hits in a single crystal</b>
179 <b>  //   or in a single PPSD gas cell</b>
180
181   <a href="../ListOfTypes.html#Int_t">Int_t</a> hitCounter ;
182   TClonesArray &amp;ltmphits = *<a href=".././AliPHOSv0.html#AliPHOSv0:fTmpHits">fTmpHits</a> ;
183   <a href=".././AliPHOSHit.html">AliPHOSHit</a> *newHit ;
184   <a href=".././AliPHOSHit.html">AliPHOSHit</a> *curHit ;
185   <a href="../ListOfTypes.html#Bool_t">Bool_t</a> deja = kFALSE ;
186
187 <b>  // In any case, fills the fTmpHit TClonesArray (with "accumulated hits")</b>
188
189   newHit = new <a href=".././AliPHOSHit.html">AliPHOSHit</a>(primary, Id, hits) ;
190
191   for ( hitCounter = 0 ; hitCounter &lt; <a href=".././AliPHOSv0.html#AliPHOSv0:fNTmpHits">fNTmpHits</a> &amp;&amp; !deja ; hitCounter++ ) {
192     curHit = (<a href=".././AliPHOSHit.html">AliPHOSHit</a>*) ltmphits[hitCounter] ;
193     if( *curHit == *newHit ) {
194      *curHit = *curHit + *newHit ;
195       deja = kTRUE ;
196     }
197   }
198        
199   if ( !deja ) {
200     new(ltmphits[<a href=".././AliPHOSv0.html#AliPHOSv0:fNTmpHits">fNTmpHits</a>]) <a href=".././AliPHOSHit.html">AliPHOSHit</a>(*newHit) ;
201     <a href=".././AliPHOSv0.html#AliPHOSv0:fNTmpHits">fNTmpHits</a>++ ;
202   }
203
204 <b>  // Please note that the <a href=".././AliPHOSv0.html#AliPHOSv0:fTmpHits">fTmpHits</a> array must survive up to the</b>
205 <b>  // end of the events, so it does not appear e.g. in ResetHits() (</b>
206 <b>  // which is called at the end of each primary).  </b>
207
208 <b>  //  if (IsTreeSelected('H')) {</b>
209 <b>    // And, if we really want raw hits tree, have the fHits array filled also</b>
210 <b>  //    TClonesArray &amp;lhits = *fHits;</b>
211 <b>  //    new(lhits[fNhits]) <a href=".././AliPHOSHit.html">AliPHOSHit</a>(*newHit) ;</b>
212 <b>  //    fNhits++ ;</b>
213 <b>  //  }</b>
214
215   delete newHit;
216
217 }
218
219
220 <b>//____________________________________________________________________________</b>
221 <a name="AliPHOSv0:BuildGeometry"> </a><a href="../ListOfTypes.html#void">void</a> <a href=".././AliPHOSv0.html#AliPHOSv0:BuildGeometry">AliPHOSv0::BuildGeometry</a>()
222 {
223 <b>  // Build the PHOS geometry for the ROOT display</b>
224 <b>  //</b>
225   /*
226     <H2>
227      PHOS in ALICE displayed by root
228     </H2>
229     <UL>
230     <LI> All Views
231     <P>
232     <CENTER>
233     <IMG Align=BOTTOM ALT="All Views" SRC="../images/AliPHOSv0AllViews.gif"> 
234     </CENTER></P></LI>
235     <LI> Front View
236     <P>
237     <CENTER>
238     <IMG Align=BOTTOM ALT="Front View" SRC="../images/AliPHOSv0FrontView.gif"> 
239     </CENTER></P></LI>
240      <LI> 3D View 1
241     <P>
242     <CENTER>
243     <IMG Align=BOTTOM ALT="3D View 1" SRC="../images/AliPHOSv03DView1.gif"> 
244     </CENTER></P></LI>
245     <LI> 3D View 2
246     <P>
247     <CENTER>
248     <IMG Align=BOTTOM ALT="3D View 2" SRC="../images/AliPHOSv03DView2.gif"> 
249     </CENTER></P></LI>
250     </UL>
251   */
252 <b>  //  </b>
253
254   this-&gt;<a href="#AliPHOSv0:BuildGeometryforPHOS">BuildGeometryforPHOS</a>() ; 
255   if ( ( strcmp(<a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;GetName(), "GPS2" ) == 0 ) ) 
256     this-&gt;<a href="#AliPHOSv0:BuildGeometryforPPSD">BuildGeometryforPPSD</a>() ;
257   else
258     cout &lt;&lt; "<a href=".././AliPHOSv0.html#AliPHOSv0:BuildGeometry">AliPHOSv0::BuildGeometry</a> : no charged particle identification system installed" &lt;&lt; endl; 
259
260 }
261
262 <b>//____________________________________________________________________________</b>
263 <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>)
264 {
265 <b> // Build the PHOS-EMC geometry for the ROOT display</b>
266
267   const <a href="../ListOfTypes.html#Int_t">Int_t</a> kColorPHOS = kRed ;
268   const <a href="../ListOfTypes.html#Int_t">Int_t</a> kColorXTAL = kBlue ;
269
270   <a href="../ListOfTypes.html#Double_t">Double_t</a> const kRADDEG = 180.0 / kPI ;
271  
272   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, 
273                                              <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetOuterBoxSize">GetOuterBoxSize</a>(1)/2, 
274                                              <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetOuterBoxSize">GetOuterBoxSize</a>(2)/2 );
275
276 <b>  // Textolit Wall box, position inside PHOS </b>
277   
278   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, 
279                                                           <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetTextolitBoxSize">GetTextolitBoxSize</a>(1)/2, 
280                                                           <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetTextolitBoxSize">GetTextolitBoxSize</a>(2)/2);
281
282 <b>  // Polystyrene Foam Plate</b>
283
284   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, 
285                                                                 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetSecondUpperPlateThickness">GetSecondUpperPlateThickness</a>()/2, 
286                                                                 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetTextolitBoxSize">GetTextolitBoxSize</a>(2)/2 ) ; 
287
288 <b>  // Air Filled Box</b>
289  
290   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, 
291                                                             <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAirFilledBoxSize">GetAirFilledBoxSize</a>(1)/2, 
292                                                             <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAirFilledBoxSize">GetAirFilledBoxSize</a>(2)/2 );
293
294 <b>  // Crystals Box</b>
295
296   <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) ; 
297   <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) ; 
298   <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) ; 
299
300   <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>() ;
301   <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 
302              + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetModuleBoxThickness">GetModuleBoxThickness</a>() / 2.0 ;
303   <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>() ;
304   
305   new TBRIK( "CrystalsBox", "PHOS crystals box", "<a href="../ListOfTypes.html#void">void</a>", xl, yl, zl ) ;
306
307 <b>// position PHOS into ALICE</b>
308
309   <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 ;
310   <a href="../ListOfTypes.html#Int_t">Int_t</a> number = 988 ; 
311   <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>() ) ) ;
312   pphi *= kRADDEG ;
313   TNode * top = gAlice-&gt;GetGeometry()-&gt;GetNode("alice") ;
314  
315   <a href="../ListOfTypes.html#char">char</a> * nodename = new <a href="../ListOfTypes.html#char">char</a>[20] ;  
316   <a href="../ListOfTypes.html#char">char</a> * rotname  = new <a href="../ListOfTypes.html#char">char</a>[20] ; 
317
318   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++ ) { 
319    <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 ) ;
320    sprintf(rotname, "%s%d", "rot", number++) ;
321    new TRotMatrix(rotname, rotname, 90, angle, 90, 90 + angle, 0, 0);
322    top-&gt;cd();
323    sprintf(nodename,"%s%d", "Module", i) ;    
324    <a href="../ListOfTypes.html#Float_t">Float_t</a> x =  r * TMath::Sin( angle / kRADDEG ) ;
325    <a href="../ListOfTypes.html#Float_t">Float_t</a> y = -r * TMath::Cos( angle / kRADDEG ) ;
326    TNode * outerboxnode = new TNode(nodename, nodename, "OuterBox", x, y, 0, rotname ) ;
327    outerboxnode-&gt;SetLineColor(kColorPHOS) ;
328    fNodes-&gt;Add(outerboxnode) ;
329    outerboxnode-&gt;cd() ; 
330 <b>   // now inside the outer box the textolit box</b>
331    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.  ;
332    sprintf(nodename,"%s%d", "TexBox", i) ;  
333    TNode * textolitboxnode = new TNode(nodename, nodename, "TextolitBox", 0, y, 0) ; 
334    textolitboxnode-&gt;SetLineColor(kColorPHOS) ;
335    fNodes-&gt;Add(textolitboxnode) ;
336 <b>   // upper foam plate inside outre box</b>
337    outerboxnode-&gt;cd() ; 
338    sprintf(nodename, "%s%d", "UFPlate", i) ;
339    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 ;
340    TNode * upperfoamplatenode = new TNode(nodename, nodename, "UpperFoamPlate", 0, y, 0) ; 
341    upperfoamplatenode-&gt;SetLineColor(kColorPHOS) ;
342    fNodes-&gt;Add(upperfoamplatenode) ;  
343 <b>   // air filled box inside textolit box (not drawn)</b>
344    textolitboxnode-&gt;cd();
345    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>() ;
346    sprintf(nodename, "%s%d", "AFBox", i) ;
347    TNode * airfilledboxnode = new TNode(nodename, nodename, "AirFilledBox", 0, y, 0) ; 
348    fNodes-&gt;Add(airfilledboxnode) ; 
349 <b>   // crystals box inside air filled box</b>
350    airfilledboxnode-&gt;cd() ; 
351    y = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAirFilledBoxSize">GetAirFilledBoxSize</a>(1) / 2.0 - yl 
352        - ( <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>() 
353        -  <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>() ) ; 
354    sprintf(nodename, "%s%d", "XTBox", i) ; 
355    TNode * crystalsboxnode = new TNode(nodename, nodename, "CrystalsBox", 0, y, 0) ;    
356    crystalsboxnode-&gt;SetLineColor(kColorXTAL) ; 
357    fNodes-&gt;Add(crystalsboxnode) ; 
358   }
359 }
360
361 <b>//____________________________________________________________________________</b>
362 <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>)
363 {
364 <b> //  Build the PHOS-PPSD geometry for the ROOT display</b>
365 <b> //</b>
366   /*
367     <H2>
368      PPSD displayed by root
369     </H2>
370     <UL>
371     <LI> Zoom on PPSD: Front View
372     <P>
373     <CENTER>
374     <IMG Align=BOTTOM ALT="PPSD Front View" SRC="../images/AliPHOSv0PPSDFrontView.gif"> 
375     </CENTER></P></LI>
376     <LI> Zoom on PPSD: Perspective View
377     <P>
378     <CENTER>
379     <IMG Align=BOTTOM ALT="PPSD Prespective View" SRC="../images/AliPHOSv0PPSDPerspectiveView.gif"> 
380     </CENTER></P></LI>
381     </UL>
382   */
383 <b>  //  </b>
384   <a href="../ListOfTypes.html#Double_t">Double_t</a> const kRADDEG = 180.0 / kPI ;
385
386   const <a href="../ListOfTypes.html#Int_t">Int_t</a> kColorPHOS = kRed ;
387   const <a href="../ListOfTypes.html#Int_t">Int_t</a> kColorPPSD = kGreen ;
388   const <a href="../ListOfTypes.html#Int_t">Int_t</a> kColorGas  = kBlue ;  
389   const <a href="../ListOfTypes.html#Int_t">Int_t</a> kColorAir  = kYellow ; 
390
391 <b>  // Box for a full PHOS module</b>
392
393   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:GetPPSDBoxSize">GetPPSDBoxSize</a>(0)/2, 
394                                              <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDBoxSize">GetPPSDBoxSize</a>(1)/2, 
395                                              <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDBoxSize">GetPPSDBoxSize</a>(2)/2 );
396
397 <b>  // Box containing one micromegas module </b>
398
399   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, 
400                                                    <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(1)/2, 
401                                                    <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(2)/2 );
402 <b> // top lid</b>
403
404   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,
405                                                        <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetLidThickness">GetLidThickness</a>()/2,
406                                                        <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(2)/2 ) ; 
407 <b> // composite panel (top and bottom)</b>
408
409   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,
410                                                             <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCompositeThickness">GetCompositeThickness</a>()/2,
411                                                           ( <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 ) ;  
412   
413   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,
414                                                                   <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCompositeThickness">GetCompositeThickness</a>()/2,
415                                                                 ( <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 ) ; 
416 <b> // gas gap (conversion and avalanche)</b>
417
418   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,
419                                             ( <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,
420                                             ( <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 ) ; 
421
422 <b> // anode and cathode </b>
423
424   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,
425                                            <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAnodeThickness">GetAnodeThickness</a>()/2,
426                                          ( <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 ) ; 
427
428   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,
429                                                <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCathodeThickness">GetCathodeThickness</a>()/2,
430                                              ( <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 ) ; 
431 <b> // PC  </b>
432
433   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,
434                                                        <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPCThickness">GetPCThickness</a>()/2,
435                                                      ( <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 ) ; 
436 <b> // Gap between Lead and top micromegas</b>
437
438   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:GetPPSDBoxSize">GetPPSDBoxSize</a>(0)/2,
439                                                 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicro1ToLeadGap">GetMicro1ToLeadGap</a>()/2,
440                                                 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDBoxSize">GetPPSDBoxSize</a>(2)/2  ) ;  
441  
442 <b>// Gap between Lead and bottom micromegas</b>
443
444   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:GetPPSDBoxSize">GetPPSDBoxSize</a>(0)/2,
445                                                    <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetLeadToMicro2Gap">GetLeadToMicro2Gap</a>()/2,
446                                                    <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDBoxSize">GetPPSDBoxSize</a>(2)/2  ) ; 
447 <b> // Lead converter</b>
448    
449   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:GetPPSDBoxSize">GetPPSDBoxSize</a>(0)/2,
450                                                 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetLeadConverterThickness">GetLeadConverterThickness</a>()/2,
451                                                 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDBoxSize">GetPPSDBoxSize</a>(2)/2  ) ; 
452
453 <b>     // position PPSD into ALICE</b>
454
455   <a href="../ListOfTypes.html#char">char</a> * nodename = new <a href="../ListOfTypes.html#char">char</a>[20] ;  
456   <a href="../ListOfTypes.html#char">char</a> * rotname  = new <a href="../ListOfTypes.html#char">char</a>[20] ; 
457
458   <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:GetPPSDBoxSize">GetPPSDBoxSize</a>(1) / 2.0 ;
459   <a href="../ListOfTypes.html#Int_t">Int_t</a> number = 988 ; 
460   TNode * top = gAlice-&gt;GetGeometry()-&gt;GetNode("alice") ;
461  
462   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++ ) { // the number of PHOS modules
463     <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) ;
464     sprintf(rotname, "%s%d", "rotg", number++) ;
465     new TRotMatrix(rotname, rotname, 90, angle, 90, 90 + angle, 0, 0);
466     top-&gt;cd();
467     sprintf(nodename, "%s%d", "Moduleg", i) ;    
468     <a href="../ListOfTypes.html#Float_t">Float_t</a> x =  r * TMath::Sin( angle / kRADDEG ) ;
469     <a href="../ListOfTypes.html#Float_t">Float_t</a> y = -r * TMath::Cos( angle / kRADDEG ) ;
470     TNode * ppsdboxnode = new TNode(nodename , nodename ,"PPSDBox", x, y, 0, rotname ) ;
471     ppsdboxnode-&gt;SetLineColor(kColorPPSD) ;
472     fNodes-&gt;Add(ppsdboxnode) ;
473     ppsdboxnode-&gt;cd() ;
474 <b>    // inside the PPSD box: </b>
475 <b>    //   1.   fNumberOfModulesPhi x fNumberOfModulesZ top micromegas</b>
476     x = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDBoxSize">GetPPSDBoxSize</a>(0) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(0) ) / 2. ;  
477     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 number of micromegas modules in phi per PHOS module
478       <a href="../ListOfTypes.html#Float_t">Float_t</a> z = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDBoxSize">GetPPSDBoxSize</a>(2) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(2) ) / 2. ;
479       TNode * micro1node ; 
480       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 number of micromegas modules in z per PHOS module
481         y = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDBoxSize">GetPPSDBoxSize</a>(1) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicromegas1Thickness">GetMicromegas1Thickness</a>() ) / 2. ; 
482         sprintf(nodename, "%s%d%d%d", "Mic1", i, iphi, iz) ;
483         micro1node  = new TNode(nodename, nodename, "PPSDModule", x, y, z) ;
484         micro1node-&gt;SetLineColor(kColorPPSD) ;  
485         fNodes-&gt;Add(micro1node) ; 
486 <b>     // inside top micromegas</b>
487         micro1node-&gt;cd() ; 
488 <b>     //      a. top lid</b>
489         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. ; 
490         sprintf(nodename, "%s%d%d%d", "Lid", i, iphi, iz) ;
491         TNode * toplidnode = new TNode(nodename, nodename, "TopLid", 0, y, 0) ;
492         toplidnode-&gt;SetLineColor(kColorPPSD) ;  
493         fNodes-&gt;Add(toplidnode) ; 
494 <b>     //      b. composite panel</b>
495         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. ; 
496         sprintf(nodename, "%s%d%d%d", "CompU", i, iphi, iz) ;
497         TNode * compupnode = new TNode(nodename, nodename, "TopPanel", 0, y, 0) ;
498         compupnode-&gt;SetLineColor(kColorPPSD) ;  
499         fNodes-&gt;Add(compupnode) ; 
500 <b>     //      c. anode</b>
501         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. ; 
502         sprintf(nodename, "%s%d%d%d", "Ano", i, iphi, iz) ;
503         TNode * anodenode = new TNode(nodename, nodename, "Anode", 0, y, 0) ;
504         anodenode-&gt;SetLineColor(kColorPHOS) ;  
505         fNodes-&gt;Add(anodenode) ; 
506 <b>     //      d.  gas </b>
507         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. ; 
508         sprintf(nodename, "%s%d%d%d", "GGap", i, iphi, iz) ;
509         TNode * ggapnode = new TNode(nodename, nodename, "GasGap", 0, y, 0) ;
510         ggapnode-&gt;SetLineColor(kColorGas) ;  
511         fNodes-&gt;Add(ggapnode) ;          
512 <b>       //      f. cathode</b>
513         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. ; 
514         sprintf(nodename, "%s%d%d%d", "Cathode", i, iphi, iz) ;
515         TNode * cathodenode = new TNode(nodename, nodename, "Cathode", 0, y, 0) ;
516         cathodenode-&gt;SetLineColor(kColorPHOS) ;  
517         fNodes-&gt;Add(cathodenode) ;        
518 <b>     //      g. printed circuit</b>
519         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. ; 
520         sprintf(nodename, "%s%d%d%d", "PC", i, iphi, iz) ;
521         TNode * pcnode = new TNode(nodename, nodename, "PCBoard", 0, y, 0) ;
522         pcnode-&gt;SetLineColor(kColorPPSD) ;  
523         fNodes-&gt;Add(pcnode) ;        
524 <b>     //      h. composite panel</b>
525         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. ; 
526         sprintf(nodename, "%s%d%d%d", "CompDown", i, iphi, iz) ;
527         TNode * compdownnode = new TNode(nodename, nodename, "BottomPanel", 0, y, 0) ;
528         compdownnode-&gt;SetLineColor(kColorPPSD) ;  
529         fNodes-&gt;Add(compdownnode) ;   
530         z = z - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(2) ;
531         ppsdboxnode-&gt;cd() ;
532       } // end of Z module loop     
533       x = x -  <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(0) ; 
534       ppsdboxnode-&gt;cd() ;
535     } // end of phi module loop
536 <b>    //   2. air gap      </b>
537     ppsdboxnode-&gt;cd() ;
538     y = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDBoxSize">GetPPSDBoxSize</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. ; 
539     sprintf(nodename, "%s%d", "GapUp", i) ;
540     TNode * gapupnode = new TNode(nodename, nodename, "LeadToM", 0, y, 0) ;
541     gapupnode-&gt;SetLineColor(kColorAir) ;  
542     fNodes-&gt;Add(gapupnode) ;        
543 <b>    //   3. lead converter</b>
544     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. ; 
545     sprintf(nodename, "%s%d", "LeadC", i) ;
546     TNode * leadcnode = new TNode(nodename, nodename, "Lead", 0, y, 0) ;
547     leadcnode-&gt;SetLineColor(kColorPPSD) ;  
548     fNodes-&gt;Add(leadcnode) ;        
549 <b>    //   4. air gap</b>
550     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. ; 
551     sprintf(nodename, "%s%d", "GapDown", i) ;
552     TNode * gapdownnode = new TNode(nodename, nodename, "MToLead", 0, y, 0) ;
553     gapdownnode-&gt;SetLineColor(kColorAir) ;  
554     fNodes-&gt;Add(gapdownnode) ;        
555 <b>    //    5.  fNumberOfModulesPhi x fNumberOfModulesZ bottom micromegas</b>
556     x = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDBoxSize">GetPPSDBoxSize</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>() ;  
557     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++ ) { 
558       <a href="../ListOfTypes.html#Float_t">Float_t</a> z = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDBoxSize">GetPPSDBoxSize</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>() ;;
559       TNode * micro2node ; 
560       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++ ) { 
561         y = - ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDBoxSize">GetPPSDBoxSize</a>(1) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicromegas2Thickness">GetMicromegas2Thickness</a>() ) / 2. ; 
562         sprintf(nodename, "%s%d%d%d", "Mic2", i, iphi, iz) ;
563         micro2node  = new TNode(nodename, nodename, "PPSDModule", x, y, z) ;
564         micro2node-&gt;SetLineColor(kColorPPSD) ;  
565         fNodes-&gt;Add(micro2node) ; 
566 <b>     // inside bottom micromegas</b>
567         micro2node-&gt;cd() ; 
568 <b>       //      a. top lid</b>
569           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. ; 
570           sprintf(nodename, "%s%d", "Lidb", i) ;
571           TNode * toplidbnode = new TNode(nodename, nodename, "TopLid", 0, y, 0) ;
572           toplidbnode-&gt;SetLineColor(kColorPPSD) ;  
573           fNodes-&gt;Add(toplidbnode) ; 
574 <b>       //      b. composite panel</b>
575           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. ; 
576           sprintf(nodename, "%s%d", "CompUb", i) ;
577           TNode * compupbnode = new TNode(nodename, nodename, "TopPanel", 0, y, 0) ;
578           compupbnode-&gt;SetLineColor(kColorPPSD) ;  
579           fNodes-&gt;Add(compupbnode) ; 
580 <b>       //      c. anode</b>
581           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. ; 
582           sprintf(nodename, "%s%d", "Anob", i) ;
583           TNode * anodebnode = new TNode(nodename, nodename, "Anode", 0, y, 0) ;
584           anodebnode-&gt;SetLineColor(kColorPPSD) ;  
585           fNodes-&gt;Add(anodebnode) ; 
586 <b>       //      d. conversion gas</b>
587           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. ; 
588           sprintf(nodename, "%s%d", "GGapb", i) ;
589           TNode * ggapbnode = new TNode(nodename, nodename, "GasGap", 0, y, 0) ;
590           ggapbnode-&gt;SetLineColor(kColorGas) ;  
591           fNodes-&gt;Add(ggapbnode) ;           
592 <b>       //      f. cathode</b>
593           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. ; 
594           sprintf(nodename, "%s%d", "Cathodeb", i) ;
595           TNode * cathodebnode = new TNode(nodename, nodename, "Cathode", 0, y, 0) ;
596           cathodebnode-&gt;SetLineColor(kColorPPSD) ;  
597           fNodes-&gt;Add(cathodebnode) ;        
598 <b>       //      g. printed circuit</b>
599           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. ; 
600           sprintf(nodename, "%s%d", "PCb", i) ;
601           TNode * pcbnode = new TNode(nodename, nodename, "PCBoard", 0, y, 0) ;
602           pcbnode-&gt;SetLineColor(kColorPPSD) ;  
603           fNodes-&gt;Add(pcbnode) ;        
604 <b>       //      h. composite pane</b>
605           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. ; 
606           sprintf(nodename, "%s%d", "CompDownb", i) ;
607           TNode * compdownbnode = new TNode(nodename, nodename, "BottomPanel", 0, y, 0) ;
608           compdownbnode-&gt;SetLineColor(kColorPPSD) ;  
609           fNodes-&gt;Add(compdownbnode) ;        
610           z = z - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(2) ;
611           ppsdboxnode-&gt;cd() ;
612         } // end of Z module loop     
613         x = x -  <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(0) ; 
614         ppsdboxnode-&gt;cd() ;
615        } // end of phi module loop
616      } // PHOS modules
617  delete rotname ; 
618  delete nodename ; 
619 }
620
621 <b>//____________________________________________________________________________</b>
622 <a name="AliPHOSv0:CreateGeometry"> </a><a href="../ListOfTypes.html#void">void</a> <a href=".././AliPHOSv0.html#AliPHOSv0:CreateGeometry">AliPHOSv0::CreateGeometry</a>()
623 {
624 <b>  // Create the PHOS geometry for Geant</b>
625
626   <a href=".././AliPHOSv0.html">AliPHOSv0</a> *phostmp = (<a href=".././AliPHOSv0.html">AliPHOSv0</a>*)gAlice-&gt;GetModule("PHOS") ;
627
628   if ( phostmp == NULL ) {
629     
630     fprintf(stderr, "PHOS detector not found!n") ;
631     return;
632     
633   }
634 <b>  // Get pointer to the array containing media indeces</b>
635   <a href="../ListOfTypes.html#Int_t">Int_t</a> *idtmed = fIdtmed-&gt;GetArray() - 699 ;
636
637   <a href="../ListOfTypes.html#Float_t">Float_t</a> bigbox[3] ; 
638   bigbox[0] =   <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetOuterBoxSize">GetOuterBoxSize</a>(0) / 2.0 ;
639   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:GetPPSDBoxSize">GetPPSDBoxSize</a>(1) ) / 2.0 ;
640   bigbox[2] =   <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetOuterBoxSize">GetOuterBoxSize</a>(2) / 2.0 ;
641   
642   gMC-&gt;Gsvolu("PHOS", "BOX ", idtmed[798], bigbox, 3) ;
643   
644   this-&gt;<a href="#AliPHOSv0:CreateGeometryforPHOS">CreateGeometryforPHOS</a>() ; 
645   if ( strcmp( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;GetName(), "GPS2") == 0  ) 
646     this-&gt;<a href="#AliPHOSv0:CreateGeometryforPPSD">CreateGeometryforPPSD</a>() ;
647   else
648     cout &lt;&lt; "<a href=".././AliPHOSv0.html#AliPHOSv0:CreateGeometry">AliPHOSv0::CreateGeometry</a> : no charged particle identification system installed" &lt;&lt; endl; 
649   
650 <b>  // --- Position  PHOS mdules in ALICE setup ---</b>
651   
652   <a href="../ListOfTypes.html#Int_t">Int_t</a> idrotm[99] ;
653   <a href="../ListOfTypes.html#Double_t">Double_t</a> const kRADDEG = 180.0 / kPI ;
654   
655   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++ ) {
656     
657     <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) ;
658     AliMatrix(idrotm[i-1], 90.0, angle, 90.0, 90.0+angle, 0.0, 0.0) ;
659  
660     <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:GetPPSDBoxSize">GetPPSDBoxSize</a>(1) ) / 2.0 ;
661
662     <a href="../ListOfTypes.html#Float_t">Float_t</a> xP1 = r * TMath::Sin( angle / kRADDEG ) ;
663     <a href="../ListOfTypes.html#Float_t">Float_t</a> yP1 = -r * TMath::Cos( angle / kRADDEG ) ;
664
665     gMC-&gt;Gspos("PHOS", i, "ALIC", xP1, yP1, 0.0, idrotm[i-1], "ONLY") ;
666  
667   } // for GetNModules
668
669 }
670
671 <b>//____________________________________________________________________________</b>
672 <a name="AliPHOSv0:CreateGeometryforPHOS"> </a><a href="../ListOfTypes.html#void">void</a> <a href=".././AliPHOSv0.html#AliPHOSv0:CreateGeometryforPHOS">AliPHOSv0::CreateGeometryforPHOS</a>()
673 {
674 <b>  // Create the PHOS-EMC geometry for GEANT</b>
675 <b>    //</b>
676   /*
677     <H2>
678     Geant3 geometry tree of PHOS-EMC in ALICE
679     </H2>
680     <P><CENTER>
681     <IMG Align=BOTTOM ALT="EMC geant tree" SRC="../images/EMCinAlice.gif"> 
682     </CENTER><P>
683   */
684 <b>  //  </b>
685   
686 <b>  // Get pointer to the array containing media indexes</b>
687   <a href="../ListOfTypes.html#Int_t">Int_t</a> *idtmed = fIdtmed-&gt;GetArray() - 699 ;
688
689 <b>  // ---</b>
690 <b>  // --- Define PHOS box volume, fPUFPill with thermo insulating foam ---</b>
691 <b>  // --- Foam Thermo Insulating outer cover dimensions ---</b>
692 <b>  // --- Put it in bigbox = PHOS</b>
693
694   <a href="../ListOfTypes.html#Float_t">Float_t</a> dphos[3] ; 
695   dphos[0] =  <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetOuterBoxSize">GetOuterBoxSize</a>(0) / 2.0 ;
696   dphos[1] =  <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetOuterBoxSize">GetOuterBoxSize</a>(1) / 2.0 ;
697   dphos[2] =  <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetOuterBoxSize">GetOuterBoxSize</a>(2) / 2.0 ;
698
699   gMC-&gt;Gsvolu("EMCA", "BOX ", idtmed[706], dphos, 3) ;
700
701   <a href="../ListOfTypes.html#Float_t">Float_t</a> yO =  - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDBoxSize">GetPPSDBoxSize</a>(1)  / 2.0 ;
702
703   gMC-&gt;Gspos("EMCA", 1, "PHOS", 0.0, yO, 0.0, 0, "ONLY") ; 
704
705 <b>  // ---</b>
706 <b>  // --- Define Textolit Wall box, position inside EMCA ---</b>
707 <b>  // --- Textolit Wall box dimentions ---</b>
708  
709  
710   <a href="../ListOfTypes.html#Float_t">Float_t</a> dptxw[3];
711   dptxw[0] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetTextolitBoxSize">GetTextolitBoxSize</a>(0) / 2.0 ;
712   dptxw[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetTextolitBoxSize">GetTextolitBoxSize</a>(1) / 2.0 ;
713   dptxw[2] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetTextolitBoxSize">GetTextolitBoxSize</a>(2) / 2.0 ;
714
715   gMC-&gt;Gsvolu("PTXW", "BOX ", idtmed[707], dptxw, 3);
716
717   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.  ;
718    
719   gMC-&gt;Gspos("PTXW", 1, "EMCA", 0.0, yO, 0.0, 0, "ONLY") ;
720
721 <b>  // --- </b>
722 <b>  // --- Define Upper Polystyrene Foam Plate, place inside PTXW ---</b>
723 <b>  // --- immediately below Foam Thermo Insulation Upper plate ---</b>
724
725 <b>  // --- Upper Polystyrene Foam plate thickness ---</b>
726  
727   <a href="../ListOfTypes.html#Float_t">Float_t</a>  dpufp[3] ;
728   dpufp[0] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetTextolitBoxSize">GetTextolitBoxSize</a>(0) / 2.0 ; 
729   dpufp[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetSecondUpperPlateThickness">GetSecondUpperPlateThickness</a>() / 2. ;
730   dpufp[2] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetTextolitBoxSize">GetTextolitBoxSize</a>(2) /2.0 ; 
731
732   gMC-&gt;Gsvolu("PUFP", "BOX ", idtmed[703], dpufp, 3) ;
733   
734   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 ;
735   
736   gMC-&gt;Gspos("PUFP", 1, "PTXW", 0.0, yO, 0.0, 0, "ONLY") ;
737   
738 <b>  // ---</b>
739 <b>  // --- Define air-filled box, place inside PTXW ---</b>
740 <b>  // --- Inner AIR volume dimensions ---</b>
741  
742
743   <a href="../ListOfTypes.html#Float_t">Float_t</a>  dpair[3] ;
744   dpair[0] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAirFilledBoxSize">GetAirFilledBoxSize</a>(0) / 2.0 ;
745   dpair[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAirFilledBoxSize">GetAirFilledBoxSize</a>(1) / 2.0 ;
746   dpair[2] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAirFilledBoxSize">GetAirFilledBoxSize</a>(2) / 2.0 ;
747
748   gMC-&gt;Gsvolu("PAIR", "BOX ", idtmed[798], dpair, 3) ;
749   
750   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>() ;
751   
752   gMC-&gt;Gspos("PAIR", 1, "PTXW", 0.0, yO, 0.0, 0, "ONLY") ;
753
754 <b>// --- Dimensions of PbWO4 crystal ---</b>
755
756   <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) ; 
757   <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) ; 
758   <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) ; 
759
760   <a href="../ListOfTypes.html#Float_t">Float_t</a> dptcb[3] ;  
761   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>() ;
762   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 
763              + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetModuleBoxThickness">GetModuleBoxThickness</a>() / 2.0 ;
764   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>() ;
765   
766   gMC-&gt;Gsvolu("PTCB", "BOX ", idtmed[706], dptcb, 3) ;
767
768   yO =  <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAirFilledBoxSize">GetAirFilledBoxSize</a>(1) / 2.0 - dptcb[1] 
769        - ( <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>() 
770        -  <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>() ) ;
771   
772   gMC-&gt;Gspos("PTCB", 1, "PAIR", 0.0, yO, 0.0, 0, "ONLY") ;
773
774 <b>  // ---</b>
775 <b>  // --- Define Crystal BLock filled with air, position it inside PTCB ---</b>
776   <a href="../ListOfTypes.html#Float_t">Float_t</a> dpcbl[3] ; 
777   
778   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 ;
779   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 ;
780   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 ;
781   
782   gMC-&gt;Gsvolu("PCBL", "BOX ", idtmed[798], dpcbl, 3) ;
783   
784 <b>  // --- Divide PCBL in X (phi) and Z directions --</b>
785   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) ;
786   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) ;
787
788   yO = -<a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetModuleBoxThickness">GetModuleBoxThickness</a>() / 2.0 ;
789   
790   gMC-&gt;Gspos("PCBL", 1, "PTCB", 0.0, yO, 0.0, 0, "ONLY") ;
791
792 <b>  // ---</b>
793 <b>  // --- Define STeel (actually, it's titanium) Cover volume, place inside PCEL</b>
794   <a href="../ListOfTypes.html#Float_t">Float_t</a>  dpstc[3] ; 
795   
796   dpstc[0] = ( xtlX + 2 * <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalWrapThickness">GetCrystalWrapThickness</a>() ) / 2.0 ;
797   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 ;
798   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 ;
799   
800   gMC-&gt;Gsvolu("PSTC", "BOX ", idtmed[704], dpstc, 3) ;
801
802   gMC-&gt;Gspos("PSTC", 1, "PCEL", 0.0, 0.0, 0.0, 0, "ONLY") ;
803
804 <b>  // ---</b>
805 <b>  // --- Define Tyvek volume, place inside PSTC ---</b>
806   <a href="../ListOfTypes.html#Float_t">Float_t</a>  dppap[3] ;
807
808   dppap[0] = xtlX / 2.0 + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalWrapThickness">GetCrystalWrapThickness</a>() ;
809   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 ;
810   dppap[2] = xtlZ / 2.0 + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalWrapThickness">GetCrystalWrapThickness</a>() ;
811   
812   gMC-&gt;Gsvolu("PPAP", "BOX ", idtmed[702], dppap, 3) ;
813   
814   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 
815               - ( 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 ;
816    
817   gMC-&gt;Gspos("PPAP", 1, "PSTC", 0.0, yO, 0.0, 0, "ONLY") ;
818
819 <b>  // ---</b>
820 <b>  // --- Define PbWO4 crystal volume, place inside PPAP ---</b>
821   <a href="../ListOfTypes.html#Float_t">Float_t</a>  dpxtl[3] ; 
822
823   dpxtl[0] = xtlX / 2.0 ;
824   dpxtl[1] = xtlY / 2.0 ;
825   dpxtl[2] = xtlZ / 2.0 ;
826   
827   gMC-&gt;Gsvolu("PXTL", "BOX ", idtmed[699], dpxtl, 3) ;
828
829   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>() ;
830   
831   gMC-&gt;Gspos("PXTL", 1, "PPAP", 0.0, yO, 0.0, 0, "ONLY") ;
832
833 <b>  // ---</b>
834 <b>  // --- Define crystal support volume, place inside PPAP ---</b>
835   <a href="../ListOfTypes.html#Float_t">Float_t</a> dpsup[3] ; 
836
837   dpsup[0] = xtlX / 2.0 + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalWrapThickness">GetCrystalWrapThickness</a>()  ;
838   dpsup[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalSupportHeight">GetCrystalSupportHeight</a>() / 2.0 ;
839   dpsup[2] = xtlZ / 2.0 +  <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalWrapThickness">GetCrystalWrapThickness</a>() ;
840
841   gMC-&gt;Gsvolu("PSUP", "BOX ", idtmed[798], dpsup, 3) ;
842
843   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 ;
844
845   gMC-&gt;Gspos("PSUP", 1, "PPAP", 0.0, yO, 0.0, 0, "ONLY") ;
846
847 <b>  // ---</b>
848 <b>  // --- Define PIN-diode volume and position it inside crystal support ---</b>
849 <b>  // --- right behind PbWO4 crystal</b>
850
851 <b>  // --- PIN-diode dimensions ---</b>
852
853  
854   <a href="../ListOfTypes.html#Float_t">Float_t</a> dppin[3] ;
855   dppin[0] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPinDiodeSize">GetPinDiodeSize</a>(0) / 2.0 ;
856   dppin[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPinDiodeSize">GetPinDiodeSize</a>(1) / 2.0 ;
857   dppin[2] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPinDiodeSize">GetPinDiodeSize</a>(2) / 2.0 ;
858  
859   gMC-&gt;Gsvolu("PPIN", "BOX ", idtmed[705], dppin, 3) ;
860  
861   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 ;
862  
863   gMC-&gt;Gspos("PPIN", 1, "PSUP", 0.0, yO, 0.0, 0, "ONLY") ;
864
865 <b>  // ---</b>
866 <b>  // --- Define Upper Cooling Panel, place it on top of PTCB ---</b>
867   <a href="../ListOfTypes.html#Float_t">Float_t</a> dpucp[3] ;
868 <b> // --- Upper Cooling Plate thickness ---</b>
869  
870   dpucp[0] = dptcb[0] ;
871   dpucp[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetUpperCoolingPlateThickness">GetUpperCoolingPlateThickness</a>() ;
872   dpucp[2] = dptcb[2] ;
873   
874   gMC-&gt;Gsvolu("PUCP", "BOX ", idtmed[701], dpucp,3) ;
875   
876   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. 
877        - ( <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>()
878            - <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>() ) ; 
879   
880   gMC-&gt;Gspos("PUCP", 1, "PAIR", 0.0, yO, 0.0, 0, "ONLY") ;
881
882 <b>  // ---</b>
883 <b>  // --- Define Al Support Plate, position it inside PAIR ---</b>
884 <b>  // --- right beneath PTCB ---</b>
885 <b> // --- Al Support Plate thickness ---</b>
886  
887   <a href="../ListOfTypes.html#Float_t">Float_t</a> dpasp[3] ;
888   dpasp[0] =  <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAirFilledBoxSize">GetAirFilledBoxSize</a>(0) / 2.0 ;
889   dpasp[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetSupportPlateThickness">GetSupportPlateThickness</a>() / 2.0 ;
890   dpasp[2] =  <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAirFilledBoxSize">GetAirFilledBoxSize</a>(2) / 2.0 ;
891   
892   gMC-&gt;Gsvolu("PASP", "BOX ", idtmed[701], dpasp, 3) ;
893   
894   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. 
895        -  ( <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>()
896            - <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 ) ;
897   
898   gMC-&gt;Gspos("PASP", 1, "PAIR", 0.0, yO, 0.0, 0, "ONLY") ;
899
900 <b>  // ---</b>
901 <b>  // --- Define Thermo Insulating Plate, position it inside PAIR ---</b>
902 <b>  // --- right beneath PASP ---</b>
903 <b>  // --- Lower Thermo Insulating Plate thickness ---</b>
904   
905   <a href="../ListOfTypes.html#Float_t">Float_t</a> dptip[3] ;
906   dptip[0] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAirFilledBoxSize">GetAirFilledBoxSize</a>(0) / 2.0 ;
907   dptip[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetLowerThermoPlateThickness">GetLowerThermoPlateThickness</a>() / 2.0 ;
908   dptip[2] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAirFilledBoxSize">GetAirFilledBoxSize</a>(2) / 2.0 ;
909
910   gMC-&gt;Gsvolu("PTIP", "BOX ", idtmed[706], dptip, 3) ;
911
912   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. 
913        -  ( <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>() 
914             - <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>() ) ;
915
916   gMC-&gt;Gspos("PTIP", 1, "PAIR", 0.0, yO, 0.0, 0, "ONLY") ;
917
918 <b>  // ---</b>
919 <b>  // --- Define Textolit Plate, position it inside PAIR ---</b>
920 <b>  // --- right beneath PTIP ---</b>
921 <b>  // --- Lower Textolit Plate thickness ---</b>
922  
923   <a href="../ListOfTypes.html#Float_t">Float_t</a> dptxp[3] ;
924   dptxp[0] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAirFilledBoxSize">GetAirFilledBoxSize</a>(0) / 2.0 ;
925   dptxp[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetLowerTextolitPlateThickness">GetLowerTextolitPlateThickness</a>() / 2.0 ;
926   dptxp[2] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAirFilledBoxSize">GetAirFilledBoxSize</a>(2) / 2.0 ;
927
928   gMC-&gt;Gsvolu("PTXP", "BOX ", idtmed[707], dptxp, 3) ;
929
930   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. 
931        -  ( <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>() 
932             - <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>() 
933             +  <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetLowerThermoPlateThickness">GetLowerThermoPlateThickness</a>() ) ;
934
935   gMC-&gt;Gspos("PTXP", 1, "PAIR", 0.0, yO, 0.0, 0, "ONLY") ;
936
937 }
938
939 <b>//____________________________________________________________________________</b>
940 <a name="AliPHOSv0:CreateGeometryforPPSD"> </a><a href="../ListOfTypes.html#void">void</a> <a href=".././AliPHOSv0.html#AliPHOSv0:CreateGeometryforPPSD">AliPHOSv0::CreateGeometryforPPSD</a>()
941 {
942 <b>  // Create the PHOS-PPSD geometry for GEANT</b>
943
944 <b>  //</b>
945   /*
946     <H2>
947     Geant3 geometry tree of PHOS-PPSD in ALICE
948     </H2>
949     <P><CENTER>
950     <IMG Align=BOTTOM ALT="PPSD geant tree" SRC="../images/PPSDinAlice.gif"> 
951     </CENTER><P>
952   */
953 <b>  //  </b>
954
955 <b>  // Get pointer to the array containing media indexes</b>
956   <a href="../ListOfTypes.html#Int_t">Int_t</a> *idtmed = fIdtmed-&gt;GetArray() - 699 ;
957   
958 <b>  // The box containing all ppsd's for one PHOS module filled with air </b>
959   <a href="../ListOfTypes.html#Float_t">Float_t</a> ppsd[3] ; 
960   ppsd[0] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDBoxSize">GetPPSDBoxSize</a>(0) / 2.0 ;  
961   ppsd[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDBoxSize">GetPPSDBoxSize</a>(1) / 2.0 ; 
962   ppsd[2] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDBoxSize">GetPPSDBoxSize</a>(2) / 2.0 ;
963
964   gMC-&gt;Gsvolu("PPSD", "BOX ", idtmed[798], ppsd, 3) ;
965
966   <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 ;
967
968   gMC-&gt;Gspos("PPSD", 1, "PHOS", 0.0, yO, 0.0, 0, "ONLY") ; 
969
970 <b>  // Now we build a micromegas module</b>
971 <b>  // The box containing the whole module filled with epoxy (FR4)</b>
972
973   <a href="../ListOfTypes.html#Float_t">Float_t</a> mppsd[3] ;  
974   mppsd[0] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(0) / 2.0 ;  
975   mppsd[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(1) / 2.0 ;  
976   mppsd[2] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(2) / 2.0 ;
977
978   gMC-&gt;Gsvolu("MPPS", "BOX ", idtmed[708], mppsd, 3) ;  
979  
980 <b>  // Inside mppsd :</b>
981 <b>  // 1. The Top Lid made of epoxy (FR4) </b>
982
983   <a href="../ListOfTypes.html#Float_t">Float_t</a> tlppsd[3] ; 
984   tlppsd[0] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(0) / 2.0 ; 
985   tlppsd[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetLidThickness">GetLidThickness</a>() / 2.0 ;
986   tlppsd[2] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(2) / 2.0 ;
987
988   gMC-&gt;Gsvolu("TLPS", "BOX ", idtmed[708], tlppsd, 3) ; 
989
990   <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. ; 
991
992   gMC-&gt;Gspos("TLPS", 1, "MPPS", 0.0, y0, 0.0, 0, "ONLY") ; 
993  
994 <b>  // 2. the upper panel made of composite material</b>
995
996   <a href="../ListOfTypes.html#Float_t">Float_t</a> upppsd[3] ; 
997   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 ;
998   upppsd[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCompositeThickness">GetCompositeThickness</a>() / 2.0 ;
999   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 ;
1000  
1001   gMC-&gt;Gsvolu("UPPS", "BOX ", idtmed[709], upppsd, 3) ; 
1002   
1003   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. ; 
1004
1005   gMC-&gt;Gspos("UPPS", 1, "MPPS", 0.0, y0, 0.0, 0, "ONLY") ; 
1006
1007 <b>  // 3. the anode made of Copper</b>
1008   
1009   <a href="../ListOfTypes.html#Float_t">Float_t</a> anppsd[3] ; 
1010   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 ; 
1011   anppsd[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAnodeThickness">GetAnodeThickness</a>() / 2.0 ; 
1012   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  ; 
1013
1014   gMC-&gt;Gsvolu("ANPS", "BOX ", idtmed[710], anppsd, 3) ; 
1015   
1016   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. ; 
1017   
1018   gMC-&gt;Gspos("ANPS", 1, "MPPS", 0.0, y0, 0.0, 0, "ONLY") ; 
1019
1020 <b>  // 4. the conversion gap + avalanche gap filled with gas</b>
1021
1022   <a href="../ListOfTypes.html#Float_t">Float_t</a> ggppsd[3] ; 
1023   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 ;
1024   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 ; 
1025   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 ;
1026
1027   gMC-&gt;Gsvolu("GGPS", "BOX ", idtmed[715], ggppsd, 3) ; 
1028   
1029 <b>  // --- Divide GGPP in X (phi) and Z directions --</b>
1030   gMC-&gt;Gsdvn("GROW", "GGPS", <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNumberOfPadsPhi">GetNumberOfPadsPhi</a>(), 1) ;
1031   gMC-&gt;Gsdvn("GCEL", "GROW", <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNumberOfPadsZ">GetNumberOfPadsZ</a>() , 3) ;
1032
1033   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. ; 
1034
1035   gMC-&gt;Gspos("GGPS", 1, "MPPS", 0.0, y0, 0.0, 0, "ONLY") ; 
1036
1037
1038 <b>  // 6. the cathode made of Copper</b>
1039
1040   <a href="../ListOfTypes.html#Float_t">Float_t</a> cappsd[3] ;
1041   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 ;
1042   cappsd[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCathodeThickness">GetCathodeThickness</a>() / 2.0 ; 
1043   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  ;
1044
1045   gMC-&gt;Gsvolu("CAPS", "BOX ", idtmed[710], cappsd, 3) ; 
1046
1047   y0 = y0 - ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAvalancheGap">GetAvalancheGap</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. ; 
1048
1049   gMC-&gt;Gspos("CAPS", 1, "MPPS", 0.0, y0, 0.0, 0, "ONLY") ; 
1050
1051 <b>  // 7. the printed circuit made of G10       </b>
1052
1053   <a href="../ListOfTypes.html#Float_t">Float_t</a> pcppsd[3] ; 
1054   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 ; 
1055   pcppsd[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPCThickness">GetPCThickness</a>() / 2.0 ; 
1056   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 ;
1057
1058   gMC-&gt;Gsvolu("PCPS", "BOX ", idtmed[711], cappsd, 3) ; 
1059
1060   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. ; 
1061
1062   gMC-&gt;Gspos("PCPS", 1, "MPPS", 0.0, y0, 0.0, 0, "ONLY") ; 
1063
1064 <b>  // 8. the lower panel made of composite material</b>
1065                                                     
1066   <a href="../ListOfTypes.html#Float_t">Float_t</a> lpppsd[3] ; 
1067   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 ; 
1068   lpppsd[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCompositeThickness">GetCompositeThickness</a>() / 2.0 ; 
1069   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 ;
1070
1071   gMC-&gt;Gsvolu("LPPS", "BOX ", idtmed[709], lpppsd, 3) ; 
1072  
1073   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. ; 
1074
1075   gMC-&gt;Gspos("LPPS", 1, "MPPS", 0.0, y0, 0.0, 0, "ONLY") ; 
1076
1077 <b>  // Position the  fNumberOfModulesPhi x fNumberOfModulesZ modules (mppsd) inside PPSD to cover a PHOS module</b>
1078 <b>  // the top and bottom one's (which are assumed identical) :</b>
1079
1080    <a href="../ListOfTypes.html#Float_t">Float_t</a> yt = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDBoxSize">GetPPSDBoxSize</a>(1) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicromegas1Thickness">GetMicromegas1Thickness</a>() ) / 2. ; 
1081    <a href="../ListOfTypes.html#Float_t">Float_t</a> yb = - ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDBoxSize">GetPPSDBoxSize</a>(1) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicromegas2Thickness">GetMicromegas2Thickness</a>() ) / 2. ; 
1082
1083    <a href="../ListOfTypes.html#Int_t">Int_t</a> copyNumbertop = 0 ; 
1084    <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>() ; 
1085
1086    <a href="../ListOfTypes.html#Float_t">Float_t</a> x  = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDBoxSize">GetPPSDBoxSize</a>(0) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(0) ) / 2. ;  
1087
1088    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 number of micromegas modules in phi per PHOS module
1089       <a href="../ListOfTypes.html#Float_t">Float_t</a> z = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDBoxSize">GetPPSDBoxSize</a>(2) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(2) ) / 2. ;
1090
1091       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 number of micromegas modules in z per PHOS module
1092         gMC-&gt;Gspos("MPPS", ++copyNumbertop, "PPSD", x, yt, z, 0, "ONLY") ;
1093         gMC-&gt;Gspos("MPPS", ++copyNumberbot, "PPSD", x, yb, z, 0, "ONLY") ; 
1094         z = z - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(2) ;
1095       } // end of Z module loop   
1096       x = x -  <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(0) ; 
1097     } // end of phi module loop
1098
1099 <b>   // The Lead converter between two air gaps</b>
1100 <b>   // 1. Upper air gap</b>
1101
1102    <a href="../ListOfTypes.html#Float_t">Float_t</a> uappsd[3] ;
1103    uappsd[0] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDBoxSize">GetPPSDBoxSize</a>(0) / 2.0 ;
1104    uappsd[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicro1ToLeadGap">GetMicro1ToLeadGap</a>() / 2.0 ; 
1105    uappsd[2] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDBoxSize">GetPPSDBoxSize</a>(2) / 2.0 ;
1106
1107   gMC-&gt;Gsvolu("UAPPSD", "BOX ", idtmed[798], uappsd, 3) ; 
1108
1109   y0 = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDBoxSize">GetPPSDBoxSize</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. ; 
1110
1111   gMC-&gt;Gspos("UAPPSD", 1, "PPSD", 0.0, y0, 0.0, 0, "ONLY") ; 
1112
1113 <b>   // 2. Lead converter</b>
1114  
1115   <a href="../ListOfTypes.html#Float_t">Float_t</a> lcppsd[3] ; 
1116   lcppsd[0] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDBoxSize">GetPPSDBoxSize</a>(0) / 2.0 ;
1117   lcppsd[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetLeadConverterThickness">GetLeadConverterThickness</a>() / 2.0 ; 
1118   lcppsd[2] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDBoxSize">GetPPSDBoxSize</a>(2) / 2.0 ;
1119  
1120   gMC-&gt;Gsvolu("LCPPSD", "BOX ", idtmed[712], lcppsd, 3) ; 
1121   
1122   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. ; 
1123
1124   gMC-&gt;Gspos("LCPPSD", 1, "PPSD", 0.0, y0, 0.0, 0, "ONLY") ; 
1125
1126 <b>  // 3. Lower air gap</b>
1127
1128   <a href="../ListOfTypes.html#Float_t">Float_t</a> lappsd[3] ; 
1129   lappsd[0] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDBoxSize">GetPPSDBoxSize</a>(0) / 2.0 ; 
1130   lappsd[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetLeadToMicro2Gap">GetLeadToMicro2Gap</a>() / 2.0 ; 
1131   lappsd[2] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDBoxSize">GetPPSDBoxSize</a>(2) / 2.0 ;
1132
1133   gMC-&gt;Gsvolu("LAPPSD", "BOX ", idtmed[798], lappsd, 3) ; 
1134     
1135   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. ; 
1136   
1137   gMC-&gt;Gspos("LAPPSD", 1, "PPSD", 0.0, y0, 0.0, 0, "ONLY") ; 
1138    
1139 }
1140
1141 <b>//___________________________________________________________________________</b>
1142 <a name="AliPHOSv0:Digitize"> </a><a href="../ListOfTypes.html#Int_t">Int_t</a> <a href=".././AliPHOSv0.html#AliPHOSv0:Digitize">AliPHOSv0::Digitize</a>(<a href="../ListOfTypes.html#Float_t">Float_t</a> Energy)
1143 {
1144 <b>  // Applies the energy calibration</b>
1145   
1146   <a href="../ListOfTypes.html#Float_t">Float_t</a> fB = 100000000. ;
1147   <a href="../ListOfTypes.html#Float_t">Float_t</a> fA = 0. ;
1148   <a href="../ListOfTypes.html#Int_t">Int_t</a> chan = <a href="../ListOfTypes.html#Int_t">Int_t</a>(fA + Energy*fB ) ;
1149   return chan ;
1150 }
1151 <b>//___________________________________________________________________________</b>
1152 <a name="AliPHOSv0:FinishEvent"> </a><a href="../ListOfTypes.html#void">void</a> <a href=".././AliPHOSv0.html#AliPHOSv0:FinishEvent">AliPHOSv0::FinishEvent</a>()
1153 {
1154 <b>  // Makes the digits from the sum of summed hit in a single crystal or PPSD gas cell</b>
1155 <b>  // Adds to the energy the electronic noise</b>
1156 <b>  // Keeps digits with energy above <a href=".././AliPHOSv0.html#AliPHOSv0:fDigitThreshold">fDigitThreshold</a></b>
1157
1158   <a href="../ListOfTypes.html#Int_t">Int_t</a> i ;
1159   <a href="../ListOfTypes.html#Int_t">Int_t</a> relid[4];
1160   <a href="../ListOfTypes.html#Int_t">Int_t</a> j ; 
1161   TClonesArray &amp;lDigits = *fDigits ;
1162   <a href=".././AliPHOSHit.html">AliPHOSHit</a>  * hit ;
1163   <a href=".././AliPHOSDigit.html">AliPHOSDigit</a> * newdigit ;
1164   <a href=".././AliPHOSDigit.html">AliPHOSDigit</a> * curdigit ;
1165   <a href="../ListOfTypes.html#Bool_t">Bool_t</a> deja = kFALSE ; 
1166   
1167   for ( i = 0 ; i &lt; <a href=".././AliPHOSv0.html#AliPHOSv0:fNTmpHits">fNTmpHits</a> ; i++ ) {
1168     hit = (<a href=".././AliPHOSHit.html">AliPHOSHit</a>*)<a href=".././AliPHOSv0.html#AliPHOSv0:fTmpHits">fTmpHits</a>-&gt;At(i) ;
1169     newdigit = new <a href=".././AliPHOSDigit.html">AliPHOSDigit</a>( hit-&gt;GetPrimary(), hit-&gt;GetId(), <a href="#AliPHOSv0:Digitize">Digitize</a>( hit-&gt;GetEnergy() ) ) ;
1170     deja =kFALSE ;
1171     for ( j = 0 ; j &lt; fNdigits ;  j++) { 
1172       curdigit = (<a href=".././AliPHOSDigit.html">AliPHOSDigit</a>*) lDigits[j] ;
1173       if ( *curdigit == *newdigit) {
1174         *curdigit = *curdigit + *newdigit ; 
1175         deja = kTRUE ; 
1176       }
1177     }
1178     if ( !deja ) {
1179       new(lDigits[fNdigits]) <a href=".././AliPHOSDigit.html">AliPHOSDigit</a>(* newdigit) ;
1180       fNdigits++ ;  
1181     }
1182  
1183     delete newdigit ;    
1184   } 
1185   
1186 <b>  // Noise induced by the PIN diode of the PbWO crystals</b>
1187
1188   <a href="../ListOfTypes.html#Float_t">Float_t</a> energyandnoise ;
1189   for ( i = 0 ; i &lt; fNdigits ; i++ ) {
1190     newdigit =  (<a href=".././AliPHOSDigit.html">AliPHOSDigit</a> * ) fDigits-&gt;At(i) ;
1191     <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:AbsToRelNumbering">AbsToRelNumbering</a>(newdigit-&gt;GetId(), relid) ;
1192
1193     if (relid[1]==0){   // Digits belong to EMC (PbW0_4 crystals)
1194       energyandnoise = newdigit-&gt;GetAmp() + <a href="#AliPHOSv0:Digitize">Digitize</a>(gRandom-&gt;Gaus(0., <a href=".././AliPHOSv0.html#AliPHOSv0:fPinElectronicNoise">fPinElectronicNoise</a>)) ;
1195
1196       if (energyandnoise &lt; 0 ) 
1197         energyandnoise = 0 ;
1198
1199       newdigit-&gt;SetAmp(energyandnoise) ;
1200
1201       if ( newdigit-&gt;GetAmp() &lt; <a href=".././AliPHOSv0.html#AliPHOSv0:fDigitThreshold">fDigitThreshold</a> ) // if threshold not surpassed, remove digit from list
1202         fDigits-&gt;RemoveAt(i) ; 
1203     }
1204   }
1205   fDigits-&gt;Compress() ; 
1206   <a href=".././AliPHOSv0.html#AliPHOSv0:fNTmpHits">fNTmpHits</a> = 0 ;
1207   <a href=".././AliPHOSv0.html#AliPHOSv0:fTmpHits">fTmpHits</a>-&gt;Delete();
1208 }
1209
1210 <b>//____________________________________________________________________________</b>
1211 <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>)
1212 {
1213 <b>  // Just prints an information message</b>
1214   
1215   <a href="../ListOfTypes.html#Int_t">Int_t</a> i;
1216
1217   printf("n");
1218   for(i=0;i&lt;35;i++) printf("*");
1219   printf(" PHOS_INIT ");
1220   for(i=0;i&lt;35;i++) printf("*");
1221   printf("n");
1222
1223 <b>  // Here the PHOS initialisation code (if any!)</b>
1224
1225   for(i=0;i&lt;80;i++) printf("*");
1226   printf("n");
1227   
1228 }
1229
1230 <b>//___________________________________________________________________________</b>
1231 <a name="AliPHOSv0:MakeBranch"> </a><a href="../ListOfTypes.html#void">void</a> <a href=".././AliPHOSv0.html#AliPHOSv0:MakeBranch">AliPHOSv0::MakeBranch</a>(<a href="../ListOfTypes.html#Option_t">Option_t</a>* opt)
1232 {  
1233 <b>  // Create new branche in the current Root Tree in the digit Tree</b>
1234
1235   AliDetector::<a href="#AliPHOSv0:MakeBranch">MakeBranch</a>(opt) ;
1236   
1237   <a href="../ListOfTypes.html#char">char</a> branchname[10];
1238   sprintf(branchname,"%s",GetName());
1239   <a href="../ListOfTypes.html#char">char</a> *cdD = strstr(opt,"D");
1240   
1241   if (fDigits &amp;&amp; gAlice-&gt;TreeD() &amp;&amp; cdD) {
1242     gAlice-&gt;TreeD()-&gt;Branch(branchname,&amp;fDigits, fBufferSize);
1243   }
1244 }
1245
1246 <b>//_____________________________________________________________________________</b>
1247 <a name="AliPHOSv0:Reconstruction"> </a><a href="../ListOfTypes.html#void">void</a> <a href=".././AliPHOSv0.html#AliPHOSv0:Reconstruction">AliPHOSv0::Reconstruction</a>(<a href=".././AliPHOSReconstructioner.html">AliPHOSReconstructioner</a> * Reconstructioner)
1248
1249 <b>  // 1. Reinitializes the existing RecPoint, TrackSegment, and RecParticles Lists and </b>
1250 <b>  // 2. Creates a branch in TreeR for each list</b>
1251 <b>  // 3. Steers the reconstruction processes</b>
1252 <b>  // 4. Saves the 3 lists in TreeR</b>
1253 <b>  // 5. Write the Tree to File</b>
1254   
1255   <a href=".././AliPHOSv0.html#AliPHOSv0:fReconstructioner">fReconstructioner</a> = Reconstructioner ;
1256   
1257   <a href="../ListOfTypes.html#char">char</a> branchname[10] ;
1258
1259 <b>  // 1.</b>
1260   
1261   if (<a href=".././AliPHOSv0.html#AliPHOSv0:fEmcClusters">fEmcClusters</a>) { 
1262     <a href=".././AliPHOSv0.html#AliPHOSv0:fEmcClusters">fEmcClusters</a>-&gt;Delete() ; 
1263     delete <a href=".././AliPHOSv0.html#AliPHOSv0:fEmcClusters">fEmcClusters</a> ;
1264     <a href=".././AliPHOSv0.html#AliPHOSv0:fEmcClusters">fEmcClusters</a> = 0 ; 
1265   }
1266   <a href=".././AliPHOSv0.html#AliPHOSv0:fEmcClusters">fEmcClusters</a>= new <a href="../ListOfTypes.html#RecPointsList">RecPointsList</a>("<a href=".././AliPHOSEmcRecPoint.html">AliPHOSEmcRecPoint</a>", 100) ;
1267   if ( <a href=".././AliPHOSv0.html#AliPHOSv0:fEmcClusters">fEmcClusters</a> &amp;&amp; gAlice-&gt;TreeR() ) {
1268     sprintf(branchname,"%sERP",GetName()) ;
1269     gAlice-&gt;TreeR()-&gt;Branch(branchname, &amp;<a href=".././AliPHOSv0.html#AliPHOSv0:fEmcClusters">fEmcClusters</a>, fBufferSize);
1270   }
1271
1272   if (<a href=".././AliPHOSv0.html#AliPHOSv0:fPpsdClusters">fPpsdClusters</a>) { 
1273     <a href=".././AliPHOSv0.html#AliPHOSv0:fPpsdClusters">fPpsdClusters</a>-&gt;Delete() ; 
1274     delete <a href=".././AliPHOSv0.html#AliPHOSv0:fPpsdClusters">fPpsdClusters</a> ; 
1275     <a href=".././AliPHOSv0.html#AliPHOSv0:fPpsdClusters">fPpsdClusters</a> = 0 ; 
1276   }
1277   <a href=".././AliPHOSv0.html#AliPHOSv0:fPpsdClusters">fPpsdClusters</a> = new <a href="../ListOfTypes.html#RecPointsList">RecPointsList</a>("<a href=".././AliPHOSPpsdRecPoint.html">AliPHOSPpsdRecPoint</a>", 100) ;
1278   if ( <a href=".././AliPHOSv0.html#AliPHOSv0:fPpsdClusters">fPpsdClusters</a> &amp;&amp; gAlice-&gt;TreeR() ) {
1279      sprintf(branchname,"%sPRP",GetName()) ;
1280      gAlice-&gt;TreeR()-&gt;Branch(branchname, &amp;<a href=".././AliPHOSv0.html#AliPHOSv0:fPpsdClusters">fPpsdClusters</a>, fBufferSize);
1281  }
1282
1283   if (<a href=".././AliPHOSv0.html#AliPHOSv0:fTrackSegments">fTrackSegments</a>) { 
1284    <a href=".././AliPHOSv0.html#AliPHOSv0:fTrackSegments">fTrackSegments</a>-&gt;Delete() ; 
1285     delete <a href=".././AliPHOSv0.html#AliPHOSv0:fTrackSegments">fTrackSegments</a> ; 
1286     <a href=".././AliPHOSv0.html#AliPHOSv0:fTrackSegments">fTrackSegments</a> = 0 ; 
1287   }
1288   <a href=".././AliPHOSv0.html#AliPHOSv0:fTrackSegments">fTrackSegments</a> = new <a href="../ListOfTypes.html#TrackSegmentsList">TrackSegmentsList</a>(100) ;
1289 <b>//   if ( <a href=".././AliPHOSv0.html#AliPHOSv0:fTrackSegments">fTrackSegments</a> &amp;&amp; gAlice-&gt;TreeR() ) { </b>
1290 <b>//     sprintf(branchname,"%sTS",GetName()) ;</b>
1291 <b>//     gAlice-&gt;TreeR()-&gt;Branch(branchname, &amp;<a href=".././AliPHOSv0.html#AliPHOSv0:fTrackSegments">fTrackSegments</a>, fBufferSize);</b>
1292 <b>//   }</b>
1293
1294  if (<a href=".././AliPHOSv0.html#AliPHOSv0:fRecParticles">fRecParticles</a>) {  
1295    <a href=".././AliPHOSv0.html#AliPHOSv0:fRecParticles">fRecParticles</a>-&gt;Delete() ; 
1296     delete <a href=".././AliPHOSv0.html#AliPHOSv0:fRecParticles">fRecParticles</a> ; 
1297     <a href=".././AliPHOSv0.html#AliPHOSv0:fRecParticles">fRecParticles</a> = 0 ; 
1298   }
1299   <a href=".././AliPHOSv0.html#AliPHOSv0:fRecParticles">fRecParticles</a> = new <a href="../ListOfTypes.html#RecParticlesList">RecParticlesList</a>("<a href=".././AliPHOSRecParticle.html">AliPHOSRecParticle</a>", 100) ;
1300   if ( <a href=".././AliPHOSv0.html#AliPHOSv0:fRecParticles">fRecParticles</a> &amp;&amp; gAlice-&gt;TreeR() ) { 
1301     sprintf(branchname,"%sRP",GetName()) ;
1302     gAlice-&gt;TreeR()-&gt;Branch(branchname, &amp;<a href=".././AliPHOSv0.html#AliPHOSv0:fRecParticles">fRecParticles</a>, fBufferSize);
1303   }
1304   
1305 <b>  // 3.</b>
1306
1307   <a href=".././AliPHOSv0.html#AliPHOSv0:fReconstructioner">fReconstructioner</a>-&gt;<a href=".././AliPHOSReconstructioner.html#AliPHOSReconstructioner:Make">Make</a>(fDigits, <a href=".././AliPHOSv0.html#AliPHOSv0:fEmcClusters">fEmcClusters</a>, <a href=".././AliPHOSv0.html#AliPHOSv0:fPpsdClusters">fPpsdClusters</a>, <a href=".././AliPHOSv0.html#AliPHOSv0:fTrackSegments">fTrackSegments</a>, <a href=".././AliPHOSv0.html#AliPHOSv0:fRecParticles">fRecParticles</a>);
1308
1309 <b>  // 4.</b>
1310
1311   gAlice-&gt;TreeR()-&gt;Fill() ;
1312  
1313 <b>  // 5.</b>
1314
1315   gAlice-&gt;TreeR()-&gt;Write() ;
1316   
1317 }
1318
1319 <b>//____________________________________________________________________________</b>
1320 <a name="AliPHOSv0:StepManager"> </a><a href="../ListOfTypes.html#void">void</a> <a href=".././AliPHOSv0.html#AliPHOSv0:StepManager">AliPHOSv0::StepManager</a>(<a href="../ListOfTypes.html#void">void</a>)
1321 {
1322 <b>  // Accumulates hits as <a href="../ListOfTypes.html#long">long</a> as the track stays in a single crystal or PPSD gas Cell</b>
1323
1324   <a href="../ListOfTypes.html#Int_t">Int_t</a>          relid[4] ;      // (box, layer, row, column) indices
1325   <a href="../ListOfTypes.html#Float_t">Float_t</a>        xyze[4] ;       // position wrt MRS and energy deposited
1326   TLorentzVector pos ;
1327   <a href="../ListOfTypes.html#Int_t">Int_t</a> copy ;
1328
1329   <a href="../ListOfTypes.html#Int_t">Int_t</a> primary =  gAlice-&gt;GetPrimary( gAlice-&gt;CurrentTrack() ); 
1330   TString name = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;GetName() ; 
1331   if ( name == "GPS2" ) { // the CPV is a PPSD
1332     if( gMC-&gt;CurrentVolID(copy) == gMC-&gt;VolId("GCEL") ) // We are inside a gas cell 
1333     {
1334       gMC-&gt;TrackPosition(pos) ;
1335       xyze[0] = pos[0] ;
1336       xyze[1] = pos[1] ;
1337       xyze[2] = pos[2] ;
1338       xyze[3] = gMC-&gt;Edep() ; 
1339
1340       if ( xyze[3] != 0 ) { // there is deposited energy 
1341         gMC-&gt;CurrentVolOffID(5, relid[0]) ;  // get the PHOS Module number
1342         gMC-&gt;CurrentVolOffID(3, relid[1]) ;  // get the Micromegas Module number 
1343 <b>      // 1-&gt; Geom-&gt;GetNumberOfModulesPhi() *  <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNumberOfModulesZ">GetNumberOfModulesZ</a>() upper                         </b>
1344 <b>      //  &gt;  <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>() lower</b>
1345         gMC-&gt;CurrentVolOffID(1, relid[2]) ;  // get the row number of the cell
1346         gMC-&gt;CurrentVolID(relid[3]) ;        // get the column number 
1347
1348 <b>     // get the absolute Id number</b>
1349
1350         <a href="../ListOfTypes.html#Int_t">Int_t</a> absid ; 
1351         <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:RelToAbsNumbering">RelToAbsNumbering</a>(relid, absid) ; 
1352
1353 <b>     // add current hit to the hit list      </b>
1354         <a href="#AliPHOSv0:AddHit">AddHit</a>(primary, absid, xyze);
1355
1356       } // there is deposited energy 
1357      } // We are inside the gas of the CPV  
1358    } // GPS2 configuration
1359   
1360    if(gMC-&gt;CurrentVolID(copy) == gMC-&gt;VolId("PXTL") )  //  We are inside a PBWO crystal
1361      {
1362        gMC-&gt;TrackPosition(pos) ;
1363        xyze[0] = pos[0] ;
1364        xyze[1] = pos[1] ;
1365        xyze[2] = pos[2] ;
1366        xyze[3] = gMC-&gt;Edep() ;
1367
1368        if ( xyze[3] != 0 ) {
1369           gMC-&gt;CurrentVolOffID(10, relid[0]) ; // get the PHOS module number ;
1370           relid[1] = 0   ;                    // means PBW04
1371           gMC-&gt;CurrentVolOffID(4, relid[2]) ; // get the row number inside the module
1372           gMC-&gt;CurrentVolOffID(3, relid[3]) ; // get the cell number inside the module
1373
1374 <b>      // get the absolute Id number</b>
1375
1376           <a href="../ListOfTypes.html#Int_t">Int_t</a> absid ; 
1377           <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:RelToAbsNumbering">RelToAbsNumbering</a>(relid, absid) ; 
1378  
1379 <b>      // add current hit to the hit list</b>
1380
1381           <a href="#AliPHOSv0:AddHit">AddHit</a>(primary, absid, xyze);
1382     
1383        } // there is deposited energy
1384     } // we are inside a PHOS Xtal
1385 }
1386
1387 </pre>
1388
1389 <!--SIGNATURE-->
1390 <br>
1391 <address>
1392 <hr>
1393 <center>
1394 <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>
1395 </center>
1396 <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.
1397 </address>
1398 </body>
1399 </html>