]> 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 5677f00bebfdb03c743a00ad312269b57dc5b4ed..58daa1540feb2acb51b7806ec0c8e789c51eee9d 100644 (file)
@@ -1,59 +1,94 @@
 /*
-  Template of calibration/filtering  macro using ESD
+  Template of calibration/filtering macro using ESD:
+  - requires AliESDs.root and AliESDfriend.root
+  - requires OCDB access (default set to "raw://")
+  - requires run number as argument to init OCDB
+  - calls LoadLibraries.C, ConfigCalibTrain.C and AddTaskTPCCalib.C macros
+  - output AliESDfriends_v1.root with TPC and TRD calibration objects are created
 
   Example:
   .L $ALICE_ROOT/ANALYSIS/macros/runCalibTrain.C
-  runCalibTrain(105160);
-
+  runCalibTrain("104892");
 */
 
-void runCalibTrain(TString runNumberString, const char *inFileName = "AliESDs.root")
+void runCalibTrain(Int_t runNumber, const char *inFileName = "AliESDs.root", const char *ocdb="raw://")
 {
-  gROOT->Macro("LoadLibraries.C");
-  gROOT->LoadMacro("ConfigCalibTrain.C");
-  gROOT->LoadMacro("AddTaskFilterFriend.C");
-  gROOT->LoadMacro("AddTaskFilterFriendSecond.C");
-  gROOT->LoadMacro("AddTaskAddObject.C");
+  //
+  // macro to run TPC calibration train 
+  //
+  AliLog::SetGlobalLogLevel(AliLog::kError); 
+  gROOT->Macro("$ALICE_ROOT/PWGPP/CalibMacros/CPass1/LoadLibraries.C");
+  gROOT->LoadMacro("$ALICE_ROOT/PWGPP/CalibMacros/CPass1/ConfigCalibTrain.C");
 
   // detector tasks
+  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);
   
-  gROOT->LoadMacro("AddTaskTPCCalib.C");
-  
-  AliLog::SetClassDebugLevel("AliESDEvent",19);
+  // steering input chain
   TChain *chain = new TChain("esdTree");
-  
-  // Steering input chain
-  
   chain->Add(inFileName);
-  Int_t runNumber = runNumberString.Atoi();
+
+  // config calibration train
+  // setting geometry and B-field from GRP
   printf("runNumber from runCalibTrain = %d\n",runNumber);
-  ConfigCalibTrain(runNumber, "raw://");
+  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();
-  mgr->SetInputEventHandler  (inpHandler);
+  inpHandler->SetReadFriends(1);
+  mgr->SetInputEventHandler(inpHandler);
   
   // Output
-  
+  const char *outFile = "AliESDfriends_v1.root";
   AliESDHandler* esdHandler   = new AliESDHandler();
   mgr->SetOutputEventHandler(esdHandler);
-  esdHandler->SetOutputFileName("AliESDfriends_v1.root");
-  // Steering Tasks
-  
-  AliAnalysisTaskFilterFriend* filter = AddTaskFilterFriend();
-  AliAnalysisTaskFilterFriendSecond* filter2 = AddTaskFilterFriendSecond();
-  AliAnalysisTaskAddObject* add = AddTaskAddObject();
-  
+  esdHandler->SetOutputFileName(outFile);
+  mgr->SetCommonFileName(outFile);
+  //  
   // Detector Tasks
-  
-  AliAnalysisTask* tTPC = AddTaskTPCCalib(runNumber);
-  
+  //
+  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 = 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");
     return;