12 Error(
"GetCollection",
"No parent directory for %s", name.Data());
16 dir->GetObject(name, ret);
18 Error(
"GetCollection",
"Couldn't find %s in %s",
19 name.Data(), dir->GetName());
39 Error(
"GetObject",
"No parent collection for %s", name.Data());
42 TObject* ret = parent->FindObject(name);
44 Error(
"GetObject",
"Couldn't find %s in %s",
45 name.Data(), parent->GetName());
48 if (cls && !ret->IsA()->InheritsFrom(cls)) {
49 Error(
"GetObject",
"%s in %s is a %s, not a %s", name.Data(),
50 parent->GetName(), ret->ClassName(), cls->GetName());
83 const TString& input=
"forward_mctracks.root",
87 const char*
fwd =
"$ALICE_PHYSICS/PWGLF/FORWARD/analysis2";
88 gROOT->Macro(Form(
"%s/scripts/LoadLibs.C", fwd));
93 if (outName.IsNull()) {
95 outName.ReplaceAll(
".root",
"_rerun.root");
100 inFile = TFile::Open(input,
"READ");
102 throw TString::Format(
"Failed to open %s", input.Data());
106 if (!inFwdSum)
throw new TString(
"Cannot proceed without sums");
111 static_cast<TCollection*
>(inFwdSum->Clone(
"ForwardTracksResults"));
116 if (!inEFSum)
throw new TString(
"Cannot proceed without accumulated data");
119 if (!inEFRes)
throw new TString(
"Cannot proceed without previous results");
122 outFile = TFile::Open(outName,
"RECREATE");
124 throw TString::Format(
"Failed to open %s", outName.Data());
129 outFwdSum->Write(inFwdSum->GetName(), TObject::kSingleKey);
138 Printf(
"Forced settings");
141 if (!etaAxis)
throw new TString(
"Cannot proceed without eta axis");
178 fitter->
Fit(static_cast<TList*>(outFwdSum));
184 outFwdRes->Remove(outEFRes);
187 outEFRes =
static_cast<TCollection*
>(tmp->Clone());
188 outEFRes->Add(
new TNamed(
"refitted",
"Refit of the data"));
189 outFwdRes->Add(outEFRes);
193 outFwdRes->Write(inFwdRes->GetName(), TObject::kSingleKey);
194 Printf(
"Wrote results to \"%s\" (%s)", outName.Data(), outFile->GetName());
198 Error(
"RerunELossFits", e->Data());
201 Error(
"RerunELossFits", e.Data());
203 if (inFile) inFile->Close();
205 Printf(
"Wrote new output to \"%s\"", outName.Data());
210 gROOT->LoadMacro(Form(
"%s/scripts/SummaryMCTrackDrawer.C+g",fwd));
212 smd.
Run(outName.Data(),0x10F);
void SetEnableDeltaShift(Bool_t use=true)
void RerunTrackELoss(Bool_t forceSet=false, const TString &input="forward_mctracks.root", Bool_t shift=true, const TString &output="")
void Run(const char *fname, UShort_t what=kNormal)
void SetDoFits(Bool_t doFit=kTRUE)
void SetLowCut(Double_t lowCut=0.3)
virtual void Fit(const TList *dir)
void SetFitRangeBinWidth(UShort_t n=4)
Bool_t ReadParameters(const TCollection *list)
void SetStoreResiduals(EResidualMethod x=kResidualDifference)
TObject * GetObject(const TCollection *parent, const TString &name, const TClass *cls=0)
void SetNParticles(UShort_t n)
void SetDoMakeObject(Bool_t doMake=kTRUE)
void SetRegularizationCut(Double_t cut=3e6)
void SetMinEntries(UShort_t n)
void SetEtaAxis(Int_t nBins, Double_t etaMin, Double_t etaMax)
void SetDebug(Int_t dbg=1)
void Print(Option_t *option="") const
TCollection * GetCollection(TDirectory *dir, const TString &name)