10 #include <TClonesArray.h> 13 class AliFMDCirrELossFit;
72 const char*
filename=
"forward_eloss.root")
75 fFits(
"AliFMDCorrELossFit::ELossFit"),
83 Error(
"MakeELossFit",
"Failed to open file %s",
filename);
86 TList* forward =
static_cast<TList*
>(file->Get(
"Forward"));
89 Error(
"MakeELossFit",
"Couldn't get forward list from %s",
filename);
93 fFitter =
static_cast<TList*
>(forward->FindObject(
"fmdEnergyFitter"));
95 Error(
"MakeELossFit",
"Couldn't get fitter folder");
99 fAxis =
static_cast<TAxis*
>(fFitter->FindObject(
"etaAxis"));
101 Error(
"MakeELossFit",
"Couldn't get eta axis");
108 mgr.
Init(sys, cms, field, mc, 0,
true);
114 TList* rL =
static_cast<TList*
>(fFitter->FindObject(Form(
"FMD%d%c",d,r)));
116 Warning(
"DrawFits",
"List FMD%d%c not found", d, r);
129 TList* edists =
static_cast<TList*
>(rList->FindObject(
"EDists"));
131 Error(
"PrintFits",
"Couldn't get EDists list for FMD%d%c", d,r);
141 Warning(
"GetEDist",
"No list for FMD%d%c", d, r);
146 TString cmp(Form(
"FMD%d%c_etabin%03d", d, r, etabin));
150 while ((o = next())) {
151 if (!cmp.CompareTo(o->GetName())) {
152 return static_cast<TH1*
>(o);
161 TList* funcs = dist->GetListOfFunctions();
166 Info(
"FindBestFit",
"%s", dist->GetName());
167 while ((func = static_cast<TF1*>(next()))) {
180 if (!fFitter || !fAxis) {
181 Error(
"Run",
"Missing objects");
188 Info(
"Run",
"detector is FMD%d", d);
191 Char_t r = (q == 0 ?
'I' :
'O');
192 Int_t nBin = fAxis->GetNbins();
193 Info(
"Run",
" ring is FMD%d%c - %d bins", d, r, nBin);
196 for (
UShort_t b = 1; b <= nBin; b++) {
198 if (oneSeen && !h)
break;
200 if (!oneSeen) oneSeen =
true;
208 Info(
"Run",
" bin=%3d->%6.4f", b, eta);
215 fSys, fCMS, fField, fMC));
216 TFile* output = TFile::Open(fname.Data(),
"RECREATE");
218 Warning(
"Run",
"Failed to open output file %s", fname.Data());
224 Info(
"Run",
"File %s created. It should be copied to %s and stored in SVN",
Bool_t SetFit(UShort_t d, Char_t r, Double_t eta, Int_t quality, const TF1 &f)
MakeELossFit(UShort_t sys, UShort_t cms, Short_t field, Bool_t mc, const char *filename="forward_eloss.root")
TList * GetRing(UShort_t d, Char_t r) const
void CalculateQuality(Double_t maxChi2nu=fgMaxChi2nu, Double_t maxRelError=fgMaxRelError, Double_t leastWeight=fgLeastWeight)
Bool_t Init(ULong_t runNumber, UShort_t collisionSystem, UShort_t cmsNN, Short_t field, Bool_t mc=false, Bool_t satelliteCollisions=false, UInt_t what=kDefault, Bool_t force=false)
void Print(Option_t *option) const
TH1 * GetEDist(UShort_t d, Char_t r, UShort_t etabin)
const char * GetObjectName(Int_t what) const
void SetEtaAxis(const TAxis &axis)
AliFMDCorrELossFit::ELossFit * FindBestFit(TH1 *dist)
TFile * file
TList with histograms for a given trigger.
TList * GetEDists(UShort_t d, Char_t r) const
static AliForwardCorrectionManager & Instance()