17 #include "AliAODEvent.h" 19 #include "AliAODMCHeader.h" 20 #include "AliAODMCParticle.h" 48 TList* out =
static_cast<TList*
>(cont->FindObject(GetName()));
51 fMCClass =
new TH1D(
"fMCClass",
"fMCClass", max,-0.5,max-.5);
52 fESDClass =
new TH1D(
"fESDClass",
"fESDClass", max,-0.5,max-.5);
53 fMCESDClass =
new TH1D(
"fMCESDClass",
"fMCESDClass", max,-0.5,max-.5);
57 out->Add(fMCESDClass);
81 Double_t mcMult, mcErr, statErr, sysErr;
82 Double_t mult = CalcMult(dndetaForward,
93 Double_t mcIPz = mc->GetBinContent(0,0);
106 TClonesArray* mcArray =
107 static_cast<TClonesArray*
>(aodevent.
108 FindListObject(AliAODMCParticle::
111 AliWarning(
"No MC array found in AOD. Try making it again.");
114 AliAODMCHeader* header =
115 static_cast<AliAODMCHeader*
>(aodevent.
116 FindListObject(AliAODMCHeader::
119 AliWarning(
"No header found.");
125 mcIPz = header->GetVtxZ();
126 Int_t ntracks = mcArray->GetEntriesFast();
127 for (
Int_t it = 0; it < ntracks; it++) {
128 AliAODMCParticle* particle = (AliAODMCParticle*)mcArray->At(it);
130 AliError(Form(
"Could not receive track %d", it));
133 if (!particle->IsPhysicalPrimary())
continue;
134 if (particle->Charge() == 0)
continue;
135 if (particle->Eta() > fEtaLow && particle->Eta() < fEtaHigh-0.0001)
142 if (mcIPz > minIPz && mcIPz < maxIPz) {
144 fMCClass->Fill(trMult);
149 if (ipZ > minIPz && ipZ < maxIPz){
151 fESDClass->Fill(trMult);
159 isMCClass && isESDClass){
160 fMCESDClass->Fill(trMult);
163 if (!selectedTrigger)
return;
165 fHistMC->Fill(mcMult);
Bool_t IsESDClass(AliAODForwardMult *) const
virtual void CreateOutputObjects(TList *cont, Int_t max)
static Bool_t IsTriggerBits(UInt_t bits, UInt_t trg)
virtual void CreateOutputObjects(TList *cont, Int_t max)
Task to do the multiplicity distibution.
virtual void Process(TH1D *dndetaForward, TH1D *dndetaCentral, TH1D *normForward, TH1D *normCentral, TH1D *dndetaMC, Double_t ipZ, Bool_t pileup, Bool_t selectedTrigger, Bool_t isMCClass, Bool_t isESDClass, const AliAODEvent &aodevent, Double_t minIPz, Double_t maxIPz)
AliBaseMultTask::Bin * MakeBin(Double_t etaLow, Double_t etaHigh)