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