//#include "AliLog.h"
#include "AliMCEvent.h"
#include "AliVParticle.h"
+#include "AliAODMCHeader.h"
#include "AliAnalysisManager.h"
#include "AliMCEventHandler.h"
}
}
+ if (obj->InheritsFrom("AliAODMCHeader"))
+ {
+ if (TMath::Abs(((AliAODMCHeader*) obj)->GetVtxZ()) > zed)
+ {
+ if (fDebug > 1) AliInfo(" Primary-vertex Selection: event (based on MC) REJECTED ...");
+ return kFALSE;
+ }
+ }
+
// ESD case for DCA studies
if (obj->InheritsFrom("AliESDEvent")){
AliESDVertex* vertex = (AliESDVertex*)((AliESDEvent*)obj)->GetPrimaryVertex();
#include "AliMultiplicity.h"
#include "AliCentrality.h"
#include "AliStack.h"
+#include "AliAODMCHeader.h"
#include "AliEventPoolManager.h"
//____________________________________________________________________
void AliAnalysisTaskPhiCorrelations::Exec(Option_t */*option*/)
{
- // array of MC particles
- if (fMcHandler) {
- if (fAOD)
- {
- fArrayMC = dynamic_cast<TClonesArray*>(fAOD->FindListObject(AliAODMCParticle::StdBranchName()));
- if (!fArrayMC)
- AliFatal("No array of MC particles found !!!");
- }
- fMcEvent = fMcHandler->MCEvent();
- }
-
// receive ESD pointer if we are not running AOD analysis
if (!fAOD)
{
fESD = ((AliESDInputHandler*)handler)->GetEvent();
}
- // Analyse the event
- if (fMode) AnalyseCorrectionMode();
+ if (fMode)
+ {
+ // correction mode
+
+ if (fMcHandler)
+ fMcEvent = fMcHandler->MCEvent();
+
+ if (fAOD)
+ {
+ // array of MC particles
+ fArrayMC = dynamic_cast<TClonesArray*>(fAOD->FindListObject(AliAODMCParticle::StdBranchName()));
+ if (!fArrayMC)
+ AliFatal("No array of MC particles found !!!");
+ }
+
+ AnalyseCorrectionMode();
+ }
else AnalyseDataMode();
}
fHistos->FillEvent(centrality, -1);
// Only consider MC events within the vtx-z region used also as cut on the reconstructed vertex
- if (!fAnalyseUE->VertexSelection(fMcEvent, 0, fZVertex))
+ TObject* vertexSupplier = fMcEvent;
+ if (fAOD) // AOD
+ vertexSupplier = fAOD->FindListObject(AliAODMCHeader::StdBranchName());
+
+ if (!fAnalyseUE->VertexSelection(vertexSupplier, 0, fZVertex))
return;
- Float_t zVtx = fMcEvent->GetPrimaryVertex()->GetZ();
+ Float_t zVtx = 0;
+ if (fAOD)
+ zVtx = ((AliAODMCHeader*) vertexSupplier)->GetVtxZ();
+ else
+ zVtx = fMcEvent->GetPrimaryVertex()->GetZ();
Float_t weight = 1;
if (fFillpT)
weight = -1;