]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MUON/README
Updated list of MUON libraries
[u/mrichter/AliRoot.git] / MUON / README
CommitLineData
c3201ac4 1$Id$
50837721 2
88cb7938 3==========================================================
4Please add to this README file all information concerning
5config files, simulation, digitalization, clusterization,
6reconstruction and macro analysis
7
6b1e4b22 8==========================================================
9 How to check that your aliroot is working well
10==========================================================
8c4c70f6 11There is a script file AlirootRun_MUONtest.sh which
6b1e4b22 12allows for simulating, reconstructing and making the
13invariant analysis of the generated Upsilon (1S).
14The used configuration file is Config.C in MUON
15directory.
8c4c70f6 16You have to type :
17source $ALICE_ROOT/MUON/AlirootRun_MUONtest.sh
c57f3c5b 18The results of this test are saved in test_out/ directory.
60fff730 19Please note that the CDB (Condition DataBase) is now always *required*
20to perform either simulation or reconstruction. For the moment, a version
21 of that CDB is stored in CVS, so you should have one already in MUON/Calib
22subdirectories.
6b1e4b22 23
7f42a16f 24==========================================================
25 How to check that your aliroot is working VERY well
26==========================================================
27There is a script file AlirootRun_MUONlongtest.sh which
28allows for simulating, reconstructing and making the
29-+invariant analysis of the generated Upsilon (1S).
30This script generates a large number of Upsilon (20k)
31in order to access differential quantities.
32The used configuration file is Config.C in MUON
33directory.
34One should really run this script to check if the MUON
35code can process a large number of events WITHOUT errors,
36in particular before making important commits !!
37
38You have to type :
39$ALICE_ROOT/MUON/AlirootRun_MUONtestlong.sh
40The results of this test are saved in testlong_out/ directory
41and will be kept in CVS
42
43(NOTE: the macros performing the calculations/plots MUONefficiency.C
44and MUONplotEfficiency.C are also able to handle J/Psi if
45Config.C is modified accordingly )
46
88cb7938 47==========================================================
7985603c 48 How to run a MUON generation
88cb7938 49==========================================================
50aliroot
fc1fafa5 51root [0] gAlice->Run(10,"$ALICE_ROOT/MUON/Config.C");
88cb7938 52
531 single muon of 7 GeV/c in the MUON spectrometer
54acceptance will be simulated using geant3.
55Hit information will be store in the root file in the
56execution directory.
88cb7938 57If you want to change the option or to define a new directory
58for hits, you have to do the following before:
59root [0] gAlice->SetConfigFunction("Config( \"/home/martinez/aliroot/work_NewIO/test/\" , \"box\" );");
60
88cb7938 61============================================================
cd4f4ea4 62 How to dump the content of Root data files
88cb7938 63============================================================
cd4f4ea4 64To check the content of Root data files, the AliMUONData class
65provides the functions to produce an ASCII output on the screen
66which can be redirected on the file:
88cb7938 67
cd4f4ea4 68aliroot
69root [0] AliMUONData data("galice.root");
70root [1] data.DumpKine(5); > dump.kine
71root [2] data.DumpHits(5); > dump.hits
72root [3] data.DumpDigits(5); > dump.digits
73root [4] data.DumpSDigits(5); > dump.sdigits
74root [5] data.DumpRecPoints(5); > dump.recpoints
75root [6] data.DumpRecTrigger(5); > dump.rectrigger
88cb7938 76
cd4f4ea4 77If the event number in the function argument is not specified,
78data are dumped for all events.
2b32c661 79
88cb7938 80
6570c14d 81============================================================
82 How to check the Geometry with the new Geometrical modeler
83 ftp://root.cern.ch/root/doc/chapter16.pdf
84 http://agenda.cern.ch/fullAgenda.php?ida=a05212
85============================================================
86gAlice->Init("$ALICE_ROOT/MUON/Config.C");
87gGeoManager->GetMasterVolume()->Draw();
88
02d8f072 89
b3ba6823 90============================================================
91 How to check the overlap with the new Geometrical modeler
92 ftp://root.cern.ch/root/doc/chapter16.pdf
93 http://agenda.cern.ch/fullAgenda.php?ida=a05212
94============================================================
95gAlice->Init("$ALICE_ROOT/MUON/Config.C");
96gGeoManager->CheckOverlaps();
97gGeoManager->PrintOverlaps();
98
7985603c 99============================================================
100 How to run MUONdisplay
101============================================================
1eccde20 102First you need to perform a full simulation:
7985603c 103generation, digitalisation and clusterisation
cd0f8cc8 104To run MUONdisplay with Root 5.04/00 you need to get a fix in
105the gpad/src/TPad.cxx from Root CVS:
106 cvs update -r 1.200 gpad/src/TPad.cxx
107and recompile root.
108
7985603c 109.L $ALICE_ROOT/MUON/MUONdisplay.C
110MUONdisplay(0,"galice.root")
111
02d8f072 112============================================================
113 Tracking parameters, cuts, energy loss and physics processes
114============================================================
115Tracking parameters in MUON are automatically defined by GEANT
116MUON takes the default values of CUTs and physics processes
117defined by the Config files, except for the gas mixture medium
118of the tracking chambers. The CUT's and physics processes of
119the gas mixture medium is then defined in the galice.cuts file
120in the data directory. In particular ILOSS parameter MUST be
121equal unity (1) in order simulate a realistic energy loss
122distribution (mean value and fluctuations) in the active gas.
a88eb0d0 123
124============================================================
125 Tracking of particle in the magnetic field
126============================================================
127GEANT has two ways for tracking charged particles in the
128magnetic field: HELIX et RKUTA.
129HELIX is faster and works well if the gradient of magnetic
130field is small.
131For MUON, HELIX is a not a good approximation and we must
132use RKUTA to get the optimal mass resolution of the
133spectrometer. The choice of HELIX or RKUTA is done in the
134config file when the magnetic field is defined:
b97b210c 135 AliMagFMaps* field = new AliMagFMaps("Maps","Maps", TRACKING, FACTOR, MAXB, AliMagFMaps::k5kG);
a88eb0d0 136 gAlice->SetField(field);
137TRACKING must be 1 for RKUTA and 2 for HELIX (the default value for aliroot is 2 (HELIX))
138FACTOR allows you to set the magnetic field to 0, just putting FACTOR=0. Default value is 1.
139MAXB is the maximum magnetic field which is 10.T
2b32c661 140
f4f795ed 141===========================================================
142 MUON cocktail for physics ..............
143===========================================================
144There is a MUON cocktail generator of the muon sources in the
145EVGEN directory. This class derives from AliGenCocktail.
146In the init of this class I have filled the cocktail with
147the muon sources: J/Psi, Upsilon, Open Charm, Open Beauty,
148Pion, Kaons. The code needs only the production cross section
149at 4pi (for the moment this values are in the code since I
150prefere them do not be modified), and the code calculates the
151rate of particles in the acceptance, making the scaling based
152on the number of collisions for the hard probes and on the
153number of participants for soft sources: Pions and Kaons.
154
155In the Genereate of this class all entries in the cocktail
156are called and we define a "primordial trigger" with requires
157a minimum number of muons above a Pt cut in the required acceptance.
158In order to normalized to the real number of simulated events,
159there are 2 data members in the class fNsuceeded adn fNGenerate
160which tell us what is the biais source.
161
162Enclose an example to use this generator:
163AliGenMUONCocktail * gener = new AliGenMUONCocktail();
164gener->SetPtRange(1.,100.); // Transverse momentum range
165gener->SetPhiRange(0.,360.); // Azimuthal angle range
166gener->SetYRange(-4.0,-2.4);
167gener->SetMuonPtCut(1.);
168gener->SetMuonThetaCut(171.,178.);
169gener->SetMuonMultiplicity(2);
35e21dec 170gener->SetImpactParameterRange(0.,5.); // 10% most centra PbPb collisions
f4f795ed 171gener->SetVertexSmear(kPerTrack);
172gener->SetOrigin(0,0,0); // Vertex position
173gener->SetSigma(0,0,0.0); // Sigma in (X,Y,Z) (cm) on IP position
174gener->Init();
175
a2da7817 176================================================================
69be760c 177 csh Script for the full reconstruction with raw data generator
a2da7817 178================================================================
179The rawdata generation and analysis is working with the new segmentation.
180So the config file must use the version "AliMUONFactoryV3"
181
182Generation
183The method AliSimulation::SetWriteRawData("MUON") enables on
184the muon rawdata generation
185aliroot -b << EOF
186AliSimulation MuonSim("$ALICE_ROOT/MUON/Config.C")
10c8d1ce 187MuonSim.SetMakeTrigger("MUON");
a2da7817 188MuonSim.SetWriteRawData("MUON")
189MuonSim.Run(10)
190.q
191EOF
192
193Reconstruction
194aliroot -b << EOF
195AliReconstruction MuonRec("galice.root");
196MuonRec.SetInput("$YOUR_WORKING_DIRECTORY/"); Do not forget the slash at the end!
197MuonRec.SetRunVertexFinder(kFALSE);
198MuonRec.SetRunLocalReconstruction("MUON");
199MuonRec.SetRunTracking("");
200MuonRec.SetFillESD("MUON");
8e0ae46c 201MuonRec.SetOption("MUON", "VS"); // to use VS cluster finder
202// MuonRec.SetOption("MUON", "VS Original"); // to run VS and original track finder
203// MuonRec.SetOption("MUON", "Combi"); // to run combined cluster / track finder
204MMuonRec.Run();
a2da7817 205.q
206EOF
207
a7641a57 208============================================================
209 How to read & decode raw data
210============================================================
211These macros can read & decode DDL files, root and DATE files.
212Nevertheless for the two latter, aliroot has to be compiled with DATE.
213
214For tracker raw data
215.includepath $ALICE_ROOT/STEER
216.includepath $ALICE_ROOT/MUON
217.includepath $ALICE_ROOT/RAW
218.L $ALICE_ROOT/MUON/MUONRawStreamTracker.C+
219MUONRawStreamTracker(maxEvent, firstDDL, lastDDL, rawFileName)
220
221For trigger raw data
222.includepath $ALICE_ROOT/STEER
223.includepath $ALICE_ROOT/MUON
224.includepath $ALICE_ROOT/RAW
225.L $ALICE_ROOT/MUON/MUONRawStreamTrigger.C+
226MUONRawStreamTrigger(maxEvent, firstDDL, lastDDL, rawFileName)
227
228Default wise the macro read all DDL files from the current directory for 1000 events.
229For root file rawFileName must end with .root, for date file rawFileName
230must be no extention. For DDL files you have to specified the directory
231where the raw0...n subdirectories are located:
232MUONRawStreamTracker(maxEvent, "$YOUR_WORKING_DIRECTORY/"); //Do not forget the slash at the end!
a88eb0d0 233
b8dc484b 234
235============================================================
236 How to run MUONRecoCheck macro
237============================================================
62548066 238
b8dc484b 239To check the muon reconstruction by comparing the reconstructed tracks
62548066 240with the reference tracks made of "AliTrackReference" for the hits in chamber (0..9)
241and kinematic informations (TreeK) for the vertex.
b8dc484b 242This macro can be used to check the track reconstruction e.g. efficiency,
243momentum resolution ... but also to make physics analysis whenever
244track identification is needed.
245
246To compile MUONRecoCheck.C
247.includepath $ALICE_ROOT/STEER
248.includepath $ALICE_ROOT/MUON
249.L $ALICE_ROOT/MUON/MUONRecoCheck.C+
250
251// To run MUONRecoCheck
61093423 252MUONRecoCheck(nEvent,"geometry.root", "galice.root"); // nEvent = nb of events
b8dc484b 253
29fc2c86 254
255============================================================
256 How to run MUONTracker macro
257============================================================
258To make the track reconstruction directly from AliTrackReference hits
259which are recorded in TrackRefs.root during the simulation.
260It can be used to check the reconstruction without clusterization.
261
262To compile MUONTracker.C
263.includepath $ALICE_ROOT/STEER
264.includepath $ALICE_ROOT/MUON
265.L $ALICE_ROOT/MUON/MUONTracker.C+
266
267// To run MUONTracker
268MUONTracker(iEventMin,iEventMax,"galice.root"); // iEventMin: first event
fc1fafa5 269
270===========================================================
271 Macro MUONGenerateGeometryData.C
272===========================================================
273
d228b279 274Macro for generating the geometry data files
d228b279 275
276Geometry data files:
277- MUON/data/volpath.dat file contains the volume paths
278for all alignable objects (modules & detection
279elements).
280- MUON/data/transform.dat file contains the transformations
281data (translation and rotation) for all alignable objects
282(modules & detection elements)
65087afe 283- MUON/data/svmap.dat file contains all the information to link
fc1fafa5 284each geant volume (it can be extended to other virtual MC) with
285a detection element. The point here is that a given detection
d228b279 286element, i.e. a slat chamber can consist of more geant volumes.
fc1fafa5 287the correspondence is then defined in an input file.
65087afe 288Each time there is a change in the definition of MC geometry, these
fc1fafa5 289input files must be re-generated via the macro
290MUONGenerateGeometryData.C
291
292To be run from aliroot:
293.x MUONGenerateGeometryData.C
294
295The generated files do not replace the existing ones
296but have different names (with extension ".out").
65087afe 297Replacement with new files has to be done manually.
29fc2c86 298
61093423 299===========================================================
300 Macros to generate Mis-alignment data
301===========================================================
302
303Macro for generating the geometry mis-alignment data:
304MakeMUONFullMisAlignment.C
305MakeMUONResMisAlignment.C
306MakeMUONZeroMisAlignment.C
307
308To be run from aliroot:
309.x MakeMUONFullMisAlignment.C etc.
310
311If the environment variable TOCDB is not set to "kTRUE",
312the misalignment data are generated in a local file:
313(MUONFullMisalignment.root, etc.)
314
315If the data are stored in CDB, the storage can be specified in
316the environment variable STORAGE. The misalignment data are then
317generated in the CDB folder (defaults are ResMisAlignCDB and FullMisAlignCDB
d228b279 318in the working directory). Inside the local CDB the path for the
319alignment data is (and must be) "MUON/Align/Data/".
320Residual misalignment: Default is our current estimate of
321misalignment after all our alignment procedure has been applied.
322Full misalignment: Default is our current estimate of initial
323misalignment.
324
325==========================================================
326How to simulate events with misaligned geometry in local CDB
327==========================================================
328
329If you want to use a misaligned geometry to simulate some
330events you can use a local CDB. For this need to follow
331the next steps:
332
333- Generate misaligned data in local CDB.
334You can use MUONGenerateGeometryData.C as described above in
335the corresponding section. Let's assume you used the default
336residual misalignment settings, then you have a local CDB in
337your working directory called ResMisAlignCDB containing
338misalignement data (ResMisAlignCDB/MUON/Align).
339
0d24599f 340- Tell AliSimulation you want to use your local CDB for
341MUON/Align/Data
d228b279 342To do this you need to instantiate the AliCDBManager, set the
0d24599f 343default storage and set the specific storage for MUON/Align/Data,
344before instantiating AliSimulation (see for example the commented
d228b279 345lines AlirootRun_MUONtest.sh).
346
347aliroot -b >& testSim.out << EOF
348AliCDBManager* man = AliCDBManager::Instance();
349man->SetDefaultStorage("local://$ALICE_ROOT");
0d24599f 350man->SetSpecificStorage("MUON/align/Data","local://ResMisAlignCDB");
d228b279 351AliSimulation MuonSim("$ALICE_ROOT/MUON/Config.C");
352MuonSim.SetWriteRawData("MUON");
353MuonSim.Run(10);
354.q
355EOF
29fc2c86 356
86cd713c 357==========================================================
358How to check the alignment software
359==========================================================
360
361The script AlirootRun_MUONtestAlign.sh allows you to check the software for
362the alignment with physics tracks. The script will:
363- Generate a misaligned geometry in a local CDB (default FullMisAlignCDB)
364- Simulate 1000 events using previously misaligned geometry
365- Reconstruct the events using perfect geometry
366- Run the alignment code over the above events using MUONAlignment.C
367
368To run you need to type:
369$ALICE_ROOT/MUON/AlirootRun_MUONtestAlign.sh
370
371The results of the test are saved in test_align/ directory. The file measShifts.root
372contains useful graphs for studying the alignment performances. A local CDB
373containing the realigned geometry is also created (default is ReAlignCDB). The
374file $ALICE_ROOT/MUON/data/transform2ReAlign.dat contains the
375transformations describing the realigned geometry to be compared with the
376used misaligned geometry $ALICE_ROOT/MUON/data/transform2.dat.
377
378IMPORTANT NOTE: For a useful test of the alignment performances, the
379order of 100 000 tracks is needed, it is then advisable to generate and
380reconstruct enough events separately and run MUONAlignment.C providing a file list
381afterwards.
382
cd85a354 383==========================================================
384 How to Merge events
385==========================================================
386
387You can merge 2 types of simulated events. For example,
388you can simulate Hijing events, and then simulate muons
389merging both.
390
391Merging is done at the sdigits level, so Kinematics files
392of the merged events will just correspond to the
393Config.C simulated file (not to Config_HIJING.C).
394
395You must, first, do the Hijing simulation and store it
396in directory $HIJING_SIM. Note that for merging you
397won't need Kinematics files of the Hijing simulation...
398
399Hijing simulation
400
401aliroot -b << EOF
402AliSimulation HijingSim("$HIJING_SIM/Config_HIJING.C")
403HijingSim.Run(5)
404.q
405EOF
406
407
408Then you can do muon simulation and reconstruction
409merging both simulated events. In next example, we are
410merging 20 times each Hijing event in order to simulate
411100 muons merged with 5 Hijing events.
412
413
414aliroot -b << EOF
415AliSimulation MuonSim("$ALICE_ROOT/MUON/Config.C")
416MuonSim.MergeWith("$HIJING_SIM/galice.root",20) //parameters are the Hijing simulation file and the number of times we use each Hijing event
417MuonSim.Run(100) // number of muon (Config.C) events
418.q
419EOF
420
421
422aliroot -b << EOF
423TPluginManager * pluginmanager = gROOT->GetPluginManager()
424pluginmanager->AddHandler("AliReconstructor","MUON","AliMUONReconstructor","MUON","AliMUONReconstructor()")
425AliReconstruction MuonRec("galice.root")
426MuonRec.SetRunTracking("")
427MuonRec.SetRunVertexFinder(kFALSE)
428MuonRec.SetRunLocalReconstruction("MUON")
429MuonRec.SetFillESD("MUON")
430MuonRec.Run()
431.q
432EOF
433
60fff730 434==========================================================
435 How to play with the CDB
436==========================================================
437
438If you'd like to see how the CDB is created, please have a look at the
439MUONCDB.C (work in progress, though).
440
d228b279 441==========================================================
442...on track numbering
443==========================================================
444
445All generated particles, including primary and secondary
446particles are put on the stack. The secondary particles are kept
447in the stack only if they gave a hit in *any* of the ALICE detectors
448The number of all particles placed on the stack for a given event
449can be obtained with
450Int_t nPart = AliStack::GetNtrack();
451Looping from 0 to nPart via AliStack::Particle(ipart)
452gives the particle listing as obtained from the particle generator (primaries)
453and Monte Carlo (secondaries).
454
455The particle response in the detector, a hit, is registered
456in the hits tree and the hits are filled with each primary track.
457The total number of "tracks" (fills of the tree) can be obtained
458with ntracks = AliMUONData::GetNtracks() and is usually smaller than "nPart".
459Since particles can also deposit hits in other detectors than
460the MUON spectrometer, there will be many "tracks" (fills) in the hit-tree
461without a hit in MUON.
462
463The correspondence between "track ID" in the hits-tree ("itr") and the
464particle ID for particles on the stack (i.e. generated particles) can be
465obtained via:
466for (Int_t itr = 0; itr < ntracks; itr++) {
467 MUONData->GetTrack(itr); //track "itr" of the hits-tree
468 Int_t nhitstot = MUONData->Hits()->GetEntriesFast();
469 AliMUONHit* mHit;
470 for (Int_t ihit=0; ihit<nhitstot; ihit++) {
471 mHit = static_cast<AliMUONHit*>(MUONData->Hits()->At(ihit));
472 Int_t id = muonHit->Track(); //gives particle ID on stack
473 TParticle* particle = gAlice->Stack()->Particle(id);
474 }
475}
476
477During the procedure to go from hits to digits, the hits
478are summed up such that more than one track can contribute
479to a given digit. As a consequence the method
480Int_t AliMUONDigit::Track(Int_t trackID)
481takes an argument, where "trackID" runs from 0 to
482AliMUONDigit::Ntracks() to provide the reference to *all*
483tracks that contributed to it. The returned track ID is the one
484referred to in the hit-tree. To know which is the generated particle
485that deposited a given digit one has to follow the sequence of the kind:
486
487
488mDigit = static_cast<AliMUONDigit*>(digits->At(idigit));
489for (int tr = 0; tr < mDigit->Ntracks(); tr++){
490 Int_t hitTrackID = mDigit->Track(tr);
491 MUONData->GetTrack(hitTrackID);
492 mHit = static_cast<AliMUONHit*>(MUONData->Hits()->At(0));
493 //just take first hit of given track
494 Int_t numPart = mHit->Track(); //gives ID of particle on the stack
495 Int_t idTrack = mHit->Particle(); //gives flavour code of the particle
496}
497In this example, for simplicity, only the first hit of a
498hit-track is used to check the particle ID.
499
5be7de69 500==========================================================
62548066 501Macros for MC studies
5be7de69 502==========================================================
503
62548066 504For MC studies the classes "AliMUONTrackLight" and "AliMUONPairLight" can be
505used in order to fill not only the single muon / dimuon's kinematics (charge,
506pT, rapidity, etc) at the generation AND reconstruction level, but also for
507"decoding" the Pythia output and for the storing of the single muon's history.
508This allows to tag if two muons of a given event come from a certain, well-defined
509process, such as J/psi, Upsilons, correlated open charm or open beauty or the
510low masses or if they are of uncorrelated origin. For open beauty/charm it also
511tags the creation process (pair creation, flavour excitation or gluon splitting).
512The classes also allow to tag feed-down or neutral B meson oscillation and
513has a method that checks whether the reconstructed track is a muon or not.
514
515The macros ReadRecoCocktail.C, DecodeRecoCocktail.C and MergeMuonLight.C
516are examples how to use these two classes. DecodeRecoCocktail.C opens the
517generated files, loops over the events and fills an AliMUONTrackLight object
518for every reconstructed track for which the reference to its generated particle
519could be established, using the AliMUONRecoCheck class.
520It then takes the AliMUONTrackLight objects and forms - event by event -
521AliMUONPairLight objects, on a combinatorial basis. For a given event these
522objects are stored in respective TClonesArrays which are then stored in a tree.
523By default, the produced output file is called "MuonLight.root".
524This root file can then be taken by the macro "ReadRecoCocktail.C" that shows,
525on the example of the reconstructed mass and pT of the AliMUONPairLight object,
526how to access the available information. For large statistics, in which many
527individual MuonLight.root files are produced, MergeMuonLight.C can be used
528to merge the files and produce one common output root file.
529
5be7de69 530To read a generation/reconstrution from PDC06 preproduction, and write a file
531with a tree of AliMUONTrackLight / AliMUONPairLight :
532go to the directory containing the generation/reconstruction. From there run
533aliroot
62548066 534.L DecodeRecoCocktail.C+
535DecodeRecoCocktail();
5be7de69 536.q
537
538To read the file previously generated:
539aliroot
62548066 540.L ReadRecoCocktail.C+
541ReadRecoCocktail();
5be7de69 542.q
543
068f96bd 544===========================================================
545 How to reprocess trigger decision from already produced digits
546===========================================================
547The MUONTrigger.C macro can be used to check the trigger algorithm w/o
548having to (re-)perform simulation and digitalization.
549It loads the digits, erase TreeR and store the current trigger output in
550TreeR.
551The different trigger outputs can be compared by looking at the GLT branch
552of TreeD (filled during simulation) and the TC branch of TreeR (filled from
553a copy of TreeD during reconstruction or with this macro).
554Note: rec points from tracking chamber will be lost.
555Usage:
556root [0] .L $ALICE_ROOT/MUON/MUONTrigger.C+
557root [1] MUONTrigger()
558
91cec494 559===========================================================
560 How to check integrated trigger efficiency
561===========================================================
562The MUONTriggerEfficiency.C macro (included in the check scripts) calculates
563the trigger efficiency for the 2 pt cuts.
564The output is stored in MUONTriggerEfficiency.out file.
565Usage:
566root [0] .L $ALICE_ROOT/MUON/MUONTriggerEfficiency.C+
567root [1] MUONTriggerEfficiency()
568For the CVS default version of the trigger LUT (i.e. lutAptLpt1Hpt1p7.root),
569The reference for J/psi and Upsilon is as below
570 For 1000 Jpsi events with:
571 AliGenParam *gener = new AliGenParam(1, AliGenMUONlib::kJpsi);
572 gener->SetMomentumRange(0,999);
573 gener->SetPtRange(0,100.);
574 gener->SetPhiRange(0., 360.);
575 gener->SetCutOnChild(1);
576 gener->SetChildPhiRange(0.,360.);
577 gener->SetChildThetaRange(171.0,178.0);
578 gener->SetOrigin(0,0,0);
579 gener->SetForceDecay(kDiMuon);
580 gener->SetTrackingFlag(1);
581 the output should be
582 Efficiency Lpt cut = 0.7362 +/- 0.0391
583 Efficiency Hpt cut = 0.2662 +/- 0.0201
584 Similarly, for 1000 Upsilon events, the output should be
585 Efficiency Lpt cut = 0.9806 +/- 0.0457
586 Efficiency Hpt cut = 0.9537 +/- 0.0448
587
068f96bd 588===========================================================
589 How to check single muon trigger efficiency versus pt
590===========================================================
591The MUONTriggerEfficiencyPt.C macro produces trigger single muon efficiency
592versus pt plots for the 2 pt cuts.
593Results are compared to the reference (red curves).
594To be used with (at least) 10000 events as follows
595 AliGenBox * gener = new AliGenBox(1);
596 gener->SetPtRange(0.,10.);
597 gener->SetPhiRange(0., 360.);
598 gener->SetThetaRange(171.000,178.001);
599 gener->SetPart(13); // or -13
600 gener->SetOrigin(0.,0., 0.);
601 gener->SetSigma(0.0, 0.0, 0.0);
91cec494 602Outputs are stored in MUONTriggerEfficiencyPt.gif/eps/out files
068f96bd 603Important note: this macro works with one (real) muon track per event only
604Usage:
605root [0] .L $ALICE_ROOT/MUON/MUONTriggerEfficiencyPt.C+
606root [1] MUONTriggerEfficiencyPt()
607
825f8cb2 608===========================================================
609 How to process invariant mass spectra for J/psi or Upsilon
610===========================================================
611The macro MUONmassPlot_ESD.C reads back the MUON ESD informations and compute
612the invariant mass spectra and corresponding uncorelated background.
613Moreover gives the number of event in the resonance peak and the number of triggers.
614Usage:
615root [0] .L $ALICE_ROOT/MUON/MUONmassPlot_ESD.C+
616root [1] MUONmassPlot_ESD(ExtrapToVertex,
617 geoFilenam, filename
618 FirstEvent, LastEvent,
619 esdFileName,
620 ResType, Chi2Cut,
621 PtCutMin, PtCutMax,
622 massMin, massMax)
623
624with:
625ExtrapToVertex (default -1)
626 <0: no extrapolation;
627 =0: extrapolation to (0,0,0);
628 >0: extrapolation to ESDVertex if available, else to (0,0,0)
629geoFilename (default "geometry.root") geometry file name needed to extrap to vertex
630filename (default "galice.root") galice root file name
631FirstEvent (default 0)
632LastEvent (default 10000)
633esdFileName (default "AliESDs.root") esd root file name
634ResType (default 553): 553 for Upsilon, anything else for J/Psi
635Chi2Cut (default 100): keep only tracks with chi2 per d.o.f. < Chi2Cut
636PtCutMin (default 1): keep only tracks with transverse momentum > PtCutMin
637PtCutMax (default 10000): keep only tracks with transverse momentum < PtCutMax
638massMin (default 9.17 for Upsilon) keep only invariant masses with
639massMax (default 9.77 for Upsilon) massMin < mass < massMax
640
88cb7938 641===========================================================
642 Still working ..............
643===========================================================