]>
Commit | Line | Data |
---|---|---|
6b08d1be | 1 | \chapter*{Introduction} |
2 | \section*{Purpose of this document} | |
3 | ||
4 | This document is intended to both explain who to use the ALICE simulation and | |
5 | reconstruction code with respect to or using the ITS detector as the | |
6 | examples. This document is also to explain how to add new code to the ITS | |
7 | simulation and reconstruction library, and who the existing ITS simulation and | |
8 | reconstruction code works. All comments from every user is greatly encouraged. | |
9 | ||
10 | \section*{How to Run AliRoot} | |
11 | ||
e725a163 | 12 | At this point, we will assume that AliRoot has been compiled and all the |
6b08d1be | 13 | necessary environment variables have been defined, including your path. We will |
14 | assume you are in an appropriate directory, for example \texttt{/data} or some | |
15 | such thing. | |
16 | ||
17 | to start with type, at your shell prompt, aliroot to start the program. | |
18 | ||
e725a163 | 19 | \scriptsize |
6b08d1be | 20 | \begin{verbatim} |
21 | # aliroot | |
22 | Constant Field Map1 created: map= 1, factor= 1.000000 | |
23 | ******************************************* | |
24 | * * | |
25 | * W E L C O M E to R O O T * | |
26 | * * | |
27 | * Version 2.26/00 10 November 2000 * | |
28 | * * | |
29 | * You are welcome to visit our Web site * | |
30 | * http://root.cern.ch * | |
31 | * * | |
32 | ******************************************* | |
33 | ||
34 | FreeType Engine v1.x used to render TrueType fonts. | |
35 | Compiled with thread support. | |
36 | ||
37 | CINT/ROOT C/C++ Interpreter version 5.14.58, Oct 24 2000 | |
38 | Type ? for help. Commands must be C++ statements. | |
39 | Enclose multiple statements between { }. | |
40 | ||
41 | WELCOME to ALICE | |
42 | ||
43 | root [0] | |
44 | \end{verbatim} | |
e725a163 | 45 | \normalsize |
6b08d1be | 46 | |
e725a163 | 47 | This will initialize ROOT and load all of the ALICE libraries. At this point |
48 | you can do anything you can do in ROOT in addition you have access to every | |
49 | class defined in the ALICE libraries, including the ALICE global variables. One | |
50 | very useful ALICE global variable is \texttt{gAlice} which is of type | |
6b08d1be | 51 | \texttt{AliRun}. Of the many function defined in the class \texttt{AliRun} are |
52 | \texttt{Init(const char* setup="Config.C")} and | |
53 | \texttt{Run(const char* setup="Config.C")}. \texttt{Run} both executes | |
54 | \texttt{Init} and starts executing an ALICE detector simulation. Both of these | |
55 | functions functions load and execute a configuration file. By default this | |
56 | configuration file is called \texttt{Config.C}. If such a file exists in your | |
57 | local directory, for example \texttt{/data}, or if there is no such file in | |
58 | your local directory it will execute the file | |
59 | \texttt{\$ALICE\_ROOT/macros/Config.C}. Some other configuration file can be | |
60 | run simplely by entering that file's name as the argument, for example | |
61 | \texttt{Init("MyConfig.C")} or \texttt{Run("MyConfig.C")} where | |
62 | \texttt{MyConfig.C} is either in your local directory (\texttt{/data}) or in | |
63 | \texttt{\$ALICE\_ROOT/macros}. Of course the full path of \texttt{MyConfig.C} | |
64 | can be used. | |
65 | ||
f378814e | 66 | Now lets assume you just want to simulate one event using the standard |
67 | \texttt{Config.C} file. This is done simply as | |
e725a163 | 68 | \scriptsize |
6b08d1be | 69 | \begin{verbatim} |
70 | root [0] gAlice->Run() | |
71 | Warning in <AliRun::SetField>: Invalid magnetic field flag: -999; Helix trackin | |
72 | g chosen instead | |
73 | ||
74 | Warning in <AliFRAMEv1::ReadEuclidMedia>: file: $(ALICE_ROOT)/Euclid/frame.tme i | |
75 | s now read in | |
76 | ||
77 | Warning in <AliPIPEv0::ReadEuclidMedia>: file: $(ALICE_ROOT)/Euclid/pipe.tme is | |
78 | now read in | |
79 | ||
80 | Warning in <AliITSv5::ReadEuclidMedia>: file: /home/CERN/aliroot/dev/Euclid/ITSg | |
81 | eometry_5.tme is now read in | |
82 | ||
83 | ||
84 | MZSTOR. ZEBRA table base TAB(0) in /MZCC/ at adr 281557647 10C83A8F HEX | |
85 | ||
86 | MZSTOR. Initialize Store 0 in /GCBANK/ | |
87 | with Store/Table at absolute adrs 33632021 281557647 | |
88 | HEX 2012F15 10C83A8F | |
89 | HEX F138F25A 0 | |
90 | relative adrs -247926182 0 | |
91 | with 1 Str. in 2 Links in 5300 Low words in 2999970 words. | |
92 | This store has a fence of 16 words. | |
93 | \end{verbatim} | |
e725a163 | 94 | \normalsize |
6b08d1be | 95 | \vdots |
96 | lots more messages | |
97 | ||
98 | \vdots | |
e725a163 | 99 | \scriptsize |
6b08d1be | 100 | \begin{verbatim} |
101 | TOC1 0.171%; TSSW 0.001%; TSWC 0.083%; TSCE 0.000%; TWES 0.001%; | |
102 | TSWB 0.009%; TPEL 2.240%; TPMW 0.901%; TPEW 0.128%; TESR 0.000%; | |
103 | TESB 0.116%; TPLS 0.019%; TPUS 0.023%; TPSS 0.000%; THVM 0.012%; | |
104 | TPSR 0.052%; THVL 0.025%; FLTA 0.003%; FLTB 0.000%; FLTC 0.005%; | |
105 | FMYA 0.016%; FMYB 0.014%; FMYC 0.019%; FPLA 0.023%; FPLB 0.080%; | |
106 | FPLC 0.025%; FSTR 0.138%; FNSF 0.012%; FMYX 0.002%; FGRL 0.004%; | |
107 | FPAD 0.020%; FPEA 0.039%; FPEB 0.007%; FPEC 0.062%; FECA 0.058%; | |
108 | FECB 0.058%; FECC 0.053%; FWAA 0.096%; FWAB 0.148%; FWAC 0.073%; | |
109 | FBPA 0.057%; FBPB 0.018%; FBPC 0.085%; UAFI 0.109%; UAFM 0.018%; | |
110 | UAFO 0.044%; UAII 0.001%; UAIM 0.001%; UAIO 0.001%; UCFI 0.259%; | |
111 | UCFM 0.445%; UCFO 0.312%; UCII 0.000%; UCIM 0.000%; UCIO 0.000%; | |
112 | UL01 0.022%; UL02 0.006%; UL03 0.226%; UL04 0.006%; UL05 0.012%; | |
113 | UL06 0.001%; UL07 0.002%; UL08 0.081%; UL09 0.034%; UL10 0.038%; | |
114 | UL11 0.013%; TRD1 0.003%; TRD2 0.004%; TRD3 0.000%; BR2_ 0.018%; | |
115 | CB2_ 0.011%; R1R2 0.018%; R2R2 0.898%; R3R2 0.003%; R3L2 0.001%; | |
116 | R1R1 0.414%; R2R1 0.010%; R3R1 0.009%; R1L1 0.036%; R3L1 0.001%; | |
117 | CA02 0.016%; CG02 0.000%; CA03 0.042%; CG03 0.000%; EMCA 0.013%; | |
118 | PTXW 0.013%; PUFP 0.005%; PTCB 0.008%; PPAP 0.005%; PXTL 0.072%; | |
119 | PASP 0.026%; MPPS 0.004%; UAPP 0.000%; LCPP 0.037%; DW11 0.000%; | |
120 | DV11 0.000%; DPPB 0.659%; DPFE 0.157%; DPMD 0.000%; DIQU 0.016%; | |
121 | *************************************************************************** | |
122 | root [1] | |
123 | \end{verbatim} | |
e725a163 | 124 | \normalsize |
6b08d1be | 125 | |
126 | At this point a file called \texttt{galice.root} is created in your present | |
127 | directory. This file contains all of the ``hits'' produced by the simulation, | |
128 | all of the particle information, all of the detectors that were defined in the | |
e725a163 | 129 | simulation, and a lot of other information. |
130 | ||
131 | One nice thing to do now is to run the hit display program so that you can see | |
132 | the hits you have just produce in the file \texttt{galice.root}. Either from | |
133 | your present \texttt{aliroot} session, a new \texttt{aliroot} session, or | |
134 | from a new \texttt{root} session, you can run the standard macro | |
135 | \texttt{display.C}. Because you should have \texttt{\$ALICE\_ROOT/macros} in | |
136 | your path, this is easily done as follows. | |
137 | ||
138 | \scriptsize | |
139 | \begin{verbatim} | |
140 | root [1] .x display.C | |
141 | \end{verbatim} | |
142 | \normalsize | |
143 | ||
144 | You should see the following screen appear (Figure~\ref{ITSMan:ch0:display0}). | |
145 | ||
146 | \begin{figure*}[htbp] | |
147 | \begin{center} | |
148 | \leavevmode | |
e725a163 | 149 | \epsfig{file=display_Canvas.eps,width=12cm} |
150 | \caption{Typical ALICE hit display output. Note that the geometry being | |
151 | displayed is a simplified geometry, not that used by the AliRoot | |
152 | simulation.} | |
153 | \label{ITSMan:ch0:display0} | |
154 | \end{center} | |
155 | \end{figure*} | |
156 | ||
157 | Just like from \texttt{root}, to exit from \texttt{aliroot} just type | |
158 | \texttt{.q} at the prompt. | |
159 | ||
160 | \scriptsize | |
161 | \begin{verbatim} | |
162 | root [2] .q | |
163 | \end{verbatim} | |
164 | \normalsize | |
165 | ||
166 | For a more interactive way of running \texttt{AliRoot}, instead of typing | |
167 | \texttt{root[0] gAlice->Run()} you can run a very nice macro called | |
168 | \texttt{menu.C} also located in \texttt{\$ALICE\_ROOT/macros}. Instead of | |
169 | running a simulation, it create a menu that that will let you either run an | |
f378814e | 170 | \texttt{AliRoot} simulation or do a number of other nice things, see |
171 | figure~\ref{ITSMan:ch0:menu0}. Please note, that if you want to display any | |
172 | pictures, first they can take a lot of time and memory, second you have to run | |
173 | \texttt{Init} first so that the detectors you want to display are defined. | |
e725a163 | 174 | |
f378814e | 175 | \begin{figure*}[htbp] |
176 | \begin{center} | |
177 | \leavevmode | |
178 | \epsfig{file=menubar.eps,width=5cm} | |
179 | \caption{This shows a number of ``Automated'' commands that can be | |
180 | performed. Simply by clicking on one of these buttons the action will take | |
181 | place. The ``Trees'' refers to the tree of geometric objects that make up | |
182 | the defined AliRoot geometry as defined in \texttt{Config.C}. The | |
183 | ``Pictures'' refer to pictures of the Alice geometry as defined in | |
184 | \texttt{Config.C}. Since these are the detailed pictures they may require a | |
185 | lot of time and memory to execute. ``Hide'', ``Shading'', and ``Box Clip'' | |
186 | refer to how the pictures will be displayed. ``Run Lego'' will produce a | |
187 | radiation map of different parts of the defined Alice detector by creating | |
188 | and transporting Geantinos~\cite{GeantMan:Geantino}, a non-interacting | |
189 | particle used only to measure radiation length between points along it's | |
190 | straight line path.} | |
191 | \label{ITSMan:ch0:menu0} | |
192 | \end{center} | |
193 | \end{figure*} | |
e725a163 | 194 | |
195 | \section*{Controling your Run: The Config.C file} | |
196 | ||
197 | There are basicly two files that control nearly every aspect of an | |
198 | \texttt{AliRoot} simulations. The first and most important is the file | |
199 | \texttt{\$ALICE\_ROOT/macros/Config.C}. This file will be described in more | |
200 | detail below. The second file \texttt{\$ALICE\_ROOT/data/galice.cuts} sets the | |
201 | non-default energy cuts for a large numbers of materials. For the ITS, Every | |
202 | material has energy-loss via delta rays turned on. For each sensitive material | |
203 | the lowest energy $\gamma$, $e^{\pm}$, bremsstrahlung, and $\delta$-ray have | |
204 | their lowest energy set to $7.0\times 10^{-5}$ GeV or $70$ KeV. This is done to | |
205 | assure that low enough energy $\delta$-rays are properly taken into account for | |
206 | the signals produce in each detector. | |
207 | ||
208 | The \texttt{Config.C} file\footnotemark determines just about every thing there | |
209 | is to about how \texttt{AliRoot} will run. Lets take a look at the first part | |
210 | of this file. | |
211 | ||
212 | \footnotetext{The name of the file isn't important. It can be specified either | |
213 | as an argument to \texttt{gAlice->Run(``Another\_Config.C'')} or as an | |
214 | argument to \texttt{gAlice->Init(``Another\_Config.C'')}. The default file | |
215 | name is \texttt{Config.C} and is first looked for in your present directory and | |
216 | if no such file is found then it uses the one in | |
217 | \texttt{\$ALICE\_ROOT/macros}. } | |
218 | ||
219 | \scriptsize | |
220 | \begin{verbatim} | |
221 | 0001 void Config() | |
222 | 0002 { | |
223 | 0003 | |
224 | 0004 new AliGeant3("C++ Interface to Geant3"); | |
225 | 0005 | |
226 | 0006 //======================================================================= | |
227 | 0007 // Create the output file | |
228 | 0008 | |
229 | 0009 TFile *rootfile = new TFile("galice.root","recreate"); | |
230 | 0010 rootfile->SetCompressionLevel(2); | |
231 | 0011 TGeant3 *geant3 = (TGeant3*)gMC; | |
232 | \end{verbatim} | |
233 | \normalsize | |
234 | ||
235 | This file is a \texttt{C++} macro/program. The first line gives the routine | |
236 | name which must be \texttt{Config()}. Line \texttt{0004} Creates the | |
237 | \texttt{AliRoot} interface class to GEANT 3.12. Line \texttt{0009} creates the | |
238 | root output file and its pointer \texttt{rootfile}. Line \texttt{0010} sets the | |
239 | level of compression to be used in writing this file. Level 2 is a lot of | |
240 | compression, level 0 is no compression\footnote{see \texttt{TFile} in the | |
241 | \texttt{ROOT} documentation for a full description.}. Line \texttt{0011} | |
242 | retrieves the basic transport Monte Carlo that was set at line | |
243 | \texttt{0004}. Since this is GEANT3.21 this pointer is cast as | |
244 | \texttt{TGeant3}. This will allow us to set and modify the simulation according | |
245 | to GEANT3.21. | |
246 | ||
247 | \scriptsize | |
248 | \begin{verbatim} | |
249 | 0012 // | |
250 | 0013 // Set External decayer | |
251 | 0014 AliDecayer* decayer = new AliDecayerPythia(); | |
252 | 0015 decayer->SetForceDecay(all); | |
253 | 0016 decayer->Init(); | |
254 | 0017 gMC->SetExternalDecayer(decayer); | |
255 | \end{verbatim} | |
256 | \normalsize | |
257 | ||
258 | In this next section of the file, the default operation of GEANT 3.21 is | |
259 | modified by replacing the particle decay mechanism with that of Pythia. This | |
260 | has the advantage of treating all particle decays in the same way but also make | |
261 | it easier to determine the parent particles from their decayed products. Line | |
262 | \texttt{0014} creates the Pythia decay routines, \texttt{0015} sets a flag | |
263 | in Pythia to decay all particles, and \texttt{0016} initiates the Pythia | |
264 | package. Line \texttt{0017} replaces the default decay routine in the Monte | |
265 | Carlo (GEANT 3.12 in this case) with that of Pythia. Next we set some flags | |
266 | that are specific to GEANT 3.21. | |
267 | ||
268 | \scriptsize | |
269 | \begin{verbatim}// | |
270 | 0018 // | |
271 | 0019 //======================================================================= | |
272 | 0020 // ******* GEANT STEERING parameters FOR ALICE SIMULATION ******* | |
273 | 0021 geant3->SetTRIG(1); //Number of events to be processed | |
274 | 0022 geant3->SetSWIT(4,10); | |
275 | 0023 geant3->SetDEBU(0,0,1); | |
276 | 0024 //geant3->SetSWIT(2,2); | |
277 | 0025 geant3->SetDCAY(1); | |
278 | 0026 geant3->SetPAIR(1); | |
279 | 0027 geant3->SetCOMP(1); | |
280 | 0028 geant3->SetPHOT(1); | |
281 | 0029 geant3->SetPFIS(0); | |
282 | 0030 geant3->SetDRAY(0); | |
283 | 0031 geant3->SetANNI(1); | |
284 | 0032 geant3->SetBREM(1); | |
285 | 0033 geant3->SetMUNU(1); | |
286 | 0034 geant3->SetCKOV(1); | |
287 | 0035 geant3->SetHADR(1); //Select pure GEANH (HADR 1) or GEANH/NUCRIN (HADR 3) | |
288 | 0036 geant3->SetLOSS(2); | |
289 | 0037 geant3->SetMULS(1); | |
290 | 0038 geant3->SetRAYL(1); | |
291 | 0039 geant3->SetAUTO(1); //Select automatic STMIN etc... calc. (AUTO 1) or manual (AU TO 0) | |
292 | 0040 geant3->SetABAN(0); //Restore 3.16 behaviour for abandoned tracks | |
293 | 0041 geant3->SetOPTI(2); //Select optimisation level for GEANT geometry searches (0,1,2) | |
294 | 0042 geant3->SetERAN(5.e-7); | |
295 | 0043 | |
296 | 0044 Float_t cut = 1.e-3; // 1MeV cut by default | |
297 | 0045 Float_t tofmax = 1.e10; | |
298 | 0046 // GAM ELEC NHAD CHAD MUON EBREM MUHAB EDEL MUDEL MUPA TOFMAX | |
299 | 0047 geant3->SetCUTS(cut,cut, cut, cut, cut, cut, cut, cut, cut, cut, tofmax); | |
300 | \end{verbatim} | |
301 | \normalsize | |
302 | ||
303 | In lines \texttt{0021} through \texttt{0042} set different GEANT 3.21 specific | |
304 | options and flags. I will not describe all of these, but will refer you to the | |
305 | GEANT 3.21 manual. There are a few of possible interest. Line | |
306 | \texttt{0021 geant3->SetTRIG(1);} sets the number of events that will be | |
307 | processed. The default is one. Line \texttt{0022 geant3->SetSWIT(4,10);} sets | |
308 | how often a line like | |
309 | \texttt{GTREVE\_ROOT : Transporting primary track No 74130} will be | |
310 | displayed. Here the 10 means every 10 primary tracks. Most of the rest turn on | |
311 | or off different physics processes. These values apply to every material that | |
312 | isn't listed in \texttt{\$ALICE\_ROOT/data/galice.cuts} or if that material has | |
313 | its corresponding flag or value set to -1. Similarly line \texttt{0047} sets | |
314 | the default lowest energy, largest time of flight, for different physics | |
315 | processes that are not overwritten by the values in the \texttt{galice.cuts} | |
316 | file. | |
317 | ||
318 | \scriptsize | |
319 | \begin{verbatim} | |
320 | 0048 // | |
321 | 0049 //======================================================================= | |
322 | 0050 // ************* STEERING parameters FOR ALICE SIMULATION ************** | |
323 | 0051 // --- Specify event type to be tracked through the ALICE setup | |
324 | 0052 // --- All positions are in cm, angles in degrees, and P and E in GeV | |
325 | 0053 AliGenHIJINGpara *gener = new AliGenHIJINGpara(84210); | |
326 | 0054 gener->SetMomentumRange(0,999); | |
327 | 0055 gener->SetPhiRange(0,360); | |
328 | 0056 gener->SetThetaRange(0.28,179.72); | |
329 | 0057 gener->SetOrigin(0,0,0); //vertex position | |
330 | 0058 gener->SetSigma(0,0,0); //Sigma in (X,Y,Z) (cm) on IP position | |
331 | 0059 gener->Init(); | |
332 | 0060 // | |
333 | 0061 // Activate this line if you want the vertex smearing to happen | |
334 | 0062 // track by track | |
335 | 0063 // | |
336 | 0064 //gener->SetVertexSmear(perTrack); | |
337 | 0065 | |
338 | 0066 gAlice->SetField(-999,2); //Specify maximum magnetic field in Tesla (neg. ==> default field) | |
339 | \end{verbatim} | |
340 | \normalsize | |
341 | ||
342 | In lines \texttt{0053} through \texttt{0059} setup the particle generator to be | |
343 | used. Line \texttt{0053} defines the type of particle generator to be used. In | |
344 | this case it will be the ALICE HIJING parameterized particle distribution. | |
f378814e | 345 | This can be replace with many others~\footnote{See |
346 | \texttt{\$ALICE\_ROOT/macros/Config\_gener.C} for more examples.}. Its | |
347 | parameter value $84210$ is the number of primary tracks that will be | |
348 | generated. For simple testing this number it typically set to a value like | |
349 | 50. Lines \texttt{0054} through \texttt{0058} set different parameters for the | |
350 | generator. Specifically line \texttt{0054 gener->SetMomentumRange(0,999);} set | |
351 | the limits of the momentum range of the particles that will be generated. Line | |
352 | \texttt{0055 gener->SetPhiRange(0,360);} sets the angular (degrees) range in | |
353 | $\phi$ or around the barrel that the partials will be generated in. In this | |
354 | case the full $\phi$ range will be used. The next line \texttt{0056 | |
355 | gener->SetThetaRanger(0.28,179.72);} sets the $\theta$ angular (degrees) range | |
356 | for the primary tracks to be generated in. In this case $0.28^{\circ}$ to | |
357 | $179.72^{\circ}$ covers the pseudorapidity range $-6.0\leq \eta \geq | |
358 | +6.0$. With these values of $\theta$ and $\phi$, $84210$ primary tracks | |
359 | represents about $8000$ primary particles in the central one unit of | |
e725a163 | 360 | pseudorapidity, the maximum track density that ALICE has been designed for. |
361 | ||
362 | Line \texttt{0057 gener->SetOrigin(0,0,0);} sets the central position of the | |
363 | event origin. Line \texttt{0058 gener->SetSigma(0,0,0);} set the | |
364 | $\sigma_{x,y,z}$ range over which multiple events will have their origins | |
365 | distributed. The mean position being given by the \texttt{SetOrigin} command | |
366 | above. It is also possible in one event, to distribute each primary track over | |
367 | a region who's mean is set by the \texttt{SetOrigin} command and who's width is | |
368 | set with the \texttt{SetSigma} command. If this is what you want then uncomment | |
369 | out line \texttt{0064}. Line \texttt{0059 gener->Init();} initializes the | |
370 | particle generation routine defined by \texttt{0053} with any and all | |
371 | parameters defined later on. Lastly line \texttt{0066 | |
372 | gAlice->SetField(-999,2);} defines what kind, if any, magnetic field should be | |
373 | used. These values instruct \texttt{AliRoot} to read a magnetic field map from | |
374 | \texttt{\$ALICE\_ROOT/data/field02.dat}. | |
375 | ||
376 | \scriptsize | |
377 | \begin{verbatim} | |
378 | 0067 | |
379 | 0068 Int_t iMAG=1; | |
380 | 0069 Int_t iITS=1; | |
381 | 0070 Int_t iTPC=1; | |
382 | 0071 Int_t iTOF=1; | |
383 | 0072 Int_t iRICH=1; | |
384 | 0073 Int_t iZDC=0; | |
385 | 0074 Int_t iCASTOR=1; | |
386 | 0075 Int_t iTRD=1; | |
387 | 0076 Int_t iABSO=1; | |
388 | 0077 Int_t iDIPO=1; | |
389 | 0078 Int_t iHALL=1; | |
390 | 0079 Int_t iFRAME=1; | |
391 | 0080 Int_t iSHIL=1; | |
392 | 0081 Int_t iPIPE=1; | |
393 | 0082 Int_t iFMD=1; | |
394 | 0083 Int_t iMUON=1; | |
395 | 0084 Int_t iPHOS=1; | |
396 | 0085 Int_t iPMD=0; | |
397 | 0086 Int_t iSTART=0; | |
398 | 0087 | |
399 | \end{verbatim} | |
400 | \normalsize | |
401 | ||
402 | In these following lines \texttt{0068} through \texttt{0086} a series of flags | |
403 | are defined to make it easy to turn on or off different detectors. There is one | |
404 | such flag for each detector/major structural element. A value of 1 turns on | |
405 | that detector and a value of 0 turns it off. For example, Line | |
406 | \texttt{0068 Int\_t iMAG=1;} turns on the magnetic field for all of | |
407 | ALICE\footnotemark. Line \texttt{0069 Int\_t iITS=1;} turns on the ITS. Line | |
408 | \texttt{0073 Int\_t iZDC=0;} turns off the ZDC\footnotemark. Note, in this | |
409 | case the ZDC will not even be defined in ALIROOT. You will not be able to make | |
410 | any fancy pictures of it or anything. It simply will not exist. | |
411 | ||
412 | \addtocounter{footnote}{-1} | |
413 | \footnotetext{Be car full, if a particular material was defined to have a | |
414 | magnetic field this may over ride this flag. This should have been fixed, I | |
415 | haven't confirmed that yet.} | |
416 | ||
417 | \addtocounter{footnote}{1} | |
418 | \footnotetext{Since the ZDC is outside of the range of produce primary | |
419 | particle, in this example, there is no real use to keep it in the simulation.} | |
420 | ||
421 | Now the following lines in the \texttt{Config.C} file, depending on the value | |
422 | of the above flags, will create the specific detectors and structural | |
423 | elements. Since this is an ITS manual, I will show and explain the ITS part of | |
424 | this remaining file. | |
425 | ||
426 | \scriptsize | |
427 | \begin{verbatim} | |
428 | 0138 | |
429 | 0139 if(iITS) { | |
430 | 0140 //=================== ITS parameters ============================ | |
431 | 0141 // | |
432 | 0142 // EUCLID is a flag to output (=1) both geometry and media to two ASCII files | |
433 | 0143 // (called by default ITSgeometry.euc and ITSgeometry.tme) in a format | |
434 | 0144 // understandable to the CAD system EUCLID. The default (=0) means that you | |
435 | 0145 // dont want to use this facility. | |
436 | 0146 // | |
437 | 0147 AliITS *ITS = new AliITSv5("ITS","normal ITS"); | |
438 | 0148 ITS->SetEUCLID(0); | |
439 | 0149 } | |
440 | 0150 | |
441 | \end{verbatim} | |
442 | \normalsize | |
443 | ||
444 | This is the section of the \texttt{Config.C} file that defines what the ITS | |
445 | is. You will note that if \texttt{iITS} = 0\footnote{A value of 0 is equivalent | |
446 | to FALSE. A non-zero value is equivalent to TRUE.}, then this section of the | |
447 | file will not be executed and no ITS will be defined. Line \texttt{0147} | |
448 | creates the ITS. In this case it creates ITS version 5. There are two necessary | |
449 | parameters. The first is the name of this detector ``ITS''. The second is a | |
450 | brief description of the detector ``normal ITS''. Both of these are required so | |
451 | that AliRoot knows what detector this is. AliRoot does not know about any | |
452 | detectors and it is only via this detector name that we can later get access to | |
453 | the information stored about the ITS. Line \texttt{0148 ITS-SetEUCLID(0);} sets | |
454 | a flag for the ITS describing weather or not to create a file in the | |
455 | EUCLID-GEANT3 compatible format. By default this should be 0. In the future we | |
456 | may add additional flags and parameters as needed. | |
457 | ||
458 | On line \texttt{0147 AliITS *ITS = new AliITSv5(``ITS'',''normal ITS'');} this | |
459 | create an ITS of type v5. This is the detailed ITS TDR geometry. For a full | |
460 | description of the possible ITS geometries see section | |
461 | ~\ref{ITSMan:ch2:Detaile_geometry_section}. By default, every detailed geometry | |
462 | is required to have a corresponding course geometry. In this case that is | |
463 | v0. All course geometries are required not to generate ``hits'' and therefore | |
464 | \texttt{AliITSv0} does not and therefore can not be used in any study where | |
465 | signals from the ITS may be used or required. | |
466 | ||
467 | \section*{Other things that can be done} | |
f378814e | 468 | |
469 | There are a number of macros that have been written to do different | |
470 | things. Take a look at the files in ending in \texttt{.C} in | |
471 | \texttt{\$ALICE\_ROOT/macros}. There you will find a number of macros to view | |
472 | and/or draw different detector geometries. These are the geometries used by in | |
473 | the simulation and so you will need to execute \texttt{gAlice->Init();} | |
474 | first. In here are also kept general example macros to read hits and plot some | |
475 | information, \texttt{newanal.C} for example. Typically each detector group | |
476 | writes their own detector specific macros and places them in their directories, | |
477 | \texttt{\$ALICE\_ROOT/ITS/AliITStest.C} which will simulate one event and then | |
478 | do the ITS detector simulations and create what are called ``digits'' and also | |
479 | reconstruct these ``digits'' into ``reconstructed points''. | |
480 | ||
481 | There is also another nice macro, requiring Geant 3, that is menu driven and | |
482 | lets you display all or part of the Alice geometry. This is located in | |
483 | \texttt{\$ALICE\_ROOT/TGeant3} and is called \texttt{TGeant3GUI.C}, see | |
484 | figure~\ref{ITSMan:ch0:TGeant3GUI}. As with the other macros, you will need to | |
485 | execute \texttt{gAlice->Init();} first. Root also provides some nice features | |
486 | that you can use. Either in \texttt{aliroot} or in \texttt{root} you can create | |
487 | a root object called a \texttt{TBrowser}, see | |
488 | figure~\ref{ITSMan:ch0:TBrowser}. This is a menu driven way to look at or even | |
489 | histogram the contents of root files or even memory. These macros are always | |
490 | being modified, deleted, changed, and new one added. Take a look at the Alice | |
491 | off-line web page \texttt{http://AliSoft.cern.ch/offline/} for a more up to | |
492 | date and complete description. | |
493 | ||
494 | \begin{figure*}[htbp] | |
495 | \begin{center} | |
496 | \leavevmode | |
497 | % \epsfig{file=TGeant3GUI_Canvas.eps,width=12cm} | |
498 | \caption{This shows a typical menu from running \texttt{TGeant3GUI.C}.} | |
499 | \label{ITSMan:ch0:TGeant3GUI} | |
500 | \end{center} | |
501 | \end{figure*} | |
502 | ||
503 | \begin{figure*}[htbp] | |
504 | \begin{center} | |
505 | \leavevmode | |
506 | % \epsfig{file=TBrower_Canvas.eps,width=12cm} | |
507 | \caption{This shows a typical TBrowser window.} | |
508 | \label{ITSMan:ch0:TBrowser} | |
509 | \end{center} | |
510 | \end{figure*} |