/** * 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 //