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