//
// ROOT includes
-#if !defined(__CINT__) || defined(__MAKECINT__)
#include "TBranch.h"
#include "TClonesArray.h"
#include "TFile.h"
#include "AliMUONGlobalTrigger.h"
#include "AliMUONLocalTrigger.h"
#include "AliMUONTrack.h"
-#endif
-void MUONkine(char * filename="galice.root")
+
+
+void MUONkine(char * filename="galice.root",Int_t event2Check=0)
{
TClonesArray * ListOfParticles = new TClonesArray("TParticle",1000);
TParticle * particle = new TParticle();
nevents = RunLoader->GetNumberOfEvents();
for(ievent=0; ievent<nevents; ievent++) { // Event loop
+ if (event2Check!=0) ievent=event2Check;
Int_t iparticle, nparticles;
// Getting event ievent
RunLoader->GetEvent(ievent);
printf(">>> Event %d, Number of particles is %d \n",ievent, nparticles);
for(iparticle=0; iparticle<nparticles; iparticle++) {
RunLoader->TreeK()->GetEvent(iparticle);
- particle->Print("");
+ particle->Print("");
}
+ if (event2Check!=0) ievent=nevents;
}
RunLoader->UnloadKinematics();
}
-void MUONhits(char * filename="galice.root")
+void MUONhits(char * filename="galice.root", Int_t event2Check=0)
{
// Creating Run Loader and openning file containing Hits
AliRunLoader * RunLoader = AliRunLoader::Open(filename,"MUONFolder","READ");
nevents = RunLoader->GetNumberOfEvents();
for(ievent=0; ievent<nevents; ievent++) { // Event loop
+ if (event2Check!=0) ievent=event2Check;
printf(">>> Event %d \n",ievent);
// Getting event ievent
RunLoader->GetEvent(ievent);
}
muondata.ResetHits();
} // end track loop
+ if (event2Check!=0) ievent=nevents;
} // end event loop
MUONLoader->UnloadHits();
}
-void MUONdigits(char * filename="galice.root")
+void MUONdigits(char * filename="galice.root", Int_t event2Check=0)
{
// Creating Run Loader and openning file containing Hits
AliRunLoader * RunLoader = AliRunLoader::Open(filename,"MUONFolder","READ");
AliMUONDigit * mDigit;
for(ievent=0; ievent<nevents; ievent++) {
+ if (event2Check!=0) ievent=event2Check;
printf(">>> Event %d \n",ievent);
RunLoader->GetEvent(ievent);
} // end chamber loop
muondata.ResetDigits();
} // end cathode loop
+ if (event2Check!=0) ievent=nevents;
} // end event loop
MUONLoader->UnloadDigits();
}
-void MUONrecpoints(char * filename="galice.root") {
+void MUONrecpoints(char * filename="galice.root", Int_t event2Check=0) {
// Creating Run Loader and openning file containing Hits
AliRunLoader * RunLoader = AliRunLoader::Open(filename,"MUONFolder","READ");
AliMUONRawCluster * mRecPoint;
for(ievent=0; ievent<nevents; ievent++) {
+ if (event2Check!=0) ievent=event2Check;
printf(">>> Event %d \n",ievent);
RunLoader->GetEvent(ievent);
// Addressing
} // end recpoint loop
} // end chamber loop
muondata.ResetRawClusters();
+ if (event2Check!=0) ievent=nevents;
} // end event loop
MUONLoader->UnloadRecPoints();
}
-void MUONTestTrigger (char * filename="galice.root"){
+void MUONTestTrigger (char * filename="galice.root", Int_t event2Check=0){
// reads and dumps trigger objects from MUON.RecPoints.root
TClonesArray * globalTrigger;
TClonesArray * localTrigger;
AliMUONLocalTrigger *locTrg;
for (ievent=0; ievent<nevents; ievent++) {
+ if (event2Check!=0) ievent=event2Check;
RunLoader->GetEvent(ievent);
muondata.SetTreeAddress("GLT");
} // end of loop on Local Trigger
muondata.ResetTrigger();
+ if (event2Check!=0) ievent=nevents;
} // end loop on event
MUONLoader->UnloadRecPoints();
}
-void MUONRecTracks (char * filename="galice.root"){
+void MUONRecTracks (char * filename="galice.root", Int_t event2Check=0 ){
// reads and dumps trigger objects from MUON.RecPoints.root
TClonesArray * RecTracks;
AliMUONTrack * rectrack;
for (ievent=0; ievent<nevents; ievent++) {
+ if (event2Check!=0) ievent=event2Check;
RunLoader->GetEvent(ievent);
muondata.SetTreeAddress("RT");
printf(">>> Event %d Number of Recconstructed tracks %d \n",ievent, nrectracks);
muondata.ResetRecTracks();
+ if (event2Check!=0) ievent=nevents;
} // end loop on event
MUONLoader->UnloadTracks();
}
MUONtrigger("galice.root",0,9999);
To Load
gSystem->Load("$ALICE_ROOT/MUON/MUONtrigger_C.so")
+
============================================================
How to run MUON Tracking reconstruction (old output)
===========================================================
gSystem->Load("$ALICE_ROOT/MUON/MUONCheck_C.so")
To print Kine : (default file is galice.root )
-MUONkine()
+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 ##
+
+....
============================================================
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 ..............
===========================================================
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
+gAlice->Run(NumberOfEvents,"YourConfig.C");
+.q
+EOF
+
+aliroot -b << EOF
+AliRunDigitizer * manager = new AliRunDigitizer(1,1);
+manager->SetInputStream(0,"galice.root");
+AliMUONDigitizerv1* dMUON = new AliMUONDigitizerv1(manager);
+manager->AddDigitizer(dMUON);
+manager->Exec("deb");
+.q
+EOF
+
+aliroot -b << EOF
+.includepath $ALICE_ROOT/STEER
+.includepath $ALICE_ROOT/MUON
+.L $ALICE_ROOT/MUON/MUONrawclusters.C++
+MUONrawclusters("galice.root",0,99999);
+.q
+EOF
+
+aliroot -b << EOF
+.includepath $ALICE_ROOT/STEER
+.includepath $ALICE_ROOT/MUON
+.L $ALICE_ROOT/MUON/MUONtrigger.C++
+MUONtrigger("galice.root",0,99999);
+ .q
+EOF
+
+aliroot -b << EOF
+.includepath $ALICE_ROOT/STEER
+.includepath $ALICE_ROOT/MUON
+.L $ALICE_ROOT/MUON/MUONTracker.C++
+MUONTracker("galice.root",0,99999)
+ .q
+EOF
+
+aliroot -b << EOF
+.includepath $ALICE_ROOT/STEER
+.includepath $ALICE_ROOT/MUON
+.L $ALICE_ROOT/MUON/MUONmassPlot_NewIO.C++
+MUONmassPlot("galice.root",0,99999);
+.q
+EOF
===========================================================
Still working ..............