Updating info for SDigitalizer after Artur modifications
[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 run a MUON generation
25 ==========================================================
26 aliroot
27 root [0] gAlice->Run(10,"$ALICE_ROOT/MUON/Config_MUON_test.C");
28
29 1 single muon of 7 GeV/c in the MUON spectrometer 
30 acceptance will be simulated using geant3. 
31 Hit information will be store in the root file in the
32 execution directory.
33 If you want to change the option or to define a new directory
34 for hits, you have to do the following before:
35 root [0] gAlice->SetConfigFunction("Config( \"/home/martinez/aliroot/work_NewIO/test/\" , \"box\" );"); 
36
37 ============================================================
38  How to run MUON Hits to SDigits
39 ============================================================
40 AliRunDigitizer   * manager = new AliRunDigitizer(1,1);
41 manager->SetInputStream(0,"galice.root");
42 AliMUONDigitizer * dMUON   = new AliMUONSDigitizerv1(manager);
43 manager->AddDigitizer(dMUON);
44 manager->Exec("deb");
45
46
47 ============================================================
48  How to run MUON Digitalization from SDigits
49 ============================================================
50 To process the digitalization of hits the AliRunDigitizer 
51 framework is used:
52
53 AliRunDigitizer   * manager = new AliRunDigitizer(1,1);
54 manager->SetInputStream(0,"galice.root");
55 AliMUONDigitizerv2* dMUON   = new AliMUONDigitizerv2(manager)
56 manager->AddDigitizer(dMUON);
57 manager->Exec("deb");
58
59
60 ============================================================
61  How to run MUON Digitalization from Hits
62 ============================================================
63 To process the digitalization of hits the AliRunDigitizer 
64 framework is used:
65
66 AliRunDigitizer   * manager = new AliRunDigitizer(1,1);
67 manager->SetInputStream(0,"galice.root");
68 AliMUONDigitizerv1* dMUON   = new AliMUONDigitizerv1(manager)
69 manager->AddDigitizer(dMUON);
70 manager->Exec("deb");
71
72 ============================================================
73  How to run MUON RecPoint clusterization
74 ============================================================
75 aliroot -b << EOF
76 .includepath $ALICE_ROOT/STEER
77 .includepath $ALICE_ROOT/MUON
78 .L $ALICE_ROOT/MUON/MUONrawclusters.C++
79 MUONrawclusters("galice.root",0,9999); 
80 to Load
81 gSystem->Load("$ALICE_ROOT/MUON/MUONrawclusters_C.so")
82
83 ============================================================
84  How to run MUON Trigger
85 ============================================================
86 .includepath $ALICE_ROOT/STEER
87 .includepath $ALICE_ROOT/MUON
88 .L $ALICE_ROOT/MUON/MUONtrigger.C++
89 MUONtrigger("galice.root",0,9999); 
90 To Load
91 gSystem->Load("$ALICE_ROOT/MUON/MUONtrigger_C.so")
92
93 ============================================================
94  How to run MUON Tracking reconstruction (old output)
95 ===========================================================
96 .includepath $ALICE_ROOT/STEER
97 .includepath $ALICE_ROOT/MUON
98 .L $ALICE_ROOT/MUON/MUONrecoNtuple.C++
99 MUONrecoNtuple(0,9999,0,"galice.root") 
100 To Load   
101 gSystem->Load("$ALICE_ROOT/MUON/MUONrecoNtuple_C.so")
102 First event and last event are given by hand, but this will change.
103
104 ===========================================================
105  How to run MUON Tracking reconstruction (new output)
106 ===========================================================
107 .includepath $ALICE_ROOT/STEER
108 .includepath $ALICE_ROOT/MUON
109 .L $ALICE_ROOT/MUON/MUONTracker.C++
110 MUONTracker("galice.root",0,9999);    
111 To Load
112 gSystem->Load("$ALICE_ROOT/MUON/MUONTracker_C.so")
113 Output in MUON.Tracks.root using the new IO 
114 as a TClonesArray of AliMUONTrack
115
116 Note1.In the actual version (dec-03) the following data 
117 members  of ALiMUONTrack:  fgFitter, fEventReconstructor, 
118 and fTrackHitsPtr are not saved in the MUON.Track.root file
119
120
121 ===========================================================
122  How to run MUON Trigger Track reconstruction (new output)
123 ===========================================================
124 .includepath $ALICE_ROOT/STEER
125 .includepath $ALICE_ROOT/MUON
126 .L $ALICE_ROOT/MUON/MUONTriggerTracker.C++
127 MUONTriggerTracker("galice.root",0,10);    
128 To Load
129 gSystem->Load("$ALICE_ROOT/MUON/MUONTriggerTracker_C.so")
130 Output in MUON.Tracks.root using the new IO 
131 as a TClonesArray of AliMUONTriggerTrack
132
133 ==========================================================
134  How to run full MUON  reconstruction 
135 (clusterisation + trigger + tracking)
136 ===========================================================
137 .includepath $ALICE_ROOT/STEER
138 .includepath $ALICE_ROOT/MUON
139 .L $ALICE_ROOT/MUON/MUONChallengeTest.C++
140 MUONRecoTest("galice.root");
141
142
143 ============================================================
144  How to run MUONCheck macro
145 ============================================================
146 To check the content of a root data file, the MUONCheck
147 provides a ascii output on screen.
148
149 To compile MUONCheck.C
150 .includepath $ALICE_ROOT/STEER
151 .includepath $ALICE_ROOT/MUON
152 .L $ALICE_ROOT/MUON/MUONCheck.C++
153 To Load
154 gSystem->Load("$ALICE_ROOT/MUON/MUONCheck_C.so")
155
156 To print Kine : (default file is galice.root )
157 MUONkine() or MUONkine("galice.root",##) for the event number ##
158
159 To print hits : (default file is galice.root if not MUONhits("toto.root""); )
160 MUONhits()  or MUONhits("galice.root",##) for the event number ##
161
162 To print digits : (default file is galice.root)
163 MUONdigits()  or MUONdigits("galice.root",##) for the event number ##
164
165 To print rawcluster : (default file is galice.root)
166 MUONrecpoints() or MUONrecpoints("galice.root",##) for the event number ##
167
168 To print trigger : (default file is galice.root)
169 MUONTestTrigger() or MUONTestTrigger("galice.root",##) for the event number ##
170
171 ....
172
173
174 ============================================================
175  How to check the Geometry
176 ============================================================
177 gAlice->Init("$ALICE_ROOT/MUON/Config_MUON_test.C");
178 .L $ALICE/geant3/TGeant3/G3GUI.C
179 G3GUI()
180
181
182 ============================================================
183  How to run MUONdisplay
184 ============================================================
185 First you need to perform a full simulation: 
186 generation, digitalisation and clusterisation
187 .L $ALICE_ROOT/MUON/MUONdisplay.C
188 MUONdisplay(0,"galice.root")
189
190 ============================================================
191  Tracking parameters, cuts, energy loss and physics processes
192 ============================================================
193 Tracking parameters in MUON are automatically defined by GEANT
194 MUON takes the default values of CUTs  and physics processes
195 defined by the Config files, except for the gas mixture medium 
196 of the tracking chambers. The CUT's and physics processes of
197 the gas mixture medium  is then defined in the galice.cuts file
198 in the data directory. In particular ILOSS parameter MUST be
199 equal unity (1) in order simulate a realistic energy loss
200 distribution (mean value and fluctuations) in the active gas.
201
202 ============================================================
203  Tracking of particle in the magnetic field
204 ============================================================
205 GEANT has two ways for tracking charged particles in the 
206 magnetic field: HELIX et RKUTA.
207 HELIX is faster and works well if the gradient of magnetic 
208 field is small. 
209 For MUON, HELIX is a not a good approximation and we must 
210 use RKUTA to get the optimal mass resolution of the 
211 spectrometer. The choice of HELIX or RKUTA is done in the
212 config file when the magnetic field is defined:
213   AliMagFMaps* field = new AliMagFMaps("Maps","Maps", TRACKING, FACTOR, MAXB, AliMagFMaps::k4kG);
214   gAlice->SetField(field);
215 TRACKING must be 1 for RKUTA and 2 for HELIX (the default value for aliroot is 2 (HELIX))
216 FACTOR allows you to set the magnetic field to 0, just putting FACTOR=0. Default value is 1.
217 MAXB is the maximum magnetic field which is 10.T
218
219 ===========================================================
220  MUON cocktail for physics ..............
221 ===========================================================
222 There is a MUON cocktail generator of the muon sources in the
223 EVGEN directory. This class derives from AliGenCocktail.
224 In the init of this class I have filled the cocktail with 
225 the muon sources: J/Psi, Upsilon, Open Charm, Open Beauty, 
226 Pion, Kaons. The code needs only the production cross section 
227 at 4pi (for the moment this values are in the code since I 
228 prefere them do not be modified), and the code calculates the  
229 rate of particles in the acceptance, making the scaling based 
230 on the number of collisions for the hard probes and on the  
231 number of participants for soft sources: Pions and Kaons.
232
233 In the Genereate of this class all entries in the cocktail 
234 are called and we define a "primordial trigger" with requires 
235 a minimum number of muons above a Pt cut in the required acceptance.
236 In order to normalized to the real number of simulated events, 
237 there are 2 data members in the class fNsuceeded adn fNGenerate 
238 which tell us what is the biais source.
239
240 Enclose an example to use this generator:   
241 AliGenMUONCocktail * gener = new AliGenMUONCocktail();
242 gener->SetPtRange(1.,100.);       // Transverse momentum range  
243 gener->SetPhiRange(0.,360.);    // Azimuthal angle range 
244 gener->SetYRange(-4.0,-2.4);
245 gener->SetMuonPtCut(1.);
246 gener->SetMuonThetaCut(171.,178.);
247 gener->SetMuonMultiplicity(2);
248 gener->SetNumberOfCollisions(1950.);   
249 gener->SetNumberOfParticipants(400.);     
250 gener->SetVertexSmear(kPerTrack);  
251 gener->SetOrigin(0,0,0);        // Vertex position
252 gener->SetSigma(0,0,0.0);       // Sigma in (X,Y,Z) (cm) on IP position
253 gener->Init();
254  
255 ===========================================================
256  csh Script for the full reconstruction
257 ===========================================================
258 aliroot -b << EOF  
259 gAlice->Run(NumberOfEvents,"YourConfig.C");
260 .q
261 EOF
262
263 aliroot -b << EOF
264 AliRunDigitizer   * manager = new AliRunDigitizer(1,1);
265 manager->SetInputStream(0,"galice.root");
266 AliMUONDigitizer * dMUON   = new AliMUONSDigitizerv1(manager);
267 manager->AddDigitizer(dMUON);
268 manager->Exec("deb");
269 .q.
270 EOF
271
272 aliroot -b << EOF
273 AliRunDigitizer   * manager = new AliRunDigitizer(1,1);
274 manager->SetInputStream(0,"galice.root");
275 AliMUONDigitizer* dMUON   = new AliMUONDigitizerv2(manager);
276 manager->AddDigitizer(dMUON);
277 manager->Exec("deb");
278 .q
279 EOF
280
281 aliroot -b << EOF
282 .includepath $ALICE_ROOT/STEER
283 .includepath $ALICE_ROOT/MUON
284 .L $ALICE_ROOT/MUON/MUONChallengeTest.C++
285 MUONRecoTest("galice.root");
286 .q
287 EOF
288
289
290 aliroot -b << EOF  
291 .includepath $ALICE_ROOT/STEER
292 .includepath $ALICE_ROOT/MUON
293 .L $ALICE_ROOT/MUON/MUONmassPlot_NewIO.C++
294 MUONmassPlot("galice.root",0,99999);
295 .q
296 EOF
297
298 ===========================================================
299  Still working ..............
300 ===========================================================