2 * Script to draw the energy loss fits
4 * @ingroup pwg2_forward_analysis_scripts
10 #include "AliFMDCorrELossFit.h"
11 #include "AliForwardCorrectionManager.h"
14 //____________________________________________________________________
16 * Extract the energy loss correction object from file and rename it
17 * according to the settings
19 * @param fname File to extract from
20 * @param sys Collision system (pp, PbPb)
21 * @param sNN Center of mass energy (in GeV) per nucleon
22 * @param field L3 magnetic field (-5,0,5) in kGaus
23 * @param mc Whether this is from MC data or not
25 * @ingroup pwg2_forward_analysis_scripts
28 ExtractELoss(const char* fname="energyFits.root",
29 UShort_t sys=1, UShort_t sNN=900, Short_t field=5, Bool_t mc=false)
32 gROOT->Macro("$ALICE_ROOT/PWG2/FORWARD/analysis2/scripts/LoadLibs.C");
35 TFile* file = TFile::Open(fname, "READ");
37 Error("ExtractELoss", "Couldn't open %s", fname);
41 TList* forward = static_cast<TList*>(file->Get("Forward"));
42 // static_cast<TList*>(file->Get("PWG2forwardDnDeta/Forward"));
44 Error("ExtractELoss", "Couldn't get forward list from %s", fname);
48 TList* fitter = static_cast<TList*>(forward->FindObject("fmdEnergyFitter"));
50 Error("ExtractELoss", "Couldn't get fitter folder");
54 TString cName(AliFMDCorrELossFit::Class()->GetName());
56 AliFMDCorrELossFit* obj =
57 static_cast<AliFMDCorrELossFit*>(fitter->FindObject(cName));
59 Error("ExtractELoss", "Couldn't get %s correction object", cName.Data());
63 AliForwardCorrectionManager& mgr = AliForwardCorrectionManager::Instance();
65 TString ofName(mgr.GetFileName(AliForwardCorrectionManager::kELossFits,
66 sys, sNN, field, mc));
67 TFile* output = TFile::Open(ofName.Data(), "RECREATE");
69 Error("ExtractELoss", "Failed to open file %s", ofName.Data());
73 TString oName(mgr.GetObjectName(AliForwardCorrectionManager::kELossFits));
80 TString dName(mgr.GetFileDir(AliForwardCorrectionManager::kELossFits));
81 Info("ExtractELoss", "Wrote %s object %s to %s",cName.Data(),oName.Data(),
83 Info("ExtractELoss", "%s should be copied to %s",ofName.Data(),dName.Data());
84 Info("ExtractELoss", "Do for example\n\t"
85 "aliroot $ALICE_ROOT/PWG2/FORWARD/analysis2/scripts/MoveCorrections.C\(0,0,0,0,1\)\n\t"
86 "cp %s %s/", ofName.Data(), gSystem->ExpandPathName(dName.Data()));
91 //____________________________________________________________________
93 * Extract the energy loss correction object from file and rename it
94 * according to the settings
96 * @param fname File to extract from
97 * @param sys Collision system (pp, PbPb)
98 * @param sNN Center of mass energy (in GeV) per nucleon
99 * @param field L3 magnetic field (-5,0,5) in kGaus
100 * @param mc Whether this is from MC data or not
102 * @ingroup pwg2_forward_analysis_scripts
105 ExtractELoss(const char* fname="energyFits.root",
106 const char* sys="p-p",
111 UShort_t uSys = AliForwardUtil::ParseCollisionSystem(sys);
112 UShort_t usNN = AliForwardUtil::ParseCenterOfMassEnergy(uSys,sNN);
113 Short_t sField = AliForwardUtil::ParseMagneticField(field);
115 ExtractELoss(fname, uSys, usNN, sField, mc);
118 //____________________________________________________________________