]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Added stuff to be written to shell script after completion.
authorcholm <cholm@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 17 Sep 2013 09:14:11 +0000 (09:14 +0000)
committercholm <cholm@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 17 Sep 2013 09:14:11 +0000 (09:14 +0000)
Useful for automating tasks done frequently.

PWGLF/FORWARD/analysis2/trains/MakeAODTrain.C
PWGLF/FORWARD/analysis2/trains/MakeFMDELossTrain.C
PWGLF/FORWARD/analysis2/trains/MakeFullTrain.C
PWGLF/FORWARD/analysis2/trains/MakeMCCorrTrain.C
PWGLF/FORWARD/analysis2/trains/MakeMultDistsTrain.C
PWGLF/FORWARD/analysis2/trains/MakedNdetaTrain.C

index 37b2aecfac5f89f3e4e1f3cab6e362fdf6da4fd9..c9eec1160bf018734d46a07a400326b53c3fd64d 100644 (file)
@@ -299,10 +299,16 @@ protected:
       << "    return;\n"
       << "  }\n\n"
       << "  Int_t n = r->GetEntries();\n"
+      << "  Printf(\"=== Got a total of %d AOD files\",n);\n"
       << "  for (Int_t i = 0; i < n; i++) {\n"
       << "     TString path(r->GetKey(i, \"turl\"));\n"
-      << "     TString sub(gSystem->BaseName(gSystem->DirName(path)));\n"
-      << "     TString out = TString::Format(\"AliAOD_%s.root\",sub.Data());\n"
+      << "     TString dir(gSystem->DirName(path));\n"
+      << "     TString sub(gSystem->BaseName(dir));\n"
+      << "     TString subsub(gSystem->BaseName(gSystem->DirName(dir)));\n"
+      << "     TString out = TString::Format(\"AliAOD_%s_%s.root\",\n"
+      << "                                   subsub.Data(),sub.Data());\n"
+      << "     Printf(\"=== Getting %s %s (%3d/%3d)\",\n"
+      << "            subsub.Data(),sub.Data(),i,n);\n"
       << "     if (!TFile::Cp(path, out)) {\n"
       << "       Warning(\"DownloadAODs\",\"Failed to copy %s -> %s\",\n"
       << "               path.Data(), out.Data());\n"
@@ -314,6 +320,12 @@ protected:
       << std::endl;
     f.close();
   }   
+  void PostShellCode(std::ostream& f)
+  {
+    f << "  echo \"=== Summarizing results ...\"\n"
+      << "  aliroot -l -b -q ${prefix}Summarize.C\n"
+      << std::endl;
+  }
 };
 //
 // EOF
