Updates
authorcholm <Christian.Holm.Christensen@cern.ch>
Wed, 15 Oct 2014 11:32:51 +0000 (13:32 +0200)
committercholm <Christian.Holm.Christensen@cern.ch>
Wed, 15 Oct 2014 11:32:51 +0000 (13:32 +0200)
20 files changed:
PWGLF/FORWARD/analysis2/sim/AOD.C
PWGLF/FORWARD/analysis2/sim/AODConfig.C
PWGLF/FORWARD/analysis2/sim/BaseConfig.C [new file with mode: 0644]
PWGLF/FORWARD/analysis2/sim/Check.C
PWGLF/FORWARD/analysis2/sim/Config.C
PWGLF/FORWARD/analysis2/sim/DetConfig.C
PWGLF/FORWARD/analysis2/sim/Final.jdl.in
PWGLF/FORWARD/analysis2/sim/Merge.jdl.in
PWGLF/FORWARD/analysis2/sim/OCDBConfig.C
PWGLF/FORWARD/analysis2/sim/PlotSysInfo.C
PWGLF/FORWARD/analysis2/sim/QA.C
PWGLF/FORWARD/analysis2/sim/QAConfig.C
PWGLF/FORWARD/analysis2/sim/README.md
PWGLF/FORWARD/analysis2/sim/Reconstruct.C
PWGLF/FORWARD/analysis2/sim/Run.jdl.in
PWGLF/FORWARD/analysis2/sim/Simulate.C
PWGLF/FORWARD/analysis2/sim/Tag.C
PWGLF/FORWARD/analysis2/sim/doit.sh
PWGLF/FORWARD/analysis2/sim/spyFile.sh
PWGLF/FORWARD/analysis2/sim/test.sh

index 108ab75..cc8f940 100644 (file)
@@ -7,13 +7,20 @@
  * 
  * @note Do not modify this script. 
  *
- * This script reads in two other scripts 
+ * This script reads in 4 other scripts 
  *
  * - GRP.C to load the global run parameters for the selected run,
  *   such as collision system, energy, etc.
  * 
  * - AODConfig.C which defines a number of functions that return
  *   either true or false.  The tasks added depends on these functions
+ *
+ * - BaseConfig.C which defines some base classes 
+ * 
+ * - DetConfig.C which defines which detectors are active and on. 
+ *
+ * Users can customize QAConfig.C and DetConfig.C according to their
+ * needs
  */
 /** Path to CDB */
 const char *cdbPath = "raw://";
@@ -614,6 +621,7 @@ void AOD(UInt_t run, const char* xmlfile=0, Int_t stage=0)
   //
   gROOT->Macro(Form("GRP.C(%d)", run));
   gROOT->Macro("AODConfig.C");
+  gROOT->Macro("BaseConfig.C");
   gROOT->Macro("DetConfig.C");
 
   // --- Some settings -----------------------------------------------
index 036461e..eafcf10 100644 (file)
@@ -1,3 +1,7 @@
+/**
+ * Configuration of AOD pass.  The base class VirtualAODCfg is
+ * declared in AOD.C
+ */
 struct AODCfg : public VirtualAODCfg
 {
   /** 
@@ -61,6 +65,10 @@ struct AODCfg : public VirtualAODCfg
   /* @} */
 };
 
