]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/runDataReconstruction.C
added new argument for the gsi train
[u/mrichter/AliRoot.git] / MUON / runDataReconstruction.C
index 1d194d955dfd6ddc2480f0aec49885530afe2da0..60d97557dd5927ff06ee58df0cd09b21105b3897 100644 (file)
 /// \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://run117099",
+                           const char* ocdbPath = "raw://",
+                           const char* recoptions="SAVEDIGITS",
+                           Int_t numberOfEvents=10000)
 { 
-  TGrid::Connect("alien://");
-  
   AliCDBManager* man = AliCDBManager::Instance();
   man->SetDefaultStorage(ocdbPath);
 
-  gRandom->SetSeed(seed);
+  AliReconstruction MuonRec;
+  
+  MuonRec.SetInput(gSystem->ExpandPathName(input));
+  MuonRec.SetRunVertexFinder(kFALSE);
+  MuonRec.SetRunLocalReconstruction("MUON");
+  MuonRec.SetRunTracking("MUON");
+  MuonRec.SetFillESD(" ");
+  MuonRec.SetLoadAlignData("MUON");
+  MuonRec.SetNumberOfEventsPerFile(500); // must set a limit otherwise time per event increases with event number (this is a "bug" of the loaders)
+  MuonRec.SetOption("MUON",recoptions);  
+  MuonRec.SetRunQA("MUON:ALL");
+  MuonRec.SetQAWriteExpert(AliQAv1::kMUON);
 
-  TString socdb(ocdbPath);
-  if ( socdb.Contains("local://") )
+  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();
-  }
-  
-  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
-  muonRecoParam->SetPadGoodnessMask(0x400BE80);
-  TString caliboption = caliboption1;
-  if ( calib == 2 ) caliboption = caliboption2;
-  muonRecoParam->SetCalibrationMode(caliboption.Data());
-  
-  // chamber resolution (incuding misalignment)
-  for (Int_t iCh=0; iCh<10; iCh++) {
-    muonRecoParam->SetDefaultNonBendingReso(iCh,0.4);
-    muonRecoParam->SetDefaultBendingReso(iCh,0.4);
+    MuonRec.SetEventRange(0,numberOfEvents);
   }
-  muonRecoParam->SetMaxNonBendingDistanceToTrack(10.);
-  muonRecoParam->SetMaxBendingDistanceToTrack(10.);
-  
-  // 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->SetSigmaCutForTracking(7.);
-  muonRecoParam->ImproveTracks(kTRUE, 7.);
-  
-  muonRecoParam->Print("FULL");
-  
-  MuonRec->SetRecoParam("MUON",muonRecoParam);
-  
-  MuonRec->SetRunQA("MUON:ALL");
-
-  MuonRec->Run();
-  
-  delete MuonRec;
+  MuonRec.Run();
   
-  //gObjectTable->Print();
 }