New macro for invariant mass analysis from ESD (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 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
259
260 aliroot -b << EOF  
261 AliSimulation MuonSim("YourConfig.C")
262 MuonSim.Run(XXX)
263 .q
264 EOF
265
266 aliroot -b << EOF
267 AliReconstruction MuonRec("galice.root")
268 MuonRec.SetRunVertexFinder(kFALSE)
269 MuonRec.SetRunLocalReconstruction("MUON")
270 MuonRec.SetFillESD("MUON")
271 MuonRec.Run()
272 .q
273 EOF
274
275 aliroot -b << EOF  
276 .includepath $ALICE_ROOT/STEER
277 .includepath $ALICE_ROOT/MUON
278 .L $ALICE_ROOT/MUON/MUONmassPlot_ESD.C++
279 MUONmassPlot("galice.root",0,99999);
280 .q
281 EOF
282
283 ===========================================================
284  Still working ..............
285 ===========================================================