to keep compatibility with Sun and HP CC!
[u/mrichter/AliRoot.git] / PHOS / PHOS-HTML / simulation.html
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
2                "http://www.w3.org/TR/REC-html40/loose.dtd">
3 <html>
4   <head>
5     <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
6     <meta name="GENERATOR" content="Mozilla/4.51 [en] (X11; I; Linux 2.2.5-15 i686) [Netscape]">
7     <title>PHOS Geometry in AliRoot</title>
8     <link REL="stylesheet" href="http://www-subatech.in2p3.fr/~photons/gps_alice.css" type="text/css">
9   <body>
10     
11     <h1 class="page-header">
12       Geometry & Materials
13     </h1>
14     <h1>
15       Simulation
16     </h1>
17     The simulation is done in two steps, one which describes the detector geometry
18     and material and one which does the particle tracking and stores the hits
19     and digits in a  <a href="http://root.cern.ch/root/html/TTree.html">TTree</a> itself written on a disk file. These two steps are
20     steered through the Config.C file(<a href="PHOSConfig_Central.C">example</a>), 
21     a root macro launched at the AliRoot prompt. To customize this file you must:
22     <br><br>
23     <ol>
24       <li>
25         select a file name for the root output:
26         <pre class="code">
27         //=======================================================================
28         //  Create the output file
29         sprintf(filename,"<b>myfilename</b>.root");
30         </pre>
31         </li>
32       <li>
33         Define your event generator and simulations parameters:
34         <pre class="code">
35          AliGenCocktail *gener = new AliGenCocktail(); // Cocktail class
36          gener->SetPtRange(.02,10.00);                 // Transverse momentum range   
37          gener->SetPhiRange(180.,360.);                // Azimuthal angle range  
38          gener->SetYRange(-0.25,0.25);                 // Pseudorapidity range
39          gener->SetOrigin(0,0,0);                      // Vertex position
40          gener->SetSigma(0,0,5.6);                     // Sigma in (X,Y,Z) (cm) on IP position
41          gener->Init();                                // Initialize the generator
42         </pre>
43       </li>
44       <li>
45         Select the detector seen by the tracking:
46         <pre class="code">
47          Int_t iPHOS=1;    // PHOS is in
48          Int_t iPMD=0;     // PMD  is out
49         </pre>
50       </li>
51       <li>
52         Create a PHOS object (<b>GPS2</b> is so far the unique configuration option, see below):
53         <pre class="code"> 
54          if(iPHOS) {
55          //=================== PHOS parameters =========================== 
56          AliPHOS *PHOS  = new AliPHOSv0("PHOS","<b>GPS2</b>");
57         </pre>
58       </li>
59     </ol>
60     <p>
61       You van now run the simulation by entering the following command at the aliroot prompt:
62       <pre class="code">
63        aliroot> gAlice->Run(1,"PHOSConfig_Central.C");  
64     </pre>
65     <h1>
66       Geometry
67     </h1>
68     <h4>
69       Definition
70     </h4>
71     PHOS consists of two distinct parts. The calorimeter, named EMCA, consists
72     of the PbW04 crystals within their housing. The crystals are assembled
73     in <i>fNModules</i> modules of <i>fNPhi </i>rows along the x-axis direction
74     and <i>fNZ</i> modules along the z-axis direction. Since the total number
75     of crystals and their layout within ALICE is presently (11/11/1999) not
76     final it was decided to fully parametrize the geometry. A change in any
77     of the three previously defined parameters will provide automatically a
78     new layout of the modules.
79     <br>The second part of PHOS is the charged particle identifier. Since until
80     end of 2000 no decision will be taken on the final design of this element
81     two or more versions can be considered. Today (11/11/1999) only one version
82     is implemented and is named PPSD for PHOS Pre-Shower Detector. It consists
83     of a first layer of <i>fNumberOfModulesPhi</i> x <i>fNumberOfModulesZ </i>gas
84     detectors per PHOS module, each detectors being subdivided into <i>fNumberOfPadsPhi</i>
85     x <i>fNumberOfPadsZ </i>gas cells, a Lead converter and a second layer
86     of gas detectors identical to the first layer. This second part is positionned
87     on top of the EMCA module.
88     <p>
89       The class <a href="./html/AliPHOSv0.html"> AliPHOSv0 </a> ( <a href="./html/AliPHOSv0_Tree.ps"> inheritance tree </a>) 
90       describes this geometry. We have defined also a class 
91       <a href="./html/AliPHOSv1.html"> AliPHOSv1 </a> ( <a href="./html/AliPHOSv1_Tree.ps"> inheritance tree </a>) 
92       which in addition contains the photodiode response and the light transport through the crystal.
93     <p>
94       The parameters of the geometry are given in class  <a href="./html/AliPHOSGeometry.html"> AliPHOSGeometry </a>( <a href="./html/AliPHOSGeometry_Tree.ps"> inheritance tree </a>)
95       <br><br>
96     <center>
97       <img SRC=" images/EMCinAlice.gif" ALT="Geant Tree for PHOS" >
98       <br><br>
99       <b> Figure 1.a: </b> <i> GEANT Tree which describes the EMC-PHOS geometry </i>
100     </center>
101     <P>
102     <center>
103       <img SRC=" images/PPSDinAlice.gif" ALT="Geant Tree for PHOS" >
104       <br><br>
105       <b> Figure 1.b: </b> <i> GEANT Tree which describes the PPSD-PHOS geometry </i>
106     </center>
107     <h4>
108       Implementation
109     </h4>
110     <p>
111     <center>
112       <img SRC="./images/aliphossimulation.gif" ALT="Geom/Simul class diagram" >
113       <br><br>
114       <b> Figure 2.: </b> <i> Class diagram for the geometry/simulation package </i>
115     </center>
116     <p>
117       <a href="./html/AliPHOS.html"><i><u>AliPHOS</u></i></a>: This is the base class. It derives from <i>AliDetector.
118       </i>It's only purpose is to describe the materials
119       (&agrave; la <i>AliMC</i>) needed for the EMCA and PPSD construction.
120     <p>
121       <a href="./html/AliPHOSv0.html"><i><u>AliPHOSv4</u></i></a>: It derives from <i>AliPHOS</i>.
122       <br>
123     <ul>
124       <li>
125         It sets up the geometry for the Root display (<i>AliPHOSv4::BuildGeometry()</i>)
126         and for the GEANT tracking (<i>AliPHOSv4::CreateGeometry()</i>).
127       </li>
128       <li>
129         It watches the tracks passing through the active media of EMCA and PPSD
130         (<i>AliPHOSv4::StepManager()</i>).
131       </li>
132       <li>
133         It stores the hits (<i>AliPHOSv4::AddHit()</i>), using the <i>AliPHOSHit</i>
134         class.
135       </li>
136       <li>
137         It stores the digits (<i>AliPHOSv4::FinishEvent()</i>), using the <i>AliPHOSDigit</i>
138         class.
139       </li>
140     </ul>
141     <p>
142       <a href="./html/AliPHOSv1.html"><i><u>AliPHOSv1</u></i></a> : derives from <i>AliPHOSv0</i> and includes the light transport 
143       in the crystal and the response of the PIN photodiode &agrave; la O. H. Oddland.
144     <p>
145       <a href="./html/AliPHOSvFast.html"><i><u>AliPHOSvFast</u></i></a> : used for <a href="fastsimulation.html">fast simulation</a>.
146     <p>
147       <a href="./html/AliPHOSGeometry.html"><i><u>AliPHOSGeometry</u></i></a> : It derives from <i>TObject</i> to make it
148         persistent. It is a singleton, i.e., a pointer to the unique instance of
149         this class is obtained by:
150     <center>
151       <pre class="code">
152         AliPHOSGeometry * Geom = AliPHOSGeometry::GetInstance()
153       </pre>
154     </center>
155     <ul>
156       <li>
157         It sets the various parameters for the geometry description and provides
158         the method to access all the parameters. To avoid cumbersome macros at
159         run time these parameters can only be changed manually in the source code.
160       </li>
161       <li>
162         It provides the method to convert the absolute detector Id (crystal in
163         EMCA or pad in PPSD) into a relative Id : PHOS module number, PPSD module
164         number, row, column (<i>AliPHOSGeometry::AbsToRelNumbering()</i>) and the
165         reverse operation (<i>AliPHOSGeometry::RelToAbsNumbering()</i>).
166       </li>
167       <li>
168         It provides the method to convert an absolute Id into a three-vector giving
169         the position of the detector in ALICE (<i>AliPHOSGeometry::RelPosInAlice()</i>).
170       </li>
171     </ul>
172     <p>
173        <a href="./html/AliPHOSHit.html"><i><u>AliPHOSHit</u></i></a>: It derives from <i>AliHit</i>. It stores the
174         hits as the pair (absolute Id, deposited energy). The hits presently are stored  in the hit TTree 
175         as one hit per elementary cell (EMC crystal or PPSD gas cell) (See the 
176         the AddHit() method in <i>AliPHOSv0</i>).
177     <p>
178        <a href="./html/AliPHOSDigit.html"><i><u>AliPHOSDigit</u></i></a> : It derives from <i>AliDigit</i>. It stores
179       the digits as the pair (absolute Id, energy) in the digit TTree (see 
180       the FinishEvent() method in <i>AliPHOSv0</i>).
181     <h1>
182       Usage
183     </h1>
184     <p>
185     <pre class="code">
186      Int_t iPHOS=1;
187      if(iPHOS) {
188      AliPHOS * phos = new AliPHOSv4("PHOS", char * name) ;
189     </pre>
190     <br>
191     where name can take the following values:
192     <ul>
193       <li>
194         <i>GPS2</i>: will create EMCA plus PPSD
195         <br><br>
196         <center>
197           <img SRC="images/AliPHOSv0AllViews.gif" ALT="ROOT display of PHOS: All Views" >
198           <b> Figure 3a.: </b> <i> ROOT Display of ALICE: All Views   </i>
199           <p>
200             <img SRC="images/AliPHOSv0FrontView.gif" ALT="ROOT display of PHOS: Front View" >
201             <b> Figure 3b.: </b> <i> ROOT Display of ALICE: Front Views   </i>
202           <p>
203             <img SRC="images/AliPHOSv03DView1.gif" ALT="ROOT display of PHOS: 3D View" >
204             <b> Figure 3c.: </b> <i> ROOT Display of ALICE: All View3   </i>
205           <p>
206             <img SRC="images/AliPHOSv0PPSDFrontView.gif" ALT="Zoom on PPSD: Front View " >
207             <b> Figure 4.a: </b> <i> ROOT Display of ALICE: zoom on PPSD, Front Views  </i>
208           <p>
209             <img SRC="images/AliPHOSv0PPSDPerspectiveView.gif" ALT="Zoom on PPSD: Perspective View " >
210             <b> Figure 4.b: </b> <i> ROOT Display of ALICE: zoom on PPSD, Perspective View  </i>
211         </center> <br><br>
212       </li>
213       <li>
214         more to come from Protvino (EMCA plus other CPV type)</li>
215     </ul>
216     <br>
217     EMCA consists of 5 modules of 64x64 modules each, positionned at
218     azimuthal angles -40, -20, 0, +20, +40 (see figures). PPSD consists per
219     EMCA module of 2 layers of 4x4 gas detectors each, each detector having
220     24x24 gas cells. 
221     <h1>
222       Result
223     </h1>
224
225     <hr>
226     <address class="left">
227       &copy; <a href="mailto:schutz@in2p3.fr">>Groupe Photons Subatech (Yves SCHUTZ)</a>
228       <a href="http://www-subatech.in2p3.fr/~photons/subatech/en_index.shtml">[Go
229         to the GPS Home Page]</a>
230 </address>
231     <!-- Created: Wed Nov 17 12:16:58 CET 1999 -->
232     <!-- hhmts start -->
233 Last modified: Sun Mar 26 17:37:28 CEST 2000
234 <!-- hhmts end -->
235  <!--   <div align=right><a href="http://validator.w3.org/check/referer"><img SRC="images/vh40.gif" ALT="Valid HTML 4.0!" BORDER=0 height=31 width=88></a><a href="http://jigsaw.w3.org/css-validator"><img SRC="images/vcss.gif" ALT="Valid CSS!" BORDER=0 height=31 width=88></a></div>-->
236
237     
238   </body>
239 </html>
240