]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/README
MUON reconstruction with pluggins and cleaning-up AliMUON (Christian)
[u/mrichter/AliRoot.git] / MUON / README
index 12fa65ca145b0010fcc0f90b38771f71269ddeb5..782858967f4a04bf04d9d9a2d51b0827edee49ea 100644 (file)
@@ -1,10 +1,27 @@
+/**************************************************************************
+ * 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 simulation 
+ How to run a MUON generation
 ==========================================================
 aliroot
 root [0] gAlice->Run(10,"$ALICE_ROOT/MUON/Config_MUON_test.C");
@@ -13,20 +30,42 @@ root [0] gAlice->Run(10,"$ALICE_ROOT/MUON/Config_MUON_test.C");
 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 Digitalization
+ 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");
-AliMUONDigitizerv1* dMUON   = new AliMUONDigitizerv1(manager);
+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");
 
@@ -34,33 +73,73 @@ manager->Exec("deb");
  How to run MUON RecPoint clusterization
 ============================================================
 aliroot -b << EOF
-.L $ALICE_ROOT/MUON/MUONrawclusters.C
-MUONrawclusters("galice.root",0,10); 
-
-First event and last event are given by hand, but this will change.
+.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
 ============================================================
-.L $ALICE_ROOT/MUON/MUONtrigger.C
-MUONtrigger("galice.root",0,9); 
->> IMPORTANT NOTE: in the present version, one can only have either
->> rawclusters or trigger information written in MUON.RecPoints.root
->> but not both of them i.e. running MUONtrigger after MUONrawclusters
->> will erase rawclusters from TreeR and vice versa.
-
-First event and last event are given by hand, but this will change.
+.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
+ How to run MUON Tracking reconstruction (old output)
 ===========================================================
 .includepath $ALICE_ROOT/STEER
 .includepath $ALICE_ROOT/MUON
 .L $ALICE_ROOT/MUON/MUONrecoNtuple.C++
-MUONrecoNtuple(0,10,0,"galice.root")    
-
+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
 ============================================================
@@ -71,19 +150,137 @@ 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()  
+MUONhits()  or MUONhits("galice.root",##) for the event number ##
 
 To print digits : (default file is galice.root)
-MUONdigits()  
+MUONdigits()  or MUONdigits("galice.root",##) for the event number ##
 
 To print rawcluster : (default file is galice.root)
-MUONrecpoints()
+MUONrecpoints() or MUONrecpoints("galice.root",##) for the event number ##
 
 To print trigger : (default file is galice.root)
-MUONTestTrigger()
+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 ..............