2 * Script to draw the energy loss fits
4 * @ingroup pwg2_forward_analysis_scripts
10 #include "AliFMDCorrELossFit.h"
11 #include "AliForwardCorrectionManager.h"
14 //____________________________________________________________________
16 ExtractELoss(const char* fname="energyFits.root",
17 UShort_t sys=1, UShort_t sNN=900, Short_t field=5, Bool_t mc=false)
20 gROOT->Macro("$ALICE_ROOT/PWG2/FORWARD/analysis2/scripts/LoadLibs.C");
23 TFile* file = TFile::Open(fname, "READ");
25 Error("ExtractELoss", "Couldn't open %s", fname);
29 TList* forward = static_cast<TList*>(file->Get("Forward"));
30 // static_cast<TList*>(file->Get("PWG2forwardDnDeta/Forward"));
32 Error("ExtractELoss", "Couldn't get forward list from %s", fname);
36 TList* fitter = static_cast<TList*>(forward->FindObject("fmdEnergyFitter"));
38 Error("ExtractELoss", "Couldn't get fitter folder");
42 TString cName(AliFMDCorrELossFit::Class()->GetName());
44 AliFMDCorrELossFit* obj =
45 static_cast<AliFMDCorrELossFit*>(fitter->FindObject(cName));
47 Error("ExtractELoss", "Couldn't get %s correction object", cName.Data());
51 AliForwardCorrectionManager& mgr = AliForwardCorrectionManager::Instance();
53 TString ofName(mgr.GetFileName(AliForwardCorrectionManager::kELossFits,
54 sys, sNN, field, mc));
55 TFile* output = TFile::Open(ofName.Data(), "RECREATE");
57 Error("ExtractELoss", "Failed to open file %s", ofName.Data());
61 TString oName(mgr.GetObjectName(AliForwardCorrectionManager::kELossFits));
68 TString dName(mgr.GetFileDir(AliForwardCorrectionManager::kELossFits));
69 Info("ExtractELoss", "Wrote %s object %s to %s",cName.Data(),oName.Data(),
71 Info("ExtractELoss", "%s should be copied to %s",ofName.Data(),dName.Data());
72 Info("ExtractELoss", "Do for example\n\t"
73 "aliroot $ALICE_ROOT/PWG2/FORWARD/analysis2/scripts/MoveCorrections.C\(0,0,0,0,1\)\n\t"
74 "cp %s %s/", ofName.Data(), gSystem->ExpandPathName(dName.Data()));
79 //____________________________________________________________________
81 ExtractELoss(const char* fname="energyFits.root",
82 const char* sys="p-p",
86 UShort_t uSys = AliForwardUtil::ParseCollisionSystem(sys);
87 UShort_t usNN = AliForwardUtil::ParseCenterOfMassEnergy(uSys,sNN);
88 Short_t sField = AliForwardUtil::ParseMagneticField(field);
90 ExtractELoss(fname, uSys, usNN, sField);
93 //____________________________________________________________________