]>
Commit | Line | Data |
---|---|---|
50837721 | 1 | /************************************************************************** |
2 | * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
3 | * * | |
4 | * Author: The ALICE Off-line Project. * | |
5 | * Contributors are mentioned in the code where appropriate. * | |
6 | * * | |
7 | * Permission to use, copy, modify and distribute this software and its * | |
8 | * documentation strictly for non-commercial purposes is hereby granted * | |
9 | * without fee, provided that the above copyright notice appears in all * | |
10 | * copies and that both the copyright notice and this permission notice * | |
11 | * appear in the supporting documentation. The authors make no claims * | |
12 | * about the suitability of this software for any purpose. It is * | |
13 | * provided "as is" without express or implied warranty. * | |
14 | **************************************************************************/ | |
15 | ||
16 | /* $Id$ */ | |
17 | ||
88cb7938 | 18 | ========================================================== |
19 | Please add to this README file all information concerning | |
20 | config files, simulation, digitalization, clusterization, | |
21 | reconstruction and macro analysis | |
22 | ||
6b1e4b22 | 23 | ========================================================== |
24 | How to check that your aliroot is working well | |
25 | ========================================================== | |
8c4c70f6 | 26 | There is a script file AlirootRun_MUONtest.sh which |
6b1e4b22 | 27 | allows for simulating, reconstructing and making the |
28 | invariant analysis of the generated Upsilon (1S). | |
29 | The used configuration file is Config.C in MUON | |
30 | directory. | |
8c4c70f6 | 31 | You have to type : |
32 | source $ALICE_ROOT/MUON/AlirootRun_MUONtest.sh | |
c57f3c5b | 33 | The results of this test are saved in test_out/ directory. |
34 | Note that the first step of this script is to create a local Condition | |
35 | Database for MUON (containing fake values for pedestals, gains, and | |
36 | dead channels), which is written under $ALICE_ROOT/MUON/CDB (using the | |
37 | MUONCDB.C compiled macro). | |
38 | That CDB is now always *required* to perform either simulation or | |
39 | reconstruction. | |
40 | It's created only once, and reused by subsequent use of the script. | |
41 | But in case of upgrade of MUON code, please rm -rf this | |
42 | directory in order to re-create it from scratch, just to be on the safe side. | |
6b1e4b22 | 43 | |
7f42a16f | 44 | ========================================================== |
45 | How to check that your aliroot is working VERY well | |
46 | ========================================================== | |
47 | There is a script file AlirootRun_MUONlongtest.sh which | |
48 | allows for simulating, reconstructing and making the | |
49 | -+invariant analysis of the generated Upsilon (1S). | |
50 | This script generates a large number of Upsilon (20k) | |
51 | in order to access differential quantities. | |
52 | The used configuration file is Config.C in MUON | |
53 | directory. | |
54 | One should really run this script to check if the MUON | |
55 | code can process a large number of events WITHOUT errors, | |
56 | in particular before making important commits !! | |
57 | ||
58 | You have to type : | |
59 | $ALICE_ROOT/MUON/AlirootRun_MUONtestlong.sh | |
60 | The results of this test are saved in testlong_out/ directory | |
61 | and will be kept in CVS | |
62 | ||
63 | (NOTE: the macros performing the calculations/plots MUONefficiency.C | |
64 | and MUONplotEfficiency.C are also able to handle J/Psi if | |
65 | Config.C is modified accordingly ) | |
66 | ||
88cb7938 | 67 | ========================================================== |
7985603c | 68 | How to run a MUON generation |
88cb7938 | 69 | ========================================================== |
70 | aliroot | |
fc1fafa5 | 71 | root [0] gAlice->Run(10,"$ALICE_ROOT/MUON/Config.C"); |
88cb7938 | 72 | |
73 | 1 single muon of 7 GeV/c in the MUON spectrometer | |
74 | acceptance will be simulated using geant3. | |
75 | Hit information will be store in the root file in the | |
76 | execution directory. | |
88cb7938 | 77 | If you want to change the option or to define a new directory |
78 | for hits, you have to do the following before: | |
79 | root [0] gAlice->SetConfigFunction("Config( \"/home/martinez/aliroot/work_NewIO/test/\" , \"box\" );"); | |
80 | ||
88cb7938 | 81 | ============================================================ |
82 | How to run MUONCheck macro | |
83 | ============================================================ | |
84 | To check the content of a root data file, the MUONCheck | |
85 | provides a ascii output on screen. | |
86 | ||
87 | To compile MUONCheck.C | |
2058bf30 | 88 | .includepath $ALICE_ROOT/STEER |
89 | .includepath $ALICE_ROOT/MUON | |
bf485fb9 | 90 | .includepath $ALICE_ROOT/MUON/mapping |
2058bf30 | 91 | .L $ALICE_ROOT/MUON/MUONCheck.C++ |
bf17dbfd | 92 | To Load |
93 | gSystem->Load("$ALICE_ROOT/MUON/MUONCheck_C.so") | |
2058bf30 | 94 | |
278a86d5 | 95 | To print Kine : (default file is galice.root ) |
7d6677d7 | 96 | MUONkine() or MUONkine(##,"galice.root") for the event number ## |
88cb7938 | 97 | |
98 | To print hits : (default file is galice.root if not MUONhits("toto.root""); ) | |
7d6677d7 | 99 | MUONhits() or MUONhits(##,"galice.root") for the event number ## |
88cb7938 | 100 | |
101 | To print digits : (default file is galice.root) | |
7d6677d7 | 102 | MUONdigits() or MUONdigits(##,"galice.root") for the event number ## |
c57f3c5b | 103 | |
104 | To print sdigits : (default file is galice.root) | |
105 | MUONsdigits() or MUONsdigits(##,"galice.root") for the event number ## | |
88cb7938 | 106 | |
107 | To print rawcluster : (default file is galice.root) | |
7d6677d7 | 108 | MUONrecpoints() or MUONrecpoints(##,"galice.root") for the event number ## |
88cb7938 | 109 | |
110 | To print trigger : (default file is galice.root) | |
7d6677d7 | 111 | MUONrectrigger() or MUONrectrigger(##,"galice.root") for the event number ## |
2b32c661 | 112 | |
113 | .... | |
88cb7938 | 114 | |
6570c14d | 115 | ============================================================ |
116 | How to check the Geometry with the new Geometrical modeler | |
117 | ftp://root.cern.ch/root/doc/chapter16.pdf | |
118 | http://agenda.cern.ch/fullAgenda.php?ida=a05212 | |
119 | ============================================================ | |
120 | gAlice->Init("$ALICE_ROOT/MUON/Config.C"); | |
121 | gGeoManager->GetMasterVolume()->Draw(); | |
122 | ||
02d8f072 | 123 | |
b3ba6823 | 124 | ============================================================ |
125 | How to check the overlap with the new Geometrical modeler | |
126 | ftp://root.cern.ch/root/doc/chapter16.pdf | |
127 | http://agenda.cern.ch/fullAgenda.php?ida=a05212 | |
128 | ============================================================ | |
129 | gAlice->Init("$ALICE_ROOT/MUON/Config.C"); | |
130 | gGeoManager->CheckOverlaps(); | |
131 | gGeoManager->PrintOverlaps(); | |
132 | ||
7985603c | 133 | ============================================================ |
134 | How to run MUONdisplay | |
135 | ============================================================ | |
1eccde20 | 136 | First you need to perform a full simulation: |
7985603c | 137 | generation, digitalisation and clusterisation |
cd0f8cc8 | 138 | To run MUONdisplay with Root 5.04/00 you need to get a fix in |
139 | the gpad/src/TPad.cxx from Root CVS: | |
140 | cvs update -r 1.200 gpad/src/TPad.cxx | |
141 | and recompile root. | |
142 | ||
7985603c | 143 | .L $ALICE_ROOT/MUON/MUONdisplay.C |
144 | MUONdisplay(0,"galice.root") | |
145 | ||
02d8f072 | 146 | ============================================================ |
147 | Tracking parameters, cuts, energy loss and physics processes | |
148 | ============================================================ | |
149 | Tracking parameters in MUON are automatically defined by GEANT | |
150 | MUON takes the default values of CUTs and physics processes | |
151 | defined by the Config files, except for the gas mixture medium | |
152 | of the tracking chambers. The CUT's and physics processes of | |
153 | the gas mixture medium is then defined in the galice.cuts file | |
154 | in the data directory. In particular ILOSS parameter MUST be | |
155 | equal unity (1) in order simulate a realistic energy loss | |
156 | distribution (mean value and fluctuations) in the active gas. | |
a88eb0d0 | 157 | |
158 | ============================================================ | |
159 | Tracking of particle in the magnetic field | |
160 | ============================================================ | |
161 | GEANT has two ways for tracking charged particles in the | |
162 | magnetic field: HELIX et RKUTA. | |
163 | HELIX is faster and works well if the gradient of magnetic | |
164 | field is small. | |
165 | For MUON, HELIX is a not a good approximation and we must | |
166 | use RKUTA to get the optimal mass resolution of the | |
167 | spectrometer. The choice of HELIX or RKUTA is done in the | |
168 | config file when the magnetic field is defined: | |
169 | AliMagFMaps* field = new AliMagFMaps("Maps","Maps", TRACKING, FACTOR, MAXB, AliMagFMaps::k4kG); | |
170 | gAlice->SetField(field); | |
171 | TRACKING must be 1 for RKUTA and 2 for HELIX (the default value for aliroot is 2 (HELIX)) | |
172 | FACTOR allows you to set the magnetic field to 0, just putting FACTOR=0. Default value is 1. | |
173 | MAXB is the maximum magnetic field which is 10.T | |
2b32c661 | 174 | |
f4f795ed | 175 | =========================================================== |
176 | MUON cocktail for physics .............. | |
177 | =========================================================== | |
178 | There is a MUON cocktail generator of the muon sources in the | |
179 | EVGEN directory. This class derives from AliGenCocktail. | |
180 | In the init of this class I have filled the cocktail with | |
181 | the muon sources: J/Psi, Upsilon, Open Charm, Open Beauty, | |
182 | Pion, Kaons. The code needs only the production cross section | |
183 | at 4pi (for the moment this values are in the code since I | |
184 | prefere them do not be modified), and the code calculates the | |
185 | rate of particles in the acceptance, making the scaling based | |
186 | on the number of collisions for the hard probes and on the | |
187 | number of participants for soft sources: Pions and Kaons. | |
188 | ||
189 | In the Genereate of this class all entries in the cocktail | |
190 | are called and we define a "primordial trigger" with requires | |
191 | a minimum number of muons above a Pt cut in the required acceptance. | |
192 | In order to normalized to the real number of simulated events, | |
193 | there are 2 data members in the class fNsuceeded adn fNGenerate | |
194 | which tell us what is the biais source. | |
195 | ||
196 | Enclose an example to use this generator: | |
197 | AliGenMUONCocktail * gener = new AliGenMUONCocktail(); | |
198 | gener->SetPtRange(1.,100.); // Transverse momentum range | |
199 | gener->SetPhiRange(0.,360.); // Azimuthal angle range | |
200 | gener->SetYRange(-4.0,-2.4); | |
201 | gener->SetMuonPtCut(1.); | |
202 | gener->SetMuonThetaCut(171.,178.); | |
203 | gener->SetMuonMultiplicity(2); | |
35e21dec | 204 | gener->SetImpactParameterRange(0.,5.); // 10% most centra PbPb collisions |
f4f795ed | 205 | gener->SetVertexSmear(kPerTrack); |
206 | gener->SetOrigin(0,0,0); // Vertex position | |
207 | gener->SetSigma(0,0,0.0); // Sigma in (X,Y,Z) (cm) on IP position | |
208 | gener->Init(); | |
209 | ||
a2da7817 | 210 | ================================================================ |
69be760c | 211 | csh Script for the full reconstruction with raw data generator |
a2da7817 | 212 | ================================================================ |
213 | The rawdata generation and analysis is working with the new segmentation. | |
214 | So the config file must use the version "AliMUONFactoryV3" | |
215 | ||
216 | Generation | |
217 | The method AliSimulation::SetWriteRawData("MUON") enables on | |
218 | the muon rawdata generation | |
219 | aliroot -b << EOF | |
220 | AliSimulation MuonSim("$ALICE_ROOT/MUON/Config.C") | |
221 | MuonSim.SetWriteRawData("MUON") | |
222 | MuonSim.Run(10) | |
223 | .q | |
224 | EOF | |
225 | ||
226 | Reconstruction | |
227 | aliroot -b << EOF | |
228 | AliReconstruction MuonRec("galice.root"); | |
229 | MuonRec.SetInput("$YOUR_WORKING_DIRECTORY/"); Do not forget the slash at the end! | |
230 | MuonRec.SetRunVertexFinder(kFALSE); | |
231 | MuonRec.SetRunLocalReconstruction("MUON"); | |
232 | MuonRec.SetRunTracking(""); | |
233 | MuonRec.SetFillESD("MUON"); | |
8e0ae46c | 234 | MuonRec.SetOption("MUON", "VS"); // to use VS cluster finder |
235 | // MuonRec.SetOption("MUON", "VS Original"); // to run VS and original track finder | |
236 | // MuonRec.SetOption("MUON", "Combi"); // to run combined cluster / track finder | |
237 | MMuonRec.Run(); | |
a2da7817 | 238 | .q |
239 | EOF | |
240 | ||
a88eb0d0 | 241 | |
b8dc484b | 242 | |
243 | ============================================================ | |
244 | How to run MUONRecoCheck macro | |
245 | ============================================================ | |
246 | To check the muon reconstruction by comparing the reconstructed tracks | |
247 | with the reference tracks made of "AliTrackReference" for the hits and | |
248 | kinematic informations (TParticle) for the vertex. | |
249 | This macro can be used to check the track reconstruction e.g. efficiency, | |
250 | momentum resolution ... but also to make physics analysis whenever | |
251 | track identification is needed. | |
252 | ||
253 | To compile MUONRecoCheck.C | |
254 | .includepath $ALICE_ROOT/STEER | |
255 | .includepath $ALICE_ROOT/MUON | |
256 | .L $ALICE_ROOT/MUON/MUONRecoCheck.C+ | |
257 | ||
258 | // To run MUONRecoCheck | |
259 | MUONRecoCheck(nEvent,"galice.root"); // nEvent = nb of events | |
260 | ||
29fc2c86 | 261 | |
262 | ============================================================ | |
263 | How to run MUONTracker macro | |
264 | ============================================================ | |
265 | To make the track reconstruction directly from AliTrackReference hits | |
266 | which are recorded in TrackRefs.root during the simulation. | |
267 | It can be used to check the reconstruction without clusterization. | |
268 | ||
269 | To compile MUONTracker.C | |
270 | .includepath $ALICE_ROOT/STEER | |
271 | .includepath $ALICE_ROOT/MUON | |
272 | .L $ALICE_ROOT/MUON/MUONTracker.C+ | |
273 | ||
274 | // To run MUONTracker | |
275 | MUONTracker(iEventMin,iEventMax,"galice.root"); // iEventMin: first event | |
fc1fafa5 | 276 | |
277 | =========================================================== | |
278 | Macro MUONGenerateGeometryData.C | |
279 | =========================================================== | |
280 | ||
281 | Macro for generating the geometry data files: | |
65087afe | 282 | (transform.dat, svmap.dat). |
283 | - MUON/data/transform.dat file contains all the information | |
fc1fafa5 | 284 | about the transformation (traslation + rotation) needed for |
285 | the positionning of each detection element of the MUON | |
286 | spectrometer. | |
65087afe | 287 | - MUON/data/svmap.dat file contains all the information to link |
fc1fafa5 | 288 | each geant volume (it can be extended to other virtual MC) with |
289 | a detection element. The point here is that a given detection | |
290 | element, i.e. a slat chamber consists of many geant volumes. | |
291 | the correspondence is then defined in an input file. | |
65087afe | 292 | Each time there is a change in the definition of MC geometry, these |
fc1fafa5 | 293 | input files must be re-generated via the macro |
294 | MUONGenerateGeometryData.C | |
295 | ||
296 | To be run from aliroot: | |
297 | .x MUONGenerateGeometryData.C | |
298 | ||
299 | The generated files do not replace the existing ones | |
300 | but have different names (with extension ".out"). | |
65087afe | 301 | Replacement with new files has to be done manually. |
29fc2c86 | 302 | |
303 | ||
cd85a354 | 304 | ========================================================== |
305 | How to Merge events | |
306 | ========================================================== | |
307 | ||
308 | You can merge 2 types of simulated events. For example, | |
309 | you can simulate Hijing events, and then simulate muons | |
310 | merging both. | |
311 | ||
312 | Merging is done at the sdigits level, so Kinematics files | |
313 | of the merged events will just correspond to the | |
314 | Config.C simulated file (not to Config_HIJING.C). | |
315 | ||
316 | You must, first, do the Hijing simulation and store it | |
317 | in directory $HIJING_SIM. Note that for merging you | |
318 | won't need Kinematics files of the Hijing simulation... | |
319 | ||
320 | Hijing simulation | |
321 | ||
322 | aliroot -b << EOF | |
323 | AliSimulation HijingSim("$HIJING_SIM/Config_HIJING.C") | |
324 | HijingSim.Run(5) | |
325 | .q | |
326 | EOF | |
327 | ||
328 | ||
329 | Then you can do muon simulation and reconstruction | |
330 | merging both simulated events. In next example, we are | |
331 | merging 20 times each Hijing event in order to simulate | |
332 | 100 muons merged with 5 Hijing events. | |
333 | ||
334 | ||
335 | aliroot -b << EOF | |
336 | AliSimulation MuonSim("$ALICE_ROOT/MUON/Config.C") | |
337 | MuonSim.MergeWith("$HIJING_SIM/galice.root",20) //parameters are the Hijing simulation file and the number of times we use each Hijing event | |
338 | MuonSim.Run(100) // number of muon (Config.C) events | |
339 | .q | |
340 | EOF | |
341 | ||
342 | ||
343 | aliroot -b << EOF | |
344 | TPluginManager * pluginmanager = gROOT->GetPluginManager() | |
345 | pluginmanager->AddHandler("AliReconstructor","MUON","AliMUONReconstructor","MUON","AliMUONReconstructor()") | |
346 | AliReconstruction MuonRec("galice.root") | |
347 | MuonRec.SetRunTracking("") | |
348 | MuonRec.SetRunVertexFinder(kFALSE) | |
349 | MuonRec.SetRunLocalReconstruction("MUON") | |
350 | MuonRec.SetFillESD("MUON") | |
351 | MuonRec.Run() | |
352 | .q | |
353 | EOF | |
354 | ||
88cb7938 | 355 | =========================================================== |
356 | Still working .............. | |
357 | =========================================================== |