end-of-line normalization
[u/mrichter/AliRoot.git] / PWGPP / macros / AddTrainPerformanceTRD.C
index 2e14248..c06c07a 100644 (file)
-// Steer TRD QA train for Reconstruction (Clusterizer, Tracking and PID).\r
-// \r
-// Usage:\r
-//   AddTrainPerformanceTRD.C(MC, friends, tasks)\r
-//   tasks : "ALL" or one/more of the following:\r
-//     "EFF"  : TRD Tracking Efficiency \r
-//     "EFFC" : TRD Tracking Efficiency Combined (barrel + stand alone) - only in case of simulations\r
-//     "MULT"  : TRD single track selection\r
-//     "RES"  : TRD tracking Resolution\r
-//     "CLRES": clusters Resolution\r
-//     "CAL"  : TRD calibration\r
-//     "ALGN" : TRD alignment\r
-//     "PID"  : TRD PID - pion efficiency \r
-//     "PIDR" : TRD PID - reference data\r
-//     "DET"  : Basic TRD Detector checks\r
-//     "NOFR" : Data set does not have AliESDfriends.root \r
-//     "NOMC" : Data set does not have Monte Carlo Informations (real data), so all tasks which rely\r
-//              on MC information are switched off\r
-//\r
-// In compiled mode : \r
-// Don't forget to load first the libraries\r
-// gSystem->Load("libMemStat.so")\r
-// gSystem->Load("libMemStatGui.so")\r
-// gSystem->Load("libANALYSIS.so")\r
-// gSystem->Load("libANALYSISalice.so")\r
-// gSystem->Load("libPWGPP.so");\r
-//\r
-// Authors:\r
-//   Alex Bercuci (A.Bercuci@gsi.de) \r
-//   Markus Fasel (m.Fasel@gsi.de) \r
-\r
-#if ! defined (__CINT__) || defined (__MAKECINT__)\r
-//#ifndef __CINT__\r
-#include <Riostream.h>\r
-\r
-#include "TStopwatch.h"\r
-#include "TMemStat.h"\r
-#include "TMemStatViewerGUI.h"\r
-\r
-#include "TROOT.h"\r
-#include "TClass.h"\r
-#include "TSystem.h"\r
-#include "TString.h"\r
-#include "TError.h"\r
-#include "TChain.h"\r
-#include "TGrid.h"\r
-#include "TAlienCollection.h"\r
-#include "TGridCollection.h"\r
-#include "TGridResult.h"\r
-#include "TGeoGlobalMagField.h"\r
-\r
-#include "AliMagF.h"\r
-#include "AliTracker.h"\r
-#include "AliLog.h"\r
-#include "AliCDBManager.h"\r
-#include "AliGRPManager.h"\r
-#include "AliGeomManager.h"\r
-#include "AliAnalysisManager.h"\r
-#include "AliAnalysisDataContainer.h"\r
-#include "AliMCEventHandler.h"\r
-#include "AliESDInputHandler.h"\r
-\r
-#include "TRD/AliTRDtrackerV1.h"\r
-#include "TRD/AliTRDcalibDB.h"\r
-\r
-#include "PWGPP/TRD/macros/AddTRDcheckESD.C"\r
-#include "PWGPP/TRD/macros/AddTRDinfoGen.C"\r
-#include "PWGPP/TRD/macros/AddTRDcheckDET.C"\r
-#include "PWGPP/TRD/macros/AddTRDefficiency.C"\r
-#include "PWGPP/TRD/macros/AddTRDresolution.C"\r
-#include "PWGPP/TRD/macros/AddTRDcheckPID.C"\r
-#include "PWGPP/TRD/macros/AddTRDcheckTRK.C"\r
-#include "PWGPP/TRD/macros/AddTRDv0Monitor.C"\r
-#endif\r
-\r
-TString opt("");\r
-const Char_t* Translate(Bool_t doCheckESD=kTRUE, Bool_t doCheckDET=kTRUE, Bool_t doEffic=kTRUE, Bool_t doResolution=kTRUE, Bool_t doCheckPID=kTRUE, Bool_t doV0Monitor=kTRUE);\r
-Bool_t AddTrainPerformanceTRD(Char_t *trd="ALL", const Char_t *addMacroPath = "$ALICE_ROOT/PWGPP/TRD/macros")\r
-{\r
-  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();\r
-  if(!mgr) { \r
-    Error("AddTrainPerformanceTRD", "AliAnalysisManager not set!");\r
-    return kFALSE;\r
-  }\r
-\r
-  // TRD data containers\r
-  AliAnalysisDataContainer *ci[AliTRDpwgppHelper::kNOutSlots];\r
-  AliAnalysisDataContainer *ce[5];\r
-\r
-  Info("AddTrainPerformanceTRD", Form("Add Macros taken from %s", addMacroPath));\r
-  Info("AddTrainPerformanceTRD", Form("TRD wagons \"%s\"", trd));\r
-  Int_t bitmap = AliTRDpwgppHelper::ParseOptions(trd);\r
-  for(Int_t it=0; it<AliTRDpwgppHelper::kNTRDQATASKS; it++){\r
-    if(gROOT->LoadMacro(Form("%s/Add%s.C+", addMacroPath, TString(AliTRDpwgppHelper::TaskClassName(it))(3,20).Data()))) {\r
-      Error("AddTrainPerformanceTRD()", Form("Error loading %s task.", AliTRDpwgppHelper::TaskClassName(it)));\r
-      return kFALSE;\r
-    } \r
-    if(!AliTRDpwgppHelper::DoTask(it, bitmap)) continue;\r
-\r
-    switch(it){\r
-    case AliTRDpwgppHelper::kCheckESD:\r
-      AddTRDcheckESD(mgr); break;\r
-    case AliTRDpwgppHelper::kInfoGen:\r
-      AddTRDinfoGen(mgr, 0, NULL, ci); break;\r
-    case AliTRDpwgppHelper::kCheckDET:\r
-      // map slots\r
-      ce[0]=ci[AliTRDpwgppHelper::kTracksBarrel];\r
-      ce[1]=ci[AliTRDpwgppHelper::kTracksSA];\r
-      ce[2]=ci[AliTRDpwgppHelper::kTracksKink];\r
-      ce[3]=ci[AliTRDpwgppHelper::kEventInfo];\r
-      ce[4]=ci[AliTRDpwgppHelper::kClusters];\r
-      AddTRDcheckDET(mgr, bitmap, ce);\r
-      break;\r
-    case AliTRDpwgppHelper::kEfficiency:\r
-      // map slots\r
-      ce[0]=ci[AliTRDpwgppHelper::kTracksBarrel];\r
-      ce[1]=ci[AliTRDpwgppHelper::kTracksITS];\r
-      ce[2]=ci[AliTRDpwgppHelper::kTracksKink];\r
-      ce[3]=ci[AliTRDpwgppHelper::kEventInfo];\r
-      ce[4]=ci[AliTRDpwgppHelper::kClusters];\r
-      AddTRDefficiency(mgr, bitmap, ce);\r
-      break;\r
-    case AliTRDpwgppHelper::kResolution:\r
-      // map slots\r
-      ce[0]=ci[AliTRDpwgppHelper::kTracksBarrel];\r
-      ce[1]=ci[AliTRDpwgppHelper::kTracksITS];\r
-      ce[2]=ci[AliTRDpwgppHelper::kTracksKink];\r
-      ce[3]=ci[AliTRDpwgppHelper::kEventInfo];\r
-      ce[4]=ci[AliTRDpwgppHelper::kClusters];\r
-      AddTRDresolution(mgr, bitmap, ce); \r
-      break;\r
-    case AliTRDpwgppHelper::kCheckPID:\r
-      // map slots\r
-      ce[0]=ci[AliTRDpwgppHelper::kTracksBarrel];\r
-      ce[1]=ci[AliTRDpwgppHelper::kEventInfo];\r
-      ce[2]=ci[AliTRDpwgppHelper::kV0List];\r
-      AddTRDcheckPID(mgr, bitmap, ce, &ce[3]);\r
-      break;\r
-    case AliTRDpwgppHelper::kCheckTRK:\r
-      // map slots\r
-      ce[0]=ci[AliTRDpwgppHelper::kTracksBarrel];\r
-      ce[1]=ci[AliTRDpwgppHelper::kEventInfo];\r
-      ce[2]=ci[AliTRDpwgppHelper::kClusters];\r
-      AddTRDcheckTRK(mgr, 0, ce);\r
-      break;\r
-    case AliTRDpwgppHelper::kV0Monitor:\r
-      // slots already mapped by checkPID\r
-      AddTRDv0Monitor(mgr, 0, ce);\r
-      break;\r
-    default:\r
-      Warning("AddTrainPerformanceTRD()", Form("No performance task registered at slot %d.", it)); \r
-    }\r
-  }\r
-  return kTRUE;\r
-}\r
-\r
-const Char_t* Translate(Bool_t doCheckESD, Bool_t doCheckDET, Bool_t doEffic, Bool_t doResolution, Bool_t doCheckPID, Bool_t doCheckV0)\r
-{\r
-  opt.Clear();\r
-  if( doCheckESD==kTRUE &&\r
-      doCheckDET==kTRUE &&\r
-      doEffic==kTRUE &&\r
-      doResolution==kTRUE &&\r
-      doCheckPID==kTRUE &&\r
-      doCheckV0==kTRUE\r
-  ){\r
-    opt="ALL";\r
-  } else {\r
-    Bool_t kINDENT(kFALSE);\r
-    if(doCheckESD){ \r
-      opt.Append("ESD");\r
-      kINDENT=kTRUE;\r
-    }\r
-    if(doCheckDET){ \r
-      if(kINDENT) opt.Append(" ");\r
-      opt.Append("DET"); \r
-      kINDENT = kTRUE;\r
-    }\r
-    if(doEffic){ \r
-      if(kINDENT) opt.Append(" ");\r
-      opt.Append("EFF");\r
-      kINDENT=kTRUE;\r
-    }\r
-    if(doResolution){ \r
-      if(kINDENT) opt.Append(" ");\r
-      opt.Append("RES");\r
-      kINDENT=kTRUE;\r
-    }\r
-    if(doCheckPID){ \r
-      if(kINDENT) opt.Append(" ");\r
-      opt.Append("PID");\r
-      kINDENT=kTRUE;\r
-    }\r
-    if(doCheckV0){ \r
-      if(kINDENT) opt.Append(" ");\r
-      opt.Append("V0");\r
-      kINDENT=kTRUE;\r
-    }\r
-  }\r
-\r
-  return (const Char_t*)opt.Data();\r
-}\r
-\r
-\r
+// Steer TRD QA train for Reconstruction (Clusterizer, Tracking and PID).
+// 
+// Usage:
+//   AddTrainPerformanceTRD.C(MC, friends, tasks)
+//   tasks : "ALL" or one/more of the following:
+//     "EFF"  : TRD Tracking Efficiency 
+//     "EFFC" : TRD Tracking Efficiency Combined (barrel + stand alone) - only in case of simulations
+//     "MULT"  : TRD single track selection
+//     "RES"  : TRD tracking Resolution
+//     "CLRES": clusters Resolution
+//     "CAL"  : TRD calibration
+//     "ALGN" : TRD alignment
+//     "PID"  : TRD PID - pion efficiency 
+//     "PIDR" : TRD PID - reference data
+//     "DET"  : Basic TRD Detector checks
+//     "NOFR" : Data set does not have AliESDfriends.root 
+//     "NOMC" : Data set does not have Monte Carlo Informations (real data), so all tasks which rely
+//              on MC information are switched off
+//
+// In compiled mode : 
+// Don't forget to load first the libraries
+// gSystem->Load("libMemStat.so")
+// gSystem->Load("libMemStatGui.so")
+// gSystem->Load("libANALYSIS.so")
+// gSystem->Load("libANALYSISalice.so")
+// gSystem->Load("libPWGPP.so");
+//
+// Authors:
+//   Alex Bercuci (A.Bercuci@gsi.de) 
+//   Markus Fasel (m.Fasel@gsi.de) 
+
+#if ! defined (__CINT__) || defined (__MAKECINT__)
+//#ifndef __CINT__
+#include <Riostream.h>
+
+#include "TStopwatch.h"
+#include "TMemStat.h"
+#include "TMemStatViewerGUI.h"
+
+#include "TROOT.h"
+#include "TClass.h"
+#include "TSystem.h"
+#include "TString.h"
+#include "TError.h"
+#include "TChain.h"
+#include "TGrid.h"
+#include "TAlienCollection.h"
+#include "TGridCollection.h"
+#include "TGridResult.h"
+#include "TGeoGlobalMagField.h"
+
+#include "AliMagF.h"
+#include "AliTracker.h"
+#include "AliLog.h"
+#include "AliCDBManager.h"
+#include "AliGRPManager.h"
+#include "AliGeomManager.h"
+#include "AliAnalysisManager.h"
+#include "AliAnalysisDataContainer.h"
+#include "AliMCEventHandler.h"
+#include "AliESDInputHandler.h"
+
+#include "TRD/AliTRDtrackerV1.h"
+#include "TRD/AliTRDcalibDB.h"
+
+#include "PWGPP/TRD/macros/AddTRDcheckESD.C"
+#include "PWGPP/TRD/macros/AddTRDinfoGen.C"
+#include "PWGPP/TRD/macros/AddTRDcheckDET.C"
+#include "PWGPP/TRD/macros/AddTRDefficiency.C"
+#include "PWGPP/TRD/macros/AddTRDresolution.C"
+#include "PWGPP/TRD/macros/AddTRDcheckPID.C"
+#include "PWGPP/TRD/macros/AddTRDcheckTRK.C"
+#include "PWGPP/TRD/macros/AddTRDv0Monitor.C"
+#endif
+
+TString opt("");
+const Char_t* Translate(Bool_t doCheckESD=kTRUE, Bool_t doCheckDET=kTRUE, Bool_t doEffic=kTRUE, Bool_t doResolution=kTRUE, Bool_t doCheckPID=kTRUE, Bool_t doV0Monitor=kTRUE);
+Bool_t AddTrainPerformanceTRD(Char_t *trd="ALL", const Char_t *addMacroPath = "$ALICE_ROOT/PWGPP/TRD/macros")
+{
+  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
+  if(!mgr) { 
+    Error("AddTrainPerformanceTRD", "AliAnalysisManager not set!");
+    return kFALSE;
+  }
+
+  // TRD data containers
+  AliAnalysisDataContainer *ci[AliTRDpwgppHelper::kNOutSlots];
+  AliAnalysisDataContainer *ce[5];
+
+  Info("AddTrainPerformanceTRD", Form("Add Macros taken from %s", addMacroPath));
+  Info("AddTrainPerformanceTRD", Form("TRD wagons \"%s\"", trd));
+  Int_t bitmap = AliTRDpwgppHelper::ParseOptions(trd);
+  for(Int_t it=0; it<AliTRDpwgppHelper::kNTRDQATASKS; it++){
+    if(gROOT->LoadMacro(Form("%s/Add%s.C+", addMacroPath, TString(AliTRDpwgppHelper::TaskClassName(it))(3,20).Data()))) {
+      Error("AddTrainPerformanceTRD()", Form("Error loading %s task.", AliTRDpwgppHelper::TaskClassName(it)));
+      return kFALSE;
+    } 
+    if(!AliTRDpwgppHelper::DoTask(it, bitmap)) continue;
+
+    switch(it){
+    case AliTRDpwgppHelper::kCheckESD:
+      AddTRDcheckESD(mgr); break;
+    case AliTRDpwgppHelper::kInfoGen:
+      AddTRDinfoGen(mgr, 0, NULL, ci); break;
+    case AliTRDpwgppHelper::kCheckDET:
+      // map slots
+      ce[0]=ci[AliTRDpwgppHelper::kTracksBarrel];
+      ce[1]=ci[AliTRDpwgppHelper::kTracksSA];
+      ce[2]=ci[AliTRDpwgppHelper::kTracksKink];
+      ce[3]=ci[AliTRDpwgppHelper::kEventInfo];
+      ce[4]=ci[AliTRDpwgppHelper::kClusters];
+      AddTRDcheckDET(mgr, bitmap, ce);
+      break;
+    case AliTRDpwgppHelper::kEfficiency:
+      // map slots
+      ce[0]=ci[AliTRDpwgppHelper::kTracksBarrel];
+      ce[1]=ci[AliTRDpwgppHelper::kTracksITS];
+      ce[2]=ci[AliTRDpwgppHelper::kTracksKink];
+      ce[3]=ci[AliTRDpwgppHelper::kEventInfo];
+      ce[4]=ci[AliTRDpwgppHelper::kClusters];
+      AddTRDefficiency(mgr, bitmap, ce);
+      break;
+    case AliTRDpwgppHelper::kResolution:
+      // map slots
+      ce[0]=ci[AliTRDpwgppHelper::kTracksBarrel];
+      ce[1]=ci[AliTRDpwgppHelper::kTracksITS];
+      ce[2]=ci[AliTRDpwgppHelper::kTracksKink];
+      ce[3]=ci[AliTRDpwgppHelper::kEventInfo];
+      ce[4]=ci[AliTRDpwgppHelper::kClusters];
+      AddTRDresolution(mgr, bitmap, ce); 
+      break;
+    case AliTRDpwgppHelper::kCheckPID:
+      // map slots
+      ce[0]=ci[AliTRDpwgppHelper::kTracksBarrel];
+      ce[1]=ci[AliTRDpwgppHelper::kEventInfo];
+      ce[2]=ci[AliTRDpwgppHelper::kV0List];
+      AddTRDcheckPID(mgr, bitmap, ce, &ce[3]);
+      break;
+    case AliTRDpwgppHelper::kCheckTRK:
+      // map slots
+      ce[0]=ci[AliTRDpwgppHelper::kTracksBarrel];
+      ce[1]=ci[AliTRDpwgppHelper::kEventInfo];
+      ce[2]=ci[AliTRDpwgppHelper::kClusters];
+      AddTRDcheckTRK(mgr, 0, ce);
+      break;
+    case AliTRDpwgppHelper::kV0Monitor:
+      // slots already mapped by checkPID
+      AddTRDv0Monitor(mgr, 0, ce);
+      break;
+    default:
+      Warning("AddTrainPerformanceTRD()", Form("No performance task registered at slot %d.", it)); 
+    }
+  }
+  return kTRUE;
+}
+
+const Char_t* Translate(Bool_t doCheckESD, Bool_t doCheckDET, Bool_t doEffic, Bool_t doResolution, Bool_t doCheckPID, Bool_t doCheckV0)
+{
+  opt.Clear();
+  if( doCheckESD==kTRUE &&
+      doCheckDET==kTRUE &&
+      doEffic==kTRUE &&
+      doResolution==kTRUE &&
+      doCheckPID==kTRUE &&
+      doCheckV0==kTRUE
+  ){
+    opt="ALL";
+  } else {
+    Bool_t kINDENT(kFALSE);
+    if(doCheckESD){ 
+      opt.Append("ESD");
+      kINDENT=kTRUE;
+    }
+    if(doCheckDET){ 
+      if(kINDENT) opt.Append(" ");
+      opt.Append("DET"); 
+      kINDENT = kTRUE;
+    }
+    if(doEffic){ 
+      if(kINDENT) opt.Append(" ");
+      opt.Append("EFF");
+      kINDENT=kTRUE;
+    }
+    if(doResolution){ 
+      if(kINDENT) opt.Append(" ");
+      opt.Append("RES");
+      kINDENT=kTRUE;
+    }
+    if(doCheckPID){ 
+      if(kINDENT) opt.Append(" ");
+      opt.Append("PID");
+      kINDENT=kTRUE;
+    }
+    if(doCheckV0){ 
+      if(kINDENT) opt.Append(" ");
+      opt.Append("V0");
+      kINDENT=kTRUE;
+    }
+  }
+
+  return (const Char_t*)opt.Data();
+}
+
+