/// \author Laurent Aphecetche, Nicole Bastid, Bogdan Vulpescu, ...
#if !defined(__CINT__) || defined(__MAKECINT__)
-#include "AliMUONReconstructor.h"
-#include "AliMUONRecoParam.h"
-#include "AliRecoParam.h"
#include "AliCDBManager.h"
-#include "AliMagF.h"
-#include "AliTracker.h"
#include "AliReconstruction.h"
-#include <TRandom.h>
#include <TGrid.h>
#include <TSystem.h>
-//#include <TObjectTable.h>
#endif
-TString caliboption1 = "NOGAIN";
-TString caliboption2 = "GAINCONSTANTCAPA";
-TString recoptions = "SAVEDIGITS";
-Int_t seed = 1234567;
-
-void runDataReconstruction(const char* input = "/Users/laurent/Alice/Data/Raw/09000067495031.10.root",
- const char* ocdbPath = "alien://folder=/alice/data/2009/OCDB",
- Int_t calib = 1)
+void runDataReconstruction(const char* input = "raw://run124360",
+ const char* ocdbPath = "raw://",
+ const char* recoptions="SAVEDIGITS",
+ Int_t numberOfEvents=1000)
{
- TGrid::Connect("alien://");
-
AliCDBManager* man = AliCDBManager::Instance();
man->SetDefaultStorage(ocdbPath);
- gRandom->SetSeed(seed);
+ AliReconstruction rec;
+
+ rec.SetRunReconstruction("MUON");
+
+ rec.SetRunQA("MUON:ALL");
+
+ rec.SetQARefDefaultStorage("local://$ALICE_ROOT/QAref") ;
+
+ rec.SetWriteESDfriend(kTRUE);
+ rec.SetWriteAlignmentData();
+
+ rec.SetInput(gSystem->ExpandPathName(input));
+
+ rec.SetUseTrackingErrorsForAlignment("ITS");
+
+ rec.SetCleanESD(kFALSE);
+
+ rec.SetStopOnError(kFALSE);
+
+ rec.SetOption("MUON",recoptions);
- TString socdb(ocdbPath);
- if ( socdb.Contains("local://") )
+ rec.SetQAWriteExpert(AliQAv1::kMUON);
+
+ if ( numberOfEvents > 0 )
{
- // no magnetic field
- AliMagF* field = new AliMagF("Maps","Maps",2,0.,0., 10.,AliMagF::k5kG);
- TGeoGlobalMagField::Instance()->SetField(field);
- TGeoGlobalMagField::Instance()->Lock();
+ rec.SetEventRange(0,numberOfEvents);
}
-
- AliReconstruction *MuonRec = new AliReconstruction();
-
- MuonRec->SetInput(gSystem->ExpandPathName(input));
- MuonRec->SetRunVertexFinder(kFALSE);
- MuonRec->SetRunLocalReconstruction("MUON");
- MuonRec->SetRunTracking("MUON");
- MuonRec->SetFillESD(" ");
- MuonRec->SetLoadAlignData("MUON");
- MuonRec->SetNumberOfEventsPerFile(0);
- MuonRec->SetOption("MUON",recoptions.Data());
-
- // reconstruction parameters
- AliMUONRecoParam *muonRecoParam = AliMUONRecoParam::GetCosmicParam();
-
- // digit selection
- TString caliboption = caliboption1;
- if ( calib == 2 ) caliboption = caliboption2;
- muonRecoParam->SetCalibrationMode(caliboption.Data());
-
- // cut on (non)bending slopes
- muonRecoParam->SetMaxNonBendingSlope(0.6);
- muonRecoParam->SetMaxBendingSlope(0.6);
-
- // tracking algorithm
- muonRecoParam->MakeMoreTrackCandidates(kTRUE);
- muonRecoParam->RequestStation(0, kFALSE);
- muonRecoParam->RequestStation(2, kFALSE);
- muonRecoParam->RequestStation(3, kFALSE);
- muonRecoParam->RequestStation(4, kFALSE);
-
- muonRecoParam->Print("FULL");
-
- MuonRec->SetRecoParam("MUON",muonRecoParam);
-
- MuonRec->SetRunQA("MUON:ALL");
- MuonRec->Run();
-
- delete MuonRec;
+ AliLog::Flush();
+ rec.Run();
- //gObjectTable->Print();
}