]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGLF/FORWARD/analysis2/sim/AOD.C
Various updates for the production scripts
[u/mrichter/AliRoot.git] / PWGLF / FORWARD / analysis2 / sim / AOD.C
index 7dfd8736f81a8f5f046adbf2d3822baf7cb19d1f..108ab75069bfb7ddce817c9ec70b64acec93b3a6 100644 (file)
@@ -17,7 +17,7 @@
  */
 /** Path to CDB */
 const char *cdbPath = "raw://";
-
+Bool_t cholm = false;
 /**
  * Interface (pure virtual) that all configuration classes must
  * implement.
@@ -83,6 +83,45 @@ struct VirtualAODCfg
   /** @return Forward mult task (PWGLF) */
   virtual Bool_t UsePWGLFForward() const = 0;
   /* @} */
+  /** 
+   * Print one flag
+   * 
+   * @param title Title
+   * @param use   Use or not 
+   */
+  virtual void PrintOne(const char* title, Bool_t use) const
+  {
+    Printf("%-30s : %3s", title, use ? "yes" : "no");
+  }
+  /** 
+   * Print settings
+   * 
+   */
+  virtual void Print() const { 
+    PrintOne("Connect to CDB",                 UseCDBconnect());
+    PrintOne("Use physics selection",          UsePhysicsSelection());
+    PrintOne("Use tender wagon",               UseTender());
+    PrintOne("Use centrality",                 UseCentrality());
+    PrintOne("Use V0 correction in tender",    UseV0tender());
+    PrintOne("Activate debugging",             UseDBG());
+    PrintOne("Use MC info",                    UseMC());
+    PrintOne("Use Kinematics filter",          UseKFILTER());
+    PrintOne("Use track references",           UseTR());
+    PrintOne("Use correction framework",       UseCORRFW());
+    PrintOne("Use AOD tags",                   UseAODTAGS());
+    PrintOne("Use sys info",                   UseSysInfo());
+    PrintOne("Produces an AOD or dAOD's",      UseAODhandler());
+    PrintOne("ESD to AOD filter",              UseESDfilter());
+    PrintOne("Use Muon train ",                        UsePWGMuonTrain());
+    PrintOne("Copy muon events",               UseMUONcopyAOD());
+    PrintOne("Jet analysis (PWG4)",            UseJETAN());
+    PrintOne("Jet delta AODs",                 UseJETANdelta());
+    PrintOne("Vertexing HF task (PWG3)",       UsePWGHFvertexing());
+    PrintOne("JPSI filtering (PWG3)",          UsePWGDQJPSIfilter());
+    PrintOne("D0->2 hadrons (PWG3)",           UsePWGHFd2h());
+    PrintOne("PID response",                   UsePIDResponse());
+    PrintOne("Forward mult task (PWGLF)",      UsePWGLFForward());
+  }
 };
 
 VirtualAODCfg* aodCfg = 0;
@@ -203,11 +242,12 @@ Bool_t LoadAnalysisLibraries()
   // CDBconnect
   if ((aodCfg->UseCDBconnect() && !aodCfg->UseTender()) 
       && !LoadLibrary("PWGPP")) return false;
-  if ((aodCfg->UseESDfilter() || aodCfg->UsePWGMuonTrain()) 
-      && !LoadLibrary("PWGmuon")) return kFALSE;
+  if ((aodCfg->UseESDfilter() || 
+       (aodCfg->UsePWGMuonTrain() && detCfg->UseMUON())))
+    if (!LoadLibrary("PWGmuon")) return kFALSE;
   // JETAN
-  if ((aodCfg->UseJETAN() || aodCfg->UseJETANdelta()) 
-      && !LoadLibrary("JETAN")) return kFALSE;
+  if ((aodCfg->UseJETAN() || aodCfg->UseJETANdelta()))
+    if (!LoadLibrary("JETAN")) return kFALSE;
   if (aodCfg->UseJETANdelta()) { // CINT doesn't like long '||' chains
     if (!LoadLibrary("CGAL"))           return false;
     if (!LoadLibrary("fastjet"))        return false;
@@ -217,11 +257,11 @@ Bool_t LoadAnalysisLibraries()
   }
 
   // PWG3 Vertexing HF
-  if ((aodCfg->UsePWGHFvertexing() || aodCfg->UsePWGHFd2h())) { 
+  if (aodCfg->UsePWGHFvertexing() || aodCfg->UsePWGHFd2h())) { 
     // CINT doesn't like long '||' chains
     if (!LoadLibrary("PWGflowBase"))      return false;
     if (!LoadLibrary("PWGflowTasks"))     return false;
-    // if (!LoadLibrary("PWGTRD"))           return false;
+    if (cholm) if (!LoadLibrary("PWGTRD"))           return false;
     if (!LoadLibrary("PWGHFvertexingHF")) return false;
   }
 
@@ -295,7 +335,9 @@ void AddAnalysisTasks(const char *cdb_location)
   }
 
   // --- PWGLF - Forward (cholm@nbi.dk) -----------------------------
