]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGPP/CalibMacros/CPass0/runCalibTrain.C
update to production version
[u/mrichter/AliRoot.git] / PWGPP / CalibMacros / CPass0 / runCalibTrain.C
index 060858168c2e722db1793dc7c8701e20f8721693..e44a1310bbd34ad40b3161dd25867dc4a7eeedc9 100644 (file)
   runCalibTrain("104892");
 */
 
-void runCalibTrain(TString runNumberString, const char *inFileName = "AliESDs.root", const char *ocdb="raw://")
+void runCalibTrain(Int_t runNumber, const char *inFileName = "AliESDs.root", const char *ocdb="raw://")
 {
   //
   // macro to run TPC calibration train 
   //
   AliLog::SetGlobalLogLevel(AliLog::kError); 
-  gROOT->Macro("LoadLibraries.C");
-  gROOT->LoadMacro("ConfigCalibTrain.C");
+  gROOT->Macro("$ALICE_ROOT/PWGPP/CalibMacros/CPass0/LoadLibraries.C");
+  gROOT->LoadMacro("$ALICE_ROOT/PWGPP/CalibMacros/CPass0/ConfigCalibTrain.C");
 
   // detector tasks
-  gROOT->LoadMacro("AddTaskTPCCalib.C");
-  gROOT->LoadMacro("AddTaskTRDCalib.C");
-  gROOT->LoadMacro("AddTOFAnalysisTaskCalibPass0.C");
-  gROOT->LoadMacro("AddTaskT0Calib.C");
-  gROOT->LoadMacro("AddTaskMeanVertexCalib.C");
-  gROOT->LoadMacro("AddTaskSDDCalib.C"); 
+  gROOT->LoadMacro("$ALICE_ROOT/PWGPP/CalibMacros/CPass0/AddTaskTPCCalib.C");
+  gROOT->LoadMacro("$ALICE_ROOT/PWGPP/CalibMacros/CPass0/AddTaskTRDCalib.C");
+  gROOT->LoadMacro("$ALICE_ROOT/PWGPP/CalibMacros/CPass0/AddTOFAnalysisTaskCalibPass0.C");
+  gROOT->LoadMacro("$ALICE_ROOT/PWGPP/CalibMacros/CPass0/AddTaskT0Calib.C");
+  gROOT->LoadMacro("$ALICE_ROOT/PWGPP/CalibMacros/CPass0/AddTaskMeanVertexCalib.C");
+  gROOT->LoadMacro("$ALICE_ROOT/PWGPP/CalibMacros/CPass0/AddTaskSDDCalib.C"); 
 
   // switch off debug 
   AliLog::SetClassDebugLevel("AliESDEvent",0);
@@ -37,17 +37,24 @@ void runCalibTrain(TString runNumberString, const char *inFileName = "AliESDs.ro
 
   // config calibration train
   // setting geometry and B-field from GRP
-  Int_t runNumber = runNumberString.Atoi();
   printf("runNumber from runCalibTrain = %d\n",runNumber);
   printf("ocdb from runCalibTrain = %s\n",ocdb);
   ConfigCalibTrain(runNumber, ocdb);
   
   //
+  // check the presence of the detectors
+  AliCDBEntry* entry = AliCDBManager::Instance()->Get("GRP/GRP/Data");
+  AliGRPObject* grpData = dynamic_cast<AliGRPObject*>(entry->GetObject()); 
+  if (!grpData) {printf("Failed to get GRP data for run",runNumber); return;}
+  Int_t activeDetectors = grpData->GetDetectorMask(); 
+  TString detStr = AliDAQ::ListOfTriggeredDetectors(activeDetectors);
+  printf("Detectors in the data:\n%s\n",detStr.Data());
+
   // setup analysis
   //
   AliAnalysisManager *mgr  = new AliAnalysisManager("ESD to ESD", "Analysis Manager");
   // mgr->SetDebugLevel(3);
-  
+  mgr->SetNSysInfo(50);   
   // Input
   AliESDInputHandler* inpHandler = new AliESDInputHandler();
   inpHandler->SetReadFriends(1);
@@ -61,16 +68,23 @@ void runCalibTrain(TString runNumberString, const char *inFileName = "AliESDs.ro
   mgr->SetCommonFileName(outFile);
   //  
   // Detector Tasks
-  AliAnalysisTask* tTPC = AddTaskTPCCalib(runNumber);
-  AliAnalysisTask* tTRD = AddTaskTRDCalib(runNumber);
-  AliTOFAnalysisTaskCalibPass0 *thisTask = AddTOFAnalysisTaskCalibPass0();
-  AliAnalysisTask* tT0 = AddTaskT0Calib(runNumber);
-  AliMeanVertexCalibTask *tMeanVtx = AddTaskMeanVertexCalib();
   //
-  Bool_t useTPCcrv  = kTRUE;
+  if ( detStr.Contains("TPC"))    AddTaskTPCCalib(runNumber);
+  if ( detStr.Contains("TRD") && detStr.Contains("TPC"))    AddTaskTRDCalib(runNumber);
+  if ( detStr.Contains("TOF") && detStr.Contains("TPC"))    AddTOFAnalysisTaskCalibPass0();
+  if ( detStr.Contains("T0"))     AddTaskT0Calib(runNumber);
+  if ( detStr.Contains("ITSSPD")) AddTaskMeanVertexCalib();
+
+
+  //
+  Bool_t okTPC = detStr.Contains("TPC");
+  Bool_t useTPCcrv=kTRUE;
   Bool_t writeITSTP = kFALSE;
+  if (!okTPC) useTPCcrv = kFALSE;
   AliAnalysisTaskITSAlignQA *itsAlign = AddTaskSDDCalib(0,writeITSTP,useTPCcrv);
-
+  if (!okTPC) itsAlign->SetUseITSstandaloneTracks(kTRUE); 
+  if (grpData->GetL3Current()[0] < 300) itsAlign->SetMinPt(0.001);
+  //
   // Run the analysis
   if (!mgr->InitAnalysis()) {
     printf("Analysis cannot be started, returning\n");