]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGPP/CalibMacros/CPass1/runCalibTrain.C
Merge branch 'master', remote branch 'origin' into TPCdev
[u/mrichter/AliRoot.git] / PWGPP / CalibMacros / CPass1 / runCalibTrain.C
index a665c1f0a7873a2624d8a95708d3363af0017d38..58daa1540feb2acb51b7806ec0c8e789c51eee9d 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/CPass1/LoadLibraries.C");
+  gROOT->LoadMacro("$ALICE_ROOT/PWGPP/CalibMacros/CPass1/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/CPass1/AddTaskTPCCalib.C");
+  gROOT->LoadMacro("$ALICE_ROOT/PWGPP/CalibMacros/CPass1/AddTaskTRDCalib.C");
+  gROOT->LoadMacro("$ALICE_ROOT/PWGPP/CalibMacros/CPass1/AddTOFAnalysisTaskCalibPass0.C");
+  gROOT->LoadMacro("$ALICE_ROOT/PWGPP/CalibMacros/CPass1/AddTaskT0Calib.C");
+  //  gROOT->LoadMacro("$ALICE_ROOT/PWGPP/CalibMacros/CPass1/AddTaskMeanVertexCalib.C");
+  gROOT->LoadMacro("$ALICE_ROOT/PWGPP/CalibMacros/CPass1/AddTaskSDDCalib.C"); 
 
   // switch off debug 
   AliLog::SetClassDebugLevel("AliESDEvent",0);
@@ -37,17 +37,29 @@ 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);
   
+  if (gROOT->LoadMacro("localOCDBaccessConfig.C")==0) {
+    localOCDBaccessConfig();
+  }
+  
   //
+  // 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 +73,21 @@ 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();
   //
+  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")) tMeanVtx = AddTaskMeanVertexCalib();
+  //
+  Bool_t okTPC = detStr.Contains("TPC");
   Bool_t useTPCcrv=kFALSE;
-  Bool_t writeITSTP = 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");