]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWG3/vertexingHF/AliAnalysisTaskMEVertexingHF.cxx
Update (Zaida)
[u/mrichter/AliRoot.git] / PWG3 / vertexingHF / AliAnalysisTaskMEVertexingHF.cxx
index 273287feff75513e187d4df0abc697ab802dbf44..acc3f7539eebc22d06b5c62f3ebe9cdb9eb3240e 100644 (file)
@@ -50,6 +50,7 @@ fJPSItoEleTClArr(0),
 fCharm3ProngTClArr(0),
 fCharm4ProngTClArr(0),
 fDstarTClArr(0),
+fCascadesTClArr(0),
 fLikeSign2ProngTClArr(0),
 fLikeSign3ProngTClArr(0)
 {
@@ -128,6 +129,12 @@ void AliAnalysisTaskMEVertexingHF::UserCreateOutputObjects()
     AddAODBranch("TClonesArray", &fDstarTClArr);
   }
   
+  if(fvHF->GetCascades()){
+    fCascadesTClArr = new TClonesArray("AliAODRecoCascadeHF", 0);
+    fCascadesTClArr->SetName("CascadesHF");
+    AddAODBranch("TClonesArray", &fCascadesTClArr);
+  }
+
   if(fvHF->GetLikeSign()) {
     fLikeSign2ProngTClArr = new TClonesArray("AliAODRecoDecayHF2Prong", 0);
     fLikeSign2ProngTClArr->SetName("LikeSign2Prong");
@@ -155,7 +162,7 @@ void AliAnalysisTaskMEVertexingHF::UserExec(Option_t *)
   fMixedEvent->Reset();
   TString primTitle;
   TString primTitleFirst;
-  
+  AliAODVertex *vtxCopy=0;
 
   TObjArray *vertices=new TObjArray(nev);
   for (Int_t iev = 0; iev < nev; iev++) {
@@ -170,7 +177,7 @@ void AliAnalysisTaskMEVertexingHF::UserExec(Option_t *)
       return;
     }
 
-    AliAODVertex *vtxCopy=new AliAODVertex(*evtVtx);
+    vtxCopy=new AliAODVertex(*evtVtx);
     primTitleFirst=evtVtx->GetTitle();
         
 
@@ -185,13 +192,20 @@ void AliAnalysisTaskMEVertexingHF::UserExec(Option_t *)
   Int_t nContributors[1]={0};
   Double_t chi2=0;
   Bool_t primaryOk=fMixedEvent->ComputeVtx(vertices,vtxPos,vtxSigma,nContributors);
-  if(!primaryOk) {delete vertices;return;}
+  if(!primaryOk) {
+    delete vertices;
+    delete vtxCopy;
+    vtxCopy=NULL;
+    return;
+  }
   Int_t contribCopy=nContributors[0];
   AliVVertex* newVertex=new AliESDVertex(vtxPos,vtxSigma,chi2,contribCopy);
   newVertex->SetTitle(primTitleFirst.Data());
   fMixedEvent->SetPrimaryVertex(newVertex);
 
   delete vertices;
+  delete vtxCopy;
+  vtxCopy=NULL;
 
   fvHF->FindCandidates(fMixedEvent,
                       fVerticesHFTClArr,
@@ -200,9 +214,11 @@ void AliAnalysisTaskMEVertexingHF::UserExec(Option_t *)
                       fCharm3ProngTClArr,
                       fCharm4ProngTClArr,
                       fDstarTClArr,
+                      fCascadesTClArr, 
                       fLikeSign2ProngTClArr,
                       fLikeSign3ProngTClArr);
 
+  delete newVertex;
   return;
 }