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