index 3887cfc392600a4a77171b65369abc60b45312ca..7f0d0d54a0a6a64e34223baa03c7492f71dfb689 100644 (file)
@@ -113,7 +113,11 @@ protected:
   void SaveSetup(Bool_t asShellScript)
   {
     TrainSetup::SaveSetup(asShellScript);
-
+    SaveExtract();
+    SaveSummarize();
+  }
+  void SaveExtract()
+  {
     std::ofstream f("Extract.C");
     if (!f) { 
       Error("SaveSetup", "Failed to open Extract.C");
@@ -122,13 +126,44 @@ protected:
     f << "// Generated by " << ClassName() << "\n"
       << "void Extract()\n"
       << "{\n"
-      << "  gROOT->LoadMacro(\"$ALICE_ROOT/PWGLF/FORWARD/analysis2/corrs/ExtractELoss.C\");\n"
+      << "  const char* fwd=\"$ALICE_ROOT/PWGLF/FORWARD/analysis2\";\n"
+      << "  gROOT->LoadMacro(Form(\"%s/corrs/ExtractELoss.C\",fwd));\n"
       << "  ExtractELoss(\"forward_eloss.root\"," 
       <<  fHelper->IsMC() << ");\n"
       << "}\n"
       << "// EOF" << std::endl;
     f.close();
   }
+  void SaveSummarize()
+  {
+    std::ofstream f("Summarize.C");
+    if (!f) { 
+      Error("SaveSummarize", "Failed to open Summarize.C script");
+      return;
+    }
+    f << "// Generated by " << ClassName() << "\n"
+      << "//\n"
+      << "void Summarize(Bool_t mc=false,\n"
+      << "               const char* filename=\"forward_eloss.root\")\n"
+      << "{\n"
+      << "  const char* fwd=\"$ALICE_ROOT/PWGLF/FORWARD/analysis2\";\n"
+      << "  gROOT->LoadMacro(Form(\"%s/corrs/DrawCorrELoss.C\",fwd));\n"
+      << "  DrawCorrELoss(mc,filename);\n"
+      << "}\n"
+      << "// EOF" << std::endl;
+    f.close();
+  }
+  void PostShellCode(std::ostream& f)
+  {
+    f << "  echo \"=== Extracting Corrections ...\"\n"
+      << "  aliroot -l -b -q ${prefix}Extract.C\n"
+      << "  echo \"=== Summarizing results ...\"\n"
+      << "  aliroot -l -b -q ${prefix}Summarize.C\n"
+      << "  if test x$dest = x ; then return ; fi\n"
+      << "  echo \"=== Uploading to ${dest} ...\"\n"
+      << "  aliroot -l -b -q Upload.C\\(\\\"${dest}\\\"\\);\n"
+      << std::endl;
+  }
 };
 
 //
index a44a75c47249ba94d4318a820a2b5b2ec14e5882..37ceaa4f76032ca1e2b9696bf838a70056250d3f 100644 (file)
@@ -37,6 +37,7 @@ public:
     fOptions.Add("flow", "Add flow tasks");
     fOptions.Add("cent",  "Use centrality");
     // ESD settings
+    fOptions.Add("run",   "NUMBER",  "Run number", 0);
     fOptions.Add("sys",   "SYSTEM",  "1:pp, 2:PbPb, 3:pPb", "");
     fOptions.Add("snn",   "ENERGY",  "Center of mass energy in GeV", "");
     fOptions.Add("field", "STRENGTH","L3 field strength in kG", "");
@@ -57,9 +58,10 @@ public:
     fOptions.Add("cut-edges", "Cut acceptance edges");
     // Flow AOD settings
     fOptions.Add("mom", "Flow moments to analyse", "234", "234");
-    fOptions.Add("eta-gap", "Whether to use an eta-gap", "[no,yes,both]", "both");
+    fOptions.Add("eta-gap", "Whether to use an eta-gap", "[no,yes,both]", 
+                "both");
     fOptions.Add("eg-value", "Set value in |eta| of the eta gap", "2.0");
-    fOptions.Add("use-cent", "Whether to use the impact parameter for centrality");
+    fOptions.Add("b-cent","Whether to use the impact parameter for centrality");
     fOptions.Add("afterburner", "What to afterburn", "[eta,phi,b,pid]", "");
     fOptions.Add("ab-type", "Type of afterburner", "1|2|3|4", "");
     fOptions.Add("ab-order", "Order of afterburner", "2|3|4|5|6", "");
@@ -101,6 +103,7 @@ protected:
     gROOT->Macro("AddTaskCopyHeader.C");
 
     // --- Get options -----------------------------------------------
+    ULong_t  run = fOptions.AsInt("run", 0);
     UShort_t sys = fOptions.AsInt("sys", 0);
     UShort_t sNN = fOptions.AsInt("snn", 0);
     UShort_t fld = fOptions.AsInt("field", 0);
@@ -110,14 +113,14 @@ protected:
     
     // --- Add the task ----------------------------------------------
     TString fwdConfig = fOptions.Get("forward-config");
