#include <TList.h>
#include <TH1F.h>
+#include "AliAnalysisManager.h"
+#include "AliAODHandler.h"
#include "AliAODEvent.h"
#include "AliAODVertex.h"
#include "AliAODTrack.h"
fHistDCAD0(0),
fHistDCALS(0),
fVHF(0),
+fNentries(0),
fTotPosPairs(0),
fTotNegPairs(0),
fLsNormalization(1.)
fHistDCAD0(0),
fHistDCALS(0),
fVHF(0),
+fNentries(0),
fTotPosPairs(0),
fTotNegPairs(0),
fLsNormalization(1.)
AliAODEvent *aod = dynamic_cast<AliAODEvent*> (InputEvent());
- // load heavy flavour vertices
- TClonesArray *arrayVerticesHF =
- (TClonesArray*)aod->GetList()->FindObject("VerticesHF");
- if(!arrayVerticesHF) {
- printf("AliAnalysisTaskSEBkgLikeSignD0::UserExec: VerticesHF branch not found!\n");
- return;
+ TClonesArray *arrayD0toKpi = 0;
+ TClonesArray *arrayLikeSign = 0;
+
+ if(!aod && AODEvent() && IsStandardAOD()) {
+ // In case there is an AOD handler writing a standard AOD, use the AOD
+ // event in memory rather than the input (ESD) event.
+ aod = dynamic_cast<AliAODEvent*> (AODEvent());
+ // in this case the braches in the deltaAOD (AliAOD.VertexingHF.root)
+ // have to taken from the AOD event hold by the AliAODExtension
+ AliAODHandler* aodHandler = (AliAODHandler*)
+ ((AliAnalysisManager::GetAnalysisManager())->GetOutputEventHandler());
+ if(aodHandler->GetExtensions()) {
+ AliAODExtension *ext = (AliAODExtension*)aodHandler->GetExtensions()->FindObject("AliAOD.VertexingHF.root");
+ AliAODEvent *aodFromExt = ext->GetAOD();
+ // load D0 candidates
+ arrayD0toKpi=(TClonesArray*)aodFromExt->GetList()->FindObject("D0toKpi");
+ // load like sign candidates
+ arrayLikeSign=(TClonesArray*)aodFromExt->GetList()->FindObject("LikeSign2Prong");
+ }
+ } else {
+ // load D0 candidates
+ arrayD0toKpi=(TClonesArray*)aod->GetList()->FindObject("D0toKpi");
+ // load like sign candidates
+ arrayLikeSign=(TClonesArray*)aod->GetList()->FindObject("LikeSign2Prong");
}
- // load D0->ee candidates
- TClonesArray *arrayD0toKpi =
- (TClonesArray*)aod->GetList()->FindObject("D0toKpi");
+
if(!arrayD0toKpi) {
printf("AliAnalysisTaskSEBkgLikeSignD0::UserExec: D0toKpi branch not found!\n");
return;
}
-
- // load like sign candidates
- TClonesArray *arrayLikeSign =
- (TClonesArray*)aod->GetList()->FindObject("LikeSign2Prong");
if(!arrayLikeSign) {
printf("AliAnalysisTaskSEBkgLikeSignD0::UserExec: LikeSign2Prong branch not found!\n");
return;