+/** 
+ * Creating our configuration 
+ * 
+ */
 void AODConfig()
 {
   Info("AODConfig", "Creating configuration object");
diff --git a/PWGLF/FORWARD/analysis2/sim/BaseConfig.C b/PWGLF/FORWARD/analysis2/sim/BaseConfig.C
new file mode 100644 (file)
index 0000000..4837bd4
--- /dev/null
@@ -0,0 +1,173 @@
+/**
+ * @file   BaseConfig.C
+ * @author Christian Holm Christensen <cholm@nbi.dk>
+ * @date   Wed Oct 15 12:52:58 2014
+ * 
+ * @brief  Base classes for configurations shared amoung steps. 
+ * 
+ * 
+ */
+/** 
+ * Base class for detector configuration. By default, everything is on
+ * except ACORDE.
+ */
+struct VirtualDetCfg 
+{
+  virtual Bool_t UseABSO()   const { return true;  }
+  virtual Bool_t UseACORDE() const { return false; }
+  virtual Bool_t UseDIPO()   const { return true;  }
+  virtual Bool_t UseEMCAL()  const { return true;  }
+  virtual Bool_t UseFMD()    const { return true;  }
+  virtual Bool_t UseFRAME()  const { return true;  }
+  virtual Bool_t UseHALL()   const { return true;  }
+  virtual Bool_t UseITS()    const { return true;  }
+  virtual Bool_t UseMAG()    const { return true;  }
+  virtual Bool_t UseMUON()   const { return true;  }
+  virtual Bool_t UsePHOS()   const { return true;  }
+  virtual Bool_t UsePIPE()   const { return true;  }
+  virtual Bool_t UsePMD()    const { return true;  }
+  virtual Bool_t UseHMPID()  const { return true;  }
+  virtual Bool_t UseSHIL()   const { return true;  }
+  virtual Bool_t UseT0()     const { return true;  }
+  virtual Bool_t UseTOF()    const { return true;  }
+  virtual Bool_t UseTPC()    const { return true;  }
+  virtual Bool_t UseTRD()    const { return true;  }
+  virtual Bool_t UseVZERO()  const { return true;  }
+  virtual Bool_t UseZDC()    const { return true;  }
+  virtual void Print() 
+  {
+    Printf("ABSO:   %3s", UseABSO()    ? "yes" : "no");
+    Printf("ACORDE: %3s", UseACORDE()  ? "yes" : "no");
+    Printf("DIPO:   %3s", UseDIPO()    ? "yes" : "no");
+    Printf("EMCAL:  %3s", UseEMCAL()   ? "yes" : "no");
+    Printf("FMD:    %3s", UseFMD()     ? "yes" : "no");
+    Printf("FRAME:  %3s", UseFRAME()   ? "yes" : "no");
+    Printf("HALL:   %3s", UseHALL()    ? "yes" : "no");
+    Printf("ITS:    %3s", UseITS()     ? "yes" : "no");
+    Printf("MAG:    %3s", UseMAG()     ? "yes" : "no");
+    Printf("MUON:   %3s", UseMUON()    ? "yes" : "no");
+    Printf("PHOS:   %3s", UsePHOS()    ? "yes" : "no");
+    Printf("PIPE:   %3s", UsePIPE()    ? "yes" : "no");
+    Printf("PMD:    %3s", UsePMD()     ? "yes" : "no");
+    Printf("HMPID:  %3s", UseHMPID()   ? "yes" : "no");
+    Printf("SHIL:   %3s", UseSHIL()    ? "yes" : "no");
+    Printf("T0:     %3s", UseT0()      ? "yes" : "no");
+    Printf("TOF:    %3s", UseTOF()     ? "yes" : "no");
+    Printf("TPC:    %3s", UseTPC()     ? "yes" : "no");
+    Printf("TRD:    %3s", UseTRD()     ? "yes" : "no");
+    Printf("VZERO:  %3s", UseVZERO()   ? "yes" : "no");
+    Printf("ZDC:    %3s", UseZDC()     ? "yes" : "no");
+  }
+  /** 
+   * Get the string of enabled detectors for local reconstruction.
+   * 
+   * @param enable On return, contains string of enable detectors
+   */
+  void GetRecoString(TString& enable) const
+  {
+    if (UseITS())      Append2Str(enable, "ITS"); 
+    if (UseTPC())      Append2Str(enable, "TPC"); 
+    if (UseTRD())      Append2Str(enable, "TRD"); 
+    if (UseTOF())      Append2Str(enable, "TOF"); 
+    if (UsePHOS())     Append2Str(enable, "PHOS"); 
+    if (UseHMPID())    Append2Str(enable, "HMPID"); 
+    if (UseEMCAL())    Append2Str(enable, "EMCAL"); 
+    if (UseMUON())     Append2Str(enable, "MUON"); 
+    if (UseFMD())      Append2Str(enable, "FMD"); 
+    if (UseZDC())      Append2Str(enable, "ZDC"); 
+    if (UsePMD())      Append2Str(enable, "PMD"); 
+    if (UseT0())       Append2Str(enable, "T0"); 
+    if (UseVZERO())    Append2Str(enable, "VZERO");
+  }
+  /** 
+   * Get the string of detectors for which we should make Summable
+   * Digits
+   * 
+   * @param sDigits On returm contains the string of enable detectors
+   */
+  void GetSDigitString(TString& sDigits) const 
+  {
+    if (UseTRD())      Append2Str(sDigits, "TRD"); 
+    if (UseTOF())      Append2Str(sDigits, "TOF"); 
+    if (UsePHOS())     Append2Str(sDigits, "PHOS"); 
+    if (UseHMPID())    Append2Str(sDigits, "HMPID"); 
+    if (UseEMCAL())    Append2Str(sDigits, "EMCAL"); 
+    if (UseMUON())     Append2Str(sDigits, "MUON"); 
+    if (UseFMD())      Append2Str(sDigits, "FMD"); 
+    if (UseZDC())      Append2Str(sDigits, "ZDC"); 
+    if (UsePMD())      Append2Str(sDigits, "PMD"); 
+    if (UseT0())       Append2Str(sDigits, "T0"); 
+    if (UseVZERO())    Append2Str(sDigits, "VZERO");
+  }
+  /** 
+   * Get the sting of detectors for which we should do the hit to
+   * digit conversion directly.
+   * 
+   * @param fromHits On returm contains the string of enable detectors
+   */
+  void GetHits2DigitsString(TString& fromHits) const
+  {
+    if (UseITS())      Append2Str(fromHits, "ITS");
+    if (UseTPC())      Append2Str(fromHits, "TPC");
+  }
+  /** 
+   * Append a C style string to a string, possibly adding a space before
+   * 
+   * @param str     Where to append
+   * @param append  What to append
+   */
+  static void Append2Str(TString& str, const char* append)
+  {
+    if (!str.IsNull()) str.Append(" ");
+    str.Append(append);
+  }
+  
+};
+/** Global variable */
+VirtualDetCfg* detCfg = 0;
+
+/**
+ * Base class for the OCDG configration 
+ */
+struct VirtualOCDBCfg
+{
+  /** 
+   * This member function must return the default prefix. 
+   * 
+   * @return Prefix of OCDB specific storages
+   */
+  virtual const char* Prefix() const { return ""; }
+  /** 
+   * This member function should define the real setup. 
+   * 
+   * @param forSim Whether we're setting up for simulations or not 
+   */
+  virtual void Init(Bool_t forSim) 
+  {
+    ::Fatal("VirtualOCDBConfig", "Dummy init called - redefine!");
+  }
+  /** 
+   * Set the specific storage for a given key (possibly wild-carded). 
+   * 
+   * @param key    Key 
+   * @param ideal  Whether it is residual or ideal
+   */
+  void AddStore(const char*    key, 
+               Bool_t         ideal)
+  {
+    AliCDBManager* cdb = AliCDBManager::Instance();
+    const char* prefix = Prefix();
+    TString     path   = Form("alien://Folder=/alice/simulation/%s/%s",
+                             prefix, !ideal ? "Residual" : "Ideal");
+    ::Info("AddStore", "%s -> %s", key, path.Data());
+    cdb->SetSpecificStorage(key, path);
+  }
+};
+
+/** Global variable */
+VirtualOCDBCfg* ocdbCfg = 0;
+
+// 
+// EOF
+//
+
index 1c4f323..9a25b71 100644 (file)
@@ -1,3 +1,12 @@
+/**
+ * @file   Check.C
+ * @author Christian Holm Christensen <cholm@nbi.dk>
+ * @date   Wed Oct 15 13:01:59 2014
+ * 
+ * @brief  Run check of reconstructed and simulated data. 
+ *
+ * @note Do not modify this script 
+ */
 #if !defined( __CINT__) || defined(__MAKECINT__)
 #include <TROOT.h>
 #include <TFile.h>
index d3e38bf..2961499 100644 (file)
@@ -1,4 +1,33 @@
+/**
+ * @file   Config.C
+ * @author Christian Holm Christensen <cholm@nbi.dk>
+ * @date   Wed Oct 15 13:03:28 2014
+ * 
+ * @brief  Configuration of the simulation back-end 
+ *
+ * @note Do not modify this script. 
+ *
+ * This script depends on the two global variables detCfg and grp
+ * already being defined, typically by executing the scripts GRP.C and
+ * DetConfig.C from Simulate.C. 
+ *
+ * New event generator set-ups should be added to the class Setup. 
+ * 
+ * 
+ */
+
 // -------------------------------------------------------------------
+/** 
+ * Class that defines the set-up.  
+ *
+ * - The seed of the random number generator is read from the
+ *   environment if present.
+ *
+ * - The event generator type is read from the environment if present.
+ *   Otherwise we try to deduce it from the global object "grp".
+ * 
+ * - The impact parameter range is read from the environment if present. 
+ */
 struct Setup
 {
   TString runType;    // Event generator chosen
@@ -83,6 +112,10 @@ struct Setup
 
     Print();
   }
+  /** 
+   * Prinf information 
+   * 
+   */
   void Print()
   {
     Printf("=======================================================\n"
@@ -106,6 +139,10 @@ struct Setup
     else if (grp->IsPA() || grp->IsAP()) runType = "dpmjet";
     else if (grp->IsAA())                runType = "hijing";
   }
+  /** 
+   * Load the general libraries needed 
+   * 
+   */
   void LoadGen() {
     if (!gROOT->GetClass("AliStructFuncType")) 
       gSystem->Load("liblhapdf");      // Parton density functions
@@ -199,6 +236,11 @@ struct Setup
       Fatal("", "Invalid run type \"%s\" specified", runType.Data());
     return g;
   }
+  /** 
+   * Make our decayer 
+   * 
+   * @return Newly allocated decayer or null
+   */
   TVirtualMCDecayer* MakeDecayer()
   {
     if (runType.BeginsWith("hydjet")) return 0;
@@ -215,6 +257,13 @@ struct Setup
 
   // === PYTHIA ========================================================
   // Normal 
+  /** 
+   * Greate a pythia6 event generator 
+   * 
+   * @param tune Possible tune 
+   * 
+   * @return newly allocated generator or null
+   */
   AliGenerator* Pythia(const TString & tune)
   {
     // Int_t kCTEQ6l = 8;
@@ -303,6 +352,14 @@ struct Setup
     }
     return pythia;
   }
+  /** 
+   * Create a Pythia6 generator for high-flavor physics 
+   * 
+   * @param type    Which kind 
+   * @param harder  If true, make harder processes 
+   * 
+   * @return Newly allocated generator or null
+   */
   AliGenerator* PythiaHF(Int_t type, Bool_t harder=0) 
   { 
     LoadPythia();
@@ -411,7 +468,7 @@ struct Setup
     return cocktail;
   }
   /** 
-   * Make a DPMJet generator for AA, pA, or Ap. 
+   * Make a DPMJet generator for pp, AA, pA, or Ap. 
    * 
    * @param fragments If true, make fragments 
    * 
@@ -604,6 +661,10 @@ struct Setup
   }
 };
 
+/** 
+ * Configure the simulation backend 
+ * 
+ */
 void Config()
 {
   // --- Get settings from environment variables --------------------
@@ -634,9 +695,6 @@ void Config()
   rl->SetNumberOfEventsPerFile(1000);
   gAlice->SetRunLoader(rl);
 
-  // --- Trigger configuration ---------------------------------------
-  // AliSimulation::Instance()->SetTriggerConfig(grp->IsAA() ? "Pb-Pb" : "p-p");
-
   //
   //=======================================================================
   // Steering parameters for ALICE simulation
@@ -660,10 +718,10 @@ void Config()
   gMC->SetProcess("MULS",1);
   gMC->SetProcess("RAYL",1);
   
-  Float_t cut = 1.e-3;        // 1MeV cut by default
-  Float_t tofmax = 1.e10;
 
   // --- Tracking cuts -----------------------------------------------
+  Float_t cut = 1.e-3;        // 1MeV cut by default
+  Float_t tofmax = 1.e10;
   gMC->SetCut("CUTGAM", cut);
   gMC->SetCut("CUTELE", cut);
   gMC->SetCut("CUTNEU", cut);
index 7ae5f81..001a21c 100644 (file)
-/** 
- * Base class for detector configuration. By default, everything is on
- * except ACORDE.
+/**
+ * @file   DetConfig.C
+ * @author Christian Holm Christensen <cholm@nbi.dk>
+ * @date   Wed Oct 15 13:19:34 2014
+ * 
+ * @brief  Particular setup of detectors to use. 
+ * 
+ * This is used by Simulate.C, Reconstruct.C, QA.C, and AOD.C
  */
-struct VirtualDetCfg 
-{
-  virtual Bool_t UseABSO()   const { return true;  }
-  virtual Bool_t UseACORDE() const { return false; }
-  virtual Bool_t UseDIPO()   const { return true;  }
-  virtual Bool_t UseEMCAL()  const { return true;  }
-  virtual Bool_t UseFMD()    const { return true;  }
-  virtual Bool_t UseFRAME()  const { return true;  }
-  virtual Bool_t UseHALL()   const { return true;  }
-  virtual Bool_t UseITS()    const { return true;  }
-  virtual Bool_t UseMAG()    const { return true;  }
-  virtual Bool_t UseMUON()   const { return true;  }
-  virtual Bool_t UsePHOS()   const { return true;  }
-  virtual Bool_t UsePIPE()   const { return true;  }
-  virtual Bool_t UsePMD()    const { return true;  }
-  virtual Bool_t UseHMPID()  const { return true;  }
-  virtual Bool_t UseSHIL()   const { return true;  }
-  virtual Bool_t UseT0()     const { return true;  }
-  virtual Bool_t UseTOF()    const { return true;  }
-  virtual Bool_t UseTPC()    const { return true;  }
-  virtual Bool_t UseTRD()    const { return true;  }
-  virtual Bool_t UseVZERO()  const { return true;  }
-  virtual Bool_t UseZDC()    const { return true;  }
-  virtual void Print() 
-  {
-    Printf("ABSO:   %3s", UseABSO()    ? "yes" : "no");
-    Printf("ACORDE: %3s", UseACORDE()  ? "yes" : "no");
-    Printf("DIPO:   %3s", UseDIPO()    ? "yes" : "no");
-    Printf("EMCAL:  %3s", UseEMCAL()   ? "yes" : "no");
-    Printf("FMD:    %3s", UseFMD()     ? "yes" : "no");
-    Printf("FRAME:  %3s", UseFRAME()   ? "yes" : "no");
-    Printf("HALL:   %3s", UseHALL()    ? "yes" : "no");
-    Printf("ITS:    %3s", UseITS()     ? "yes" : "no");
-    Printf("MAG:    %3s", UseMAG()     ? "yes" : "no");
-    Printf("MUON:   %3s", UseMUON()    ? "yes" : "no");
-    Printf("PHOS:   %3s", UsePHOS()    ? "yes" : "no");
-    Printf("PIPE:   %3s", UsePIPE()    ? "yes" : "no");
-    Printf("PMD:    %3s", UsePMD()     ? "yes" : "no");
-    Printf("HMPID:  %3s", UseHMPID()   ? "yes" : "no");
-    Printf("SHIL:   %3s", UseSHIL()    ? "yes" : "no");
-    Printf("T0:     %3s", UseT0()      ? "yes" : "no");
-    Printf("TOF:    %3s", UseTOF()     ? "yes" : "no");
-    Printf("TPC:    %3s", UseTPC()     ? "yes" : "no");
-    Printf("TRD:    %3s", UseTRD()     ? "yes" : "no");
-    Printf("VZERO:  %3s", UseVZERO()   ? "yes" : "no");
-    Printf("ZDC:    %3s", UseZDC()     ? "yes" : "no");
-  }
-  /** 
-   * Get the string of enabled detectors for local reconstruction.
-   * 
-   * @param enable On return, contains string of enable detectors
-   */
-  void GetRecoString(TString& enable) const
-  {
-    if (UseITS())      Append2Str(enable, "ITS"); 
-    if (UseTPC())      Append2Str(enable, "TPC"); 
-    if (UseTRD())      Append2Str(enable, "TRD"); 
-    if (UseTOF())      Append2Str(enable, "TOF"); 
-    if (UsePHOS())     Append2Str(enable, "PHOS"); 
-    if (UseHMPID())    Append2Str(enable, "HMPID"); 
-    if (UseEMCAL())    Append2Str(enable, "EMCAL"); 
-    if (UseMUON())     Append2Str(enable, "MUON"); 
-    if (UseFMD())      Append2Str(enable, "FMD"); 
-    if (UseZDC())      Append2Str(enable, "ZDC"); 
-    if (UsePMD())      Append2Str(enable, "PMD"); 
-    if (UseT0())       Append2Str(enable, "T0"); 
-    if (UseVZERO())    Append2Str(enable, "VZERO");
-  }
-  /** 
-   * Get the string of detectors for which we should make Summable
-   * Digits
-   * 
-   * @param sDigits On returm contains the string of enable detectors
-   */
-  void GetSDigitString(TString& sDigits) const 
-  {
-    if (UseTRD())      Append2Str(sDigits, "TRD"); 
-    if (UseTOF())      Append2Str(sDigits, "TOF"); 
-    if (UsePHOS())     Append2Str(sDigits, "PHOS"); 
-    if (UseHMPID())    Append2Str(sDigits, "HMPID"); 
-    if (UseEMCAL())    Append2Str(sDigits, "EMCAL"); 
-    if (UseMUON())     Append2Str(sDigits, "MUON"); 
-    if (UseFMD())      Append2Str(sDigits, "FMD"); 
-    if (UseZDC())      Append2Str(sDigits, "ZDC"); 
-    if (UsePMD())      Append2Str(sDigits, "PMD"); 
-    if (UseT0())       Append2Str(sDigits, "T0"); 
-    if (UseVZERO())    Append2Str(sDigits, "VZERO");
-  }
-  /** 
-   * Get the sting of detectors for which we should do the hit to
-   * digit conversion directly.
-   * 
-   * @param fromHits On returm contains the string of enable detectors
-   */
-  void GetHits2DigitsString(TString& fromHits) const
-  {
-    if (UseITS())      Append2Str(fromHits, "ITS");
-    if (UseTPC())      Append2Str(fromHits, "TPC");
-  }
-  /** 
-   * Append a C style string to a string, possibly adding a space before
-   * 
-   * @param str     Where to append
-   * @param append  What to append
-   */
-  static void Append2Str(TString& str, const char* append)
-  {
-    if (!str.IsNull()) str.Append(" ");
-    str.Append(append);
-  }
-  
-};
-/** Global variable */
-VirtualDetCfg* detCfg = 0;
-
 /** 
  * Particular set-up of detectors to use.  By default everything but
  * ACORDE is on.  Here, we turn off a few other detectors.
index 02c148b..90461a6 100644 (file)
@@ -43,6 +43,7 @@ Arguments = "$4 $1 $4_Stage_$2.xml $2";
 InputFile = {
        "LF:@data@/$4.C",
        "LF:@data@/$4Config.C",
+       "LF:@data@/BaseConfig.C",
        "LF:@data@/DetConfig.C",
        "LF:@data@/GRP.C",
        "LF:@data@/fmd_corrections.root",
@@ -62,6 +63,6 @@ JDLVariables = {
    "OutputDir"
 };
 Workdirectorysize = {"10000MB"};
-#
-# EOF
-#
+# Local Variables:
+#  mode: conf-javaprop
+# End:
index e49b188..986c102 100644 (file)
@@ -45,6 +45,7 @@ InputDataCollection={
 InputFile={
        "LF:@data@/$4.C",
        "LF:@data@/$4Config.C",
+       "LF:@data@/BaseConfig.C",
        "LF:@data@/DetConfig.C",
        "LF:@data@/GRP.C",
        "LF:@data@/fmd_corrections.root"
@@ -70,7 +71,7 @@ JDLVariables={
 };
 LPMActivity="86400";
 
-#
-# EOF
-#
+# Local Variables:
+#  mode: conf-javaprop
+# End:
 
index df92b6c..3a4ea20 100644 (file)
@@ -1,39 +1,12 @@
-struct VirtualOCDBCfg
-{
-  /** 
-   * This member function must return the default prefix. 
-   * 
-   * @return Prefix of OCDB specific storages
-   */
-  virtual const char* Prefix() const { return ""; }
-  /** 
-   * This member function should define the real setup. 
-   * 
-   * @param forSim Whether we're setting up for simulations or not 
-   */
-  virtual void Init(Bool_t forSim) 
-  {
-    ::Fatal("VirtualOCDBConfig", "Dummy init called - redefine!");
-  }
-  /** 
-   * Set the specific storage for a given key (possibly wild-carded). 
-   * 
-   * @param key    Key 
-   * @param ideal  Whether it is residual or ideal
-   */
-  void AddStore(const char*    key, 
-               Bool_t         ideal)
-  {
-    AliCDBManager* cdb = AliCDBManager::Instance();
-    const char* prefix = Prefix();
-    TString     path   = Form("alien://Folder=/alice/simulation/%s/%s",
-                             prefix, !ideal ? "Residual" : "Ideal");
-    ::Info("AddStore", "%s -> %s", key, path.Data());
-    cdb->SetSpecificStorage(key, path);
-  }
-};
-VirtualOCDBCfg* ocdbCfg = 0;
-
+/**
+ * @file   OCDBConfig.C
+ * @author Christian Holm Christensen <cholm@nbi.dk>
+ * @date   Wed Oct 15 13:19:34 2014
+ * 
+ * @brief  Particular setup of specific storages
+ * 
+ * This is used by Simulate.C, Reconstruct.C
+ */
 /** 
  * Specific implementation.  Note, this requires that GRP.C has been
  * loaded and exectuted before calling Init.
@@ -74,6 +47,6 @@ void OCDBConfig()
   ::Info("OCDBConfig", "Creating OCDB configuration");
   ocdbCfg = new OCDBCfg;
 }
-
-
-
+// 
+// EOF
+// 
index 99ccd98..dff0b6a 100644 (file)
@@ -1,3 +1,17 @@
+/**
+ * @file   PlotSysInfo.C
+ * @author Christian Holm Christensen <cholm@nbi.dk>
+ * @date   Wed Oct 15 13:21:47 2014
+ * 
+ * @brief  A script to plot information from system watch files
+ */
+/** 
+ * Make a canvas 
+ * 
+ * @param title Title on canvas 
+ * 
+ * @return The canvas 
+ */
 TVirtualPad* MakeCanvas(const char* title="")
 {
   static Int_t cId = 0;
@@ -7,15 +21,21 @@ TVirtualPad* MakeCanvas(const char* title="")
   c->cd();
   return c;
 }
-
+/** 
+ * Summarize the usage 
+ * 
+ * @param tree tree to look in 
+ * @param exp  expression to draw 
+ * @param cut  Cut to use 
+ * @param draw Whether to draw or not 
+ * 
+ * @return The summed usage 
+ */
 Double_t SumUsage(TTree*      tree, 
                  const char* exp, 
                  const char* cut, 
                  bool        draw=false)
 {
-  //
-  // return sum of usage
-  //
   if (draw) MakeCanvas(Form("%s [%s]", exp, cut));
   
   Int_t  entries = tree->Draw(exp, cut, (draw ? "" : "goff"));
@@ -24,6 +44,16 @@ Double_t SumUsage(TTree*      tree,
   Double_t mean = TMath::Mean(entries, tree->GetV1());
   return entries * mean;
 }
+/** 
+ * Return the most heavy load 
+ * 
+ * @param tree  tree to look in 
+ * @param exp   expression to draw 
+ * @param cut   Cut to use 
+ * @param order Off set
+ * 
+ * @return Most heavy usage 
+ */
 Double_t TopUsage(TTree*      tree, 
                  const char* exp, 
                  const char* cut, 
@@ -40,6 +70,19 @@ Double_t TopUsage(TTree*      tree,
   
   return value;
 }
+/** 
+ * Extract a histogram from a resource spec 
+ * 
+ * @param tree    tree to look in 
+ * @param exp     expression to draw 
+ * @param cut     Cut to use 
+ * @param name    Name of histogram
+ * @param xtitle  X axis title
+ * @param ytitle  Y axis title 
+ * @param draw    If true, draw 
+ * 
+ * @return The extract histogram or null
+ */
   
 TH1* ExtractHist(TTree*      tree,
                 const char* exp, 
@@ -65,7 +108,16 @@ TH1* ExtractHist(TTree*      tree,
   return ret;
 }
                 
-                
+/** 
+ * Print some information to output stream
+ *  
+ * @param o             Stream
+ * @param name          Step
+ * @param dT            Change in time
+ * @param dVM           Change in VM usage
+ * @param alldT         Sum of time
+ * @param alldVM        Sum of VM usage 
+ */             
 void Print(std::ostream& o,
           const char*   name, 
           Double_t      dT, 
@@ -79,7 +131,10 @@ void Print(std::ostream& o,
     << 100*(alldT  > 0 ? dT  / alldT  : 0) << "\t" 
     << 100*(alldVM > 0 ? dVM / alldVM : 0) << std::endl;
 }
-
+/**
+ * Detectors
+ * 
+ */
 const char* dets[] = {"ITS", 
                      "TPC", 
                      "TRD", 
@@ -97,12 +152,15 @@ const char* dets[] = {"ITS",
                      "HLT",
                      0 };
 
-
+/** 
+ * Plot information from one file 
+ * 
+ * @param file  File to plot from 
+ * @param draw  Drawing flags
+ */
 void
 Plot1SysInfo(const char* file, UShort_t draw=0x1)
 {
-  // gROOT->LoadMacro("$ALICE_ROOT/../master-src/macros/PlotSys.C+");
-
   // --- Create output file and tree ---------------------------------
   TString rootOut(file); 
   rootOut.ReplaceAll(".log", ".root");
@@ -110,8 +168,8 @@ Plot1SysInfo(const char* file, UShort_t draw=0x1)
   Info("", "Writing to ROOT file %s", rootOut.Data());
   TFile* out  = TFile::Open(rootOut, "RECREATE");
   TTree* tree = AliSysInfo::MakeTree(file);
-
-
+  tree->SetName("T");
+  
   
   // --- Create ASCII output ------------------------------------------
   TString sumOut(rootOut); 
@@ -167,16 +225,25 @@ Plot1SysInfo(const char* file, UShort_t draw=0x1)
     idet++;
   }
   ascii.close();
-
+  tree->Write();
+  out->Write();
+  out->ls();
   new TBrowser;
 }
 
-  
-
+/** 
+ * Plot for one job both simulation and reconstruction usage 
+ * 
+ * @param pid Job identifier 
+ */
+void
 PlotSysInfo(ULong_t pid=431808952)
 {
   Plot1SysInfo(Form("%d_simwatch.log", pid));
   Plot1SysInfo(Form("%d_recowatch.log", pid));
 }
+// 
+// EOF
+// 
 
   
index e6ebbc7..9216b8e 100644 (file)
@@ -8,14 +8,20 @@
  * @note Do not modify this script. 
  *
  *
- * This script reads in two other scripts 
+ * This script reads in 4 other scripts 
  *
  * - GRP.C to load the global run parameters for the selected run,
  *   such as collision system, energy, etc.
  * 
  * - AODConfig.C which defines a number of functions that return
  *   either true or false.  The tasks added depends on these functions
+ *
+ * - BaseConfig.C which defines some base classes 
+ * 
+ * - DetConfig.C which defines which detectors are active and on. 
  * 
+ * Users can customize QAConfig.C and DetConfig.C according to their
+ * needs
  */
 // Trigger mask.
 UInt_t kTriggerInt        = AliVEvent::kAnyINT;
@@ -622,6 +628,7 @@ void QA(UInt_t      run,
   // Get GRP parameters.  Defines global "grp" as a pointer to GRPData
   //
   gROOT->Macro(Form("GRP.C(%d)", run));
+  gROOT->Macro("BaseConfig.C");
   gROOT->Macro("QAConfig.C");
   gROOT->Macro("DetConfig.C");
   qaCfg->Print();
index 25942c6..9aa42ab 100644 (file)
@@ -1,3 +1,13 @@
+/**
+ * @file   QAConfig.C
+ * @author Christian Holm Christensen <cholm@nbi.dk>
+ * @date   Wed Oct 15 13:27:27 2014
+ * 
+ * @brief  Configuratin of QA pass 
+ */
+/** 
+ * Configuration of which QA tasks to run. Base class is declared in QA.C 
+ */
 struct QACfg : public VirtualQACfg
 {
   /** @return  */
@@ -70,6 +80,10 @@ struct QACfg : public VirtualQACfg
   virtual Int_t DebugLevel() const { return 1; }
 };
 
+/** 
+ * Create our QA configuration 
+ * 
+ */
 void QAConfig()
 {
   Info("QAConfig", "Creating configuration object");
index bacf455..ecbe1dc 100644 (file)
@@ -344,9 +344,6 @@ All arguments are passed on to other script e.g., `simrun.sh`
 * _dir_:   Directory where intermediate data can be found
 * _stage_: Stage to execute
 
-
 Local Variables:
   mode: markdown
 End:
-
-
index af7ff71..ba7f912 100644 (file)
@@ -1,3 +1,10 @@
+/**
+ * @file   Reconstruct.C
+ * @author Christian Holm Christensen <cholm@nbi.dk>
+ * @date   Wed Oct 15 13:27:45 2014
+ * 
+ * @brief  Steering script for the reconstruction 
+ */
 /** 
  * Run the reconstruction 
  * 
@@ -7,9 +14,13 @@ void Reconstruct(UInt_t run)
 {
   // -----------------------------------------------------------------
   // 
-  // Get GRP parameters.  Defines global "grp" as a pointer to GRPData
-  //
+  // - Get GRP parameters.  Defines global "grp" as a pointer to GRPData
+  // - Load base class definitions in BaseConfig.C
+  // - Get which detectors are turned on in "detCfg". 
+  // - Create the OCDB configuration object "ocdbCfg"
+  // 
   gROOT->Macro(Form("GRP.C(%d)", run));
+  gROOT->Macro("BaseConfig.C");
   gROOT->Macro("DetConfig.C"); 
   gROOT->Macro("OCDBConfig.C"); 
 
@@ -24,13 +35,13 @@ void Reconstruct(UInt_t run)
   AliReconstruction reco;
   TString enable;  
   detCfg->GetRecoString(enable);
-  if (is10h) enable.ReplaceAll("MUON", "");
+  // if (is10h) enable.ReplaceAll("MUON", "");
   reco.SetRunReconstruction(enable);
 
   // -----------------------------------------------------------------
   //
   // switch off cleanESD, write ESDfriends and Alignment data, clean
-  // up rec-points
+  // up rec-points (except for ITS)
   // 
   reco.SetCleanESD(kFALSE);
   reco.SetWriteESDfriend();
@@ -65,7 +76,14 @@ void Reconstruct(UInt_t run)
     reco.SetRecoParam("ZDC",AliZDCRecoParamPbPb::GetHighFluxParam(2760));
 
   // --- Override some settings in the ITS reco ----------------------
-  if (is10h) {
+  // 
+  // This was needed for the ITS stand-alone tracks to be produced in
+  // LHC14b8a and LHC14b8b.  However, using the LowMult reco-param
+  // object for all events means using AliITSVertexer3D irrespective
+  // of multiplicity.  AliITSVertexer3D can use more than 4GB of
+  // memory for central Hijing events, which means that the jobs are
+  // likely to hit the 8GB hard limit.
+  if (false && is10h) {
     printf("Overriding ITS/Calib/RecoParam for run %d to do "
           "reco even in absence of trigger\n", grp->run);
     man->SetRun(grp->run);
index 26caaca..3b1b410 100644 (file)
@@ -2,15 +2,16 @@
 # To submit this JDL:
 #
 #   alien_submit alien:@data@/JDL \
-#      <run number> <N_jobs> <N_events> <tag> <generator>
+#      <run number> <N_jobs> <N_events> <tag> <generator> [<more>]
 #
 # where 
 #
-#   <run number>   is the run number 
-#   <N_jobs>       is the number of sub-jobs 
-#   <N_events>     is the number of events per sub-job
-#   <tag>          is a single-word tag 
-#   <generator>    is the name of the generator 
+#   $1: <run number>   is the run number 
+#   $2: <N_jobs>       is the number of sub-jobs 
+#   $3: <N_events>     is the number of events per sub-job
+#   $4: <tag>          is a single-word tag 
+#   $5: <generator>    is the name of the generator 
+#   $6: <more>         is more arguments for simrun.sh 
 #
 # The output is written to alien:@out@/test/<tag>
 #
@@ -21,15 +22,15 @@ Jobtag={
 };
 
 Packages = {
-       "VO_ALICE@AliRoot::@aliroot@",
-       "VO_ALICE@GEANT3::@geant@",
-       "VO_ALICE@ROOT::@root@",
-       "VO_ALICE@APISCONFIG::V1.1x",
-       "VO_ALICE@boost::v1_43_0",
-       "VO_ALICE@cgal::v3.6",
-       "VO_ALICE@fastjet::v2.4.2",
-       "VO_ALICE@jemalloc::v3.0.0"
-};
+        "VO_ALICE@AliRoot::@aliroot@",
+        "VO_ALICE@GEANT3::@geant@",
+        "VO_ALICE@ROOT::@root@",
+        "VO_ALICE@APISCONFIG::V1.1x",
+        "VO_ALICE@boost::v1_43_0",
+        "VO_ALICE@cgal::v3.6",
+        "VO_ALICE@fastjet::v2.4.2",
+        "VO_ALICE@jemalloc::v3.0.0"
+        };
 
 
 TTL="72000";
@@ -40,6 +41,7 @@ Requirements=member(other.GridPartitions,"PDC08_2");
 Validationcommand="/alice/validation/validation.sh";
 
 InputFile={
+       "LF:@data@/BaseConfig.C",
        "LF:@data@/Check.C",
        "LF:@data@/Config.C",
        "LF:@data@/DetConfig.C",
@@ -57,11 +59,11 @@ InputFile={
 };
 
 Output = {
-       "log_archive:stderr.log,stdout.log,tag.log,sim.log,rec.log,check.log,qa.log,aod.log@disk=1",
-        "QA_archive.zip:QAresults*.root,event_stat*.root,trending*.root,fileinfo*.log,*.stat.qa*@disk=2",
-        "root_archive.zip:galice.root,Kinematics.root,TrackRefs.root,Trigger.root,AliESDs.root,AliESDfriends.root,Run*.root,ITS.RecPoints.root,@disk=2",
-        "aod_archive.zip:pyxsec*.root,AODQA.root,AliAOD*.root,FilterEvents_Trees*.root,*.stat.aod@disk=3",
-        "EventStat_temp*.root@disk=2"
+       "log_archive:*.log@disk=1",
+       "QA_archive.zip:QAresults*.root,event_stat*.root,trending*.root,*.stat.qa*@disk=2",
+       "root_archive.zip:galice.root,Kinematics.root,TrackRefs.root,Trigger.root,AliESD*.root,Run*.root,*.RecPoints.root,check.root@disk=2",
+       "aod_archive.zip:pyxsec*.root,AODQA.root,AliAOD*.root,FilterEvents_Trees*.root,*.stat.aod@disk=3",
+       "EventStat_temp*.root@disk=2"
 };
 
 OutputDir="@out@/$4/$1/#alien_counter_03i#";
@@ -72,7 +74,11 @@ JDLVariables={
 };
 
 #
-splitarguments="--run $1 --event $3 --process $5 --qa --aod --check --number #alien_counter# --bmin 0 --bmax 3";
+splitarguments="--run $1 --event $3 --process $5 --qa --aod --check --number #alien_counter# $6";
 split="production:1-$2";
 
 Workdirectorysize={"10000MB"};
+
+# Local Variables:
+#  mode: conf-javaprop
+# End:
index 4910a07..c307ff6 100644 (file)
@@ -1,3 +1,10 @@
+/**
+ * @file   Simulate.C
+ * @author Christian Holm Christensen <cholm@nbi.dk>
+ * @date   Wed Oct 15 13:28:09 2014
+ * 
+ * @brief  Steering script for the simulation 
+ */
 /** 
  * Run the simulation 
  * 
@@ -8,11 +15,15 @@ void Simulate(Int_t nev=1, UInt_t run=0)
 {
   // -----------------------------------------------------------------
   // 
-  // Get GRP parameters.  Defines global "grp" as a pointer to GRPData
-  //
+  // - Get GRP parameters.  Defines global "grp" as a pointer to GRPData
+  // - Load base class definitions in BaseConfig.C
+  // - Get which detectors are turned on in "detCfg". 
+  // - Create the OCDB configuration object "ocdbCfg"
+  // 
   gROOT->Macro(Form("GRP.C(%d)", run));
-  gROOT->Macro("DetConfig.C");
-  gROOT->Macro("OCDBConfig.C");
+  gROOT->Macro("BaseConfig.C");
+  gROOT->Macro("DetConfig.C"); 
+  gROOT->Macro("OCDBConfig.C"); 
 
   // --- Get GRP to deduce collision system --------------------------
   Bool_t         isAA  = grp->IsAA();
index f363f9c..75a20c4 100644 (file)
@@ -1,4 +1,15 @@
+/**
+ * @file   Tag.C
+ * @author Christian Holm Christensen <cholm@nbi.dk>
+ * @date   Wed Oct 15 13:28:47 2014
+ * 
+ * @brief  Update tags 
+ */
 //____________________________________________________________________
+/** 
+ * Tag files 
+ * 
+ */
 void Tag() 
 {
   const char* turl = gSystem->Getenv("ALIEN_JDL_OUTPUTDIR");
@@ -26,6 +37,13 @@ void Tag()
 }
 
 //____________________________________________________________________
+/** 
+ * Extract production information from path 
+ * 
+ * @param fPeriod  On return, the period
+ * @param fPass    On return, the possible pass number 
+ * @param fName    On return, the full name 
+ */
 void GetProductionInfo(TString &fPeriod, TString &fPass, TString &fName) 
 {
   const char* turl = gSystem->Getenv("ALIEN_JDL_OUTPUTDIR");
@@ -43,6 +61,13 @@ void GetProductionInfo(TString &fPeriod, TString &fPass, TString &fName)
 }
   
 //____________________________________________________________________
+/** 
+ * Get the AliROOT, ROOT, and GEANT3 versions from the JDL packages
+ * 
+ * @param fAliroot On return, the AliROOT version 
+ * @param froot    On return, the ROOT version 
+ * @param fgeant   On return, the GEANT3 version 
+ */
 void GetVersions(TString &fAliroot, TString &froot, TString &fgeant) 
 {
   const char* fver = gSystem->Getenv("ALIEN_JDL_PACKAGES");
@@ -69,6 +94,11 @@ void GetVersions(TString &fAliroot, TString &froot, TString &fgeant)
 }
 
 //____________________________________________________________________
+/** 
+ * Get the global univeral identifier of the ESD file 
+ * 
+ * @param guid 
+ */
 void GetGUID(TString &guid) 
 {
   ofstream myfile ("guid.txt");
@@ -93,6 +123,20 @@ void GetGUID(TString &guid)
 
 
 //____________________________________________________________________
+/** 
+ * Update the tags 
+ * 
+ * @param faliroot  AliROOT version 
+ * @param froot     ROOT version
+ * @param fgeant    GEANT3 version
+ * @param turl      UrL we're at 
+ * @param guid      Global universal identifier 
+ * @param fperiod   Period
+ * @param fpass     Pass
+ * @param fname     Full name 
+ * 
+ * @return 
+ */
 Bool_t UpdateTag(TString faliroot, 
                 TString froot, 
                 TString fgeant, 
index adafb44..06f2409 100755 (executable)
@@ -247,6 +247,7 @@ push()
        GRP.C                   \
        Simulate.C              \
        Config.C                \
+       BaseConfig.C            \
        DetConfig.C             \
        OCDBConfig.C            \
        Reconstruct.C           \
index 6aa3e17..6b50873 100755 (executable)
@@ -81,7 +81,10 @@ while true ; do
        alien_spy $pid $file > $tmp
     fi
     l1=`stat -c %s $tmp`
-    l2=`stat -c %s $log` 
+    l2=0
+    if test -f $log ; then 
+       l2=`stat -c %s $log` 
+    fi
     if test $l1 -ge $l2 ; then 
        mv $tmp $log
     else 
index 51dbd18..9a86e91 100755 (executable)
@@ -22,6 +22,7 @@ files="AOD.C  \
        AODConfig.C     \
        Check.C         \
        Config.C        \
+       BaseConfig.C    \
         DetConfig.C    \
        OCDBConfig.C    \
        GRP.C           \