-    gROOT->Macro(Form("AddTaskForwardMult.C(%d,%d,%d,%d,\"%s\")", 
-                     mc, sys, sNN, fld, fwdConfig.Data()));
+    gROOT->Macro(Form("AddTaskForwardMult.C(%d,%d,%d,%d,%d,\"%s\")", 
+                     mc, runNo, sys, sNN, fld, fwdConfig.Data()));
     fHelper->LoadAux(gSystem->Which(gROOT->GetMacroPath(), fwdConfig));
 
     // --- Add the task ----------------------------------------------
     TString cenConfig = fOptions.Get("central-config");
-    gROOT->Macro(Form("AddTaskCentralMult.C(%d,%d,%d,%d,\"%s\")", 
-                     mc, sys, sNN, fld, cenConfig.Data()));
+    gROOT->Macro(Form("AddTaskCentralMult.C(%d,%d,%d,%d,%d,\"%s\")", 
+                     mc, runNo, sys, sNN, fld, cenConfig.Data()));
     fHelper->LoadAux(gSystem->Which(gROOT->GetMacroPath(), cenConfig));
 
     // --- Add MC particle task --------------------------------------
@@ -153,7 +156,7 @@ protected:
       TString  type    = fOptions.Get("mom");
       TString  etaGap  = fOptions.Get("eta-gap");
       Double_t egValue = fOptions.AsDouble("eg-value");
-      Bool_t   useCent = fOptions.AsBool("use-cent");
+      Bool_t   useCent = fOptions.AsBool("b-cent");
       TString  addFlow = fOptions.Get("afterburner");
       Int_t    abType  = fOptions.AsInt("ab-type");
       Int_t    abOrder = fOptions.AsInt("ab-order");
@@ -162,35 +165,26 @@ protected:
       Double_t spdCut  = fOptions.AsDouble("outlier-spd");
 
       // --- Add the task ----------------------------------------------
+      // Notice the '%%d' for second argument.  We substitute that later
+      TString arg(Form("AddTaskForwardFlow.C(\"%s\",%%d,%d,%f,%f,%f,%d,%d,\"%s\",%d,%d)",
+                      type.Data(),
+                      mc, 
+                      fmdCut, 
+                      spdCut,
+                      egValue,
+                      useCent,
+                      satVtx, 
+                      addFlow.Data(), 
+                      abType, 
+                      abOrder));
+      
       if (etaGap.Contains("no") || etaGap.Contains("false") ||
          etaGap.Contains("both"))
-           gROOT->Macro(Form("AddTaskForwardFlow.C(\"%s\",%d,%d,%f,%f,%f,%d,%d,\"%s\",%d,%d)",
-                       type.Data(),
-                       kFALSE,
-                       mc, 
-                       fmdCut, 
-                       spdCut,
-                       egValue,
-                       useCent,
-                       satVtx, 
-                       addFlow.Data(), 
-                       abType, 
-                       abOrder));
+       gROOT->Macro(Form(arg.Data(), false));
       
       if (etaGap.Contains("yes") || etaGap.Contains("true") ||
          etaGap.Contains("both"))
-           gROOT->Macro(Form("AddTaskForwardFlow.C(\"%s\",%d,%d,%f,%f,%f,%d,%d,\"%s\",%d,%d)",
-                       type.Data(),
-                       kTRUE,
-                       mc, 
-                       fmdCut, 
-                       spdCut, 
-                       egValue,
-                       useCent,
-                       satVtx, 
-                       addFlow.Data(), 
-                       abType, 
-                       abOrder));
+       gROOT->Macro(Form(arg.Data(), true));
     }
   }
   //__________________________________________________________________
index 659f3cb4670bfb007109a3537b472ea4b8c0bfab..50fbca58df4515391716bb72426c13505c43ebba 100644 (file)
@@ -163,6 +163,17 @@ protected:
       << "// EOF" << std::endl;
     f.close();
   }
