1 <!DOCTYPE HTML PUBLIC "-// IETF/DTD HTML 2.0// EN">
4 <!-- Author: ROOT team (rootdev@hpsalo.cern.ch) -->
6 <!-- Date: Tue Apr 3 16:13:36 2001 -->
9 <title>AliPHOSv0 - source file</title>
10 <link rev=made href="mailto:rootdev@root.cern.ch">
11 <meta name="rating" content="General">
12 <meta name="objecttype" content="Manual">
13 <meta name="keywords" content="software development, oo, object oriented, unix, x11, windows, c++, html, rene brun, fons rademakers">
14 <meta name="description" content="ROOT - An Object Oriented Framework For Large Scale Data Analysis.">
16 <body BGCOLOR="#ffffff" LINK="#0000ff" VLINK="#551a8b" ALINK="#ff0000" TEXT="#000000">
17 <a name="TopOfPage"></a>
19 /**************************************************************************
20 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
22 * Author: The ALICE Off-line Project. *
23 * Contributors are mentioned in the code where appropriate. *
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 **************************************************************************/
36 <b>//_________________________________________________________________________</b>
37 <b>// Implementation version v0 of PHOS Manager class </b>
38 <b>// Layout EMC + PPSD has name GPS2 </b>
39 <b>// Layout EMC + CPV has name IHEP</b>
40 <b>// An object of this class does not produce hits nor digits</b>
41 <b>// It is the one to use if you do not want to produce outputs in TREEH or TREED</b>
43 <b>//*-- Author: Yves Schutz (SUBATECH)</b>
46 <b>// --- ROOT system ---</b>
51 #include "TGeometry.h"
54 <b>// --- Standard library ---</b>
56 #include <stdio.h>
57 #include <string.h>
58 #include <stdlib.h>
59 #include <strstream.h>
61 <b>// --- AliRoot header files ---</b>
63 #include "<a href="../AliPHOSv0.h">AliPHOSv0.h</a>"
67 #include "AliPHOSGeometry.h"
71 <b>//____________________________________________________________________________</b>
72 <a name="AliPHOSv0:AliPHOSv0"> </a><a href=".././AliPHOSv0.html#AliPHOSv0:AliPHOSv0">AliPHOSv0::AliPHOSv0</a>(const <a href="../ListOfTypes.html#char">char</a> *name, const <a href="../ListOfTypes.html#char">char</a> *title):
73 <a href=".././AliPHOS.html">AliPHOS</a>(name,title)
75 <b> // ctor : title is used to identify the layout</b>
76 <b> // GPS2 = 5 modules (EMC + PPSD)</b>
77 <b> // IHEP = 5 modules (EMC + CPV)</b>
78 <b> // MIXT = 4 modules (EMC + CPV) and 1 module (EMC + PPSD)</b>
80 <b> // gets an instance of the geometry parameters class </b>
82 if (strcmp(GetTitle(),"") != 0 )
83 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a> = <a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetInstance">AliPHOSGeometry::GetInstance</a>(GetTitle(), "") ;
87 <b>//____________________________________________________________________________</b>
88 <a name="AliPHOSv0:BuildGeometry"> </a><a href="../ListOfTypes.html#void">void</a> <a href=".././AliPHOSv0.html#AliPHOSv0:BuildGeometry">AliPHOSv0::BuildGeometry</a>()
90 <b> // Build the PHOS geometry for the ROOT display</b>
94 PHOS in ALICE displayed by root
100 <IMG Align=BOTTOM ALT="All Views" SRC="../images/AliPHOSv0AllViews.gif">
105 <IMG Align=BOTTOM ALT="Front View" SRC="../images/AliPHOSv0FrontView.gif">
110 <IMG Align=BOTTOM ALT="3D View 1" SRC="../images/AliPHOSv03DView1.gif">
115 <IMG Align=BOTTOM ALT="3D View 2" SRC="../images/AliPHOSv03DView2.gif">
121 this-><a href="#AliPHOSv0:BuildGeometryforPHOS">BuildGeometryforPHOS</a>() ;
122 if (strcmp(<a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>->GetName(),"GPS2") == 0)
123 this-><a href="#AliPHOSv0:BuildGeometryforPPSD">BuildGeometryforPPSD</a>() ;
124 else if (strcmp(<a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>->GetName(),"IHEP") == 0)
125 this-><a href="#AliPHOSv0:BuildGeometryforCPV">BuildGeometryforCPV</a>() ;
126 else if (strcmp(<a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>->GetName(),"MIXT") == 0) {
127 this-><a href="#AliPHOSv0:BuildGeometryforPPSD">BuildGeometryforPPSD</a>() ;
128 this-><a href="#AliPHOSv0:BuildGeometryforCPV">BuildGeometryforCPV</a>() ;
131 cout << "<a href=".././AliPHOSv0.html#AliPHOSv0:BuildGeometry">AliPHOSv0::BuildGeometry</a> : no charged particle identification system installed: "
132 << "Geometry name = " << <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>->GetName() << endl;
136 <b>//____________________________________________________________________________</b>
137 <a name="AliPHOSv0:BuildGeometryforPHOS"> </a><a href="../ListOfTypes.html#void">void</a> <a href=".././AliPHOSv0.html#AliPHOSv0:BuildGeometryforPHOS">AliPHOSv0::BuildGeometryforPHOS</a>(<a href="../ListOfTypes.html#void">void</a>)
139 <b> // Build the PHOS-EMC geometry for the ROOT display</b>
141 const <a href="../ListOfTypes.html#Int_t">Int_t</a> kColorPHOS = kRed ;
142 const <a href="../ListOfTypes.html#Int_t">Int_t</a> kColorXTAL = kBlue ;
144 <a href="../ListOfTypes.html#Double_t">Double_t</a> const kRADDEG = 180.0 / kPI ;
146 new TBRIK( "OuterBox", "PHOS box", "<a href="../ListOfTypes.html#void">void</a>", <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetOuterBoxSize">GetOuterBoxSize</a>(0)/2,
147 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetOuterBoxSize">GetOuterBoxSize</a>(1)/2,
148 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetOuterBoxSize">GetOuterBoxSize</a>(2)/2 );
150 <b> // Textolit Wall box, position inside PHOS </b>
152 new TBRIK( "TextolitBox", "PHOS Textolit box ", "<a href="../ListOfTypes.html#void">void</a>", <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetTextolitBoxSize">GetTextolitBoxSize</a>(0)/2,
153 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetTextolitBoxSize">GetTextolitBoxSize</a>(1)/2,
154 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetTextolitBoxSize">GetTextolitBoxSize</a>(2)/2);
156 <b> // Polystyrene Foam Plate</b>
158 new TBRIK( "UpperFoamPlate", "PHOS Upper foam plate", "<a href="../ListOfTypes.html#void">void</a>", <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetTextolitBoxSize">GetTextolitBoxSize</a>(0)/2,
159 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetSecondUpperPlateThickness">GetSecondUpperPlateThickness</a>()/2,
160 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetTextolitBoxSize">GetTextolitBoxSize</a>(2)/2 ) ;
162 <b> // Air Filled Box</b>
164 new TBRIK( "AirFilledBox", "PHOS air filled box", "<a href="../ListOfTypes.html#void">void</a>", <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAirFilledBoxSize">GetAirFilledBoxSize</a>(0)/2,
165 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAirFilledBoxSize">GetAirFilledBoxSize</a>(1)/2,
166 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAirFilledBoxSize">GetAirFilledBoxSize</a>(2)/2 );
168 <b> // Crystals Box</b>
170 <a href="../ListOfTypes.html#Float_t">Float_t</a> xtlX = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalSize">GetCrystalSize</a>(0) ;
171 <a href="../ListOfTypes.html#Float_t">Float_t</a> xtlY = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalSize">GetCrystalSize</a>(1) ;
172 <a href="../ListOfTypes.html#Float_t">Float_t</a> xtlZ = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalSize">GetCrystalSize</a>(2) ;
174 <a href="../ListOfTypes.html#Float_t">Float_t</a> xl = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNPhi">GetNPhi</a>() * ( xtlX + 2 * <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetGapBetweenCrystals">GetGapBetweenCrystals</a>() ) / 2.0 + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetModuleBoxThickness">GetModuleBoxThickness</a>() ;
175 <a href="../ListOfTypes.html#Float_t">Float_t</a> yl = ( xtlY + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalSupportHeight">GetCrystalSupportHeight</a>() + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalWrapThickness">GetCrystalWrapThickness</a>() + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalHolderThickness">GetCrystalHolderThickness</a>() ) / 2.0
176 + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetModuleBoxThickness">GetModuleBoxThickness</a>() / 2.0 ;
177 <a href="../ListOfTypes.html#Float_t">Float_t</a> zl = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNZ">GetNZ</a>() * ( xtlZ + 2 * <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetGapBetweenCrystals">GetGapBetweenCrystals</a>() ) / 2.0 + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetModuleBoxThickness">GetModuleBoxThickness</a>() ;
179 new TBRIK( "CrystalsBox", "PHOS crystals box", "<a href="../ListOfTypes.html#void">void</a>", xl, yl, zl ) ;
181 <b>// position PHOS into ALICE</b>
183 <a href="../ListOfTypes.html#Float_t">Float_t</a> r = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetIPtoOuterCoverDistance">GetIPtoOuterCoverDistance</a>() + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetOuterBoxSize">GetOuterBoxSize</a>(1) / 2.0 ;
184 <a href="../ListOfTypes.html#Int_t">Int_t</a> <a href="../ListOfTypes.html#number">number</a> = 988 ;
185 <a href="../ListOfTypes.html#Float_t">Float_t</a> pphi = TMath::ATan( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetOuterBoxSize">GetOuterBoxSize</a>(0) / ( 2.0 * <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetIPtoOuterCoverDistance">GetIPtoOuterCoverDistance</a>() ) ) ;
187 TNode * top = gAlice->GetGeometry()->GetNode("alice") ;
189 <a href="../ListOfTypes.html#char">char</a> * nodename = new <a href="../ListOfTypes.html#char">char</a>[20] ;
190 <a href="../ListOfTypes.html#char">char</a> * rotname = new <a href="../ListOfTypes.html#char">char</a>[20] ;
192 for( <a href="../ListOfTypes.html#Int_t">Int_t</a> i = 1; i <= <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNModules">GetNModules</a>(); i++ ) {
193 <a href="../ListOfTypes.html#Float_t">Float_t</a> angle = pphi * 2 * ( i - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNModules">GetNModules</a>() / 2.0 - 0.5 ) ;
194 sprintf(rotname, "%s%d", "rot", <a href="../ListOfTypes.html#number">number</a>++) ;
195 new TRotMatrix(rotname, rotname, 90, angle, 90, 90 + angle, 0, 0);
197 sprintf(nodename,"%s%d", "Module", i) ;
198 <a href="../ListOfTypes.html#Float_t">Float_t</a> x = r * TMath::Sin( angle / kRADDEG ) ;
199 <a href="../ListOfTypes.html#Float_t">Float_t</a> y = -r * TMath::Cos( angle / kRADDEG ) ;
200 TNode * outerboxnode = new TNode(nodename, nodename, "OuterBox", x, y, 0, rotname ) ;
201 outerboxnode->SetLineColor(kColorPHOS) ;
202 fNodes->Add(outerboxnode) ;
203 outerboxnode->cd() ;
204 <b> // now inside the outer box the textolit box</b>
205 y = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetOuterBoxThickness">GetOuterBoxThickness</a>(1) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetUpperPlateThickness">GetUpperPlateThickness</a>() ) / 2. ;
206 sprintf(nodename,"%s%d", "TexBox", i) ;
207 TNode * textolitboxnode = new TNode(nodename, nodename, "TextolitBox", 0, y, 0) ;
208 textolitboxnode->SetLineColor(kColorPHOS) ;
209 fNodes->Add(textolitboxnode) ;
210 <b> // upper foam plate inside outre box</b>
211 outerboxnode->cd() ;
212 sprintf(nodename, "%s%d", "UFPlate", i) ;
213 y = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetTextolitBoxSize">GetTextolitBoxSize</a>(1) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetSecondUpperPlateThickness">GetSecondUpperPlateThickness</a>() ) / 2.0 ;
214 TNode * upperfoamplatenode = new TNode(nodename, nodename, "UpperFoamPlate", 0, y, 0) ;
215 upperfoamplatenode->SetLineColor(kColorPHOS) ;
216 fNodes->Add(upperfoamplatenode) ;
217 <b> // air filled box inside textolit box (not drawn)</b>
218 textolitboxnode->cd();
219 y = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetTextolitBoxSize">GetTextolitBoxSize</a>(1) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAirFilledBoxSize">GetAirFilledBoxSize</a>(1) ) / 2.0 - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetSecondUpperPlateThickness">GetSecondUpperPlateThickness</a>() ;
220 sprintf(nodename, "%s%d", "AFBox", i) ;
221 TNode * airfilledboxnode = new TNode(nodename, nodename, "AirFilledBox", 0, y, 0) ;
222 fNodes->Add(airfilledboxnode) ;
223 <b> // crystals box inside air filled box</b>
224 airfilledboxnode->cd() ;
225 y = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAirFilledBoxSize">GetAirFilledBoxSize</a>(1) / 2.0 - yl
226 - ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetIPtoCrystalSurface">GetIPtoCrystalSurface</a>() - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetIPtoOuterCoverDistance">GetIPtoOuterCoverDistance</a>() - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetModuleBoxThickness">GetModuleBoxThickness</a>()
227 - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetUpperPlateThickness">GetUpperPlateThickness</a>() - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetSecondUpperPlateThickness">GetSecondUpperPlateThickness</a>() ) ;
228 sprintf(nodename, "%s%d", "XTBox", i) ;
229 TNode * crystalsboxnode = new TNode(nodename, nodename, "CrystalsBox", 0, y, 0) ;
230 crystalsboxnode->SetLineColor(kColorXTAL) ;
231 fNodes->Add(crystalsboxnode) ;
238 <b>//____________________________________________________________________________</b>
239 <a name="AliPHOSv0:BuildGeometryforPPSD"> </a><a href="../ListOfTypes.html#void">void</a> <a href=".././AliPHOSv0.html#AliPHOSv0:BuildGeometryforPPSD">AliPHOSv0::BuildGeometryforPPSD</a>(<a href="../ListOfTypes.html#void">void</a>)
241 <b> // Build the PHOS-PPSD geometry for the ROOT display</b>
245 PPSD displayed by root
248 <LI> Zoom on PPSD: Front View
251 <IMG Align=BOTTOM ALT="PPSD Front View" SRC="../images/AliPHOSv0PPSDFrontView.gif">
253 <LI> Zoom on PPSD: Perspective View
256 <IMG Align=BOTTOM ALT="PPSD Prespective View" SRC="../images/AliPHOSv0PPSDPerspectiveView.gif">
261 <a href="../ListOfTypes.html#Double_t">Double_t</a> const kRADDEG = 180.0 / kPI ;
263 const <a href="../ListOfTypes.html#Int_t">Int_t</a> kColorPHOS = kRed ;
264 const <a href="../ListOfTypes.html#Int_t">Int_t</a> kColorPPSD = kGreen ;
265 const <a href="../ListOfTypes.html#Int_t">Int_t</a> kColorGas = kBlue ;
266 const <a href="../ListOfTypes.html#Int_t">Int_t</a> kColorAir = kYellow ;
268 <b> // Box for a full PHOS module</b>
270 new TBRIK( "PPSDBox", "PPSD box", "<a href="../ListOfTypes.html#void">void</a>", <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(0)/2,
271 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(1)/2,
272 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(2)/2 );
274 <b> // Box containing one micromegas module </b>
276 new TBRIK( "PPSDModule", "PPSD module", "<a href="../ListOfTypes.html#void">void</a>", <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(0)/2,
277 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(1)/2,
278 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(2)/2 );
281 new TBRIK ( "TopLid", "Micromegas top lid", "<a href="../ListOfTypes.html#void">void</a>", <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(0)/2,
282 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetLidThickness">GetLidThickness</a>()/2,
283 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(2)/2 ) ;
284 <b> // composite panel (top and bottom)</b>
286 new TBRIK ( "TopPanel", "Composite top panel", "<a href="../ListOfTypes.html#void">void</a>", ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(0) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicromegasWallThickness">GetMicromegasWallThickness</a>() )/2,
287 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCompositeThickness">GetCompositeThickness</a>()/2,
288 ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(2) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicromegasWallThickness">GetMicromegasWallThickness</a>() )/2 ) ;
290 new TBRIK ( "BottomPanel", "Composite bottom panel", "<a href="../ListOfTypes.html#void">void</a>", ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(0) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicromegasWallThickness">GetMicromegasWallThickness</a>() )/2,
291 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCompositeThickness">GetCompositeThickness</a>()/2,
292 ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(2) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicromegasWallThickness">GetMicromegasWallThickness</a>() )/2 ) ;
293 <b> // gas gap (conversion and avalanche)</b>
295 new TBRIK ( "GasGap", "gas gap", "<a href="../ListOfTypes.html#void">void</a>", ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(0) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicromegasWallThickness">GetMicromegasWallThickness</a>() )/2,
296 ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetConversionGap">GetConversionGap</a>() + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAvalancheGap">GetAvalancheGap</a>() )/2,
297 ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(2) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicromegasWallThickness">GetMicromegasWallThickness</a>() )/2 ) ;
299 <b> // anode and cathode </b>
301 new TBRIK ( "Anode", "Anode", "<a href="../ListOfTypes.html#void">void</a>", ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(0) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicromegasWallThickness">GetMicromegasWallThickness</a>() )/2,
302 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAnodeThickness">GetAnodeThickness</a>()/2,
303 ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(2) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicromegasWallThickness">GetMicromegasWallThickness</a>() )/2 ) ;
305 new TBRIK ( "Cathode", "Cathode", "<a href="../ListOfTypes.html#void">void</a>", ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(0) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicromegasWallThickness">GetMicromegasWallThickness</a>() )/2,
306 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCathodeThickness">GetCathodeThickness</a>()/2,
307 ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(2) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicromegasWallThickness">GetMicromegasWallThickness</a>() )/2 ) ;
310 new TBRIK ( "PCBoard", "Printed Circuit", "<a href="../ListOfTypes.html#void">void</a>", ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(0) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicromegasWallThickness">GetMicromegasWallThickness</a>() )/2,
311 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPCThickness">GetPCThickness</a>()/2,
312 ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(2) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicromegasWallThickness">GetMicromegasWallThickness</a>() )/2 ) ;
313 <b> // Gap between Lead and top micromegas</b>
315 new TBRIK ( "LeadToM", "Air Gap top", "<a href="../ListOfTypes.html#void">void</a>", <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(0)/2,
316 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicro1ToLeadGap">GetMicro1ToLeadGap</a>()/2,
317 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(2)/2 ) ;
319 <b>// Gap between Lead and bottom micromegas</b>
321 new TBRIK ( "MToLead", "Air Gap bottom", "<a href="../ListOfTypes.html#void">void</a>", <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(0)/2,
322 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetLeadToMicro2Gap">GetLeadToMicro2Gap</a>()/2,
323 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(2)/2 ) ;
324 <b> // Lead converter</b>
326 new TBRIK ( "Lead", "Lead converter", "<a href="../ListOfTypes.html#void">void</a>", <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(0)/2,
327 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetLeadConverterThickness">GetLeadConverterThickness</a>()/2,
328 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(2)/2 ) ;
330 <b> // position PPSD into ALICE</b>
332 <a href="../ListOfTypes.html#char">char</a> * nodename = new <a href="../ListOfTypes.html#char">char</a>[20] ;
333 <a href="../ListOfTypes.html#char">char</a> * rotname = new <a href="../ListOfTypes.html#char">char</a>[20] ;
335 <a href="../ListOfTypes.html#Float_t">Float_t</a> r = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetIPtoTopLidDistance">GetIPtoTopLidDistance</a>() + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(1) / 2.0 ;
336 <a href="../ListOfTypes.html#Int_t">Int_t</a> <a href="../ListOfTypes.html#number">number</a> = 988 ;
337 TNode * top = gAlice->GetGeometry()->GetNode("alice") ;
339 <a href="../ListOfTypes.html#Int_t">Int_t</a> firstModule = 0 ;
340 if (strcmp(<a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>->GetName(),"GPS2") == 0)
342 else if (strcmp(<a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>->GetName(),"MIXT") == 0)
343 firstModule = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNModules">GetNModules</a>() - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNPPSDModules">GetNPPSDModules</a>() + 1;
345 for( <a href="../ListOfTypes.html#Int_t">Int_t</a> i = firstModule; i <= <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNModules">GetNModules</a>(); i++ ) { // the <a href="../ListOfTypes.html#number">number</a> of PHOS modules
346 <a href="../ListOfTypes.html#Float_t">Float_t</a> angle = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPHOSAngle">GetPHOSAngle</a>(i) ;
347 sprintf(rotname, "%s%d", "rotg", <a href="../ListOfTypes.html#number">number</a>+i) ;
348 new TRotMatrix(rotname, rotname, 90, angle, 90, 90 + angle, 0, 0);
350 sprintf(nodename, "%s%d", "Moduleg", i) ;
351 <a href="../ListOfTypes.html#Float_t">Float_t</a> x = r * TMath::Sin( angle / kRADDEG ) ;
352 <a href="../ListOfTypes.html#Float_t">Float_t</a> y = -r * TMath::Cos( angle / kRADDEG ) ;
353 TNode * ppsdboxnode = new TNode(nodename , nodename ,"PPSDBox", x, y, 0, rotname ) ;
354 ppsdboxnode->SetLineColor(kColorPPSD) ;
355 fNodes->Add(ppsdboxnode) ;
356 ppsdboxnode->cd() ;
357 <b> // inside the PPSD box: </b>
358 <b> // 1. fNumberOfModulesPhi x fNumberOfModulesZ top micromegas</b>
359 x = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(0) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(0) ) / 2. ;
361 for ( <a href="../ListOfTypes.html#Int_t">Int_t</a> iphi = 1; iphi <= <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNumberOfModulesPhi">GetNumberOfModulesPhi</a>(); iphi++ ) { // the <a href="../ListOfTypes.html#number">number</a> of micromegas modules in phi per PHOS module
362 <a href="../ListOfTypes.html#Float_t">Float_t</a> z = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(2) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(2) ) / 2. ;
364 for ( <a href="../ListOfTypes.html#Int_t">Int_t</a> iz = 1; iz <= <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNumberOfModulesZ">GetNumberOfModulesZ</a>(); iz++ ) { // the <a href="../ListOfTypes.html#number">number</a> of micromegas modules in z per PHOS module
365 y = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(1) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicromegas1Thickness">GetMicromegas1Thickness</a>() ) / 2. ;
366 sprintf(nodename, "%s%d%d%d", "Mic1", i, iphi, iz) ;
367 micro1node = new TNode(nodename, nodename, "PPSDModule", x, y, z) ;
368 micro1node->SetLineColor(kColorPPSD) ;
369 fNodes->Add(micro1node) ;
370 <b> // inside top micromegas</b>
371 micro1node->cd() ;
372 <b> // a. top lid</b>
373 y = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicromegas1Thickness">GetMicromegas1Thickness</a>() - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetLidThickness">GetLidThickness</a>() ) / 2. ;
374 sprintf(nodename, "%s%d%d%d", "Lid", i, iphi, iz) ;
375 TNode * toplidnode = new TNode(nodename, nodename, "TopLid", 0, y, 0) ;
376 toplidnode->SetLineColor(kColorPPSD) ;
377 fNodes->Add(toplidnode) ;
378 <b> // b. composite panel</b>
379 y = y - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetLidThickness">GetLidThickness</a>() / 2. - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCompositeThickness">GetCompositeThickness</a>() / 2. ;
380 sprintf(nodename, "%s%d%d%d", "CompU", i, iphi, iz) ;
381 TNode * compupnode = new TNode(nodename, nodename, "TopPanel", 0, y, 0) ;
382 compupnode->SetLineColor(kColorPPSD) ;
383 fNodes->Add(compupnode) ;
385 y = y - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCompositeThickness">GetCompositeThickness</a>() / 2. - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAnodeThickness">GetAnodeThickness</a>() / 2. ;
386 sprintf(nodename, "%s%d%d%d", "Ano", i, iphi, iz) ;
387 TNode * anodenode = new TNode(nodename, nodename, "Anode", 0, y, 0) ;
388 anodenode->SetLineColor(kColorPHOS) ;
389 fNodes->Add(anodenode) ;
391 y = y - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAnodeThickness">GetAnodeThickness</a>() / 2. - ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetConversionGap">GetConversionGap</a>() + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAvalancheGap">GetAvalancheGap</a>() ) / 2. ;
392 sprintf(nodename, "%s%d%d%d", "GGap", i, iphi, iz) ;
393 TNode * ggapnode = new TNode(nodename, nodename, "GasGap", 0, y, 0) ;
394 ggapnode->SetLineColor(kColorGas) ;
395 fNodes->Add(ggapnode) ;
396 <b> // f. cathode</b>
397 y = y - ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetConversionGap">GetConversionGap</a>() + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAvalancheGap">GetAvalancheGap</a>() ) / 2. - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCathodeThickness">GetCathodeThickness</a>() / 2. ;
398 sprintf(nodename, "%s%d%d%d", "Cathode", i, iphi, iz) ;
399 TNode * cathodenode = new TNode(nodename, nodename, "Cathode", 0, y, 0) ;
400 cathodenode->SetLineColor(kColorPHOS) ;
401 fNodes->Add(cathodenode) ;
402 <b> // g. printed circuit</b>
403 y = y - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCathodeThickness">GetCathodeThickness</a>() / 2. - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPCThickness">GetPCThickness</a>() / 2. ;
404 sprintf(nodename, "%s%d%d%d", "PC", i, iphi, iz) ;
405 TNode * pcnode = new TNode(nodename, nodename, "PCBoard", 0, y, 0) ;
406 pcnode->SetLineColor(kColorPPSD) ;
407 fNodes->Add(pcnode) ;
408 <b> // h. composite panel</b>
409 y = y - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPCThickness">GetPCThickness</a>() / 2. - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCompositeThickness">GetCompositeThickness</a>() / 2. ;
410 sprintf(nodename, "%s%d%d%d", "CompDown", i, iphi, iz) ;
411 TNode * compdownnode = new TNode(nodename, nodename, "BottomPanel", 0, y, 0) ;
412 compdownnode->SetLineColor(kColorPPSD) ;
413 fNodes->Add(compdownnode) ;
414 z = z - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(2) ;
415 ppsdboxnode->cd() ;
416 } // end of Z module loop
417 x = x - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(0) ;
418 ppsdboxnode->cd() ;
419 } // end of phi module loop
421 <b> // 2. air gap </b>
422 ppsdboxnode->cd() ;
423 y = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(1) - 2 * <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicromegas1Thickness">GetMicromegas1Thickness</a>() - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicro1ToLeadGap">GetMicro1ToLeadGap</a>() ) / 2. ;
424 sprintf(nodename, "%s%d", "GapUp", i) ;
425 TNode * gapupnode = new TNode(nodename, nodename, "LeadToM", 0, y, 0) ;
426 gapupnode->SetLineColor(kColorAir) ;
427 fNodes->Add(gapupnode) ;
428 <b> // 3. lead converter</b>
429 y = y - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicro1ToLeadGap">GetMicro1ToLeadGap</a>() / 2. - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetLeadConverterThickness">GetLeadConverterThickness</a>() / 2. ;
430 sprintf(nodename, "%s%d", "LeadC", i) ;
431 TNode * leadcnode = new TNode(nodename, nodename, "Lead", 0, y, 0) ;
432 leadcnode->SetLineColor(kColorPPSD) ;
433 fNodes->Add(leadcnode) ;
434 <b> // 4. air gap</b>
435 y = y - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetLeadConverterThickness">GetLeadConverterThickness</a>() / 2. - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetLeadToMicro2Gap">GetLeadToMicro2Gap</a>() / 2. ;
436 sprintf(nodename, "%s%d", "GapDown", i) ;
437 TNode * gapdownnode = new TNode(nodename, nodename, "MToLead", 0, y, 0) ;
438 gapdownnode->SetLineColor(kColorAir) ;
439 fNodes->Add(gapdownnode) ;
440 <b> // 5. fNumberOfModulesPhi x fNumberOfModulesZ bottom micromegas</b>
441 x = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(0) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(0) ) / 2. - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPhiDisplacement">GetPhiDisplacement</a>() ;
443 for ( <a href="../ListOfTypes.html#Int_t">Int_t</a> iphi = 1; iphi <= <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNumberOfModulesPhi">GetNumberOfModulesPhi</a>(); iphi++ ) {
444 <a href="../ListOfTypes.html#Float_t">Float_t</a> z = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(2) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(2) ) / 2. - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetZDisplacement">GetZDisplacement</a>() ;;
446 for ( <a href="../ListOfTypes.html#Int_t">Int_t</a> iz = 1; iz <= <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNumberOfModulesZ">GetNumberOfModulesZ</a>(); iz++ ) {
447 y = - ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(1) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicromegas2Thickness">GetMicromegas2Thickness</a>() ) / 2. ;
448 sprintf(nodename, "%s%d%d%d", "Mic2", i, iphi, iz) ;
449 micro2node = new TNode(nodename, nodename, "PPSDModule", x, y, z) ;
450 micro2node->SetLineColor(kColorPPSD) ;
451 fNodes->Add(micro2node) ;
452 <b> // inside bottom micromegas</b>
453 micro2node->cd() ;
454 <b> // a. top lid</b>
455 y = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicromegas2Thickness">GetMicromegas2Thickness</a>() - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetLidThickness">GetLidThickness</a>() ) / 2. ;
456 sprintf(nodename, "%s%d", "Lidb", i) ;
457 TNode * toplidbnode = new TNode(nodename, nodename, "TopLid", 0, y, 0) ;
458 toplidbnode->SetLineColor(kColorPPSD) ;
459 fNodes->Add(toplidbnode) ;
460 <b> // b. composite panel</b>
461 y = y - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetLidThickness">GetLidThickness</a>() / 2. - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCompositeThickness">GetCompositeThickness</a>() / 2. ;
462 sprintf(nodename, "%s%d", "CompUb", i) ;
463 TNode * compupbnode = new TNode(nodename, nodename, "TopPanel", 0, y, 0) ;
464 compupbnode->SetLineColor(kColorPPSD) ;
465 fNodes->Add(compupbnode) ;
467 y = y - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCompositeThickness">GetCompositeThickness</a>() / 2. - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAnodeThickness">GetAnodeThickness</a>() / 2. ;
468 sprintf(nodename, "%s%d", "Anob", i) ;
469 TNode * anodebnode = new TNode(nodename, nodename, "Anode", 0, y, 0) ;
470 anodebnode->SetLineColor(kColorPPSD) ;
471 fNodes->Add(anodebnode) ;
472 <b> // d. conversion gas</b>
473 y = y - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAnodeThickness">GetAnodeThickness</a>() / 2. - ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetConversionGap">GetConversionGap</a>() + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAvalancheGap">GetAvalancheGap</a>() ) / 2. ;
474 sprintf(nodename, "%s%d", "GGapb", i) ;
475 TNode * ggapbnode = new TNode(nodename, nodename, "GasGap", 0, y, 0) ;
476 ggapbnode->SetLineColor(kColorGas) ;
477 fNodes->Add(ggapbnode) ;
478 <b> // f. cathode</b>
479 y = y - ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetConversionGap">GetConversionGap</a>() + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAvalancheGap">GetAvalancheGap</a>() ) / 2. - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCathodeThickness">GetCathodeThickness</a>() / 2. ;
480 sprintf(nodename, "%s%d", "Cathodeb", i) ;
481 TNode * cathodebnode = new TNode(nodename, nodename, "Cathode", 0, y, 0) ;
482 cathodebnode->SetLineColor(kColorPPSD) ;
483 fNodes->Add(cathodebnode) ;
484 <b> // g. printed circuit</b>
485 y = y - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCathodeThickness">GetCathodeThickness</a>() / 2. - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPCThickness">GetPCThickness</a>() / 2. ;
486 sprintf(nodename, "%s%d", "PCb", i) ;
487 TNode * pcbnode = new TNode(nodename, nodename, "PCBoard", 0, y, 0) ;
488 pcbnode->SetLineColor(kColorPPSD) ;
489 fNodes->Add(pcbnode) ;
490 <b> // h. composite pane</b>
491 y = y - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPCThickness">GetPCThickness</a>() / 2. - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCompositeThickness">GetCompositeThickness</a>() / 2. ;
492 sprintf(nodename, "%s%d", "CompDownb", i) ;
493 TNode * compdownbnode = new TNode(nodename, nodename, "BottomPanel", 0, y, 0) ;
494 compdownbnode->SetLineColor(kColorPPSD) ;
495 fNodes->Add(compdownbnode) ;
496 z = z - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(2) ;
497 ppsdboxnode->cd() ;
498 } // end of Z module loop
499 x = x - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(0) ;
500 ppsdboxnode->cd() ;
501 } // end of phi module loop
510 <b>//____________________________________________________________________________</b>
511 <a name="AliPHOSv0:BuildGeometryforCPV"> </a><a href="../ListOfTypes.html#void">void</a> <a href=".././AliPHOSv0.html#AliPHOSv0:BuildGeometryforCPV">AliPHOSv0::BuildGeometryforCPV</a>(<a href="../ListOfTypes.html#void">void</a>)
513 <b> // Build the PHOS-CPV geometry for the ROOT display</b>
514 <b> // Author: Yuri Kharlov 11 September 2000</b>
519 CPV displayed by root
524 <td>CPV perspective view</td>
525 <td>CPV front view </td>
529 <td> <img height=300 width=290 src="../images/CPVRootPersp.gif"> </td>
530 <td> <img height=300 width=290 src="../images/CPVRootFront.gif"> </td>
538 const <a href="../ListOfTypes.html#Double_t">Double_t</a> kRADDEG = 180.0 / kPI ;
539 const <a href="../ListOfTypes.html#Int_t">Int_t</a> kColorCPV = kGreen ;
540 const <a href="../ListOfTypes.html#Int_t">Int_t</a> kColorFrame = kYellow ;
541 const <a href="../ListOfTypes.html#Int_t">Int_t</a> kColorGassiplex = kRed;
542 const <a href="../ListOfTypes.html#Int_t">Int_t</a> kColorPCB = kCyan;
544 <b> // Box for a full PHOS module</b>
546 new TBRIK ("CPVBox", "CPV box", "<a href="../ListOfTypes.html#void">void</a>", <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(0)/2,
547 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(1)/2,
548 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(2)/2 );
549 new TBRIK ("CPVFrameLR", "CPV frame Left-Right", "<a href="../ListOfTypes.html#void">void</a>", <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVFrameSize">GetCPVFrameSize</a>(0)/2,
550 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVFrameSize">GetCPVFrameSize</a>(1)/2,
551 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(2)/2 );
552 new TBRIK ("CPVFrameUD", "CPV frame Up-Down", "<a href="../ListOfTypes.html#void">void</a>", <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(0)/2 - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVFrameSize">GetCPVFrameSize</a>(0),
553 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVFrameSize">GetCPVFrameSize</a>(1)/2,
554 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVFrameSize">GetCPVFrameSize</a>(2)/2);
555 new TBRIK ("CPVPCB", "CPV PCB", "<a href="../ListOfTypes.html#void">void</a>", <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVActiveSize">GetCPVActiveSize</a>(0)/2,
556 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVTextoliteThickness">GetCPVTextoliteThickness</a>()/2,
557 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVActiveSize">GetCPVActiveSize</a>(1)/2);
558 new TBRIK ("CPVGassiplex", "CPV Gassiplex PCB", "<a href="../ListOfTypes.html#void">void</a>", <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetGassiplexChipSize">GetGassiplexChipSize</a>(0)/2,
559 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetGassiplexChipSize">GetGassiplexChipSize</a>(1)/2,
560 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetGassiplexChipSize">GetGassiplexChipSize</a>(2)/2);
562 <b> // position CPV into ALICE</b>
564 <a href="../ListOfTypes.html#char">char</a> * nodename = new <a href="../ListOfTypes.html#char">char</a>[25] ;
565 <a href="../ListOfTypes.html#char">char</a> * rotname = new <a href="../ListOfTypes.html#char">char</a>[25] ;
567 <a href="../ListOfTypes.html#Float_t">Float_t</a> r = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetIPtoCPVDistance">GetIPtoCPVDistance</a>() + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(1) / 2.0 ;
568 <a href="../ListOfTypes.html#Int_t">Int_t</a> <a href="../ListOfTypes.html#number">number</a> = 988 ;
569 TNode * top = gAlice->GetGeometry()->GetNode("alice") ;
571 <a href="../ListOfTypes.html#Int_t">Int_t</a> lastModule = 0 ;
572 if (strcmp(<a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>->GetName(),"IHEP") == 0)
573 lastModule = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNModules">GetNModules</a>();
574 else if (strcmp(<a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>->GetName(),"MIXT") == 0)
575 lastModule = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNModules">GetNModules</a>() - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNPPSDModules">GetNPPSDModules</a>();
577 for( <a href="../ListOfTypes.html#Int_t">Int_t</a> i = 1; i <= lastModule; i++ ) { // the <a href="../ListOfTypes.html#number">number</a> of PHOS modules
579 <b> // One CPV module</b>
581 <a href="../ListOfTypes.html#Float_t">Float_t</a> angle = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPHOSAngle">GetPHOSAngle</a>(i) ;
582 sprintf(rotname, "%s%d", "rotg", <a href="../ListOfTypes.html#number">number</a>+i) ;
583 new TRotMatrix(rotname, rotname, 90, angle, 90, 90 + angle, 0, 0);
585 sprintf(nodename, "%s%d", "CPVModule", i) ;
586 <a href="../ListOfTypes.html#Float_t">Float_t</a> x = r * TMath::Sin( angle / kRADDEG ) ;
587 <a href="../ListOfTypes.html#Float_t">Float_t</a> y = -r * TMath::Cos( angle / kRADDEG ) ;
588 <a href="../ListOfTypes.html#Float_t">Float_t</a> z;
589 TNode * cpvBoxNode = new TNode(nodename , nodename ,"CPVBox", x, y, 0, rotname ) ;
590 cpvBoxNode->SetLineColor(kColorCPV) ;
591 fNodes->Add(cpvBoxNode) ;
592 cpvBoxNode->cd() ;
594 <b> // inside each CPV box:</b>
596 <b> // Frame around CPV</b>
597 <a href="../ListOfTypes.html#Int_t">Int_t</a> j;
598 for (j=0; j<=1; j++) {
599 sprintf(nodename, "CPVModule%d Frame%d", i, j+1) ;
600 x = TMath::Sign(1,2*j-1) * (<a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(0) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVFrameSize">GetCPVFrameSize</a>(0)) / 2;
601 TNode * cpvFrameNode = new TNode(nodename , nodename ,"CPVFrameLR", x, 0, 0) ;
602 cpvFrameNode->SetLineColor(kColorFrame) ;
603 fNodes->Add(cpvFrameNode) ;
605 sprintf(nodename, "CPVModule%d Frame%d", i, j+3) ;
606 z = TMath::Sign(1,2*j-1) * (<a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(2) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVFrameSize">GetCPVFrameSize</a>(2)) / 2;
607 cpvFrameNode = new TNode(nodename , nodename ,"CPVFrameUD", 0, 0, z) ;
608 cpvFrameNode->SetLineColor(kColorFrame) ;
609 fNodes->Add(cpvFrameNode) ;
612 <b> // 4 printed circuit boards</b>
613 for (j=0; j<4; j++) {
614 sprintf(nodename, "CPVModule%d PCB%d", i, j+1) ;
615 y = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVFrameSize">GetCPVFrameSize</a>(1) / 2 - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetFTPosition">GetFTPosition</a>(j) + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVTextoliteThickness">GetCPVTextoliteThickness</a>()/2;
616 TNode * cpvPCBNode = new TNode(nodename , nodename ,"CPVPCB", 0, y, 0) ;
617 cpvPCBNode->SetLineColor(kColorPCB) ;
618 fNodes->Add(cpvPCBNode) ;
621 <b> // Gassiplex chips</b>
622 <a href="../ListOfTypes.html#Float_t">Float_t</a> xStep = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVActiveSize">GetCPVActiveSize</a>(0) / (<a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNumberOfCPVChipsPhi">GetNumberOfCPVChipsPhi</a>() + 1);
623 <a href="../ListOfTypes.html#Float_t">Float_t</a> zStep = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVActiveSize">GetCPVActiveSize</a>(1) / (<a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNumberOfCPVChipsZ">GetNumberOfCPVChipsZ</a>() + 1);
624 y = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVFrameSize">GetCPVFrameSize</a>(1)/2 - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetFTPosition">GetFTPosition</a>(0) +
625 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVTextoliteThickness">GetCPVTextoliteThickness</a>() / 2 + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetGassiplexChipSize">GetGassiplexChipSize</a>(1) / 2 + 0.1;
626 for (<a href="../ListOfTypes.html#Int_t">Int_t</a> ix=0; ix<<a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNumberOfCPVChipsPhi">GetNumberOfCPVChipsPhi</a>(); ix++) {
627 x = xStep * (ix+1) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVActiveSize">GetCPVActiveSize</a>(0)/2;
628 for (<a href="../ListOfTypes.html#Int_t">Int_t</a> iz=0; iz<<a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNumberOfCPVChipsZ">GetNumberOfCPVChipsZ</a>(); iz++) {
629 z = zStep * (iz+1) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVActiveSize">GetCPVActiveSize</a>(1)/2;
630 sprintf(nodename, "CPVModule%d Chip(%dx%d)", i, ix+1,iz+1) ;
631 TNode * cpvGassiplexNode = new TNode(nodename , nodename ,"CPVGassiplex", x, y, z) ;
632 cpvGassiplexNode->SetLineColor(kColorGassiplex) ;
633 fNodes->Add(cpvGassiplexNode) ;
643 <b>//____________________________________________________________________________</b>
644 <a name="AliPHOSv0:CreateGeometry"> </a><a href="../ListOfTypes.html#void">void</a> <a href=".././AliPHOSv0.html#AliPHOSv0:CreateGeometry">AliPHOSv0::CreateGeometry</a>()
646 <b> // Create the PHOS geometry for Geant</b>
648 <a href=".././AliPHOSv0.html">AliPHOSv0</a> *phostmp = (<a href=".././AliPHOSv0.html">AliPHOSv0</a>*)gAlice->GetModule("PHOS") ;
650 if ( phostmp == NULL ) {
652 fprintf(stderr, "PHOS detector not found!n") ;
656 <b> // Get pointer to the array containing media indeces</b>
657 <a href="../ListOfTypes.html#Int_t">Int_t</a> *idtmed = fIdtmed->GetArray() - 699 ;
659 <b> // Create a box a PHOS module.</b>
660 <b> // In case of MIXT geometry 2 different boxes are needed</b>
662 <a href="../ListOfTypes.html#Float_t">Float_t</a> bigbox[3] ;
663 bigbox[0] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetOuterBoxSize">GetOuterBoxSize</a>(0) / 2.0 ;
664 bigbox[1] = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetOuterBoxSize">GetOuterBoxSize</a>(1) + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(1) ) / 2.0 ;
665 bigbox[2] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetOuterBoxSize">GetOuterBoxSize</a>(2) / 2.0 ;
667 gMC->Gsvolu("PHOS", "BOX ", idtmed[798], bigbox, 3) ;
669 if ( strcmp( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>->GetName(),"MIXT") == 0 && <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNPPSDModules">GetNPPSDModules</a>() > 0)
670 gMC->Gsvolu("PHO1", "BOX ", idtmed[798], bigbox, 3) ;
672 this-><a href="#AliPHOSv0:CreateGeometryforPHOS">CreateGeometryforPHOS</a>() ;
673 if ( strcmp( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>->GetName(), "GPS2") == 0 )
674 this-><a href="#AliPHOSv0:CreateGeometryforPPSD">CreateGeometryforPPSD</a>() ;
675 else if ( strcmp( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>->GetName(), "IHEP") == 0 )
676 this-><a href="#AliPHOSv0:CreateGeometryforCPV">CreateGeometryforCPV</a>() ;
677 else if ( strcmp( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>->GetName(), "MIXT") == 0 ) {
678 this-><a href="#AliPHOSv0:CreateGeometryforPPSD">CreateGeometryforPPSD</a>() ;
679 this-><a href="#AliPHOSv0:CreateGeometryforCPV">CreateGeometryforCPV</a>() ;
682 cout << "<a href=".././AliPHOSv0.html#AliPHOSv0:CreateGeometry">AliPHOSv0::CreateGeometry</a> : no charged particle identification system installed" << endl;
684 this-><a href="#AliPHOSv0:CreateGeometryforSupport">CreateGeometryforSupport</a>() ;
686 <b> // --- Position PHOS mdules in ALICE setup ---</b>
688 <a href="../ListOfTypes.html#Int_t">Int_t</a> idrotm[99] ;
689 <a href="../ListOfTypes.html#Double_t">Double_t</a> const kRADDEG = 180.0 / kPI ;
691 <a href="../ListOfTypes.html#Int_t">Int_t</a> lastModule;
692 if (strcmp(<a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>->GetName(),"MIXT") == 0)
693 lastModule = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNModules">GetNModules</a>() - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNPPSDModules">GetNPPSDModules</a>();
695 lastModule = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNModules">GetNModules</a>();
697 <a href="../ListOfTypes.html#Int_t">Int_t</a> i;
698 for( i = 1; i <= lastModule ; i++ ) {
700 <a href="../ListOfTypes.html#Float_t">Float_t</a> angle = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPHOSAngle">GetPHOSAngle</a>(i) ;
701 AliMatrix(idrotm[i-1], 90.0, angle, 90.0, 90.0+angle, 0.0, 0.0) ;
703 <a href="../ListOfTypes.html#Float_t">Float_t</a> r = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetIPtoOuterCoverDistance">GetIPtoOuterCoverDistance</a>() + ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetOuterBoxSize">GetOuterBoxSize</a>(1) + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(1) ) / 2.0 ;
705 <a href="../ListOfTypes.html#Float_t">Float_t</a> xP1 = r * TMath::Sin( angle / kRADDEG ) ;
706 <a href="../ListOfTypes.html#Float_t">Float_t</a> yP1 = -r * TMath::Cos( angle / kRADDEG ) ;
708 gMC->Gspos("PHOS", i, "ALIC", xP1, yP1, 0.0, idrotm[i-1], "ONLY") ;
712 for( i = lastModule+1; i <= <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNModules">GetNModules</a>(); i++ ) {
714 <a href="../ListOfTypes.html#Float_t">Float_t</a> angle = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPHOSAngle">GetPHOSAngle</a>(i) ;
715 AliMatrix(idrotm[i-1], 90.0, angle, 90.0, 90.0+angle, 0.0, 0.0) ;
717 <a href="../ListOfTypes.html#Float_t">Float_t</a> r = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetIPtoOuterCoverDistance">GetIPtoOuterCoverDistance</a>() + ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetOuterBoxSize">GetOuterBoxSize</a>(1) + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(1) ) / 2.0 ;
719 <a href="../ListOfTypes.html#Float_t">Float_t</a> xP1 = r * TMath::Sin( angle / kRADDEG ) ;
720 <a href="../ListOfTypes.html#Float_t">Float_t</a> yP1 = -r * TMath::Cos( angle / kRADDEG ) ;
722 gMC->Gspos("PHO1", i-lastModule, "ALIC", xP1, yP1, 0.0, idrotm[i-1], "ONLY") ;
728 <b>//____________________________________________________________________________</b>
729 <a name="AliPHOSv0:CreateGeometryforPHOS"> </a><a href="../ListOfTypes.html#void">void</a> <a href=".././AliPHOSv0.html#AliPHOSv0:CreateGeometryforPHOS">AliPHOSv0::CreateGeometryforPHOS</a>()
731 <b> // Create the PHOS-EMC geometry for GEANT</b>
735 Geant3 geometry tree of PHOS-EMC in ALICE
738 <IMG Align=BOTTOM ALT="EMC geant tree" SRC="../images/EMCinAlice.gif">
743 <b> // Get pointer to the array containing media indexes</b>
744 <a href="../ListOfTypes.html#Int_t">Int_t</a> *idtmed = fIdtmed->GetArray() - 699 ;
747 <b> // --- Define PHOS box volume, fPUFPill with thermo insulating foam ---</b>
748 <b> // --- Foam Thermo Insulating outer cover dimensions ---</b>
749 <b> // --- Put it in bigbox = PHOS</b>
751 <a href="../ListOfTypes.html#Float_t">Float_t</a> dphos[3] ;
752 dphos[0] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetOuterBoxSize">GetOuterBoxSize</a>(0) / 2.0 ;
753 dphos[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetOuterBoxSize">GetOuterBoxSize</a>(1) / 2.0 ;
754 dphos[2] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetOuterBoxSize">GetOuterBoxSize</a>(2) / 2.0 ;
756 gMC->Gsvolu("PEMC", "BOX ", idtmed[706], dphos, 3) ;
758 <a href="../ListOfTypes.html#Float_t">Float_t</a> yO = - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(1) / 2.0 ;
760 gMC->Gspos("PEMC", 1, "PHOS", 0.0, yO, 0.0, 0, "ONLY") ;
761 if ( strcmp( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>->GetName(),"MIXT") == 0 && <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNPPSDModules">GetNPPSDModules</a>() > 0)
762 gMC->Gspos("PEMC", 1, "PHO1", 0.0, yO, 0.0, 0, "ONLY") ;
765 <b> // --- Define Textolit Wall box, position inside PEMC ---</b>
766 <b> // --- Textolit Wall box dimentions ---</b>
769 <a href="../ListOfTypes.html#Float_t">Float_t</a> dptxw[3];
770 dptxw[0] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetTextolitBoxSize">GetTextolitBoxSize</a>(0) / 2.0 ;
771 dptxw[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetTextolitBoxSize">GetTextolitBoxSize</a>(1) / 2.0 ;
772 dptxw[2] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetTextolitBoxSize">GetTextolitBoxSize</a>(2) / 2.0 ;
774 gMC->Gsvolu("PTXW", "BOX ", idtmed[707], dptxw, 3);
776 yO = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetOuterBoxThickness">GetOuterBoxThickness</a>(1) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetUpperPlateThickness">GetUpperPlateThickness</a>() ) / 2. ;
778 gMC->Gspos("PTXW", 1, "PEMC", 0.0, yO, 0.0, 0, "ONLY") ;
781 <b> // --- Define Upper Polystyrene Foam Plate, place inside PTXW ---</b>
782 <b> // --- immediately below Foam Thermo Insulation Upper plate ---</b>
784 <b> // --- Upper Polystyrene Foam plate thickness ---</b>
786 <a href="../ListOfTypes.html#Float_t">Float_t</a> dpufp[3] ;
787 dpufp[0] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetTextolitBoxSize">GetTextolitBoxSize</a>(0) / 2.0 ;
788 dpufp[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetSecondUpperPlateThickness">GetSecondUpperPlateThickness</a>() / 2. ;
789 dpufp[2] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetTextolitBoxSize">GetTextolitBoxSize</a>(2) /2.0 ;
791 gMC->Gsvolu("PUFP", "BOX ", idtmed[703], dpufp, 3) ;
793 yO = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetTextolitBoxSize">GetTextolitBoxSize</a>(1) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetSecondUpperPlateThickness">GetSecondUpperPlateThickness</a>() ) / 2.0 ;
795 gMC->Gspos("PUFP", 1, "PTXW", 0.0, yO, 0.0, 0, "ONLY") ;
798 <b> // --- Define air-filled box, place inside PTXW ---</b>
799 <b> // --- Inner AIR volume dimensions ---</b>
802 <a href="../ListOfTypes.html#Float_t">Float_t</a> dpair[3] ;
803 dpair[0] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAirFilledBoxSize">GetAirFilledBoxSize</a>(0) / 2.0 ;
804 dpair[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAirFilledBoxSize">GetAirFilledBoxSize</a>(1) / 2.0 ;
805 dpair[2] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAirFilledBoxSize">GetAirFilledBoxSize</a>(2) / 2.0 ;
807 gMC->Gsvolu("PAIR", "BOX ", idtmed[798], dpair, 3) ;
809 yO = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetTextolitBoxSize">GetTextolitBoxSize</a>(1) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAirFilledBoxSize">GetAirFilledBoxSize</a>(1) ) / 2.0 - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetSecondUpperPlateThickness">GetSecondUpperPlateThickness</a>() ;
811 gMC->Gspos("PAIR", 1, "PTXW", 0.0, yO, 0.0, 0, "ONLY") ;
813 <b>// --- Dimensions of PbWO4 crystal ---</b>
815 <a href="../ListOfTypes.html#Float_t">Float_t</a> xtlX = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalSize">GetCrystalSize</a>(0) ;
816 <a href="../ListOfTypes.html#Float_t">Float_t</a> xtlY = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalSize">GetCrystalSize</a>(1) ;
817 <a href="../ListOfTypes.html#Float_t">Float_t</a> xtlZ = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalSize">GetCrystalSize</a>(2) ;
819 <a href="../ListOfTypes.html#Float_t">Float_t</a> dptcb[3] ;
820 dptcb[0] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNPhi">GetNPhi</a>() * ( xtlX + 2 * <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetGapBetweenCrystals">GetGapBetweenCrystals</a>() ) / 2.0 + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetModuleBoxThickness">GetModuleBoxThickness</a>() ;
821 dptcb[1] = ( xtlY + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalSupportHeight">GetCrystalSupportHeight</a>() + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalWrapThickness">GetCrystalWrapThickness</a>() + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalHolderThickness">GetCrystalHolderThickness</a>() ) / 2.0
822 + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetModuleBoxThickness">GetModuleBoxThickness</a>() / 2.0 ;
823 dptcb[2] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNZ">GetNZ</a>() * ( xtlZ + 2 * <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetGapBetweenCrystals">GetGapBetweenCrystals</a>() ) / 2.0 + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetModuleBoxThickness">GetModuleBoxThickness</a>() ;
825 gMC->Gsvolu("PTCB", "BOX ", idtmed[706], dptcb, 3) ;
827 yO = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAirFilledBoxSize">GetAirFilledBoxSize</a>(1) / 2.0 - dptcb[1]
828 - ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetIPtoCrystalSurface">GetIPtoCrystalSurface</a>() - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetIPtoOuterCoverDistance">GetIPtoOuterCoverDistance</a>() - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetModuleBoxThickness">GetModuleBoxThickness</a>()
829 - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetUpperPlateThickness">GetUpperPlateThickness</a>() - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetSecondUpperPlateThickness">GetSecondUpperPlateThickness</a>() ) ;
831 gMC->Gspos("PTCB", 1, "PAIR", 0.0, yO, 0.0, 0, "ONLY") ;
834 <b> // --- Define Crystal BLock filled with air, position it inside PTCB ---</b>
835 <a href="../ListOfTypes.html#Float_t">Float_t</a> dpcbl[3] ;
837 dpcbl[0] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNPhi">GetNPhi</a>() * ( xtlX + 2 * <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetGapBetweenCrystals">GetGapBetweenCrystals</a>() ) / 2.0 ;
838 dpcbl[1] = ( xtlY + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalSupportHeight">GetCrystalSupportHeight</a>() + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalWrapThickness">GetCrystalWrapThickness</a>() + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalHolderThickness">GetCrystalHolderThickness</a>() ) / 2.0 ;
839 dpcbl[2] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNZ">GetNZ</a>() * ( xtlZ + 2 * <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetGapBetweenCrystals">GetGapBetweenCrystals</a>() ) / 2.0 ;
841 gMC->Gsvolu("PCBL", "BOX ", idtmed[798], dpcbl, 3) ;
843 <b> // --- Divide PCBL in X (phi) and Z directions --</b>
844 gMC->Gsdvn("PROW", "PCBL", <a href="../ListOfTypes.html#Int_t">Int_t</a> (<a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNPhi">GetNPhi</a>()), 1) ;
845 gMC->Gsdvn("PCEL", "PROW", <a href="../ListOfTypes.html#Int_t">Int_t</a> (<a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNZ">GetNZ</a>()), 3) ;
847 yO = -<a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetModuleBoxThickness">GetModuleBoxThickness</a>() / 2.0 ;
849 gMC->Gspos("PCBL", 1, "PTCB", 0.0, yO, 0.0, 0, "ONLY") ;
852 <b> // --- Define STeel (actually, it's titanium) Cover volume, place inside PCEL</b>
853 <a href="../ListOfTypes.html#Float_t">Float_t</a> dpstc[3] ;
855 dpstc[0] = ( xtlX + 2 * <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalWrapThickness">GetCrystalWrapThickness</a>() ) / 2.0 ;
856 dpstc[1] = ( xtlY + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalSupportHeight">GetCrystalSupportHeight</a>() + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalWrapThickness">GetCrystalWrapThickness</a>() + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalHolderThickness">GetCrystalHolderThickness</a>() ) / 2.0 ;
857 dpstc[2] = ( xtlZ + 2 * <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalWrapThickness">GetCrystalWrapThickness</a>() + 2 * <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalHolderThickness">GetCrystalHolderThickness</a>() ) / 2.0 ;
859 gMC->Gsvolu("PSTC", "BOX ", idtmed[704], dpstc, 3) ;
861 gMC->Gspos("PSTC", 1, "PCEL", 0.0, 0.0, 0.0, 0, "ONLY") ;
864 <b> // --- Define Tyvek volume, place inside PSTC ---</b>
865 <a href="../ListOfTypes.html#Float_t">Float_t</a> dppap[3] ;
867 dppap[0] = xtlX / 2.0 + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalWrapThickness">GetCrystalWrapThickness</a>() ;
868 dppap[1] = ( xtlY + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalSupportHeight">GetCrystalSupportHeight</a>() + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalWrapThickness">GetCrystalWrapThickness</a>() ) / 2.0 ;
869 dppap[2] = xtlZ / 2.0 + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalWrapThickness">GetCrystalWrapThickness</a>() ;
871 gMC->Gsvolu("PPAP", "BOX ", idtmed[702], dppap, 3) ;
873 yO = ( xtlY + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalSupportHeight">GetCrystalSupportHeight</a>() + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalWrapThickness">GetCrystalWrapThickness</a>() ) / 2.0
874 - ( xtlY + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalSupportHeight">GetCrystalSupportHeight</a>() + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalWrapThickness">GetCrystalWrapThickness</a>() + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalHolderThickness">GetCrystalHolderThickness</a>() ) / 2.0 ;
876 gMC->Gspos("PPAP", 1, "PSTC", 0.0, yO, 0.0, 0, "ONLY") ;
879 <b> // --- Define PbWO4 crystal volume, place inside PPAP ---</b>
880 <a href="../ListOfTypes.html#Float_t">Float_t</a> dpxtl[3] ;
882 dpxtl[0] = xtlX / 2.0 ;
883 dpxtl[1] = xtlY / 2.0 ;
884 dpxtl[2] = xtlZ / 2.0 ;
886 gMC->Gsvolu("PXTL", "BOX ", idtmed[699], dpxtl, 3) ;
888 yO = ( xtlY + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalSupportHeight">GetCrystalSupportHeight</a>() + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalWrapThickness">GetCrystalWrapThickness</a>() ) / 2.0 - xtlY / 2.0 - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalWrapThickness">GetCrystalWrapThickness</a>() ;
890 gMC->Gspos("PXTL", 1, "PPAP", 0.0, yO, 0.0, 0, "ONLY") ;
893 <b> // --- Define crystal support volume, place inside PPAP ---</b>
894 <a href="../ListOfTypes.html#Float_t">Float_t</a> dpsup[3] ;
896 dpsup[0] = xtlX / 2.0 + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalWrapThickness">GetCrystalWrapThickness</a>() ;
897 dpsup[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalSupportHeight">GetCrystalSupportHeight</a>() / 2.0 ;
898 dpsup[2] = xtlZ / 2.0 + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalWrapThickness">GetCrystalWrapThickness</a>() ;
900 gMC->Gsvolu("PSUP", "BOX ", idtmed[798], dpsup, 3) ;
902 yO = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalSupportHeight">GetCrystalSupportHeight</a>() / 2.0 - ( xtlY + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalSupportHeight">GetCrystalSupportHeight</a>() + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalWrapThickness">GetCrystalWrapThickness</a>() ) / 2.0 ;
904 gMC->Gspos("PSUP", 1, "PPAP", 0.0, yO, 0.0, 0, "ONLY") ;
907 <b> // --- Define PIN-diode volume and position it inside crystal support ---</b>
908 <b> // --- right behind PbWO4 crystal</b>
910 <b> // --- PIN-diode dimensions ---</b>
913 <a href="../ListOfTypes.html#Float_t">Float_t</a> dppin[3] ;
914 dppin[0] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPinDiodeSize">GetPinDiodeSize</a>(0) / 2.0 ;
915 dppin[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPinDiodeSize">GetPinDiodeSize</a>(1) / 2.0 ;
916 dppin[2] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPinDiodeSize">GetPinDiodeSize</a>(2) / 2.0 ;
918 gMC->Gsvolu("PPIN", "BOX ", idtmed[705], dppin, 3) ;
920 yO = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCrystalSupportHeight">GetCrystalSupportHeight</a>() / 2.0 - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPinDiodeSize">GetPinDiodeSize</a>(1) / 2.0 ;
922 gMC->Gspos("PPIN", 1, "PSUP", 0.0, yO, 0.0, 0, "ONLY") ;
925 <b> // --- Define Upper Cooling Panel, place it on top of PTCB ---</b>
926 <a href="../ListOfTypes.html#Float_t">Float_t</a> dpucp[3] ;
927 <b> // --- Upper Cooling Plate thickness ---</b>
929 dpucp[0] = dptcb[0] ;
930 dpucp[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetUpperCoolingPlateThickness">GetUpperCoolingPlateThickness</a>() ;
931 dpucp[2] = dptcb[2] ;
933 gMC->Gsvolu("PUCP", "BOX ", idtmed[701], dpucp,3) ;
935 yO = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAirFilledBoxSize">GetAirFilledBoxSize</a>(1) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetUpperCoolingPlateThickness">GetUpperCoolingPlateThickness</a>() ) / 2.
936 - ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetIPtoCrystalSurface">GetIPtoCrystalSurface</a>() - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetIPtoOuterCoverDistance">GetIPtoOuterCoverDistance</a>() - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetModuleBoxThickness">GetModuleBoxThickness</a>()
937 - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetUpperPlateThickness">GetUpperPlateThickness</a>() - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetSecondUpperPlateThickness">GetSecondUpperPlateThickness</a>() - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetUpperCoolingPlateThickness">GetUpperCoolingPlateThickness</a>() ) ;
939 gMC->Gspos("PUCP", 1, "PAIR", 0.0, yO, 0.0, 0, "ONLY") ;
942 <b> // --- Define Al Support Plate, position it inside PAIR ---</b>
943 <b> // --- right beneath PTCB ---</b>
944 <b> // --- Al Support Plate thickness ---</b>
946 <a href="../ListOfTypes.html#Float_t">Float_t</a> dpasp[3] ;
947 dpasp[0] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAirFilledBoxSize">GetAirFilledBoxSize</a>(0) / 2.0 ;
948 dpasp[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetSupportPlateThickness">GetSupportPlateThickness</a>() / 2.0 ;
949 dpasp[2] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAirFilledBoxSize">GetAirFilledBoxSize</a>(2) / 2.0 ;
951 gMC->Gsvolu("PASP", "BOX ", idtmed[701], dpasp, 3) ;
953 yO = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAirFilledBoxSize">GetAirFilledBoxSize</a>(1) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetSupportPlateThickness">GetSupportPlateThickness</a>() ) / 2.
954 - ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetIPtoCrystalSurface">GetIPtoCrystalSurface</a>() - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetIPtoOuterCoverDistance">GetIPtoOuterCoverDistance</a>()
955 - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetUpperPlateThickness">GetUpperPlateThickness</a>() - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetSecondUpperPlateThickness">GetSecondUpperPlateThickness</a>() + dpcbl[1] * 2 ) ;
957 gMC->Gspos("PASP", 1, "PAIR", 0.0, yO, 0.0, 0, "ONLY") ;
960 <b> // --- Define Thermo Insulating Plate, position it inside PAIR ---</b>
961 <b> // --- right beneath PASP ---</b>
962 <b> // --- Lower Thermo Insulating Plate thickness ---</b>
964 <a href="../ListOfTypes.html#Float_t">Float_t</a> dptip[3] ;
965 dptip[0] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAirFilledBoxSize">GetAirFilledBoxSize</a>(0) / 2.0 ;
966 dptip[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetLowerThermoPlateThickness">GetLowerThermoPlateThickness</a>() / 2.0 ;
967 dptip[2] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAirFilledBoxSize">GetAirFilledBoxSize</a>(2) / 2.0 ;
969 gMC->Gsvolu("PTIP", "BOX ", idtmed[706], dptip, 3) ;
971 yO = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAirFilledBoxSize">GetAirFilledBoxSize</a>(1) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetLowerThermoPlateThickness">GetLowerThermoPlateThickness</a>() ) / 2.
972 - ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetIPtoCrystalSurface">GetIPtoCrystalSurface</a>() - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetIPtoOuterCoverDistance">GetIPtoOuterCoverDistance</a>() - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetUpperPlateThickness">GetUpperPlateThickness</a>()
973 - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetSecondUpperPlateThickness">GetSecondUpperPlateThickness</a>() + dpcbl[1] * 2 + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetSupportPlateThickness">GetSupportPlateThickness</a>() ) ;
975 gMC->Gspos("PTIP", 1, "PAIR", 0.0, yO, 0.0, 0, "ONLY") ;
978 <b> // --- Define Textolit Plate, position it inside PAIR ---</b>
979 <b> // --- right beneath PTIP ---</b>
980 <b> // --- Lower Textolit Plate thickness ---</b>
982 <a href="../ListOfTypes.html#Float_t">Float_t</a> dptxp[3] ;
983 dptxp[0] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAirFilledBoxSize">GetAirFilledBoxSize</a>(0) / 2.0 ;
984 dptxp[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetLowerTextolitPlateThickness">GetLowerTextolitPlateThickness</a>() / 2.0 ;
985 dptxp[2] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAirFilledBoxSize">GetAirFilledBoxSize</a>(2) / 2.0 ;
987 gMC->Gsvolu("PTXP", "BOX ", idtmed[707], dptxp, 3) ;
989 yO = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAirFilledBoxSize">GetAirFilledBoxSize</a>(1) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetLowerTextolitPlateThickness">GetLowerTextolitPlateThickness</a>() ) / 2.
990 - ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetIPtoCrystalSurface">GetIPtoCrystalSurface</a>() - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetIPtoOuterCoverDistance">GetIPtoOuterCoverDistance</a>() - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetUpperPlateThickness">GetUpperPlateThickness</a>()
991 - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetSecondUpperPlateThickness">GetSecondUpperPlateThickness</a>() + dpcbl[1] * 2 + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetSupportPlateThickness">GetSupportPlateThickness</a>()
992 + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetLowerThermoPlateThickness">GetLowerThermoPlateThickness</a>() ) ;
994 gMC->Gspos("PTXP", 1, "PAIR", 0.0, yO, 0.0, 0, "ONLY") ;
998 <b>//____________________________________________________________________________</b>
999 <a name="AliPHOSv0:CreateGeometryforPPSD"> </a><a href="../ListOfTypes.html#void">void</a> <a href=".././AliPHOSv0.html#AliPHOSv0:CreateGeometryforPPSD">AliPHOSv0::CreateGeometryforPPSD</a>()
1001 <b> // Create the PHOS-PPSD geometry for GEANT</b>
1005 Geant3 geometry tree of PHOS-PPSD in ALICE
1008 <IMG Align=BOTTOM ALT="PPSD geant tree" SRC="../images/PPSDinAlice.gif">
1013 <b> // Get pointer to the array containing media indexes</b>
1014 <a href="../ListOfTypes.html#Int_t">Int_t</a> *idtmed = fIdtmed->GetArray() - 699 ;
1016 <b> // The box containing all ppsd's for one PHOS module filled with air </b>
1017 <a href="../ListOfTypes.html#Float_t">Float_t</a> ppsd[3] ;
1018 ppsd[0] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(0) / 2.0 ;
1019 ppsd[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(1) / 2.0 ;
1020 ppsd[2] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(2) / 2.0 ;
1022 gMC->Gsvolu("PPSD", "BOX ", idtmed[798], ppsd, 3) ;
1024 <a href="../ListOfTypes.html#Float_t">Float_t</a> yO = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetOuterBoxSize">GetOuterBoxSize</a>(1) / 2.0 ;
1026 if ( strcmp( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>->GetName(),"MIXT") == 0 && <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNPPSDModules">GetNPPSDModules</a>() > 0)
1027 gMC->Gspos("PPSD", 1, "PHO1", 0.0, yO, 0.0, 0, "ONLY") ;
1029 gMC->Gspos("PPSD", 1, "PHOS", 0.0, yO, 0.0, 0, "ONLY") ;
1031 <b> // Now we build a micromegas module</b>
1032 <b> // The box containing the whole module filled with epoxy (FR4)</b>
1034 <a href="../ListOfTypes.html#Float_t">Float_t</a> mppsd[3] ;
1035 mppsd[0] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(0) / 2.0 ;
1036 mppsd[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(1) / 2.0 ;
1037 mppsd[2] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(2) / 2.0 ;
1039 gMC->Gsvolu("PMPP", "BOX ", idtmed[708], mppsd, 3) ;
1041 <b> // Inside mppsd :</b>
1042 <b> // 1. The Top Lid made of epoxy (FR4) </b>
1044 <a href="../ListOfTypes.html#Float_t">Float_t</a> tlppsd[3] ;
1045 tlppsd[0] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(0) / 2.0 ;
1046 tlppsd[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetLidThickness">GetLidThickness</a>() / 2.0 ;
1047 tlppsd[2] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(2) / 2.0 ;
1049 gMC->Gsvolu("PTLP", "BOX ", idtmed[708], tlppsd, 3) ;
1051 <a href="../ListOfTypes.html#Float_t">Float_t</a> y0 = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicromegas1Thickness">GetMicromegas1Thickness</a>() - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetLidThickness">GetLidThickness</a>() ) / 2. ;
1053 gMC->Gspos("PTLP", 1, "PMPP", 0.0, y0, 0.0, 0, "ONLY") ;
1055 <b> // 2. the upper panel made of composite material</b>
1057 <a href="../ListOfTypes.html#Float_t">Float_t</a> upppsd[3] ;
1058 upppsd[0] = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(0) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicromegasWallThickness">GetMicromegasWallThickness</a>() ) / 2.0 ;
1059 upppsd[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCompositeThickness">GetCompositeThickness</a>() / 2.0 ;
1060 upppsd[2] = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(2) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicromegasWallThickness">GetMicromegasWallThickness</a>() ) / 2.0 ;
1062 gMC->Gsvolu("PUPP", "BOX ", idtmed[709], upppsd, 3) ;
1064 y0 = y0 - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetLidThickness">GetLidThickness</a>() / 2. - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCompositeThickness">GetCompositeThickness</a>() / 2. ;
1066 gMC->Gspos("PUPP", 1, "PMPP", 0.0, y0, 0.0, 0, "ONLY") ;
1068 <b> // 3. the anode made of Copper</b>
1070 <a href="../ListOfTypes.html#Float_t">Float_t</a> anppsd[3] ;
1071 anppsd[0] = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(0) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicromegasWallThickness">GetMicromegasWallThickness</a>() ) / 2.0 ;
1072 anppsd[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAnodeThickness">GetAnodeThickness</a>() / 2.0 ;
1073 anppsd[2] = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(2) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicromegasWallThickness">GetMicromegasWallThickness</a>() ) / 2.0 ;
1075 gMC->Gsvolu("PANP", "BOX ", idtmed[710], anppsd, 3) ;
1077 y0 = y0 - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCompositeThickness">GetCompositeThickness</a>() / 2. - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAnodeThickness">GetAnodeThickness</a>() / 2. ;
1079 gMC->Gspos("PANP", 1, "PMPP", 0.0, y0, 0.0, 0, "ONLY") ;
1081 <b> // 4. the conversion gap + avalanche gap filled with gas</b>
1083 <a href="../ListOfTypes.html#Float_t">Float_t</a> ggppsd[3] ;
1084 ggppsd[0] = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(0) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicromegasWallThickness">GetMicromegasWallThickness</a>() ) / 2.0 ;
1085 ggppsd[1] = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetConversionGap">GetConversionGap</a>() + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAvalancheGap">GetAvalancheGap</a>() ) / 2.0 ;
1086 ggppsd[2] = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(2) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicromegasWallThickness">GetMicromegasWallThickness</a>() ) / 2.0 ;
1088 gMC->Gsvolu("PGGP", "BOX ", idtmed[715], ggppsd, 3) ;
1090 <b> // --- Divide GGPP in X (phi) and Z directions --</b>
1091 gMC->Gsdvn("PROW", "PGGP", <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNumberOfPadsPhi">GetNumberOfPadsPhi</a>(), 1) ;
1092 gMC->Gsdvn("PCEL", "PROW", <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNumberOfPadsZ">GetNumberOfPadsZ</a>() , 3) ;
1094 y0 = y0 - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAnodeThickness">GetAnodeThickness</a>() / 2. - ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetConversionGap">GetConversionGap</a>() + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAvalancheGap">GetAvalancheGap</a>() ) / 2. ;
1096 gMC->Gspos("PGGP", 1, "PMPP", 0.0, y0, 0.0, 0, "ONLY") ;
1099 <b> // 6. the cathode made of Copper</b>
1101 <a href="../ListOfTypes.html#Float_t">Float_t</a> cappsd[3] ;
1102 cappsd[0] = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(0) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicromegasWallThickness">GetMicromegasWallThickness</a>() ) / 2.0 ;
1103 cappsd[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCathodeThickness">GetCathodeThickness</a>() / 2.0 ;
1104 cappsd[2] = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(2) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicromegasWallThickness">GetMicromegasWallThickness</a>() ) / 2.0 ;
1106 gMC->Gsvolu("PCAP", "BOX ", idtmed[710], cappsd, 3) ;
1108 y0 = y0 - ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetConversionGap">GetConversionGap</a>() + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetAvalancheGap">GetAvalancheGap</a>() ) / 2. - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCathodeThickness">GetCathodeThickness</a>() / 2. ;
1110 gMC->Gspos("PCAP", 1, "PMPP", 0.0, y0, 0.0, 0, "ONLY") ;
1112 <b> // 7. the printed circuit made of G10 </b>
1114 <a href="../ListOfTypes.html#Float_t">Float_t</a> pcppsd[3] ;
1115 pcppsd[0] = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(0) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicromegasWallThickness">GetMicromegasWallThickness</a>() ) / 2,.0 ;
1116 pcppsd[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPCThickness">GetPCThickness</a>() / 2.0 ;
1117 pcppsd[2] = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(2) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicromegasWallThickness">GetMicromegasWallThickness</a>() ) / 2.0 ;
1119 gMC->Gsvolu("PCPS", "BOX ", idtmed[711], cappsd, 3) ;
1121 y0 = y0 - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCathodeThickness">GetCathodeThickness</a>() / 2. - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPCThickness">GetPCThickness</a>() / 2. ;
1123 gMC->Gspos("PCPS", 1, "PMPP", 0.0, y0, 0.0, 0, "ONLY") ;
1125 <b> // 8. the lower panel made of composite material</b>
1127 <a href="../ListOfTypes.html#Float_t">Float_t</a> lpppsd[3] ;
1128 lpppsd[0] = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(0) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicromegasWallThickness">GetMicromegasWallThickness</a>() ) / 2.0 ;
1129 lpppsd[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCompositeThickness">GetCompositeThickness</a>() / 2.0 ;
1130 lpppsd[2] = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(2) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicromegasWallThickness">GetMicromegasWallThickness</a>() ) / 2.0 ;
1132 gMC->Gsvolu("PLPP", "BOX ", idtmed[709], lpppsd, 3) ;
1134 y0 = y0 - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPCThickness">GetPCThickness</a>() / 2. - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCompositeThickness">GetCompositeThickness</a>() / 2. ;
1136 gMC->Gspos("PLPP", 1, "PMPP", 0.0, y0, 0.0, 0, "ONLY") ;
1138 <b> // Position the fNumberOfModulesPhi x fNumberOfModulesZ modules (mppsd) inside PPSD to cover a PHOS module</b>
1139 <b> // the top and bottom one's (which are assumed identical) :</b>
1141 <a href="../ListOfTypes.html#Float_t">Float_t</a> yt = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(1) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicromegas1Thickness">GetMicromegas1Thickness</a>() ) / 2. ;
1142 <a href="../ListOfTypes.html#Float_t">Float_t</a> yb = - ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(1) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicromegas2Thickness">GetMicromegas2Thickness</a>() ) / 2. ;
1144 <a href="../ListOfTypes.html#Int_t">Int_t</a> copyNumbertop = 0 ;
1145 <a href="../ListOfTypes.html#Int_t">Int_t</a> copyNumberbot = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNumberOfModulesPhi">GetNumberOfModulesPhi</a>() * <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNumberOfModulesZ">GetNumberOfModulesZ</a>() ;
1147 <a href="../ListOfTypes.html#Float_t">Float_t</a> x = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(0) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(0) ) / 2. ;
1149 for ( <a href="../ListOfTypes.html#Int_t">Int_t</a> iphi = 1; iphi <= <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNumberOfModulesPhi">GetNumberOfModulesPhi</a>(); iphi++ ) { // the <a href="../ListOfTypes.html#number">number</a> of micromegas modules in phi per PHOS module
1150 <a href="../ListOfTypes.html#Float_t">Float_t</a> z = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(2) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(2) ) / 2. ;
1152 for ( <a href="../ListOfTypes.html#Int_t">Int_t</a> iz = 1; iz <= <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNumberOfModulesZ">GetNumberOfModulesZ</a>(); iz++ ) { // the <a href="../ListOfTypes.html#number">number</a> of micromegas modules in z per PHOS module
1153 gMC->Gspos("PMPP", ++copyNumbertop, "PPSD", x, yt, z, 0, "ONLY") ;
1154 gMC->Gspos("PMPP", ++copyNumberbot, "PPSD", x, yb, z, 0, "ONLY") ;
1155 z = z - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(2) ;
1156 } // end of Z module loop
1157 x = x - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetPPSDModuleSize">GetPPSDModuleSize</a>(0) ;
1158 } // end of phi module loop
1160 <b> // The Lead converter between two air gaps</b>
1161 <b> // 1. Upper air gap</b>
1163 <a href="../ListOfTypes.html#Float_t">Float_t</a> uappsd[3] ;
1164 uappsd[0] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(0) / 2.0 ;
1165 uappsd[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicro1ToLeadGap">GetMicro1ToLeadGap</a>() / 2.0 ;
1166 uappsd[2] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(2) / 2.0 ;
1168 gMC->Gsvolu("PUAPPS", "BOX ", idtmed[798], uappsd, 3) ;
1170 y0 = ( <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(1) - 2 * <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicromegas1Thickness">GetMicromegas1Thickness</a>() - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicro1ToLeadGap">GetMicro1ToLeadGap</a>() ) / 2. ;
1172 gMC->Gspos("PUAPPS", 1, "PPSD", 0.0, y0, 0.0, 0, "ONLY") ;
1174 <b> // 2. Lead converter</b>
1176 <a href="../ListOfTypes.html#Float_t">Float_t</a> lcppsd[3] ;
1177 lcppsd[0] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(0) / 2.0 ;
1178 lcppsd[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetLeadConverterThickness">GetLeadConverterThickness</a>() / 2.0 ;
1179 lcppsd[2] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(2) / 2.0 ;
1181 gMC->Gsvolu("PLCPPS", "BOX ", idtmed[712], lcppsd, 3) ;
1183 y0 = y0 - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetMicro1ToLeadGap">GetMicro1ToLeadGap</a>() / 2. - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetLeadConverterThickness">GetLeadConverterThickness</a>() / 2. ;
1185 gMC->Gspos("PLCPPS", 1, "PPSD", 0.0, y0, 0.0, 0, "ONLY") ;
1187 <b> // 3. Lower air gap</b>
1189 <a href="../ListOfTypes.html#Float_t">Float_t</a> lappsd[3] ;
1190 lappsd[0] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(0) / 2.0 ;
1191 lappsd[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetLeadToMicro2Gap">GetLeadToMicro2Gap</a>() / 2.0 ;
1192 lappsd[2] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(2) / 2.0 ;
1194 gMC->Gsvolu("PLAPPS", "BOX ", idtmed[798], lappsd, 3) ;
1196 y0 = y0 - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetLeadConverterThickness">GetLeadConverterThickness</a>() / 2. - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetLeadToMicro2Gap">GetLeadToMicro2Gap</a>() / 2. ;
1198 gMC->Gspos("PLAPPS", 1, "PPSD", 0.0, y0, 0.0, 0, "ONLY") ;
1203 <b>//____________________________________________________________________________</b>
1204 <a name="AliPHOSv0:CreateGeometryforCPV"> </a><a href="../ListOfTypes.html#void">void</a> <a href=".././AliPHOSv0.html#AliPHOSv0:CreateGeometryforCPV">AliPHOSv0::CreateGeometryforCPV</a>()
1206 <b> // Create the PHOS-CPV geometry for GEANT</b>
1207 <b> // Author: Yuri Kharlov 11 September 2000</b>
1211 Geant3 geometry of PHOS-CPV in ALICE
1216 <td>CPV perspective view</td>
1217 <td>CPV front view </td>
1221 <td> <img height=300 width=290 src="../images/CPVallPersp.gif"> </td>
1222 <td> <img height=300 width=290 src="../images/CPVallFront.gif"> </td>
1226 <td>One CPV module, perspective view </td>
1227 <td>One CPV module, front view (extended in vertical direction) </td>
1231 <td><img height=300 width=290 src="../images/CPVmodulePers.gif"></td>
1232 <td><img height=300 width=290 src="../images/CPVmoduleSide.gif"></td>
1238 Geant3 geometry tree of PHOS-CPV in ALICE
1241 <img height=300 width=290 src="../images/CPVtree.gif">
1246 <a href="../ListOfTypes.html#Float_t">Float_t</a> par[3], x,y,z;
1248 <b> // Get pointer to the array containing media indexes</b>
1249 <a href="../ListOfTypes.html#Int_t">Int_t</a> *idtmed = fIdtmed->GetArray() - 699 ;
1251 <b> // The box containing all CPV for one PHOS module filled with air </b>
1252 par[0] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(0) / 2.0 ;
1253 par[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(1) / 2.0 ;
1254 par[2] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(2) / 2.0 ;
1255 gMC->Gsvolu("PCPV", "BOX ", idtmed[798], par, 3) ;
1257 y = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetOuterBoxSize">GetOuterBoxSize</a>(1) / 2.0 ;
1258 gMC->Gspos("PCPV", 1, "PHOS", 0.0, y, 0.0, 0, "ONLY") ;
1260 <b> // Gassiplex board</b>
1262 par[0] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetGassiplexChipSize">GetGassiplexChipSize</a>(0)/2.;
1263 par[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetGassiplexChipSize">GetGassiplexChipSize</a>(1)/2.;
1264 par[2] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetGassiplexChipSize">GetGassiplexChipSize</a>(2)/2.;
1265 gMC->Gsvolu("PCPC","BOX ",idtmed[707],par,3);
1267 <b> // Cu+Ni foil covers Gassiplex board</b>
1269 par[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVCuNiFoilThickness">GetCPVCuNiFoilThickness</a>()/2;
1270 gMC->Gsvolu("PCPD","BOX ",idtmed[710],par,3);
1271 y = -(<a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetGassiplexChipSize">GetGassiplexChipSize</a>(1)/2 - par[1]);
1272 gMC->Gspos("PCPD",1,"PCPC",0,y,0,0,"ONLY");
1274 <b> // Position of the chip inside CPV</b>
1276 <a href="../ListOfTypes.html#Float_t">Float_t</a> xStep = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVActiveSize">GetCPVActiveSize</a>(0) / (<a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNumberOfCPVChipsPhi">GetNumberOfCPVChipsPhi</a>() + 1);
1277 <a href="../ListOfTypes.html#Float_t">Float_t</a> zStep = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVActiveSize">GetCPVActiveSize</a>(1) / (<a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNumberOfCPVChipsZ">GetNumberOfCPVChipsZ</a>() + 1);
1278 <a href="../ListOfTypes.html#Int_t">Int_t</a> copy = 0;
1279 y = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVFrameSize">GetCPVFrameSize</a>(1)/2 - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetFTPosition">GetFTPosition</a>(0) +
1280 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVTextoliteThickness">GetCPVTextoliteThickness</a>() / 2 + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetGassiplexChipSize">GetGassiplexChipSize</a>(1) / 2 + 0.1;
1281 for (<a href="../ListOfTypes.html#Int_t">Int_t</a> ix=0; ix<<a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNumberOfCPVChipsPhi">GetNumberOfCPVChipsPhi</a>(); ix++) {
1282 x = xStep * (ix+1) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVActiveSize">GetCPVActiveSize</a>(0)/2;
1283 for (<a href="../ListOfTypes.html#Int_t">Int_t</a> iz=0; iz<<a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNumberOfCPVChipsZ">GetNumberOfCPVChipsZ</a>(); iz++) {
1285 z = zStep * (iz+1) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVActiveSize">GetCPVActiveSize</a>(1)/2;
1286 gMC->Gspos("PCPC",copy,"PCPV",x,y,z,0,"ONLY");
1290 <b> // Foiled textolite (1 mm of textolite + 50 mkm of Cu + 6 mkm of Ni)</b>
1292 par[0] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVActiveSize">GetCPVActiveSize</a>(0) / 2;
1293 par[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVTextoliteThickness">GetCPVTextoliteThickness</a>() / 2;
1294 par[2] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVActiveSize">GetCPVActiveSize</a>(1) / 2;
1295 gMC->Gsvolu("PCPF","BOX ",idtmed[707],par,3);
1297 <b> // Argon gas volume</b>
1299 par[1] = (<a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetFTPosition">GetFTPosition</a>(2) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetFTPosition">GetFTPosition</a>(1) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVTextoliteThickness">GetCPVTextoliteThickness</a>()) / 2;
1300 gMC->Gsvolu("PCPG","BOX ",idtmed[715],par,3);
1302 for (<a href="../ListOfTypes.html#Int_t">Int_t</a> i=0; i<4; i++) {
1303 y = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVFrameSize">GetCPVFrameSize</a>(1) / 2 - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetFTPosition">GetFTPosition</a>(i) + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVTextoliteThickness">GetCPVTextoliteThickness</a>()/2;
1304 gMC->Gspos("PCPF",i+1,"PCPV",0,y,0,0,"ONLY");
1306 y-= (<a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetFTPosition">GetFTPosition</a>(2) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetFTPosition">GetFTPosition</a>(1)) / 2;
1307 gMC->Gspos("PCPG",1,"PCPV ",0,y,0,0,"ONLY");
1311 <b> // Dummy sensitive plane in the middle of argone gas volume</b>
1314 gMC->Gsvolu("PCPQ","BOX ",idtmed[715],par,3);
1315 gMC->Gspos ("PCPQ",1,"PCPG",0,0,0,0,"ONLY");
1317 <b> // Cu+Ni foil covers textolite</b>
1319 par[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVCuNiFoilThickness">GetCPVCuNiFoilThickness</a>() / 2;
1320 gMC->Gsvolu("PCP1","BOX ",idtmed[710],par,3);
1321 y = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVTextoliteThickness">GetCPVTextoliteThickness</a>()/2 - par[1];
1322 gMC->Gspos ("PCP1",1,"PCPF",0,y,0,0,"ONLY");
1324 <b> // Aluminum frame around CPV</b>
1326 par[0] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVFrameSize">GetCPVFrameSize</a>(0)/2;
1327 par[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVFrameSize">GetCPVFrameSize</a>(1)/2;
1328 par[2] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(2) /2;
1329 gMC->Gsvolu("PCF1","BOX ",idtmed[701],par,3);
1331 par[0] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(0)/2 - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVFrameSize">GetCPVFrameSize</a>(0);
1332 par[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVFrameSize">GetCPVFrameSize</a>(1)/2;
1333 par[2] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVFrameSize">GetCPVFrameSize</a>(2)/2;
1334 gMC->Gsvolu("PCF2","BOX ",idtmed[701],par,3);
1336 for (<a href="../ListOfTypes.html#Int_t">Int_t</a> j=0; j<=1; j++) {
1337 x = TMath::Sign(1,2*j-1) * (<a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(0) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVFrameSize">GetCPVFrameSize</a>(0)) / 2;
1338 gMC->Gspos("PCF1",j+1,"PCPV", x,0,0,0,"ONLY");
1339 z = TMath::Sign(1,2*j-1) * (<a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVBoxSize">GetCPVBoxSize</a>(2) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCPVFrameSize">GetCPVFrameSize</a>(2)) / 2;
1340 gMC->Gspos("PCF2",j+1,"PCPV",0, 0,z,0,"ONLY");
1346 <b>//____________________________________________________________________________</b>
1347 <a name="AliPHOSv0:CreateGeometryforSupport"> </a><a href="../ListOfTypes.html#void">void</a> <a href=".././AliPHOSv0.html#AliPHOSv0:CreateGeometryforSupport">AliPHOSv0::CreateGeometryforSupport</a>()
1349 <b> // Create the PHOS' support geometry for GEANT</b>
1353 Geant3 geometry of the PHOS's support
1356 <IMG Align=BOTTOM ALT="EMC geant tree" SRC="../images/PHOS_support.gif">
1361 <a href="../ListOfTypes.html#Float_t">Float_t</a> par[5], x0,y0,z0 ;
1362 <a href="../ListOfTypes.html#Int_t">Int_t</a> i,j,copy;
1364 <b> // Get pointer to the array containing media indexes</b>
1365 <a href="../ListOfTypes.html#Int_t">Int_t</a> *idtmed = fIdtmed->GetArray() - 699 ;
1367 <b> // --- Dummy box containing two rails on which PHOS support moves</b>
1368 <b> // --- Put these rails to the bottom of the L3 magnet</b>
1370 par[0] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetRailRoadSize">GetRailRoadSize</a>(0) / 2.0 ;
1371 par[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetRailRoadSize">GetRailRoadSize</a>(1) / 2.0 ;
1372 par[2] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetRailRoadSize">GetRailRoadSize</a>(2) / 2.0 ;
1373 gMC->Gsvolu("PRRD", "BOX ", idtmed[798], par, 3) ;
1375 y0 = -(<a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetRailsDistanceFromIP">GetRailsDistanceFromIP</a>() - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetRailRoadSize">GetRailRoadSize</a>(1) / 2.0) ;
1376 gMC->Gspos("PRRD", 1, "ALIC", 0.0, y0, 0.0, 0, "ONLY") ;
1378 <b> // --- Dummy box containing one rail</b>
1380 par[0] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetRailOuterSize">GetRailOuterSize</a>(0) / 2.0 ;
1381 par[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetRailOuterSize">GetRailOuterSize</a>(1) / 2.0 ;
1382 par[2] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetRailOuterSize">GetRailOuterSize</a>(2) / 2.0 ;
1383 gMC->Gsvolu("PRAI", "BOX ", idtmed[798], par, 3) ;
1385 for (i=0; i<2; i++) {
1386 x0 = (2*i-1) * <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetDistanceBetwRails">GetDistanceBetwRails</a>() / 2.0 ;
1387 gMC->Gspos("PRAI", i, "PRRD", x0, 0.0, 0.0, 0, "ONLY") ;
1390 <b> // --- Upper and bottom steel parts of the rail</b>
1392 par[0] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetRailPart1">GetRailPart1</a>(0) / 2.0 ;
1393 par[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetRailPart1">GetRailPart1</a>(1) / 2.0 ;
1394 par[2] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetRailPart1">GetRailPart1</a>(2) / 2.0 ;
1395 gMC->Gsvolu("PRP1", "BOX ", idtmed[716], par, 3) ;
1397 y0 = - (<a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetRailOuterSize">GetRailOuterSize</a>(1) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetRailPart1">GetRailPart1</a>(1)) / 2.0 ;
1398 gMC->Gspos("PRP1", 1, "PRAI", 0.0, y0, 0.0, 0, "ONLY") ;
1399 y0 = (<a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetRailOuterSize">GetRailOuterSize</a>(1) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetRailPart1">GetRailPart1</a>(1)) / 2.0 - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetRailPart3">GetRailPart3</a>(1);
1400 gMC->Gspos("PRP1", 2, "PRAI", 0.0, y0, 0.0, 0, "ONLY") ;
1402 <b> // --- The middle vertical steel parts of the rail</b>
1404 par[0] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetRailPart2">GetRailPart2</a>(0) / 2.0 ;
1405 par[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetRailPart2">GetRailPart2</a>(1) / 2.0 ;
1406 par[2] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetRailPart2">GetRailPart2</a>(2) / 2.0 ;
1407 gMC->Gsvolu("PRP2", "BOX ", idtmed[716], par, 3) ;
1409 y0 = - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetRailPart3">GetRailPart3</a>(1) / 2.0 ;
1410 gMC->Gspos("PRP2", 1, "PRAI", 0.0, y0, 0.0, 0, "ONLY") ;
1412 <b> // --- The most upper steel parts of the rail</b>
1414 par[0] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetRailPart3">GetRailPart3</a>(0) / 2.0 ;
1415 par[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetRailPart3">GetRailPart3</a>(1) / 2.0 ;
1416 par[2] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetRailPart3">GetRailPart3</a>(2) / 2.0 ;
1417 gMC->Gsvolu("PRP3", "BOX ", idtmed[716], par, 3) ;
1419 y0 = (<a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetRailOuterSize">GetRailOuterSize</a>(1) - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetRailPart3">GetRailPart3</a>(1)) / 2.0 ;
1420 gMC->Gspos("PRP3", 1, "PRAI", 0.0, y0, 0.0, 0, "ONLY") ;
1422 <b> // --- The wall of the cradle</b>
1423 <b> // --- The wall is empty: steel thin walls and air inside</b>
1425 par[1] = TMath::Sqrt(
1426 TMath::Power((<a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetIPtoOuterCoverDistance">GetIPtoOuterCoverDistance</a>() + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetOuterBoxSize">GetOuterBoxSize</a>(1)),2) +
1427 TMath::Power((<a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetOuterBoxSize">GetOuterBoxSize</a>(0)/2),2)) + 10.;
1428 par[0] = par[1] - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCradleWall">GetCradleWall</a>(1) ;
1429 par[2] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCradleWall">GetCradleWall</a>(2) / 2.0 ;
1430 par[3] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCradleWall">GetCradleWall</a>(3) ;
1431 par[4] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCradleWall">GetCradleWall</a>(4) ;
1432 gMC->Gsvolu("PCRA", "TUBS", idtmed[716], par, 5) ;
1434 par[0] -= <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCradleWallThickness">GetCradleWallThickness</a>() ;
1435 par[1] -= <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCradleWallThickness">GetCradleWallThickness</a>() ;
1436 par[2] -= <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCradleWallThickness">GetCradleWallThickness</a>() ;
1437 gMC->Gsvolu("PCRE", "TUBS", idtmed[798], par, 5) ;
1438 gMC->Gspos ("PCRE", 1, "PCRA", 0.0, 0.0, 0.0, 0, "ONLY") ;
1440 for (i=0; i<2; i++) {
1441 z0 = (2*i-1) * (<a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetOuterBoxSize">GetOuterBoxSize</a>(2) + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCradleWall">GetCradleWall</a>(2)) / 2.0 ;
1442 gMC->Gspos("PCRA", i, "ALIC", 0.0, 0.0, z0, 0, "ONLY") ;
1445 <b> // --- The "wheels" of the cradle</b>
1447 par[0] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCradleWheel">GetCradleWheel</a>(0) / 2;
1448 par[1] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCradleWheel">GetCradleWheel</a>(1) / 2;
1449 par[2] = <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCradleWheel">GetCradleWheel</a>(2) / 2;
1450 gMC->Gsvolu("PWHE", "BOX ", idtmed[716], par, 3) ;
1452 y0 = -(<a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetRailsDistanceFromIP">GetRailsDistanceFromIP</a>() - <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetRailRoadSize">GetRailRoadSize</a>(1) -
1453 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCradleWheel">GetCradleWheel</a>(1)/2) ;
1454 for (i=0; i<2; i++) {
1455 z0 = (2*i-1) * ((<a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetOuterBoxSize">GetOuterBoxSize</a>(2) + <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCradleWheel">GetCradleWheel</a>(2)) / 2.0 +
1456 <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetCradleWall">GetCradleWall</a>(2));
1457 for (j=0; j<2; j++) {
1459 x0 = (2*j-1) * <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetDistanceBetwRails">GetDistanceBetwRails</a>() / 2.0 ;
1460 gMC->Gspos("PWHE", copy, "ALIC", x0, y0, z0, 0, "ONLY") ;
1466 <b>//____________________________________________________________________________</b>
1467 <a name="AliPHOSv0:ZMin"> </a><a href="../ListOfTypes.html#Float_t">Float_t</a> <a href=".././AliPHOSv0.html#AliPHOSv0:ZMin">AliPHOSv0::ZMin</a>(<a href="../ListOfTypes.html#void">void</a>) const
1469 <b> // Overall dimension of the PHOS (min)</b>
1470 <b> // Take it twice more than the PHOS module size</b>
1471 return -<a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetOuterBoxSize">GetOuterBoxSize</a>(2);
1474 <b>//____________________________________________________________________________</b>
1475 <a name="AliPHOSv0:ZMax"> </a><a href="../ListOfTypes.html#Float_t">Float_t</a> <a href=".././AliPHOSv0.html#AliPHOSv0:ZMax">AliPHOSv0::ZMax</a>(<a href="../ListOfTypes.html#void">void</a>) const
1477 <b> // Overall dimension of the PHOS (max)</b>
1478 <b> // Take it twice more than the PHOS module size</b>
1479 return <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>-><a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetOuterBoxSize">GetOuterBoxSize</a>(2);
1482 <b>//____________________________________________________________________________</b>
1483 <a name="AliPHOSv0:Init"> </a><a href="../ListOfTypes.html#void">void</a> <a href=".././AliPHOSv0.html#AliPHOSv0:Init">AliPHOSv0::Init</a>(<a href="../ListOfTypes.html#void">void</a>)
1485 <b> // Just prints an information message</b>
1487 <a href="../ListOfTypes.html#Int_t">Int_t</a> i;
1490 for(i=0;i<35;i++) printf("*");
1491 printf(" PHOS_INIT ");
1492 for(i=0;i<35;i++) printf("*");
1495 <b> // Here the PHOS initialisation code (if any!)</b>
1497 if (<a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>!=0)
1498 cout << "<a href=".././AliPHOS.html">AliPHOS</a>" << <a href="#AliPHOSv0:Version">Version</a>() << " : PHOS geometry intialized for " << <a href=".././AliPHOSv0.html#AliPHOSv0:fGeom">fGeom</a>->GetName() << endl ;
1500 cout << "<a href=".././AliPHOS.html">AliPHOS</a>" << <a href="#AliPHOSv0:Version">Version</a>() << " : PHOS geometry initialization failed !" << endl ;
1502 for(i=0;i<80;i++) printf("*");
1514 <a href="http://root.cern.ch/root/Welcome.html">ROOT page</a> - <a href="../ClassIndex.html">Class index</a> - <a href="#TopOfPage">Top of the page</a><br>
1516 <hr>This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to <a href="mailto:rootdev@root.cern.ch">ROOT support</a>, or contact <a href="mailto:rootdev@root.cern.ch">the developers</a> with any questions or problems regarding ROOT.