18 #include "AliESDEvent.h" 19 #include "AliMCEvent.h" 25 #include <TDirectory.h> 35 return Form(
"nEvents%s%s", (tr ?
"Tr" :
""), (vtx ?
"Vtx" :
""));
80 "ESD:AliESDRun.,AliESDHeader.,AliMultiplicity.," 81 "AliESDFMD.,SPDVertex.,PrimaryVertex.";
129 if (axis.GetXbins() && axis.GetXbins()->GetArray())
130 fVtxAxis.Set(axis.GetNbins(),axis.GetXbins()->GetArray());
132 SetVertexAxis(axis.GetNbins(),axis.GetXmin(),axis.GetXmax());
153 AliWarning(Form(
"Minimum eta %f < -4, make sure you want this",min));
155 AliWarning(Form(
"Minimum eta %f > +6, make sure you want this",max));
168 SetEtaAxis(axis.GetNbins(),axis.GetXmin(),axis.GetXmax());
176 if (
fVtxBins->GetEntries() > 0)
return;
203 vtxAxis =
new TH1D(
"vtxAxis",
"Vertex axis",
206 "Number of all events",
210 vtxAxis =
new TH1D(
"vtxAxis",
"Vertex axis",
215 "Number of all events",
228 fHEventsTr->SetTitle(
"Number of triggered events");
234 fHEventsTrVtx->SetTitle(
"Number of events w/trigger and vertex");
240 TH1* etaAxis =
new TH1D(
"etaAxis",
"Eta axis",
244 vtxAxis->SetXTitle(
"IP_{#it{z}}");
245 vtxAxis->SetYTitle(
"dummy");
246 etaAxis->SetXTitle(
"#eta");
247 etaAxis->SetYTitle(
"dummy");
252 AliInfo(Form(
"Initialising sub-routines: %p, %p",
271 AliMCEvent* mcEvent = MCEvent();
273 AliWarning(
"No MC event found");
281 TVector3 ip(1024,1024,1000);
284 TVector3 ipMc(1024,1024,1000);
301 if (!isAccepted)
return false;
309 b, cMC, nPart, nBin, phiR);
332 if (usedZbin > 0 && usedZbin <=
fVtxAxis.GetNbins())
333 bin = static_cast<VtxBin*>(
fVtxBins->At(usedZbin));
335 AliErrorF(
"No vertex bin object @ %d (%f)", iVzMc, ipMc.Z());
358 while ((bin = static_cast<VtxBin*>(next())))
369 std::cout <<
" Vertex bins: " <<
fVtxAxis.GetNbins() <<
'\n' 370 <<
" Vertex range: [" <<
fVtxAxis.GetXmin()
371 <<
"," <<
fVtxAxis.GetXmax() <<
"]\n" 372 <<
" Eta bins: " <<
fEtaAxis.GetNbins() <<
'\n' 373 <<
" Eta range: [" <<
fEtaAxis.GetXmin()
384 buf = Form(
"vtx%+05.1f_%+05.1f", low, high);
385 buf.ReplaceAll(
"+",
"p");
386 buf.ReplaceAll(
"-",
"m");
387 buf.ReplaceAll(
".",
"d");
405 Form(
"%+5.1fcm<v_{z}<%+5.1fcm", low, high)),
410 axis.GetNbins(), axis.GetXmin(), axis.GetXmax(),
411 nPhi, 0, 2*TMath::Pi());
413 fPrimary->SetYTitle(
"#varphi [radians]");
419 fCounts->SetYTitle(
"# of Events");
429 d->SetName(GetName());
Base class for correction managers.
virtual AliBaseMCTrackDensity & GetTrackDensity()=0
virtual Bool_t FinalizeVtxBin(VtxBin *bin, UShort_t iVz)=0
static TAxis * MakeFullIpZAxis(Int_t nCenter=20)
virtual Bool_t ProcessESD(const AliESDEvent &esd, const AliMCEvent &mc, VtxBin &bin, const TVector3 &ip)=0
virtual Bool_t Event(AliESDEvent &esd)
void SetEtaAxis(Int_t nBins, Double_t etaMin, Double_t etaMax=-1000000)
virtual Bool_t CompareResults(Double_t vz, Double_t trueVz, Double_t cent, Double_t mcC, Double_t b, Int_t npart, Int_t nbin)
virtual void CreateOutputObjects(TList *list)
virtual void Print(Option_t *option="") const
void DefineBins(TList *list)
void SetIPzMethod(const char *str)
virtual Bool_t Finalize()
void SetSatellite(Bool_t sat)
virtual void CreateCorrections(TList *results)=0
UInt_t Process(const AliESDEvent *event, UInt_t &triggers, Bool_t &lowFlux, UShort_t &ivz, TVector3 &ip, Double_t ¢, UShort_t &nClusters)
AliBaseMCCorrectionsTask()
static const char * BinName(Double_t low, Double_t high)
Various utilities used in PWGLF/FORWARD.
AliFMDMCEventInspector fInspector
virtual TList * CreateOutputObjects(TList *list)
virtual VtxBin * CreateVtxBin(Double_t low, Double_t high)=0
UInt_t ProcessMC(AliMCEvent *event, UInt_t &triggers, UShort_t &ivz, TVector3 &ip, Double_t &b, Double_t &c, Int_t &npart, Int_t &nbin, Double_t &phiR)
void SetVertexAxis(Int_t nBins, Double_t vzMin, Double_t vzMax=-1000000)
void Print(Option_t *option="") const
UInt_t fNeededCorrections