/************************************************************************** * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * * * * Author: The ALICE Off-line Project. * * Contributors are mentioned in the code where appropriate. * * * * Permission to use, copy, modify and distribute this software and its * * documentation strictly for non-commercial purposes is hereby granted * * without fee, provided that the above copyright notice appears in all * * copies and that both the copyright notice and this permission notice * * appear in the supporting documentation. The authors make no claims * * about the suitability of this software for any purpose. It is * * provided "as is" without express or implied warranty. * **************************************************************************/ /* $Id$ */ ========================================================== Please add to this README file all information concerning config files, simulation, digitalization, clusterization, reconstruction and macro analysis ========================================================== How to run a MUON generation ========================================================== aliroot root [0] gAlice->Run(10,"$ALICE_ROOT/MUON/Config_MUON_test.C"); 1 single muon of 7 GeV/c in the MUON spectrometer acceptance will be simulated using geant3. Hit information will be store in the root file in the execution directory. If you want to change the option or to define a new directory for hits, you have to do the following before: root [0] gAlice->SetConfigFunction("Config( \"/home/martinez/aliroot/work_NewIO/test/\" , \"box\" );"); ============================================================ How to run MUON Hits to SDigits ============================================================ AliRunDigitizer * manager = new AliRunDigitizer(1,1); manager->SetInputStream(0,"galice.root"); AliMUONDigitizer * dMUON = new AliMUONSDigitizerv1(manager); manager->AddDigitizer(dMUON); manager->Exec("deb"); ============================================================ How to run MUON Digitalization from SDigits ============================================================ To process the digitalization of hits the AliRunDigitizer framework is used: AliRunDigitizer * manager = new AliRunDigitizer(1,1); manager->SetInputStream(0,"galice.root"); AliMUONDigitizerv2* dMUON = new AliMUONDigitizerv2(manager) manager->AddDigitizer(dMUON); manager->Exec("deb"); ============================================================ How to run MUON Digitalization from Hits ============================================================ To process the digitalization of hits the AliRunDigitizer framework is used: AliRunDigitizer * manager = new AliRunDigitizer(1,1); manager->SetInputStream(0,"galice.root"); AliMUONDigitizerv1* dMUON = new AliMUONDigitizerv1(manager) manager->AddDigitizer(dMUON); manager->Exec("deb"); ============================================================ How to run MUON RecPoint clusterization ============================================================ aliroot -b << EOF .includepath $ALICE_ROOT/STEER .includepath $ALICE_ROOT/MUON .L $ALICE_ROOT/MUON/MUONrawclusters.C++ MUONrawclusters("galice.root",0,9999); to Load gSystem->Load("$ALICE_ROOT/MUON/MUONrawclusters_C.so") ============================================================ How to run MUON Trigger ============================================================ .includepath $ALICE_ROOT/STEER .includepath $ALICE_ROOT/MUON .L $ALICE_ROOT/MUON/MUONtrigger.C++ MUONtrigger("galice.root",0,9999); To Load gSystem->Load("$ALICE_ROOT/MUON/MUONtrigger_C.so") ============================================================ How to run MUON Tracking reconstruction (old output) =========================================================== .includepath $ALICE_ROOT/STEER .includepath $ALICE_ROOT/MUON .L $ALICE_ROOT/MUON/MUONrecoNtuple.C++ MUONrecoNtuple(0,9999,0,"galice.root") To Load gSystem->Load("$ALICE_ROOT/MUON/MUONrecoNtuple_C.so") First event and last event are given by hand, but this will change. =========================================================== How to run MUON Tracking reconstruction (new output) =========================================================== .includepath $ALICE_ROOT/STEER .includepath $ALICE_ROOT/MUON .L $ALICE_ROOT/MUON/MUONTracker.C++ MUONTracker("galice.root",0,9999); To Load gSystem->Load("$ALICE_ROOT/MUON/MUONTracker_C.so") Output in MUON.Tracks.root using the new IO as a TClonesArray of AliMUONTrack Note1.In the actual version (dec-03) the following data members of ALiMUONTrack: fgFitter, fEventReconstructor, and fTrackHitsPtr are not saved in the MUON.Track.root file =========================================================== How to run MUON Trigger Track reconstruction (new output) =========================================================== .includepath $ALICE_ROOT/STEER .includepath $ALICE_ROOT/MUON .L $ALICE_ROOT/MUON/MUONTriggerTracker.C++ MUONTriggerTracker("galice.root",0,10); To Load gSystem->Load("$ALICE_ROOT/MUON/MUONTriggerTracker_C.so") Output in MUON.Tracks.root using the new IO as a TClonesArray of AliMUONTriggerTrack ========================================================== How to run full MUON reconstruction (clusterisation + trigger + tracking) =========================================================== .includepath $ALICE_ROOT/STEER .includepath $ALICE_ROOT/MUON .L $ALICE_ROOT/MUON/MUONChallengeTest.C++ MUONRecoTest("galice.root"); ============================================================ How to run MUONCheck macro ============================================================ To check the content of a root data file, the MUONCheck provides a ascii output on screen. To compile MUONCheck.C .includepath $ALICE_ROOT/STEER .includepath $ALICE_ROOT/MUON .L $ALICE_ROOT/MUON/MUONCheck.C++ To Load gSystem->Load("$ALICE_ROOT/MUON/MUONCheck_C.so") To print Kine : (default file is galice.root ) MUONkine() or MUONkine("galice.root",##) for the event number ## To print hits : (default file is galice.root if not MUONhits("toto.root""); ) MUONhits() or MUONhits("galice.root",##) for the event number ## To print digits : (default file is galice.root) MUONdigits() or MUONdigits("galice.root",##) for the event number ## To print rawcluster : (default file is galice.root) MUONrecpoints() or MUONrecpoints("galice.root",##) for the event number ## To print trigger : (default file is galice.root) MUONTestTrigger() or MUONTestTrigger("galice.root",##) for the event number ## .... ============================================================ How to check the Geometry ============================================================ gAlice->Init("$ALICE_ROOT/MUON/Config_MUON_test.C"); .L $ALICE/geant3/TGeant3/G3GUI.C G3GUI() ============================================================ How to run MUONdisplay ============================================================ First you need to perform a full simulation: generation, digitalisation and clusterisation .L $ALICE_ROOT/MUON/MUONdisplay.C MUONdisplay(0,"galice.root") ============================================================ Tracking parameters, cuts, energy loss and physics processes ============================================================ Tracking parameters in MUON are automatically defined by GEANT MUON takes the default values of CUTs and physics processes defined by the Config files, except for the gas mixture medium of the tracking chambers. The CUT's and physics processes of the gas mixture medium is then defined in the galice.cuts file in the data directory. In particular ILOSS parameter MUST be equal unity (1) in order simulate a realistic energy loss distribution (mean value and fluctuations) in the active gas. ============================================================ Tracking of particle in the magnetic field ============================================================ GEANT has two ways for tracking charged particles in the magnetic field: HELIX et RKUTA. HELIX is faster and works well if the gradient of magnetic field is small. For MUON, HELIX is a not a good approximation and we must use RKUTA to get the optimal mass resolution of the spectrometer. The choice of HELIX or RKUTA is done in the config file when the magnetic field is defined: AliMagFMaps* field = new AliMagFMaps("Maps","Maps", TRACKING, FACTOR, MAXB, AliMagFMaps::k4kG); gAlice->SetField(field); TRACKING must be 1 for RKUTA and 2 for HELIX (the default value for aliroot is 2 (HELIX)) FACTOR allows you to set the magnetic field to 0, just putting FACTOR=0. Default value is 1. MAXB is the maximum magnetic field which is 10.T =========================================================== MUON cocktail for physics .............. =========================================================== There is a MUON cocktail generator of the muon sources in the EVGEN directory. This class derives from AliGenCocktail. In the init of this class I have filled the cocktail with the muon sources: J/Psi, Upsilon, Open Charm, Open Beauty, Pion, Kaons. The code needs only the production cross section at 4pi (for the moment this values are in the code since I prefere them do not be modified), and the code calculates the rate of particles in the acceptance, making the scaling based on the number of collisions for the hard probes and on the number of participants for soft sources: Pions and Kaons. In the Genereate of this class all entries in the cocktail are called and we define a "primordial trigger" with requires a minimum number of muons above a Pt cut in the required acceptance. In order to normalized to the real number of simulated events, there are 2 data members in the class fNsuceeded adn fNGenerate which tell us what is the biais source. Enclose an example to use this generator: AliGenMUONCocktail * gener = new AliGenMUONCocktail(); gener->SetPtRange(1.,100.); // Transverse momentum range gener->SetPhiRange(0.,360.); // Azimuthal angle range gener->SetYRange(-4.0,-2.4); gener->SetMuonPtCut(1.); gener->SetMuonThetaCut(171.,178.); gener->SetMuonMultiplicity(2); gener->SetNumberOfCollisions(1950.); gener->SetNumberOfParticipants(400.); gener->SetVertexSmear(kPerTrack); gener->SetOrigin(0,0,0); // Vertex position gener->SetSigma(0,0,0.0); // Sigma in (X,Y,Z) (cm) on IP position gener->Init(); =========================================================== csh Script for the full reconstruction =========================================================== aliroot -b << EOF AliSimulation MuonSim("YourConfig.C") MuonSim.Run(XXX) .q EOF aliroot -b << EOF TPluginManager* pluginManager = gROOT->GetPluginManager(); pluginManager->AddHandler("AliReconstructor", "MUON","AliMUONReconstructor", "MUON","AliMUONReconstructor()") AliReconstruction MuonRec("galice.root") MuonRec.SetRunVertexFinder(kFALSE) MuonRec.SetRunLocalReconstruction("MUON") MuonRec.SetFillESD("MUON") MuonRec.Run() .q EOF aliroot -b << EOF .includepath $ALICE_ROOT/STEER .includepath $ALICE_ROOT/MUON .L $ALICE_ROOT/MUON/MUONmassPlot_ESD.C++ MUONmassPlot("galice.root",0,99999); .q EOF =========================================================== Still working .............. ===========================================================