+  void PostShellCode(std::ostream& f)
+  {
+    f << "  echo \"=== Extracting Corrections ...\"\n"
+      << "  aliroot -l -b -q ${prefix}Extract.C\n"
+      << "  echo \"=== Summarizing results ...\"\n"
+      << "  aliroot -l -b -q ${prefix}Summarize.C\n"
+      << "  if test x$dest = x ; then return ; fi\n"
+      << "  echo \"=== Uploading to ${dest} ...\"\n"
+      << "  aliroot -l -b -q Upload.C\\(\\\"${dest}\\\"\\);"
+      << std::endl;
+  }
 };
 
 //
index d10eef718f46a3f088e0b88640fdf9614d60085d..a2a5523f1341136b8851b4637f0448b9c7a7466b 100644 (file)
@@ -35,7 +35,8 @@ public:
     fOptions.Add("vzMax",      "CENTIMETER", "Max Ip Z", +4);
     fOptions.Add("max-n",      "NUMBER", "Maximum Nch", 150);
     fOptions.Add("phi-acc",    "Use stored phi acceptance", true);
-    fOptions.Add("asymmetric", "Make asymmetric (+/-) bins", true);
+    fOptions.Add("asymmetric", "Make asymmetric (+/-) bins", false);
+    fOptions.Add("n-divisions","NUMBER", "Divisions per particle #", 1);
   }
 protected:
   /** 
@@ -59,13 +60,14 @@ protected:
     Double_t vzMin  = fOptions.AsDouble("vzmin", -4);
     Double_t vzMax  = fOptions.AsDouble("vzmax", +4);
     Int_t    maxN   = fOptions.AsInt("max-n", 150);
+    Int_t    nDiv   = fOptions.AsInt("n-divisions", 1);
     Bool_t   phiAcc = fOptions.AsBool("phi-acc");
     Bool_t   aSymm  = fOptions.AsBool("asymmetric");
 
     // --- Form arguments --------------------------------------------
     TString args;
-    args.Form("\"%s\",%f,%f,%d,%d,%d",
-             trig.Data(), vzMin, vzMax, maxN, phiAcc, aSymm);
+    args.Form("\"%s\",%f,%f,%d,%d,%d,%d",
+             trig.Data(), vzMin, vzMax, maxN, nDiv, phiAcc, aSymm);
     // --- Add the task ----------------------------------------------
     gROOT->Macro(Form("AddTaskForwardMultDists.C(%s);", args.Data()));
   }
@@ -101,6 +103,32 @@ protected:
     TrainSetup::SaveSetup(asShellScript);
 
     SaveSummarize();
+    SaveUnfold();
+  }
+  void SaveUnfold() 
+  {
+    std::ofstream f("Unfold.C");
+    if (!f) { 
+      Error("SaveUnfold", "Failed to open Unfold.C script");
+      return;
+    }
+    f << "// Generated by " << ClassName() << "\n"
+      << "void Unfold(const char* other=\"\",\n"
+      << "            const char* here=\"forward_multdists.root\")\n"
+      << "{\n"
+      << "  const char* rooUnfold = gSystem->Getenv(\"ROOUNFOLD\");\n"
+      << "  if (rooUnfold) {\n"
+      << "    gSystem->AddIncludePath(Form(\"-I%s/src\",rooUnfold));\n"
+      << "    gSystem->AddDynamicPath(Form(\"%s\", rooUnfold));\n"
+      << "  }\n"
+      << "  gSystem->Load(\"libRooUnfold\");\n"
+      << "  const char* fwd=\"$ALICE_ROOT/PWGLF/FORWARD/analysis2\";\n"
+      << "  gROOT->LoadMacro(Form(\"%s/scripts/UnfoldMultDists.C++g\",fwd));\n"
+      << "  UnfoldMultDists(\"bayes\",4,here,other);\n"
+      << "}\n"
+      << "// EOF" << std::endl;
+    
+    f.close();
   }
   void SaveSummarize()
   {
@@ -122,12 +150,22 @@ protected:
       << "void Summarize(const char* filename=\"forward_multdists.root\",\n"
       << "               UShort_t what=0xF)\n"
       << "{\n"
-      << "  gROOT->LoadMacro(\"$ALICE_ROOT/PWGLF/FORWARD/analysis2/DrawMultDistsSummary.C\");\n"
+      << "  const char* fwd=\"$ALICE_ROOT/PWGLF/FORWARD/analysis2\";\n"
+      << "  gROOT->LoadMacro(Form(\"%s/DrawMultDistsSummary.C\",fwd));\n"
       << "  DrawMultDistsSummary(filename,what);\n"
       << "}\n"
       << "// EOF" << std::endl;
     f.close();
   }
+  void PostShellCode(std::ostream& f)
+  {
+    f << "  echo \"=== Summarizing results ...\"\n"
+      << "  aliroot -l -b -q ${prefix}Summarize.C\n"
+      << "  echo \"=== Unfolding ...\"\n"
+      << "  export ROOUNFOLD=${HOME}/tmp/RooUnfoldMyEdits\n"
+      << "  aliroot -l -b -q ${prefix}Unfold.C\n"
+      << std::endl;
+  }
 };
 //
 // EOF
index 62f1c1438fdb137cabce9992c47b84c8611dfbba..d603910bd8635e526083e5024f359c89c391d9fe 100644 (file)
@@ -138,12 +138,18 @@ protected:
       << "//   0x010     Only min-bias (no centrality)\n"
       << "//   0x020     Landscape\n"
       << "//   0x040     Pause\n"
+      << "//   0x100     Also draw single result canvas\n"
       << "//\n"
       << "void Summarize(const char* filename=\"forward_dndeta.root\",\n"
-      << "               UShort_t what=0xF)\n"
+      << "               UShort_t what=0x0F)\n"
       << "{\n"
-      << "  gROOT->LoadMacro(\"$ALICE_ROOT/PWGLF/FORWARD/analysis2/DrawdNdetaSummary.C\");\n"
-      << "  DrawdNdetaSummary(filename,what);\n"
+      << "  const char* fwd=\"$ALICE_ROOT/PWGLF/FORWARD/analysis2\";\n"
+      << "  gROOT->LoadMacro(Form(\"%s/DrawdNdetaSummary.C\",fwd));\n"
+      << "  DrawdNdetaSummary(filename,what & 0xFF);\n"
+      << "\n"
+      << "  if (!(what & 0x100)) return;\n"
+      << "  gROOT->SetMacroPath(Form(\"../:%s\",gROOT->GetMacroPath()));\n"
+      << "  gROOT->Macro(\"Draw.C\");\n"
       << "}\n"
       << "// EOF" << std::endl;
     f.close();
@@ -224,8 +230,8 @@ protected:
       << "          Float_t        vzMin=999,\n"
       << "          Float_t        vzMax=-999)\n"
       << "{\n"
-      << "   gROOT->LoadMacro(\"$ALICE_ROOT/PWGLF/FORWARD/analysis2/"
-      << "DrawdNdeta.C++\");\n\n"
+      << "  const char* fwd=\"$ALICE_ROOT/PWGLF/FORWARD/analysis2\";\n"
+      << "  gROOT->LoadMacro(Form(\"%s/DrawdNdeta.C++\",fwd));\n"
       << "  if (title.EqualTo(\"help\",TString::kIgnoreCase)) {\n"
       << "    DrawdNdeta(\"help\"); // Get the help\n"
       << "    return;\n"
@@ -248,6 +254,14 @@ protected:
       << "//" << std::endl;
     o.close();
   }
+  void PostShellCode(std::ostream& f)
+  {
+    f << "  echo \"=== Summarizing results ...\"\n"
+      << "  aliroot -l -b -q ${prefix}Summarize.C\n"
+      << "  echo \"=== Draw results ...\"\n"
+      << "  aliroot -l -b -q ${prefix}Draw.C\n"
+      << std::endl;
+  }
 };
 //
 // EOF