ROOT logo
#include <fstream>

/**
 * Forward directory 
 * 
 */
const char* fwd = "$ALICE_ROOT/PWGLF/FORWARD/analysis2";

const char* url = "https://alice-logbook.cern.ch/logbook/date_online.php?p_cont=sb&p_rsob=l.run&p_rsob_dir=DESC&ptcf_rtc=%2CExactly%2CFMD%3B%2CAt+least&prsf_rtype=PHYSICS%2C&p_rspn=1&prsf_rn=";

/** 
 * Extract the noise/gain correction 
 * 
 */
void
ExtractNoiseGain(Long_t runNo=0) 
{

  gSystem->AddIncludePath(Form("-I%s -I$ALICE_ROOT/include", fwd));
  gROOT->Macro(Form("%s/scripts/LoadLibs.C", fwd));
  gROOT->LoadMacro("ExtractNG.C+");

  std::ofstream f("Upload.C");
  f << "// Generated by ExtractELoss.C\n"
    << "TString MakeDest(const TString& dest, const TString& fname)\n"
    << "{\n"
    << "  TString tmp(dest);\n"
    << "  if (!tmp.IsNull()) {\n"
    << "    if (!tmp.EndsWith(\"/\")) tmp.Append(\"/\");\n"
    << "    tmp.Append(fname);\n"
    << "  }\n"
    << "  return tmp;\n"
    << "}\n\n"
    << "void Upload(const TString& dest=\"\")\n"
    << "{\n"
    << "  gROOT->Macro(\"" << fwd << "/scripts/LoadLibs.C\");\n"
    << "  \n"
    << "  const char* fmdFile = \"fmd_corrections.root\";\n"
    << "  TString fdest = MakeDest(dest, fmdFile);\n"
    << "  \n"
    << "  AliForwardCorrectionManager::Instance().Append(fmdFile, fdest);\n"
    << "}\n"
    << "// EOF\n"
    << std::endl;
  f.close();

  if (runNo > 0) ExtractForRun(runNo);
  else           ExtractAll();
  
  Info("ExtractNoiseGain", 
       "Run generated Upload.C(DEST) script to copy files in place");
}
// 
// EOF
// 
 ExtractNoiseGain.C:1
 ExtractNoiseGain.C:2
 ExtractNoiseGain.C:3
 ExtractNoiseGain.C:4
 ExtractNoiseGain.C:5
 ExtractNoiseGain.C:6
 ExtractNoiseGain.C:7
 ExtractNoiseGain.C:8
 ExtractNoiseGain.C:9
 ExtractNoiseGain.C:10
 ExtractNoiseGain.C:11
 ExtractNoiseGain.C:12
 ExtractNoiseGain.C:13
 ExtractNoiseGain.C:14
 ExtractNoiseGain.C:15
 ExtractNoiseGain.C:16
 ExtractNoiseGain.C:17
 ExtractNoiseGain.C:18
 ExtractNoiseGain.C:19
 ExtractNoiseGain.C:20
 ExtractNoiseGain.C:21
 ExtractNoiseGain.C:22
 ExtractNoiseGain.C:23
 ExtractNoiseGain.C:24
 ExtractNoiseGain.C:25
 ExtractNoiseGain.C:26
 ExtractNoiseGain.C:27
 ExtractNoiseGain.C:28
 ExtractNoiseGain.C:29
 ExtractNoiseGain.C:30
 ExtractNoiseGain.C:31
 ExtractNoiseGain.C:32
 ExtractNoiseGain.C:33
 ExtractNoiseGain.C:34
 ExtractNoiseGain.C:35
 ExtractNoiseGain.C:36
 ExtractNoiseGain.C:37
 ExtractNoiseGain.C:38
 ExtractNoiseGain.C:39
 ExtractNoiseGain.C:40
 ExtractNoiseGain.C:41
 ExtractNoiseGain.C:42
 ExtractNoiseGain.C:43
 ExtractNoiseGain.C:44
 ExtractNoiseGain.C:45
 ExtractNoiseGain.C:46
 ExtractNoiseGain.C:47
 ExtractNoiseGain.C:48
 ExtractNoiseGain.C:49
 ExtractNoiseGain.C:50
 ExtractNoiseGain.C:51
 ExtractNoiseGain.C:52
 ExtractNoiseGain.C:53
 ExtractNoiseGain.C:54
 ExtractNoiseGain.C:55
 ExtractNoiseGain.C:56