]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWG3/vertexingHF/AliAnalysisTaskSEBkgLikeSignD0.cxx
Changes for the Lambdac (Chiara, Rossella)
[u/mrichter/AliRoot.git] / PWG3 / vertexingHF / AliAnalysisTaskSEBkgLikeSignD0.cxx
index 2e2f68dd1786318c396f885c7aed6ee882e7cd5d..d7eceb4a4538f0a2ad34b13c21a18562a2735ef3 100644 (file)
@@ -27,6 +27,8 @@
 #include <TList.h>
 #include <TH1F.h>
 
+#include "AliAnalysisManager.h"
+#include "AliAODHandler.h"
 #include "AliAODEvent.h"
 #include "AliAODVertex.h"
 #include "AliAODTrack.h"
@@ -54,6 +56,7 @@ fHistd0d0LS(0),
 fHistDCAD0(0),           
 fHistDCALS(0),
 fVHF(0),
+fNentries(0),
 fTotPosPairs(0),
 fTotNegPairs(0),
 fLsNormalization(1.)
@@ -80,6 +83,7 @@ fHistd0d0LS(0),
 fHistDCAD0(0),
 fHistDCALS(0),
 fVHF(0),
+fNentries(0),
 fTotPosPairs(0),
 fTotNegPairs(0),
 fLsNormalization(1.)
@@ -214,25 +218,37 @@ void AliAnalysisTaskSEBkgLikeSignD0::UserExec(Option_t */*option*/)
   
   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;