-  if (aodCfg->UsePWGLFForward() && aodCfg->UsePhysicsSelection()) {
+  if (aodCfg->UsePWGLFForward() && 
+      aodCfg->UsePhysicsSelection() &&
+      detCfg->UseFMD()) {
     gROOT->LoadMacro(pwglf+"/FORWARD/analysis2/AddTaskForwardMult.C");
     // Arguments are 
     //   mc         Assume MC input
@@ -306,7 +348,8 @@ void AddAnalysisTasks(const char *cdb_location)
     //   config     Configuration script 
     //   corrdir    Possible directory containing custom OADB corrections
     // HACK load custom corrections 
-    Info("", "Adding forward AOD task with mc=%d",aodCfg->UseMC() && aodCfg->UseTR());
+    Info("", "Adding forward AOD task with mc=%d",
+        aodCfg->UseMC() && aodCfg->UseTR());
     AddTaskForwardMult(aodCfg->UseMC() && aodCfg->UseTR(),0,0,0,0,
                       "ForwardAODConfig.C",".");
     gROOT->LoadMacro(pwglf+"/FORWARD/analysis2/AddTaskCentralMult.C");
@@ -321,7 +364,7 @@ void AddAnalysisTasks(const char *cdb_location)
   if (aodCfg->UseESDfilter()) {
     //  ESD filter task configuration.
     gROOT->LoadMacro(ana+"/ESDfilter/macros/AddTaskESDFilter.C");
-    if (aodCfg->UseMUONcopyAOD()) {
+    if (aodCfg->UseMUONcopyAOD() && detCfg->UseMUON()) {
       printf("Registering delta AOD file\n");
       mgr->RegisterExtraFile("AliAOD.Muons.root");
       mgr->RegisterExtraFile("AliAOD.Dimuons.root");
@@ -379,7 +422,7 @@ void AddAnalysisTasks(const char *cdb_location)
   }
 
   // --- PWG3 D2h ----------------------------------------------------
-  if (aodCfg->UsePWGHFd2h()) {
+  if (aodCfg->UsePWGHFd2h() && aodCfg->UsePWGHFvertexing()) {
     gROOT->LoadMacro(pwghf+"/vertexingHF/AddD2HTrain.C");
     TFile::Cp(gSystem->ExpandPathName(configPWGHFd2h.Data()), 
              "file:ConfigVertexingHF.C");
@@ -517,7 +560,9 @@ void AODMerge()
   outputFiles.Add(new TObjString("AliAOD.root,"));
   if (aodCfg->UsePWGHFvertexing()) 
     outputFiles.Add(new TObjString("AliAOD.VertexingHF.root,"));
-  if (aodCfg->UseESDfilter() && aodCfg->UseMUONcopyAOD())
+  if (aodCfg->UseESDfilter() && 
+      aodCfg->UseMUONcopyAOD() && 
+      detCfg->UseMUON())
     outputFiles.Add(new TObjString("AliAOD.Muons.root,"));
   if (aodCfg->UseJETAN()) 
     outputFiles.Add(new TObjString("AliAOD.Jets.root,"));
@@ -525,7 +570,7 @@ void AODMerge()
     outputFiles.Add(new TObjString("AliAOD.Dielectron.root,"));
   outputFiles.Add(new TObjString("pyxsec_hists.root"));
   TString     mergeExcludes = "";
-  TIter       iter(outputFiles);
+  TIter       iter(&outputFiles);
   TObjString* str           = 0;
   Bool_t      merged        = kTRUE;
   while ((str = static_cast<TObjString*>(iter()))) {
@@ -559,12 +604,17 @@ void AODMerge()
  */
 void AOD(UInt_t run, const char* xmlfile=0, Int_t stage=0)
 {
+  TString host(gSystem->HostName());
+  cholm = host.BeginsWith("hehi");
+  if (cholm) TGrid::Connect("alien:");
+
   // -----------------------------------------------------------------
   // 
   // Get GRP parameters.  Defines global "grp" as a pointer to GRPData
   //
   gROOT->Macro(Form("GRP.C(%d)", run));
   gROOT->Macro("AODConfig.C");
+  gROOT->Macro("DetConfig.C");
 
   // --- Some settings -----------------------------------------------
   // Set temporary merging directory to current one
@@ -577,15 +627,7 @@ void AOD(UInt_t run, const char* xmlfile=0, Int_t stage=0)
   printf("===========    RUNNING FILTERING TRAIN   ==========\n");
   printf("===================================================\n");
   printf("=  Configuring analysis train for:\n");
-  if (aodCfg->UsePhysicsSelection())   printf("=  Physics selection");
-  if (aodCfg->UseTender())             printf("=  TENDER");
-  if (aodCfg->UseESDfilter())            printf("=  ESD filter");
-  if (aodCfg->UseMUONcopyAOD())          printf("=  MUON copy AOD");
-  if (aodCfg->UseJETAN())                printf("=  Jet analysis");
-  if (aodCfg->UseJETANdelta())           printf("=     Jet delta AODs");
-  if (aodCfg->UsePWGHFvertexing())       printf("=  PWGHF vertexing");
-  if (aodCfg->UsePWGDQJPSIfilter())      printf("=  PWGDQ j/psi filter");
-  if (aodCfg->UsePWGHFd2h())             printf("=  PWGHF D0->2 hadrons QA");
+  aodCfg->Print();
 
   // Load common libraries and set include path
   if (!LoadCommonLibraries()) {