/** * 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 sys Collision system (pp, PbPb) * @param sNN Center of mass energy (in GeV) per nucleon * @param field L3 magnetic field (-5,0,5) in kGaus * * @ingroup pwglf_forward_scripts_corr */ void ExtractMCCorr(const char* fname) { const char* fwd = "$ALICE_ROOT/../trunk/PWGLF/FORWARD/analysis2"; gSystem->AddIncludePath(Form("-I%s", fwd)); gROOT->Macro(Form("%s/scripts/LoadLibs.C", fwd)); gROOT->LoadMacro(Form("%s/corrs/CorrExtractor.C++g", fwd)); CorrExtractor fmdEx(&AliForwardCorrectionManager::Instance()); if (fmdEx.Init(fname, "ForwardCorrSums", "fmd_corrections.root")) { fmdEx.Extract(AliFMDCorrSecondaryMap::Class(), "ForwardCorrResults"); } CorrExtractor spdEx(&AliCentralCorrectionManager::Instance()); 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 //