1 /**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
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 **************************************************************************/
18 ==========================================================
19 Please add to this README file all information concerning
20 config files, simulation, digitalization, clusterization,
21 reconstruction and macro analysis
23 ==========================================================
24 How to run a MUON generation
25 ==========================================================
27 root [0] gAlice->Run(10,"$ALICE_ROOT/MUON/Config_MUON_test.C");
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
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\" );");
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);
47 ============================================================
48 How to run MUON Digitalization from SDigits
49 ============================================================
50 To process the digitalization of hits the AliRunDigitizer
53 AliRunDigitizer * manager = new AliRunDigitizer(1,1);
54 manager->SetInputStream(0,"galice.root");
55 AliMUONDigitizerv2* dMUON = new AliMUONDigitizerv2(manager)
56 manager->AddDigitizer(dMUON);
60 ============================================================
61 How to run MUON Digitalization from Hits
62 ============================================================
63 To process the digitalization of hits the AliRunDigitizer
66 AliRunDigitizer * manager = new AliRunDigitizer(1,1);
67 manager->SetInputStream(0,"galice.root");
68 AliMUONDigitizerv1* dMUON = new AliMUONDigitizerv1(manager)
69 manager->AddDigitizer(dMUON);
72 ============================================================
73 How to run MUON RecPoint clusterization
74 ============================================================
76 .includepath $ALICE_ROOT/STEER
77 .includepath $ALICE_ROOT/MUON
78 .L $ALICE_ROOT/MUON/MUONrawclusters.C++
79 MUONrawclusters("galice.root",0,9999);
81 gSystem->Load("$ALICE_ROOT/MUON/MUONrawclusters_C.so")
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);
91 gSystem->Load("$ALICE_ROOT/MUON/MUONtrigger_C.so")
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")
101 gSystem->Load("$ALICE_ROOT/MUON/MUONrecoNtuple_C.so")
102 First event and last event are given by hand, but this will change.
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);
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
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
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);
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
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");
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.
149 To compile MUONCheck.C
150 .includepath $ALICE_ROOT/STEER
151 .includepath $ALICE_ROOT/MUON
152 .L $ALICE_ROOT/MUON/MUONCheck.C++
154 gSystem->Load("$ALICE_ROOT/MUON/MUONCheck_C.so")
156 To print Kine : (default file is galice.root )
157 MUONkine() or MUONkine("galice.root",##) for the event number ##
159 To print hits : (default file is galice.root if not MUONhits("toto.root""); )
160 MUONhits() or MUONhits("galice.root",##) for the event number ##
162 To print digits : (default file is galice.root)
163 MUONdigits() or MUONdigits("galice.root",##) for the event number ##
165 To print rawcluster : (default file is galice.root)
166 MUONrecpoints() or MUONrecpoints("galice.root",##) for the event number ##
168 To print trigger : (default file is galice.root)
169 MUONTestTrigger() or MUONTestTrigger("galice.root",##) for the event number ##
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
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")
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.
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
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
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.
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.
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
255 ===========================================================
256 csh Script for the full reconstruction with raw data generator
257 ===========================================================
261 AliSimulation MuonSim("YourConfig.C")
262 MuonSim.SetWriteRawData("MUON");
268 TPluginManager* pluginManager = gROOT->GetPluginManager();
269 pluginManager->AddHandler("AliReconstructor", "MUON","AliMUONReconstructor", "MUON","AliMUONReconstructor()")
270 AliReconstruction MuonRec("galice.root")
271 MuonRec.SetRunVertexFinder(kFALSE)
272 MuonRec.SetRunLocalReconstruction("MUON")
273 MuonRec.SetFillESD("MUON")
279 .includepath $ALICE_ROOT/STEER
280 .includepath $ALICE_ROOT/MUON
281 .L $ALICE_ROOT/MUON/MUONmassPlot_ESD.C++
282 MUONmassPlot("galice.root",0,99999);
286 ===========================================================
287 Still working ..............
288 ===========================================================