ROOT logo
/**
 * Script to draw the energy loss fits 
 * 
 * @ingroup pwglf_forward_scripts_corr
 */
  
//____________________________________________________________________
/** 
 * Extract the energy loss correction object from file and rename it 
 * according to the settings 
 * 
 * @param fname  File to extract from 
 * @param runNo  Run number 
 * @param sys    Collision system (pp, PbPb)
 * @param sNN    Center of mass energy (in GeV) per nucleon
 * @param fld    L3 magnetic field (-5,0,5) in kGaus
 * @param sat    For satellite interactions 
 * 
 * @ingroup pwglf_forward_scripts_corr
 */
void
ExtractMCCorr(const char* fname,
	      ULong_t     runNo=0, 
	      UShort_t    sys=0,
	      UShort_t    sNN=0,
	      Short_t     fld=999,
	      Bool_t      sat=false)
{
  const char* fwd = "$ALICE_ROOT/PWGLF/FORWARD/analysis2";
  gSystem->AddIncludePath(Form("-I%s -I$ALICE_ROOT/include", fwd));
  gROOT->Macro(Form("%s/scripts/LoadLibs.C", fwd));
  gROOT->LoadMacro(Form("%s/corrs/CorrExtractor.C++g", fwd));
  
  CorrExtractor fmdEx(&AliForwardCorrectionManager::Instance());
  if (runNo > 0)   fmdEx.fRunNo     = runNo;
  if (sys   > 0)   fmdEx.fSys       = sys;
  if (sNN   > 0)   fmdEx.fSNN       = sNN;
  if (fld   < 999) fmdEx.fField     = fld;
  if (sat)         fmdEx.fSatellite = sat;
  if (fmdEx.Init(fname, "ForwardCorrSums", "fmd_corrections.root")) 
    fmdEx.Extract(AliFMDCorrSecondaryMap::Class(),
		  "ForwardCorrResults");

  CorrExtractor spdEx(&AliCentralCorrectionManager::Instance());
  if (runNo > 0)   spdEx.fRunNo     = runNo;
  if (sys   > 0)   spdEx.fSys       = sys;
  if (sNN   > 0)   spdEx.fSNN       = sNN;
  if (fld   < 999) spdEx.fField     = fld;
  if (sat)         spdEx.fSatellite = sat;
  if (spdEx.Init(fname, "CentralCorrSums", "spd_corrections.root")) {
    spdEx.Extract(AliCentralCorrSecondaryMap::Class(), "CentralCorrResults");
    spdEx.Extract(AliCentralCorrAcceptance::Class(), "CentralCorrResults");
  }

  std::ofstream f("Upload.C");
  f << "// Generated by ExtractMCCorr.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"
    << "  const char* spdFile = \"spd_corrections.root\";\n"
    << "  TString fdest = MakeDest(dest, fmdFile);\n"
    << "  TString sdest = MakeDest(dest, spdFile);\n"
    << "  \n"
    << "  AliForwardCorrectionManager::Instance().Append(fmdFile, fdest);\n"
    << "  AliCentralCorrectionManager::Instance().Append(spdFile, sdest);\n"
    << "}\n"
    << "// EOF\n"
    << std::endl;
  f.close();
}

//____________________________________________________________________
//
// EOF
//
 ExtractMCCorr.C:1
 ExtractMCCorr.C:2
 ExtractMCCorr.C:3
 ExtractMCCorr.C:4
 ExtractMCCorr.C:5
 ExtractMCCorr.C:6
 ExtractMCCorr.C:7
 ExtractMCCorr.C:8
 ExtractMCCorr.C:9
 ExtractMCCorr.C:10
 ExtractMCCorr.C:11
 ExtractMCCorr.C:12
 ExtractMCCorr.C:13
 ExtractMCCorr.C:14
 ExtractMCCorr.C:15
 ExtractMCCorr.C:16
 ExtractMCCorr.C:17
 ExtractMCCorr.C:18
 ExtractMCCorr.C:19
 ExtractMCCorr.C:20
 ExtractMCCorr.C:21
 ExtractMCCorr.C:22
 ExtractMCCorr.C:23
 ExtractMCCorr.C:24
 ExtractMCCorr.C:25
 ExtractMCCorr.C:26
 ExtractMCCorr.C:27
 ExtractMCCorr.C:28
 ExtractMCCorr.C:29
 ExtractMCCorr.C:30
 ExtractMCCorr.C:31
 ExtractMCCorr.C:32
 ExtractMCCorr.C:33
 ExtractMCCorr.C:34
 ExtractMCCorr.C:35
 ExtractMCCorr.C:36
 ExtractMCCorr.C:37
 ExtractMCCorr.C:38
 ExtractMCCorr.C:39
 ExtractMCCorr.C:40
 ExtractMCCorr.C:41
 ExtractMCCorr.C:42
 ExtractMCCorr.C:43
 ExtractMCCorr.C:44
 ExtractMCCorr.C:45
 ExtractMCCorr.C:46
 ExtractMCCorr.C:47
 ExtractMCCorr.C:48
 ExtractMCCorr.C:49
 ExtractMCCorr.C:50
 ExtractMCCorr.C:51
 ExtractMCCorr.C:52
 ExtractMCCorr.C:53
 ExtractMCCorr.C:54
 ExtractMCCorr.C:55
 ExtractMCCorr.C:56
 ExtractMCCorr.C:57
 ExtractMCCorr.C:58
 ExtractMCCorr.C:59
 ExtractMCCorr.C:60
 ExtractMCCorr.C:61
 ExtractMCCorr.C:62
 ExtractMCCorr.C:63
 ExtractMCCorr.C:64
 ExtractMCCorr.C:65
 ExtractMCCorr.C:66
 ExtractMCCorr.C:67
 ExtractMCCorr.C:68
 ExtractMCCorr.C:69
 ExtractMCCorr.C:70
 ExtractMCCorr.C:71
 ExtractMCCorr.C:72
 ExtractMCCorr.C:73
 ExtractMCCorr.C:74
 ExtractMCCorr.C:75
 ExtractMCCorr.C:76
 ExtractMCCorr.C:77
 ExtractMCCorr.C:78
 ExtractMCCorr.C:79
 ExtractMCCorr.C:80
 ExtractMCCorr.C:81
 ExtractMCCorr.C:82
 ExtractMCCorr.C:83
 ExtractMCCorr.C:84
 ExtractMCCorr.C:85
 ExtractMCCorr.C:86
 ExtractMCCorr.C:87