]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGLF/STRANGENESS/Hypernuclei/AliAnalysisTaskHdibaryonLPpi.cxx
Split: removed dirs now in AliPhysics
[u/mrichter/AliRoot.git] / PWGLF / STRANGENESS / Hypernuclei / AliAnalysisTaskHdibaryonLPpi.cxx
diff --git a/PWGLF/STRANGENESS/Hypernuclei/AliAnalysisTaskHdibaryonLPpi.cxx b/PWGLF/STRANGENESS/Hypernuclei/AliAnalysisTaskHdibaryonLPpi.cxx
deleted file mode 100644 (file)
index e2dc542..0000000
+++ /dev/null
@@ -1,1587 +0,0 @@
-/**************************************************************************
- * Author : Benjamin Dönigus (benjamin.doenigus@cern.ch)                  *
- *                                                                        *
- * Contributors are mentioned in the code where appropriate.              *
- *                                                                        *
- * Permission to use, copy, modify and distribute this software and its   *
- * documentation strictly for non-commercial purposes is hereby granted   *
- * without fee, provided that the above copyright notice appears in all   *
- * copies and that both the copyright notice and this permission notice   *
- * appear in the supporting documentation. The authors make no claims     *
- * about the suitability of this software for any purpose. It is          *
- * provided "as is" without express or implied warranty.                  *
- **************************************************************************/
-
-//-----------------------------------------------------------------
-//                 AliAnalysisTaskHdibaryonLPpi class
-//          used to search for the H-Dibaryon in weak 
-//          (Lambda Proton Pion) and strong (Lambda Lambda) decays
-//-----------------------------------------------------------------
-
-#include "Riostream.h"
-#include "TROOT.h"
-#include "TChain.h"
-#include "TStyle.h"
-#include "TSystem.h"
-#include "TTree.h"
-#include "TH1F.h"
-#include "TH1.h"
-#include "TH2D.h"
-#include "TH3F.h"
-#include "TCanvas.h"
-#include "TParticle.h"
-#include "TNtuple.h"
-#include "TObjString.h"
-#include "TLorentzVector.h"
-#include "TDatabasePDG.h"
-
-#include "AliAnalysisTask.h"
-#include "AliAnalysisManager.h"
-#include "AliMCEventHandler.h"
-#include "AliMCEvent.h"
-
-#include "AliESD.h"
-#include "AliESDpid.h"
-#include "AliESDEvent.h"
-#include "AliGenEventHeader.h"
-#include "AliESDInputHandler.h"
-#include "AliLog.h"
-#include "AliStack.h"
-#include "AliHeader.h"
-
-#include "AliKFParticle.h"
-#include "AliKFVertex.h"
-#include "AliESDtrackCuts.h"
-#include "AliESDv0Cuts.h"
-#include "AliAnalysisTaskHdibaryonLPpi.h"
-
-#include "TFile.h"
-#include "TH2F.h"
-#include "TF1.h"
-#include "TCanvas.h"
-#include "TList.h"
-#include "TParallelCoord.h"
-
-#include "AliMCParticle.h"
-#include "AliGenPythiaEventHeader.h"
-
-#include "AliPID.h"
-#include "AliESDtrack.h"
-#include "AliCentrality.h"
-
-#include "THnSparse.h"
-
-#include "AliVertexerTracks.h"
-
-using namespace std;
-ClassImp(AliAnalysisTaskHdibaryonLPpi)
-//________________________________________________________________________
-AliAnalysisTaskHdibaryonLPpi::AliAnalysisTaskHdibaryonLPpi() : AliAnalysisTaskSE()/*AliAnalysisTask(name, ""), fMCEvent(0)*/, fESD(0),   fESDtrackCutsV0(0),
-  fESDCutsV0(0),
-  fEsdTrackCuts(0),
-  fBin(0),
-  fEvent(0x0),
-  fHistList(0),  
-  fHistMassDPi(0), 
-  fHistMassLPi(0),
-  fHistMassLambdaPi(0),
-  fHistMassLambda(0),
-  fHistMassLambdaPPi(0),
-  fHistMassLambdaP(0),
-  fHistMassLambdaK(0),
-  fHistMassK0onl(0),
-  fHistMassK0offl(0),
-  fHistMassK0onlC(0),
-  fHistMassK0offlC(0),
-  fHistMassPQonl(0), 
-  fHistMassPQoffl(0),
-  fHistDC(0),
-  fHistArmenterosPodolanski(0),
-  fHistArmenterosPodolanskiCut(0), 
-  fHistHDibaryonInvaMassGen(0),
-  fHistHDibaryonInvaMassGenRes(0),
-  fHistAntiHDibaryonInvaMassGen(0),
-  fHistHDibaryonInvaMassAso(0),
-  fHistHDibaryonInvaMassAsoReso(0),
-  fHistAntiHDibaryonInvaMassAso(0),
-  fHistCheck(0),
-  fHistHPointingAngle(0),
-  fHistMassH(0),
-  fHistMassLambdaFromH(0),
-  fHistMassLambdaFromHtLorentz(0),
-  fHistMassPpi(0),
-  fHistMassPpiReso(0),
-  fHistMassLpi(0),
-  fHistMassLP(0),
-  fHistProtonPIDBb(0),
-  fHistPionPIDBb(0),
-  fHistProtonPIDLambda(0),
-  fHistPionPIDLambda(0),
-  fHistMCdcaPvtxDvtx(0),
-  fHistMCdcaPvtxLvtx(0),
-  fHistMCdcaDvtxLvtx(0),
-  fHistMCangleLH(0),
-  fHistMCdecayAngle(0),
-  fHistMCpointingAngle(0),
-  fHistMCap(0),
-  fHistMCdcaPvtxDvtxReso(0),
-  fHistMCdcaPvtxLvtxReso(0),
-  fHistMCdcaDvtxLvtxReso(0),
-  fHistMCangleLHReso(0),
-  fHistMCdecayAngleReso(0),
-  fHistMCpointingAngleReso(0),
-  fHistMCapReso(0),
-  fHistCentrality(0),
-  fHistCentralityAC(0), 
-  fHistMultiplicity(0),
-  fHistHilf1(0),
-  fHistHilf2(0), 
-  fHistHilf3(0),
-  fHistHilf4(0),
-  fHistHilf5(0), 
-  fHistHilf6(0),
-  fHistPtvsEtaGen(0),
-  fHistPtvsEtaAso(0),
-  fHistPtvsYGen(0),
-  fHistPtvsYAso(0), 
-  fHistRap(0),
-  fHistCount(0),
-  fPIDtpcESD(0),
-  fHistTriggerStat(0),
-  fHistTriggerStatAfterEventSelection(0), 
-  fHistMassHcentMult(0),
-  fHistNdim(0)
-{
-  // DefaultConstructor
-
-}
-
-//________________________________________________________________________
-AliAnalysisTaskHdibaryonLPpi::AliAnalysisTaskHdibaryonLPpi(const char *name) : AliAnalysisTaskSE(name)/*AliAnalysisTask(name, ""), fMCEvent(0)*/, fESD(0),   fESDtrackCutsV0(0),
-  fESDCutsV0(0),
-  fEsdTrackCuts(0),
-  fBin(0),
-  fEvent(0x0),
-  fHistList(0),  
-  fHistMassDPi(0), 
-  fHistMassLPi(0),
-  fHistMassLambdaPi(0),
-  fHistMassLambda(0),
-  fHistMassLambdaPPi(0),
-  fHistMassLambdaP(0),
-  fHistMassLambdaK(0),
-  fHistMassK0onl(0),
-  fHistMassK0offl(0),
-  fHistMassK0onlC(0),
-  fHistMassK0offlC(0),
-  fHistMassPQonl(0), 
-  fHistMassPQoffl(0),
-  fHistDC(0),
-  fHistArmenterosPodolanski(0),
-  fHistArmenterosPodolanskiCut(0), 
-  fHistHDibaryonInvaMassGen(0),
-  fHistHDibaryonInvaMassGenRes(0),
-  fHistAntiHDibaryonInvaMassGen(0),
-  fHistHDibaryonInvaMassAso(0),
-  fHistHDibaryonInvaMassAsoReso(0),
-  fHistAntiHDibaryonInvaMassAso(0),
-  fHistCheck(0),
-  fHistHPointingAngle(0),
-  fHistMassH(0),
-  fHistMassLambdaFromH(0),
-  fHistMassLambdaFromHtLorentz(0),
-  fHistMassPpi(0),
-  fHistMassPpiReso(0),
-  fHistMassLpi(0),
-  fHistMassLP(0),
-  fHistProtonPIDBb(0),
-  fHistPionPIDBb(0),
-  fHistProtonPIDLambda(0),
-  fHistPionPIDLambda(0),
-  fHistMCdcaPvtxDvtx(0),
-  fHistMCdcaPvtxLvtx(0),
-  fHistMCdcaDvtxLvtx(0),
-  fHistMCangleLH(0),
-  fHistMCdecayAngle(0),
-  fHistMCpointingAngle(0),
-  fHistMCap(0),
-  fHistMCdcaPvtxDvtxReso(0),
-  fHistMCdcaPvtxLvtxReso(0),
-  fHistMCdcaDvtxLvtxReso(0),
-  fHistMCangleLHReso(0),
-  fHistMCdecayAngleReso(0),
-  fHistMCpointingAngleReso(0),
-  fHistMCapReso(0),
-  fHistCentrality(0),
-  fHistCentralityAC(0), 
-  fHistMultiplicity(0), 
-  fHistHilf1(0),
-  fHistHilf2(0), 
-  fHistHilf3(0),
-  fHistHilf4(0),
-  fHistHilf5(0), 
-  fHistHilf6(0),
-  fHistPtvsEtaGen(0),
-  fHistPtvsEtaAso(0),
-  fHistPtvsYGen(0),
-  fHistPtvsYAso(0), 
-  fHistRap(0),
-  fHistCount(0),
-  fPIDtpcESD(0),
-  fHistTriggerStat(0),
-  fHistTriggerStatAfterEventSelection(0),
-  fHistMassHcentMult(0),
-  fHistNdim(0)
-
-{
-  // Constructor
-
-  // Define input and output slots here
-  // Input from a TChain
-  DefineInput(0, TChain::Class());
-  // Output to TList container
-  DefineOutput(1, TList::Class()); //full
-
-  //MC info contol
-  if (AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler())SetHasMC();
-
-  //V0 cuts
-
-  fESDtrackCutsV0 = new AliESDtrackCuts("AliESDtrackCutsV0","AliESDtrackCutsV0");
-  fESDtrackCutsV0->SetAcceptKinkDaughters(kFALSE);
-  fESDtrackCutsV0->SetMinNClustersTPC(80);
-  fESDtrackCutsV0->SetMaxChi2PerClusterTPC(5);
-  fESDtrackCutsV0->SetRequireTPCRefit(kTRUE);
-  fESDtrackCutsV0->SetEtaRange(-0.9,0.9);
-  fESDtrackCutsV0->SetPtRange(0.2,1.5);
-  fESDtrackCutsV0->SetMinDCAToVertexXY(2); //war inzwischen 1 & 3
-  fESDtrackCutsV0->SetMinDCAToVertexZ(2); //war inzwischen 1 & 3
-
-  fESDCutsV0 = new AliESDv0Cuts("AliESDCutsV0","AliESDCutsV0");
-  fESDCutsV0->SetMaxDcaV0Daughters(1.0);
-  fESDCutsV0->SetMinDcaNegToVertex(2); //1.5
-    fESDCutsV0->SetMinDcaPosToVertex(2); //1.5
-
-  //ESD Track cuts
-  fEsdTrackCuts = new AliESDtrackCuts("AliESDtrackCuts");    
-  fEsdTrackCuts->SetMinNClustersTPC(80);
-  fEsdTrackCuts->SetAcceptKinkDaughters(kFALSE);
-  fEsdTrackCuts->SetMaxChi2PerClusterTPC(5);
-  fEsdTrackCuts->SetRequireTPCRefit(kTRUE);
-  fEsdTrackCuts->SetEtaRange(-0.9,0.9);
-}
-
-//____________________________________________________________
-AliAnalysisTaskHdibaryonLPpi::~AliAnalysisTaskHdibaryonLPpi(){
-  //
-  // Destructor
-  //
-  if(fHistList){ 
-    fHistList->Clear();
-    delete fHistList;
-  }
-  if(fEsdTrackCuts) delete fEsdTrackCuts;
-  if(fESDtrackCutsV0) delete fESDtrackCutsV0;
-  if(fESDCutsV0) delete fESDCutsV0;
-
-}
-
-//________________________________________________________________________
-void AliAnalysisTaskHdibaryonLPpi::UserCreateOutputObjects()
-{
-  // Create histograms
-  // Called once
-
- fHistList = new TList();
- fHistList->SetOwner();
-
- fHistMassDPi = new TH1F("fHistMassDPi", "Invariant mass distribution p+#pi^{-} ", 500, 1.0, 1.25);
- fHistMassDPi->GetXaxis()->SetTitle("Invariant mass p+#pi^{-} (GeV/c^{2})");
- fHistMassDPi->GetYaxis()->SetTitle("Entries");
- fHistMassDPi->SetMarkerStyle(kFullCircle); 
-
- fHistMassLPi = new TH1F("fHistMassLPi", "Offline Invariant mass distribution p+#pi^{-} ", 500, 1.0, 1.25);
- fHistMassLPi->GetXaxis()->SetTitle("Invariant mass p+#pi^{-} (GeV/c^{2})");
- fHistMassLPi->GetYaxis()->SetTitle("Entries");
- fHistMassLPi->SetMarkerStyle(kFullCircle);
-
- fHistMassLambdaPi = new TH1F("fHistMassLambdaPi", "Invariant mass distribution #Lambda+#pi^{-} ", 500, 1.2, 1.5);
- fHistMassLambdaPi->GetXaxis()->SetTitle("Invariant mass #Lambda+#pi^{-} (GeV/c^{2})");
- fHistMassLambdaPi->GetYaxis()->SetTitle("Entries");
- fHistMassLambdaPi->SetMarkerStyle(kFullCircle);
- fHistMassLambda = new TH1F("fHistMassLambda", "Invariant mass distribution of #Lambda for further analyis", 500, 1.0, 1.2);
- fHistMassLambda->GetXaxis()->SetTitle("Invariant mass p+#pi^{+} (GeV/c^{2})");
- fHistMassLambda->GetYaxis()->SetTitle("Entries");
- fHistMassLambda->SetMarkerStyle(kFullCircle);
- fHistMassLambdaPPi = new TH1F("fHistMassLambdaPPi", "Invariant mass distribution #Lambdap#pi^{-} ", 300, 2.2, 2.5);
- fHistMassLambdaPPi->GetXaxis()->SetTitle("Invariant mass #Lambdap#pi^{-} (GeV/c^{2})");
- fHistMassLambdaPPi->GetYaxis()->SetTitle("Entries");
- fHistMassLambdaPPi->SetMarkerStyle(kFullCircle);
-
- fHistMassLambdaP = new TH1F("fHistMassLambdaP", "Invariant mass distribution #Lambdap ", 300, 2.2, 2.5);
- fHistMassLambdaP->GetXaxis()->SetTitle("Invariant mass #Lambdap (GeV/c^{2})");
- fHistMassLambdaP->GetYaxis()->SetTitle("Entries");
- fHistMassLambdaP->SetMarkerStyle(kFullCircle);
-
- fHistMassLambdaK = new TH1F("fHistMassLambdaK", "Invariant mass distribution #LambdaK^{-} ", 300, 1.6, 1.9);
- fHistMassLambdaK->GetXaxis()->SetTitle("Invariant mass #LambdaK^{-} (GeV/c^{2})");
- fHistMassLambdaK->GetYaxis()->SetTitle("Entries");
- fHistMassLambdaK->SetMarkerStyle(kFullCircle);
-
- fHistMassK0onl = new TH1F("fHistMassK0onl", "Invariant mass distribution K_{s}^{0} online V0 finder ", 400, 0.2, 1.0);
- fHistMassK0onl->GetXaxis()->SetTitle("Invariant mass #pi^{+}#pi^{-} (GeV/c^{2})");
- fHistMassK0onl->GetYaxis()->SetTitle("Entries");
- fHistMassK0onl->SetMarkerStyle(kFullCircle);
-
- fHistMassK0offl = new TH1F("fHistMassK0offl", "Invariant mass distribution  K_{s}^{0} offline V0 finder ", 400, 0.2, 1.0);
- fHistMassK0offl->GetXaxis()->SetTitle("Invariant mass  #pi^{+}#pi^{-} (GeV/c^{2})");
- fHistMassK0offl->GetYaxis()->SetTitle("Entries");
- fHistMassK0offl->SetMarkerStyle(kFullCircle);
- fHistMassK0onlC = new TH1F("fHistMassK0onlC", "Invariant mass distribution K_{s}^{0} online V0 finder ", 400, 0.2, 1.0);
- fHistMassK0onlC->GetXaxis()->SetTitle("Invariant mass #pi^{+}#pi^{-} (GeV/c^{2})");
- fHistMassK0onlC->GetYaxis()->SetTitle("Entries");
- fHistMassK0onlC->SetMarkerStyle(kFullCircle);
-
- fHistMassK0offlC = new TH1F("fHistMassK0offlC", "Invariant mass distribution  K_{s}^{0} offline V0 finder ", 400, 0.2, 1.0);
- fHistMassK0offlC->GetXaxis()->SetTitle("Invariant mass  #pi^{+}#pi^{-} (GeV/c^{2})");
- fHistMassK0offlC->GetYaxis()->SetTitle("Entries");
- fHistMassK0offlC->SetMarkerStyle(kFullCircle);
-
- fHistMassPQonl = new TH1F("fHistMassPQonl", "Invariant mass distribution K_{s}^{0}p using online V0 finder ", 500, 1.3, 2.3);
- fHistMassPQonl->GetXaxis()->SetTitle("Invariant mass K_{s}^{0}p (GeV/c^{2})");
- fHistMassPQonl->GetYaxis()->SetTitle("Entries");
- fHistMassPQonl->SetMarkerStyle(kFullCircle);
-
- fHistMassPQoffl = new TH1F("fHistMassPQoffl", "Invariant mass distribution  K_{s}^{0}p using offline V0 finder ", 500, 1.3, 2.3);
- fHistMassPQoffl->GetXaxis()->SetTitle("Invariant mass K_{s}^{0}p (GeV/c^{2})");
- fHistMassPQoffl->GetYaxis()->SetTitle("Entries");
- fHistMassPQoffl->SetMarkerStyle(kFullCircle);
-
- fHistDC = new TH1F("fHistDC", "Proper decay length", 500, 0.0, 25);
- fHistDC->GetXaxis()->SetTitle("c#tau (cm)");
- fHistDC->GetYaxis()->SetTitle("Entries");
- fHistDC->SetMarkerStyle(kFullCircle);
-  
- fHistArmenterosPodolanski = new TH2F("fHistArmenterosPodolanski", "Armenteros-Podolanski plot", 200,-1.0,1.0, 500,0,1);
- fHistArmenterosPodolanski->GetXaxis()->SetTitle("#alpha");
- fHistArmenterosPodolanski->GetYaxis()->SetTitle("q_{t}");
- fHistArmenterosPodolanski->SetMarkerStyle(kFullCircle);
-
- fHistArmenterosPodolanskiCut = new TH2F("fHistArmenterosPodolanskiCut", "Armenteros-Podolanski plot after cut", 200,-1.0,1.0, 500,0,1);
- fHistArmenterosPodolanskiCut->GetXaxis()->SetTitle("#alpha");
- fHistArmenterosPodolanskiCut->GetYaxis()->SetTitle("q_{t}");
- fHistArmenterosPodolanskiCut->SetMarkerStyle(kFullCircle);
-
- fHistHDibaryonInvaMassGen = new TH1F("fHistHDibaryonInvaMassGen", "Generated  #Lambda p #pi^{-}", 200, 2.1, 2.3);
- fHistHDibaryonInvaMassGen->GetYaxis()->SetTitle("Counts");
- fHistHDibaryonInvaMassGen->GetXaxis()->SetTitle("Invariant mass  (GeV/c^{2})");
-
- fHistHDibaryonInvaMassGenRes = new TH1F("fHistHDibaryonInvaMassGenRes", "Generated  #Lambda p #pi^{-} with particles in rapidity!!!", 200, 2.1, 2.3);
- fHistHDibaryonInvaMassGenRes->GetYaxis()->SetTitle("Counts");
- fHistHDibaryonInvaMassGenRes->GetXaxis()->SetTitle("Invariant mass  (GeV/c^{2})");
-
- fHistAntiHDibaryonInvaMassGen = new TH1F("fHistAntiHDibaryonInvaMassGen", "Generated  #bar{#Lambda} #bar{p} #pi^{+}", 200, 2.1, 2.3);
- fHistAntiHDibaryonInvaMassGen->GetYaxis()->SetTitle("Counts");
- fHistAntiHDibaryonInvaMassGen->GetXaxis()->SetTitle("Invariant mass  (GeV/c^{2})");
-
- fHistHDibaryonInvaMassAso = new TH1F("fHistHDibaryonInvaMassAso", "Associated  #Lambda p #pi^{-}", 200, 2.1, 2.3);
- fHistHDibaryonInvaMassAso->GetYaxis()->SetTitle("Counts");
- fHistHDibaryonInvaMassAso->GetXaxis()->SetTitle("Invariant mass  (GeV/c^{2})");
-
- fHistHDibaryonInvaMassAsoReso = new TH1F("fHistHDibaryonInvaMassAsoReso", "Associated  #Lambda p #pi^{-}", 200, 2.1, 2.3);
- fHistHDibaryonInvaMassAsoReso->GetYaxis()->SetTitle("Counts");
- fHistHDibaryonInvaMassAsoReso->GetXaxis()->SetTitle("Invariant mass  (GeV/c^{2})");
-
- fHistAntiHDibaryonInvaMassAso = new TH1F("fHistAntiHDibaryonInvaMassAso", "Associated  #bar{#Lambda} #bar{p} #pi^{+}", 200, 2.1, 2.3);
- fHistAntiHDibaryonInvaMassAso->GetYaxis()->SetTitle("Counts");
- fHistAntiHDibaryonInvaMassAso->GetXaxis()->SetTitle("Invariant mass  (GeV/c^{2})");
-
- fHistCheck = new TH2F("fHistCheck", "Check online/offline", 200, -0.5, 1.5, 200, -0.5, 1.5);
- fHistCheck->GetXaxis()->SetTitle("offline");
- fHistCheck->GetYaxis()->SetTitle("online");
- fHistCheck->SetMarkerStyle(kFullCircle);
-
- fHistHPointingAngle= new TH1F("fHistHPointingAngle", "Pointing angle distribution for #Lambdap#pi^{-}", 200, 0., 2*TMath::Pi());
- fHistHPointingAngle->GetXaxis()->SetTitle("Pointing angle distribution for #Lambdap#pi^{-}");
- fHistHPointingAngle->GetYaxis()->SetTitle("Entries");
- fHistHPointingAngle->SetMarkerStyle(kFullCircle);
-
- fHistMassH= new TH1F("fHistMassH", "Invariant mass distribution #Lambdap#pi^{-} (GeV/c^{2}) after pointing angle cut", 3000, 2.2, 2.5);
- fHistMassH->GetXaxis()->SetTitle("Invariant mass #Lambdap#pi^{-} (GeV/c^{2})");
- fHistMassH->GetYaxis()->SetTitle("Entries");
- fHistMassH->SetMarkerStyle(kFullCircle);
- fHistMassLambdaFromH= new TH1F("fHistMassLambdaFromH", "Invariant mass distribution #Lambda (GeV/c^{2}) asking for Mother to be H", 300, 1.0, 1.3);
- fHistMassLambdaFromH->GetXaxis()->SetTitle("Invariant mass #Lambda (GeV/c^{2})");
- fHistMassLambdaFromH->GetYaxis()->SetTitle("Entries");
- fHistMassLambdaFromH->SetMarkerStyle(kFullCircle);
-
- fHistMassLambdaFromHtLorentz= new TH1F("fHistMassLambdaFromHtLorentz", "Invariant mass distribution #Lambda (GeV/c^{2}) asking for Mother to be H", 300, 1.0, 1.3);
- fHistMassLambdaFromHtLorentz->GetXaxis()->SetTitle("Invariant mass #Lambda (GeV/c^{2})");
- fHistMassLambdaFromHtLorentz->GetYaxis()->SetTitle("Entries");
- fHistMassLambdaFromHtLorentz->SetMarkerStyle(kFullCircle);
- fHistMassPpi= new TH1F("fHistMassPpi", "Invariant mass distribution of the p#pi^{-} used for combing with Lambda", 300, 1.0, 1.6);
- fHistMassPpi->GetXaxis()->SetTitle("Invariant mass p#pi^{-} (GeV/c^{2})");
- fHistMassPpi->GetYaxis()->SetTitle("Entries");
- fHistMassPpi->SetMarkerStyle(kFullCircle);
-
- fHistMassPpiReso= new TH1F("fHistMassPpiReso", "Invariant mass distribution of the p#pi^{-} used for combing with Lambda", 300, 1.0, 1.6);
- fHistMassPpiReso->GetXaxis()->SetTitle("Invariant mass p#pi^{-} (GeV/c^{2})");
- fHistMassPpiReso->GetYaxis()->SetTitle("Entries");
- fHistMassPpiReso->SetMarkerStyle(kFullCircle);
-
- fHistMassLpi= new TH1F("fHistMassLpi", "Invariant mass distribution of the #Lambda#pi^{-} used for combing with p", 300, 1.1, 1.7);
- fHistMassLpi->GetXaxis()->SetTitle("Invariant mass #Lambda#pi^{-} (GeV/c^{2})");
- fHistMassLpi->GetYaxis()->SetTitle("Entries");
- fHistMassLpi->SetMarkerStyle(kFullCircle);
-
- fHistMassLP= new TH1F("fHistMassLP", "Invariant mass distribution of the #Lambda p used for combing with #pi^{-}", 300, 2.0, 2.3);
- fHistMassLP->GetXaxis()->SetTitle("Invariant mass #Lambda p (GeV/c^{2})");
- fHistMassLP->GetYaxis()->SetTitle("Entries");
- fHistMassLP->SetMarkerStyle(kFullCircle);
-
- fHistProtonPIDBb = new TH2F("fHistProtonPIDBb", "dE/dx after p PID", 100, 0., 10, 100, 0, 100);
- fHistProtonPIDBb->GetYaxis()->SetTitle("TPC Signal");
- fHistProtonPIDBb->GetXaxis()->SetTitle("P (GeV/c)");
- fHistProtonPIDBb->SetOption("scat");
- fHistProtonPIDBb->SetMarkerStyle(kFullCircle);
-
- fHistPionPIDBb = new TH2F("fHistPionPIDBb", "dE/dx after K PID", 100, 0., 10, 100, 0, 100);
- fHistPionPIDBb->GetYaxis()->SetTitle("TPC Signal");
- fHistPionPIDBb->GetXaxis()->SetTitle("P (GeV/c)");
- fHistPionPIDBb->SetOption("scat");
- fHistPionPIDBb->SetMarkerStyle(kFullCircle);
-
- fHistProtonPIDLambda = new TH2F("fHistProtonPIDLambda", "dE/dx after p PID from V0", 100, 0., 10, 100, 0, 100);
- fHistProtonPIDLambda->GetYaxis()->SetTitle("TPC Signal");
- fHistProtonPIDLambda->GetXaxis()->SetTitle("P (GeV/c)");
- fHistProtonPIDLambda->SetOption("scat");
- fHistProtonPIDLambda->SetMarkerStyle(kFullCircle);
-
- fHistPionPIDLambda = new TH2F("fHistPionPIDLambda", "dE/dx after #pi PID from V0", 100, 0, 10, 100, 0, 100);
- fHistPionPIDLambda->GetYaxis()->SetTitle("TPC Signal");
- fHistPionPIDLambda->GetXaxis()->SetTitle("P (GeV/c)");
- fHistPionPIDLambda->SetOption("scat");
- fHistPionPIDLambda->SetMarkerStyle(kFullCircle);
-
- fHistMCdcaPvtxDvtx= new TH1F("fHistMCdcaPvtxDvtx", "MC True DCA Primary Vertex - H Decay Vertex", 300, -0.1, 11.9);
- fHistMCdcaPvtxDvtx->GetXaxis()->SetTitle("dca prim. vtx- decay vtx (cm)");
- fHistMCdcaPvtxDvtx->GetYaxis()->SetTitle("Entries");
- fHistMCdcaPvtxDvtx->SetMarkerStyle(kFullCircle);
-
- fHistMCdcaPvtxLvtx= new TH1F("fHistMCdcaPvtxLvtx", "MC True DCA Primary Vertex - Lambda Decay Vertex", 300, -0.1, 11.9);
- fHistMCdcaPvtxLvtx->GetXaxis()->SetTitle("dca prim. vtx-#Lambda decay vtx (cm)");
- fHistMCdcaPvtxLvtx->GetYaxis()->SetTitle("Entries");
- fHistMCdcaPvtxLvtx->SetMarkerStyle(kFullCircle);
-
- fHistMCdcaDvtxLvtx= new TH1F("fHistMCdcaDvtxLvtx", "MC True DCA H Decay Vertex - Lambda Decay Vertex", 300, -0.1, 11.9);
- fHistMCdcaDvtxLvtx->GetXaxis()->SetTitle("dca H deacy vtx-#Lambda decay vtx (cm)");
- fHistMCdcaDvtxLvtx->GetYaxis()->SetTitle("Entries");
- fHistMCdcaDvtxLvtx->SetMarkerStyle(kFullCircle);
-
- fHistMCangleLH= new TH1F("fHistMCangleLH", "MC True Angle between #Lambda and H", 300, 0., 2*TMath::Pi());
- fHistMCangleLH->GetXaxis()->SetTitle("Angle (#Lambda-H)");
- fHistMCangleLH->GetYaxis()->SetTitle("Entries");
- fHistMCangleLH->SetMarkerStyle(kFullCircle);
-
- fHistMCdecayAngle= new TH1F("fHistMCdecayAngle", "MC True Angle between decay products", 300, 0., 2*TMath::Pi());
- fHistMCdecayAngle->GetXaxis()->SetTitle("Angle (#Lambda-p#pi)");
- fHistMCdecayAngle->GetYaxis()->SetTitle("Entries");
- fHistMCdecayAngle->SetMarkerStyle(kFullCircle);
-
- fHistMCpointingAngle= new TH1F("fHistMCpointingAngle", "MC True Pointing Angle", 3000, 0., 2*TMath::Pi());
- fHistMCpointingAngle->GetXaxis()->SetTitle("Pointing Angle");
- fHistMCpointingAngle->GetYaxis()->SetTitle("Entries");
- fHistMCpointingAngle->SetMarkerStyle(kFullCircle);
-
- fHistMCap = new TH2F("fHistMCap", "True MC Armenteros-Podolanski", 200,-1.0,1.0, 500,0,1);
- fHistMCap->GetYaxis()->SetTitle("#alpha");
- fHistMCap->GetXaxis()->SetTitle("q_{t}");
- fHistMCap->SetOption("scat");
- fHistMCap->SetMarkerStyle(kFullCircle);
-
- fHistMCdcaPvtxDvtxReso= new TH1F("fHistMCdcaPvtxDvtxReso", "MC True DCA Primary Vertex - H Decay Vertex", 300, -0.1, 11.9);
- fHistMCdcaPvtxDvtxReso->GetXaxis()->SetTitle("dca prim. vtx- decay vtx (cm)");
- fHistMCdcaPvtxDvtxReso->GetYaxis()->SetTitle("Entries");
- fHistMCdcaPvtxDvtxReso->SetMarkerStyle(kFullCircle);
-
- fHistMCdcaPvtxLvtxReso= new TH1F("fHistMCdcaPvtxLvtxReso", "MC True DCA Primary Vertex - Lambda Decay Vertex", 300, -0.1, 11.9);
- fHistMCdcaPvtxLvtxReso->GetXaxis()->SetTitle("dca prim. vtx-#Lambda decay vtx (cm)");
- fHistMCdcaPvtxLvtxReso->GetYaxis()->SetTitle("Entries");
- fHistMCdcaPvtxLvtxReso->SetMarkerStyle(kFullCircle);
-
- fHistMCdcaDvtxLvtxReso= new TH1F("fHistMCdcaDvtxLvtxReso", "MC True DCA H Decay Vertex - Lambda Decay Vertex", 300, -0.1, 11.9);
- fHistMCdcaDvtxLvtxReso->GetXaxis()->SetTitle("dca H deacy vtx-#Lambda decay vtx (cm)");
- fHistMCdcaDvtxLvtxReso->GetYaxis()->SetTitle("Entries");
- fHistMCdcaDvtxLvtxReso->SetMarkerStyle(kFullCircle);
-
- fHistMCangleLHReso= new TH1F("fHistMCangleLHReso", "MC True Angle between #Lambda and H", 300, 0., 2*TMath::Pi());
- fHistMCangleLHReso->GetXaxis()->SetTitle("Angle (#Lambda-H)");
- fHistMCangleLHReso->GetYaxis()->SetTitle("Entries");
- fHistMCangleLHReso->SetMarkerStyle(kFullCircle);
-
- fHistMCdecayAngleReso= new TH1F("fHistMCdecayAngleReso", "MC True Angle between decay products", 300, 0., 2*TMath::Pi());
- fHistMCdecayAngleReso->GetXaxis()->SetTitle("Angle (#Lambda-p#pi)");
- fHistMCdecayAngleReso->GetYaxis()->SetTitle("Entries");
- fHistMCdecayAngleReso->SetMarkerStyle(kFullCircle);
-
- fHistMCpointingAngleReso= new TH1F("fHistMCpointingAngleReso", "MC True Pointing Angle", 300, 0., 2*TMath::Pi());
- fHistMCpointingAngleReso->GetXaxis()->SetTitle("Pointing Angle");
- fHistMCpointingAngleReso->GetYaxis()->SetTitle("Entries");
- fHistMCpointingAngleReso->SetMarkerStyle(kFullCircle);
-
- fHistMCapReso = new TH2F("fHistMCapReso", "True MC Armenteros-Podolanski", 200,-1.0,1.0, 500,0,1);
- fHistMCapReso->GetYaxis()->SetTitle("#alpha");
- fHistMCapReso->GetXaxis()->SetTitle("q_{t}");
- fHistMCapReso->SetOption("scat");
- fHistMCapReso->SetMarkerStyle(kFullCircle);
-
- fHistCentrality = new TH1F("Centrality ", "Centrality", 11, -0.5, 10.5);
- fHistCentrality ->GetXaxis()->SetTitle("Centrality");
- fHistCentrality ->GetYaxis()->SetTitle("Entries");
-
- fHistCentralityAC = new TH1F("CentralityAC ", "CentralityAC", 11, -0.5, 10.5);
- fHistCentralityAC ->GetXaxis()->SetTitle("Centrality");
- fHistCentralityAC ->GetYaxis()->SetTitle("Entries");
-
- fHistMultiplicity = new TH1F("Multiplicity ", "Multiplicity", 100, 0, 20000);
- fHistMultiplicity ->GetXaxis()->SetTitle("Centrality");
- fHistMultiplicity ->GetYaxis()->SetTitle("Entries");
-
- fHistList->Add(fHistMassDPi);
- fHistList->Add(fHistMassLPi);
- fHistList->Add(fHistMassLambdaPi);
- fHistList->Add(fHistMassLambda);
- fHistList->Add(fHistMassLambdaPPi);
- fHistList->Add(fHistMassLambdaP);
- fHistList->Add(fHistMassLambdaK);
- fHistList->Add(fHistMassK0onl);
- fHistList->Add(fHistMassK0offl);
- fHistList->Add(fHistMassK0onlC);
- fHistList->Add(fHistMassK0offlC);
- fHistList->Add(fHistMassPQonl); 
- fHistList->Add(fHistMassPQoffl);
- fHistList->Add(fHistDC); 
- fHistList->Add(fHistArmenterosPodolanski);
- fHistList->Add(fHistArmenterosPodolanskiCut);
- fHistList->Add(fHistHDibaryonInvaMassGen);
- fHistList->Add(fHistHDibaryonInvaMassGenRes);
- fHistList->Add(fHistAntiHDibaryonInvaMassGen);
- fHistList->Add(fHistHDibaryonInvaMassAso);
- fHistList->Add(fHistHDibaryonInvaMassAsoReso);
- fHistList->Add(fHistAntiHDibaryonInvaMassAso);
- fHistList->Add(fHistCheck);
- fHistList->Add(fHistHPointingAngle);
- fHistList->Add(fHistMassH);
- fHistList->Add(fHistMassPpi);
- fHistList->Add(fHistMassPpiReso);
- fHistList->Add(fHistMassLpi);
- fHistList->Add(fHistMassLP);
- fHistList->Add(fHistMassLambdaFromH);
- fHistList->Add(fHistMassLambdaFromHtLorentz);
- fHistList->Add(fHistProtonPIDBb);
- fHistList->Add(fHistPionPIDBb);
- fHistList->Add(fHistProtonPIDLambda);
- fHistList->Add(fHistPionPIDLambda);
- fHistList->Add(fHistMCdcaPvtxDvtx);
- fHistList->Add(fHistMCdcaPvtxLvtx);
- fHistList->Add(fHistMCdcaDvtxLvtx);
- fHistList->Add(fHistMCangleLH);
- fHistList->Add(fHistMCdecayAngle);
- fHistList->Add(fHistMCpointingAngle);
- fHistList->Add(fHistMCap);
- fHistList->Add(fHistMCdcaPvtxDvtxReso);
- fHistList->Add(fHistMCdcaPvtxLvtxReso);
- fHistList->Add(fHistMCdcaDvtxLvtxReso);
- fHistList->Add(fHistMCangleLHReso);
- fHistList->Add(fHistMCdecayAngleReso);
- fHistList->Add(fHistMCpointingAngleReso);
- fHistList->Add(fHistMCapReso);
- fHistList->Add(fHistCentrality);
- fHistList->Add(fHistCentralityAC);
- fHistList->Add(fHistMultiplicity);
- fHistHilf1= new TH1F("fHistHilf1", "HD", 300, 0., 10);
- fHistHilf1->GetXaxis()->SetTitle("");
- fHistHilf1->GetYaxis()->SetTitle("Entries");
-
- fHistHilf2= new TH1F("fHistHilf2", "HD", 300, 0., 10);
- fHistHilf2->GetXaxis()->SetTitle("");
- fHistHilf2->GetYaxis()->SetTitle("Entries");
-
- fHistHilf3= new TH1F("fHistHilf3", "HD", 300, 0., 10);
- fHistHilf3->GetXaxis()->SetTitle("");
- fHistHilf3->GetYaxis()->SetTitle("Entries");
-
- fHistHilf4= new TH1F("fHistHilf4", "HD", 300, 0., 10);
- fHistHilf4->GetXaxis()->SetTitle("");
- fHistHilf4->GetYaxis()->SetTitle("Entries");
-
- fHistHilf5= new TH1F("fHistHilf5", "HD", 300, 0., 10);
- fHistHilf5->GetXaxis()->SetTitle("");
- fHistHilf5->GetYaxis()->SetTitle("Entries");
-
- fHistHilf6= new TH1F("fHistHilf6", "HD", 300, 0., 10);
- fHistHilf6->GetXaxis()->SetTitle("");
- fHistHilf6->GetYaxis()->SetTitle("Entries");
- fHistPtvsEtaGen = new TH2F("fHistPtvsEtaGen", "p_{t} vs #eta from generated H", 200,0.0,10.0, 200,-1,1);
- fHistPtvsEtaGen->GetXaxis()->SetTitle("p_{t} (GeV/c)");
- fHistPtvsEtaGen->GetYaxis()->SetTitle("#eta");
- fHistPtvsEtaGen->SetOption("scat");
- fHistPtvsEtaGen->SetMarkerStyle(kFullCircle);
-
- fHistPtvsEtaAso = new TH2F("fHistPtvsEtaAso", "p_{t} vs #eta from associated H", 200,0.0,10.0, 200,-1,1);
- fHistPtvsEtaAso->GetYaxis()->SetTitle("p_{t} (GeV/c)");
- fHistPtvsEtaAso->GetXaxis()->SetTitle("#eta");
- fHistPtvsEtaAso->SetOption("scat");
- fHistPtvsEtaAso->SetMarkerStyle(kFullCircle);
-
- fHistPtvsYGen = new TH2F("fHistPtvsYGen", "p_{t} vs rapidity from generated H", 200,0.0,10.0, 200,-1,1);
- fHistPtvsYGen->GetXaxis()->SetTitle("p_{t} (GeV/c)");
- fHistPtvsYGen->GetYaxis()->SetTitle("y");
- fHistPtvsYGen->SetOption("scat");
- fHistPtvsYGen->SetMarkerStyle(kFullCircle);
-
- fHistPtvsYAso = new TH2F("fHistPtvsYAso", "p_{t} vs rapidity from associated H", 200,0.0,10.0, 200,-1,1);
- fHistPtvsYAso->GetXaxis()->SetTitle("p_{t} (GeV/c)");
- fHistPtvsYAso->GetYaxis()->SetTitle("y");
- fHistPtvsYAso->SetOption("scat");
- fHistPtvsYAso->SetMarkerStyle(kFullCircle);
-
- fHistRap= new TH1F("fHistRap", "Rapidity", 400, -2., 2);
- fHistRap->GetXaxis()->SetTitle("Y");
- fHistRap->GetYaxis()->SetTitle("Entries");
- fHistPtvsEtaAso->SetMarkerStyle(kFullCircle);
-
- fHistList->Add(fHistHilf1);
- fHistList->Add(fHistHilf2); 
- fHistList->Add(fHistHilf3);
- fHistList->Add(fHistHilf4);
- fHistList->Add(fHistHilf5); 
- fHistList->Add(fHistHilf6);
- fHistList->Add(fHistPtvsEtaGen);
- fHistList->Add(fHistPtvsEtaAso);
- fHistList->Add(fHistPtvsYGen);
- fHistList->Add(fHistPtvsYAso);
- fHistList->Add(fHistRap);
-
- fHistCount = new TH1F("fHistCount","test",17,0,17);
- fHistCount->GetXaxis()->SetBinLabel(1,"Events");
- fHistCount->GetXaxis()->SetBinLabel(2,"MC All");
- fHistCount->GetXaxis()->SetBinLabel(3,"MC from Primary Vtx");
- fHistCount->GetXaxis()->SetBinLabel(4,"Horst");
- fHistCount->GetXaxis()->SetBinLabel(5,"Lambda Candidates");
- fHistCount->GetXaxis()->SetBinLabel(6,"Sigma Candidates");
- fHistCount->GetXaxis()->SetBinLabel(7,"Horst");
- fHistCount->GetXaxis()->SetBinLabel(8,"Horst");
- fHistCount->GetXaxis()->SetBinLabel(9,"Horst");
- fHistCount->GetXaxis()->SetBinLabel(10,"MC All #bar{Lambda}(1520)s");
- fHistCount->GetXaxis()->SetBinLabel(11,"");
- fHistCount->GetXaxis()->SetBinLabel(12,"H-Dibaryon");
- fHistCount->GetXaxis()->SetBinLabel(13,"Hypertriton 2-Body");
- fHistCount->GetXaxis()->SetBinLabel(14,"Hypertriton 3-Body");
- fHistCount->GetXaxis()->SetBinLabel(15,"");
- fHistCount->GetXaxis()->SetBinLabel(16,"");
- fHistCount->GetXaxis()->SetBinLabel(17,"Lambdas!!!");
- fHistCount->SetStats(0);
- fHistCount->SetFillColor(38);
- fHistList->Add(fHistCount);
-
- //trigger statistics histogram
-  fHistTriggerStat = new TH1F("fHistTriggerStat","Trigger statistics", 4,-0.5, 3.5);
-  const Char_t* aTriggerNames[] = { "kMB", "kCentral", "kSemiCentral" };
-  for ( Int_t ii=0; ii < 3; ii++ )
-    fHistTriggerStat->GetXaxis()->SetBinLabel(ii+1, aTriggerNames[ii]);
-
-  fHistTriggerStatAfterEventSelection = new TH1F("fHistTriggerStatAfterEventSelection","Trigger statistics after event selection", 4,-0.5, 3.5);
-  for ( Int_t ii=0; ii < 3; ii++ )
-    fHistTriggerStatAfterEventSelection->GetXaxis()->SetBinLabel(ii+1, aTriggerNames[ii]);
-  fHistList->Add(fHistTriggerStat);
-  fHistList->Add(fHistTriggerStatAfterEventSelection);
-
-  fHistMassHcentMult =  new TH3F("fHistMassHcentMult", "Inv. Mass vs. centrality vs. multiplicity", 100, 2.2, 2.3, 5, 0, 4, 300, 0, 6000);
-  fHistMassHcentMult->GetXaxis()->SetTitle("Invariant mass #Lambdap#pi^{-} (GeV/c^{2})"); // inv. mass
-  fHistMassHcentMult->GetYaxis()->SetTitle("Centrality"); // triggertype
-  fHistMassHcentMult->GetZaxis()->SetTitle("Multiplicity"); // refTPC
-  fHistList->Add(fHistMassHcentMult);
-
-  
-  const Double_t kz = 2*TMath::Pi();
-  Int_t binsD01[16]={  300, 200, 100, 100, 100, 100, 100, 100, 200, 200, 200, 200, 400, 200, 200, 3};
-  Double_t xminD01[16]={2.0, 1.0, 0., -1, 0., 0., 0., 0., 0., 0., 0., 0., -1, 0.,  0., 0};
-  Double_t xmaxD01[16]={2.3, 1.2, kz, 1, 1, 10, 10, 5, 5, 5, 5, 100, 1, 100,  4000, 1};
-  
-
-  fHistNdim = new THnSparseF("fHistNdim","THnS;InvMass, InvMassLambda, pointingAngle, armPoAlpha, armPoQt, pTL, pTH, d0p, d0n, dcaHd, dca, decayL, cosPA, centr, multi, mcinf;InvMassH", 16,binsD01,xminD01,xmaxD01);
-  fHistList->Add(fHistNdim);
-
- AliAnalysisManager *man=AliAnalysisManager::GetAnalysisManager();
- AliInputEventHandler* inputHandler = (AliInputEventHandler*) (man->GetInputEventHandler());
- fPIDtpcESD = inputHandler->GetPIDResponse();
-
-// Post output data (if histograms are not used later, PostData is at least called here)
-  PostData(1, fHistList);
-
-}
-
- //________________________________________________________________________
-void AliAnalysisTaskHdibaryonLPpi::UserExec(Option_t *) 
-{ 
-  // Main loop
-  // Called for each event
-
-  //define improtant masses
-  Double_t pionMass     = 0.13957;
-  Double_t protonMass   = 0.93827;
-
-  //define PDGCodes
-  Long_t pdgPionPlus          =         211;
-  Long_t pdgPionMinus         =        -211;
-  Long_t pdgProton            =        2212;
-  Long_t pdgAntiProton        =       -2212;
-  Long_t pdgLambda            =        3122;
-  Long_t pdgAntiLambda        =       -3122;
-  Long_t pdgHDibaryon         =  1020000020;
-  Long_t pdgAntiHDibaryon     = -1020000020;
-
-  AliStack* stack(NULL);
-  if(HasMC()){
-
-    if(!fMCEvent)return;
-
-    AliHeader *head = fMCEvent->Header();
-    if(!head)return;
-    AliGenPythiaEventHeader *pyheader = (AliGenPythiaEventHeader*)head->GenEventHeader();
-    if(!pyheader)return;
-    
-    if(AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()){
-      if(static_cast<AliMCEventHandler*>(AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler())->MCEvent()){
-       if(!(static_cast<AliMCEventHandler*>(AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler())->TreeK()))return;
-       if(!(static_cast<AliMCEventHandler*>(AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler())->TreeTR()))return;
-       if(!(static_cast<AliMCEventHandler*>(AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler())->Init("local")))return;
-       stack = static_cast<AliMCEventHandler*>(AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler())->MCEvent()->Stack();
-       if(!(static_cast<AliMCEventHandler*>(AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler())->MCEvent()->Stack()->TreeK()))return;
-      }
-    }
-       
-    if(!stack)return;
-  }
-
-  // -------------------------------------------------------
-  // Loop for Inv. Mass via ESD tracks
-  // -------------------------------------------------------
-
-  fHistCount->Fill(0);
-  
-  fESD = dynamic_cast<AliESDEvent *>(fInputEvent);
-
-    if (!fESD) {
-      //Printf("ERROR: fESD not available");
-      return;
-    }
-
-
-  const AliESDVertex *vertex = fESD->GetPrimaryVertexTracks();
-  if (vertex->GetNContributors()<1) 
-    {
-      // SPD vertex
-      vertex = fESD->GetPrimaryVertexSPD();
-       if(vertex->GetNContributors()<1) {
-        return;
-       }  
-    }
-  if (TMath::Abs(vertex->GetZ()) > 10) return;
-  
-  Int_t centrality = -5;
-  Double_t centrPerc = -5;
-
-  if (fESD->GetEventSpecie() == 4) 
-    { // PbPb
-      AliCentrality *esdCentrality = fESD->GetCentrality();
-      centrality = esdCentrality->GetCentralityClass10("V0M"); // centrality percentile determined with V0
-      centrPerc = esdCentrality->GetCentralityPercentile("V0M");
-//      if (centrality < 0. || centrality > 8.) return; //0 bis 80 %
-      if (centrality > 8) return; //0 bis 80 %
-      //  cout<<"Centrality: "<< centrality << endl;
-    }
-
-
-  fHistCentrality->Fill(centrality);   
-
-  //*****************//  
-  //*   Centrality  *//
-  //*****************//
-  //  Float_t percentile=centrality->GetCentralityPercentile("V0M");
-
-  Bool_t isSelectedCentral = (((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & AliVEvent::kCentral);
-  Bool_t isSelectedSemiCentral = (((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & AliVEvent::kSemiCentral);
-  Bool_t isSelectedMB = (((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & AliVEvent::kMB);
-  Int_t triggertype = 17;
-
-  if(isSelectedCentral){
-    fHistTriggerStat->Fill(1);
-    triggertype=1;
-  }
-
-  if(isSelectedSemiCentral){
-    fHistTriggerStat->Fill(2);
-    triggertype=2;
-  }
-
-  if(isSelectedMB){
-    fHistTriggerStat->Fill(0);
-    triggertype=3;
-  }
-
-  //  if(isSelectedCentral || isSelectedSemiCentral || isSelectedMB){
-
-  //*******************************
-
-  Int_t runNumber = 0;
-  //  itrk = 0;
-  runNumber = fESD->GetRunNumber();
-/*  
-  if (!fPIDtpcESD) fPIDtpcESD = ((AliESDInputHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->GetESDpid();
-  if (!fPIDtpcESD) {
-    fPIDtpcESD = new AliESDpid(); // HACK FOR MC PBPB --> PLEASE REMOVE AS SOON AS POSSIBLE
-    fPIDtpcESD->GetTPCResponse().SetBetheBlochParameters(1.28778e+00/50., 3.13539e+01, TMath::Exp(-3.16327e+01), 1.87901e+00, 6.41583e+00);
-  }
-*/
-  Double_t pionK=1;
-  Double_t pK=1;
-  TObjArray* listCrossV0   = fESDCutsV0->GetAcceptedV0s(fESD);  
-  Int_t nGoodV0s      = listCrossV0->GetEntries();
-
-  const AliESDVertex *esdVer = fESD->GetPrimaryVertex();
-  AliESDVertex *esdVer1 = new AliESDVertex(*esdVer);
-   
-  AliVertexerTracks *vertexer = new AliVertexerTracks(fESD->GetMagneticField());
-  TObjArray *trkArray = new TObjArray(2);
-  AliVertexerTracks *vertexer1 = new AliVertexerTracks(fESD->GetMagneticField());
-  TObjArray *trkArray1 = new TObjArray(2);
-
-  AliKFParticle::SetField(fESD->GetMagneticField());
-       
-  AliKFVertex primVtx(*(fESD->GetPrimaryVertex()));
-
-  Int_t refMultTpc = AliESDtrackCuts::GetReferenceMultiplicity(fESD, kTRUE);
-  //cout<<"Multiplicity: "<< refMultTpc << endl;
-  fHistMultiplicity->Fill(refMultTpc);
-  
-  Double_t mn[3] = {0,0,0};
-  Double_t mp[3] = {0,0,0}; 
-  Double_t mm[3] = {0,0,0};
-  Double_t dd[3] = {0,0,0};
-  Double_t dd1[3] = {0,0,0};
-  const Double_t cProtonMass=TDatabasePDG::Instance()->GetParticle(2212)->Mass();
-  const Double_t cPionMass=TDatabasePDG::Instance()->GetParticle(211)->Mass();
-  const Double_t cElectronMass=TDatabasePDG::Instance()->GetParticle(11)->Mass();
-  const Double_t cLambdaMass=TDatabasePDG::Instance()->GetParticle(3122)->Mass();
-  Double_t decayLength=0;
-  Double_t decayLengthH=0;
-
-  //V0 Loop for Lambda and Anti-Lambda
-  for(Int_t iV0MI = 0; iV0MI < nGoodV0s ; iV0MI++) {
-    AliESDv0 * fV0MIs = fESD->GetV0(iV0MI);
-    Int_t    lOnFlyStatus = 0;
-
-    lOnFlyStatus = fV0MIs->GetOnFlyStatus();
-    Double_t lInvMassLambda=0;
-    Double_t lInvMassLambdaPi=0;
-    Double_t lPtLambda=0;
-    Double_t lPzLambda=0;
-    Double_t lPLambda=0;
-    Int_t onl=0;
-    Int_t offl=0;
-
-    TLorentzVector posE;
-    TLorentzVector negE;
-    TLorentzVector photon;
-
-    if (lOnFlyStatus){
-      onl=1; 
-      //      return;
-    }
-    if (!lOnFlyStatus){
-      offl=1;
-      //return;
-    }
-
-    //    fHistMultiplicity->Fill(refMultTpc); 
-    fHistCentralityAC->Fill(centrality);
-    fHistCheck->Fill(offl,onl);
-
-    AliESDtrack* trackPosTest = fESD->GetTrack(fV0MIs->GetPindex());
-    AliESDtrack* trackNegTest = fESD->GetTrack(fV0MIs->GetNindex());
-
-    //    if (!
-    if (!fEsdTrackCuts->AcceptTrack(trackPosTest)) continue;
-    if (!fESDtrackCutsV0->AcceptTrack(trackNegTest)) continue;
-
-
-      //PID via specific energy loss in the TPC
-      //define the arrays for the Bethe-Bloch-Parameters
-      Double_t parProton[5]   = {0,0,0,0,0};
-
-      if(runNumber < 166500) //LHC10h
-       {
-         parProton[0]   = 1.45802; // ALEPH parameters for protons (pass2)
-         parProton[1]   = 27.4992;
-         parProton[2]   = 4.00313e-15;
-         parProton[3]   = 2.48485;
-         parProton[4]   = 8.31768; 
-       }
-      
-      if(runNumber > 166500) //LHC11h
-       { 
-         parProton[0]   = 1.11243; // ALEPH parameters for protons (pass2)
-         parProton[1]   = 26.1144;
-         parProton[2]   = 4.00313e-15;
-         parProton[3]   = 2.72969;
-         parProton[4]   = 9.15038; 
-       }
-      //Get the total momentum for each track at the inner readout of the TPC
-      Double_t ptotN = trackNegTest->GetInnerParam()->GetP();
-      Double_t ptotP = trackPosTest->GetInnerParam()->GetP();
-
-      //define expected signals for the various species
-      Double_t expSignalPionP = 0;
-      Double_t expSignalPionN = 0;
-      Double_t expSignalProtonN = 0;
-      Double_t expSignalProtonP = 0;
-
-      //for data
-      if(!HasMC())
-       {
-         expSignalProtonN = AliExternalTrackParam::BetheBlochAleph(ptotN/(protonMass),parProton[0],parProton[1],parProton[2],parProton[3],parProton[4]);
-         expSignalProtonP = AliExternalTrackParam::BetheBlochAleph(ptotP/(protonMass),parProton[0],parProton[1],parProton[2],parProton[3],parProton[4]);
-       }
-    
-      //for MC
-      if(HasMC())
-       {
-         expSignalPionP = 0.7*AliExternalTrackParam::BetheBlochAleph(ptotP/(pionMass),parProton[0],parProton[1],parProton[2],parProton[3],parProton[4]); 
-         expSignalPionN = 0.7*AliExternalTrackParam::BetheBlochAleph(ptotN/(pionMass),parProton[0],parProton[1],parProton[2],parProton[3],parProton[4]); 
-
-         expSignalProtonN = 0.65*AliExternalTrackParam::BetheBlochAleph(ptotN/(protonMass),parProton[0],parProton[1],parProton[2],parProton[3],parProton[4]);
-         expSignalProtonP = 0.65*AliExternalTrackParam::BetheBlochAleph(ptotP/(protonMass),parProton[0],parProton[1],parProton[2],parProton[3],parProton[4]);   
-       }
-
-      // PID cut on the nuclei (proton, deuteron, triton, helium3)
-      Bool_t corrParticle = kFALSE;
-
-      Bool_t posProton = kFALSE;
-      //data
-      if(!HasMC())
-       {
-         if (TMath::Abs(fPIDtpcESD->NumberOfSigmasTPC(trackPosTest, AliPID::kProton)) < 3)
-           {
-             posProton = kTRUE;
-             corrParticle = kTRUE;
-           }
-       }
-      //MC
-      if(HasMC())
-       {
-         if(//trackPosTest->GetTPCsignal() < 1200 && 
-            TMath::Abs(trackPosTest->GetTPCsignal() - expSignalProtonP)/expSignalProtonP < 0.4)
-           {
-             posProton = kTRUE;
-             corrParticle = kTRUE;
-           }
-       }
-
-      Bool_t negProton = kFALSE;
-      //data
-      if(!HasMC())
-       {
-         if (TMath::Abs(fPIDtpcESD->NumberOfSigmasTPC(trackNegTest, AliPID::kProton)) < 3)
-           {
-             negProton = kTRUE;
-             corrParticle = kTRUE;
-           }
-       }
-     //MC
-      if(HasMC())
-       {
-         if(//trackNegTest->GetTPCsignal() < 1200 && 
-            TMath::Abs(trackNegTest->GetTPCsignal() - expSignalProtonN)/expSignalProtonN < 0.4)
-           {
-             negProton = kTRUE;
-             corrParticle = kTRUE;
-           }
-       }
-
-     //PID cut for pions
-      //data: 3sigma cut on the pions
-
-      Bool_t negPion = kFALSE;     
-      Bool_t posPion = kFALSE;
-
-      if (!HasMC())
-       {
-         if (TMath::Abs(fPIDtpcESD->NumberOfSigmasTPC(trackPosTest, AliPID::kPion)) < 4) posPion=kTRUE; //pos daughter has to be a pion
-         if (TMath::Abs(fPIDtpcESD->NumberOfSigmasTPC(trackNegTest, AliPID::kPion)) < 4) negPion=kTRUE; // negative daughter has to be a pion
-       }
-      
-      //MC: like the nuclei via the specific energyloss in the TPC
-      if (HasMC())
-       {
-         if (TMath::Abs(trackPosTest->GetTPCsignal() - expSignalPionP)/expSignalPionP < 0.4) posPion=kTRUE;
-         if (TMath::Abs(trackNegTest->GetTPCsignal() - expSignalPionN)/expSignalPionN < 0.4) negPion=kTRUE;
-       }
-
-      if (!(posProton==kTRUE)) continue;
-      if (!(negPion==kTRUE)) continue;
-
-    //To avoid ghosts
-
-    if( !(trackPosTest->GetStatus() & AliESDtrack::kTPCrefit)){
-      continue;
-    }
-
-    if( !(trackNegTest->GetStatus() & AliESDtrack::kTPCrefit)){
-      continue;
-    }
-
-    if( trackPosTest->GetSign() >0 && trackNegTest->GetSign() <0){
-      fV0MIs->GetNPxPyPz(mn[0],mn[1],mn[2]); //reconstructed cartesian momentum components of negative daughter
-      fV0MIs->GetPPxPyPz(mp[0],mp[1],mp[2]); //reconstructed cartesian momentum components of positive daughter 
-    }
-
-    if( trackPosTest->GetSign() <0 && trackNegTest->GetSign() >0){
-      fV0MIs->GetPPxPyPz(mn[0],mn[1],mn[2]); //reconstructed cartesian momentum components of negative daughter
-      fV0MIs->GetNPxPyPz(mp[0],mp[1],mp[2]); //reconstructed cartesian momentum components of positive daughter
-    }
-
-    fV0MIs->GetPxPyPz(mm[0],mm[1],mm[2]); //reconstructed cartesian momentum components of mother
-
-    TVector3 vecN(mn[0],mn[1],mn[2]);
-    TVector3 vecP(mp[0],mp[1],mp[2]);
-    TVector3 vecM(mm[0],mm[1],mm[2]);
-    
-    Double_t thetaP = acos((vecP * vecM)/(vecP.Mag() * vecM.Mag()));
-    Double_t thetaN = acos((vecN * vecM)/(vecN.Mag() * vecM.Mag()));
-    
-    Double_t alfa = ((vecP.Mag())*cos(thetaP)-(vecN.Mag())*cos(thetaN))/
-      ((vecP.Mag())*cos(thetaP)+(vecN.Mag())*cos(thetaN)) ;
-    Double_t qt = vecP.Mag()*sin(thetaP);
-
-    fHistArmenterosPodolanski->Fill(alfa,qt);    //Armenteros-Podolanski calculation
-
-    TLorentzVector k0;
-    TLorentzVector k0daugh1;
-    TLorentzVector k0daugh2;
-    TLorentzVector proton;
-    TLorentzVector pq;
-
-    k0daugh1.SetXYZM(mn[0],mn[1],mn[2],cPionMass);
-    k0daugh2.SetXYZM(mp[0],mp[1],mp[2],cPionMass);
-    k0=k0daugh1+k0daugh2;
-
-    fV0MIs->ChangeMassHypothesis(3122);
-    lInvMassLambda = fV0MIs->GetEffMass();
-    lPtLambda = fV0MIs->Pt();
-    lPzLambda = fV0MIs->Pz();
-    lPLambda = fV0MIs->P();
-
-    trkArray->AddAt(trackPosTest,0);
-    trkArray->AddAt(trackNegTest,1);
-
-    vertexer->SetVtxStart(esdVer1);
-    AliESDVertex *decayVertex = (AliESDVertex*)vertexer->VertexForSelectedESDTracks(trkArray);
-
-    dd[0]=fESD->GetPrimaryVertexSPD()->GetX()-decayVertex->GetX();
-    dd[1]=fESD->GetPrimaryVertexSPD()->GetY()-decayVertex->GetY();
-    dd[2]=fESD->GetPrimaryVertexSPD()->GetZ()-decayVertex->GetZ();
-    
-    decayLength=sqrt(dd[0]*dd[0]+dd[1]*dd[1]+dd[2]*dd[2]);
-
-      if (decayVertex == NULL) cout << "Lambda decay vtx pointer NULL" << endl;
-    if (decayVertex) delete decayVertex;
-
-    TLorentzVector negPio1;
-    TLorentzVector posProt1;        
-    TLorentzVector posP;
-    TLorentzVector posProt;
-    TLorentzVector negK;
-    TLorentzVector negPio;
-    TLorentzVector negPi;
-    TLorentzVector omega;
-    TLorentzVector threeSum;
-    TLorentzVector fourSum;
-    TLorentzVector ppK;
-    TLorentzVector posPiK;
-    TLorentzVector negPiK;
-    TLorentzVector kaon;
-    TLorentzVector lambda;
-    TLorentzVector lambdaH;
-    TLorentzVector hDibaryon;
-    TVector3 h;
-    TVector3 h1;
-
-    Int_t mcStatus=0;
-
-    h.SetXYZ(-dd[0],-dd[1],-dd[2]);
-
-
-    if (offl==1)fHistMassDPi->Fill(lInvMassLambda);
-
-    if (onl==1){
-      fHistMassLPi->Fill(lInvMassLambda);
-      
-      negE.SetXYZM(mn[0],mn[1],mn[2],cElectronMass);
-      posE.SetXYZM(mp[0],mp[1],mp[2],cElectronMass);
-      photon=posE+negE;
-      
-      negPiK.SetXYZM(mn[0],mn[1],mn[2],cPionMass);
-      posPiK.SetXYZM(mp[0],mp[1],mp[2],cPionMass);
-      kaon=posPiK+negPiK;
-      
-      negPi.SetXYZM(mn[0],mn[1],mn[2],cPionMass);
-      posP.SetXYZM(mp[0],mp[1],mp[2],cProtonMass);
-      lambda=negPi+posP;
-      lambdaH.SetXYZM(mm[0],mm[1],mm[2],cLambdaMass);
-
-      if (lInvMassLambda>1.1113&&lInvMassLambda<1.1202){
-       
-       if (!HasMC()){
-         if (qt<-2.21*alfa*alfa+2.945*alfa-0.887) continue;
-         if (qt>-2.21*alfa*alfa+2.945*alfa-0.873) continue;
-         if (photon.M()<0.005) continue;
-         if (kaon.M()>0.495 && kaon.M()<0.500 ) continue;
-       }
-       
-
-       fHistMassLambda->Fill(lInvMassLambda);
-       //
-       Bool_t isCorrectlyAssociatedLambda = kFALSE;
-       Bool_t isPartialCorrectlyAssociatedLambda = kFALSE;
-       Int_t labelAssociatedH=-1; 
-       Int_t labelLambda=-1;
-       //
-       if (HasMC()) {
-         Int_t labelPosTest = trackPosTest->GetLabel();
-         TParticle *tparticleDaughter = stack->Particle(TMath::Abs(labelPosTest));
-         Int_t labelMother = tparticleDaughter->GetFirstMother();
-         TParticle *tparticleMother = stack->Particle(TMath::Abs(labelMother));
-         
-         Int_t labelOma = tparticleMother->GetFirstMother();
-         TParticle *tparticleOma = stack->Particle(TMath::Abs(labelOma));
-
-         if ((tparticleOma->GetPdgCode() < 0) && TMath::Abs(tparticleMother->GetPdgCode())==pdgLambda){// check mother to be Lambda 
-           Int_t labelFirstDaughter  = tparticleMother->GetDaughter(1);// Proton
-           Int_t labelThirdDaughter  = tparticleMother->GetDaughter(0);// Pion
-           
-           TParticle *tparticleFirstDaughter  = stack->Particle(TMath::Abs(labelFirstDaughter));
-           TParticle *tparticleThirdDaughter  = stack->Particle(TMath::Abs(labelThirdDaughter));
-           
-           if((tparticleFirstDaughter->GetPdgCode() == pdgProton && tparticleThirdDaughter->GetPdgCode()== pdgPionMinus) || 
-              (tparticleFirstDaughter->GetPdgCode() == pdgPionMinus && tparticleThirdDaughter->GetPdgCode()== pdgProton)){ //daughter PDGs
-             isPartialCorrectlyAssociatedLambda = kTRUE;
-             labelLambda=labelMother;
-           }
-         }
-         
-         //H-Dibaryon
-         if(tparticleOma->GetPdgCode() == pdgHDibaryon){ //check grandmother to be H PDG
-           if (TMath::Abs(tparticleMother->GetPdgCode())==pdgLambda){// check mother to be Lambda 
-             Int_t labelFirstDaughter  = tparticleMother->GetDaughter(1);// Proton
-             Int_t labelThirdDaughter  = tparticleMother->GetDaughter(0);// Pion
-                       
-             TParticle *tparticleFirstDaughter  = stack->Particle(TMath::Abs(labelFirstDaughter));
-             TParticle *tparticleThirdDaughter  = stack->Particle(TMath::Abs(labelThirdDaughter));
-             
-             if((tparticleFirstDaughter->GetPdgCode() == pdgProton && tparticleThirdDaughter->GetPdgCode()== pdgPionMinus) || 
-                (tparticleFirstDaughter->GetPdgCode() == pdgPionMinus && tparticleThirdDaughter->GetPdgCode()== pdgProton)){ //daughter PDGs
-               isCorrectlyAssociatedLambda = kTRUE;
-               labelAssociatedH=labelOma;
-               fHistMassLambdaFromH->Fill(lInvMassLambda);
-               fHistMassLambdaFromHtLorentz->Fill(lambda.M());
-             }
-           }
-         }
-       }
-
-       fHistProtonPIDLambda->Fill(trackPosTest->GetInnerParam()->GetP(), trackPosTest->GetTPCsignal());
-       fHistPionPIDLambda->Fill(trackNegTest->GetInnerParam()->GetP(), trackNegTest->GetTPCsignal());
-
-       //---------------------------------------------------------
-       // Proton track loop
-       //---------------------------------------------------------
-       fHistArmenterosPodolanskiCut->Fill(alfa,qt);
-
-       for (Int_t iTracksP = 0; iTracksP < fESD->GetNumberOfTracks(); iTracksP++) {
-         AliESDtrack* trackP = dynamic_cast<AliESDtrack*> (fESD->GetTrack(iTracksP));
-         if (trackP->GetSign()<0) continue;
-         
-         if (iTracksP==fV0MIs->GetPindex())continue;
-         if (iTracksP==fV0MIs->GetNindex())continue;
-               
-         if (!fEsdTrackCuts->AcceptTrack(trackP)) continue;
-               
-         AliKFParticle protonKF( *(trackP), 2212);
-
-         if (!trackP->GetInnerParam()) continue;
-         
-         if (HasMC()) {
-           pK=0.65;
-         }
-
-         if (!HasMC()){
-           if (TMath::Abs(fPIDtpcESD->NumberOfSigmasTPC(trackP, AliPID::kProton)) > 3) continue;
-         }             
-         
-         fHistProtonPIDBb->Fill(trackP->GetInnerParam()->GetP(), trackP->GetTPCsignal());
-         
-         posProt.SetXYZM(trackP->Px(),trackP->Py(),trackP->Pz(),cProtonMass);
-
-         //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-         //Pion Track loop!!!!!!!!!!!!!!!!!!!!!
-         //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-         for (Int_t iTracksN = iTracksP+1; iTracksN < fESD->GetNumberOfTracks(); iTracksN++) {
-           AliESDtrack* trackN = dynamic_cast<AliESDtrack*> (fESD->GetTrack(iTracksN));
-
-           if (iTracksN==fV0MIs->GetPindex())continue;
-           if (iTracksN==fV0MIs->GetNindex())continue;
-           if (trackN->GetSign()>0) continue;
-         
-           if (!fEsdTrackCuts->AcceptTrack(trackN)) continue;
-           if (!fESDtrackCutsV0->AcceptTrack(trackN)) continue;
-
-           Double_t bz = fESD->GetMagneticField();
-          
-           Double_t xthiss(0.0);
-           Double_t xpp(0.0);
-           Double_t dca = trackN->GetDCA(trackP,bz,xthiss,xpp);
-           if (dca>0.5) continue;
-
-           negPi.SetXYZM(mn[0],mn[1],mn[2],cPionMass);
-           posP.SetXYZM(mp[0],mp[1],mp[2],cProtonMass);
-           negPio.SetXYZM(trackN->Px(),trackN->Py(),trackN->Pz(),cPionMass);
-             
-           threeSum=negPi+posP+negPio;
-           lInvMassLambdaPi=threeSum.M();         
-           
-           fHistDC->Fill(decayLength*lInvMassLambda/lPLambda);
-           
-           AliKFParticle posPionKF( *(trackN) ,-211);
-           
-           if (!trackN->GetInnerParam()) continue;
-           if (HasMC()) {
-             pionK=0.7;
-           }
-           
-         //  if (!HasMC()){
-             if (TMath::Abs(fPIDtpcESD->NumberOfSigmasTPC(trackN, AliPID::kPion)) > 3) continue;
-         //  }
-           fHistPionPIDBb->Fill(trackN->GetInnerParam()->GetP(), trackN->GetTPCsignal());
-
-           trkArray1->AddAt(trackP,0);
-           trkArray1->AddAt(trackN,1);
-           
-           vertexer1->SetVtxStart(esdVer1);
-           AliESDVertex *decayVertex1 = (AliESDVertex*)vertexer1->VertexForSelectedESDTracks(trkArray1);
-           
-           dd1[0]=fESD->GetPrimaryVertexSPD()->GetX()-decayVertex1->GetX();
-           dd1[1]=fESD->GetPrimaryVertexSPD()->GetY()-decayVertex1->GetY();
-           dd1[2]=fESD->GetPrimaryVertexSPD()->GetZ()-decayVertex1->GetZ();
-           
-           decayLengthH=sqrt(dd1[0]*dd1[0]+dd1[1]*dd1[1]+dd1[2]*dd1[2]);
-
-             //            Double_t bz = fESD->GetMagneticField();
-           
-           trackP->PropagateToDCA(decayVertex1, bz, 10);
-           trackN->PropagateToDCA(decayVertex1, bz, 10);
-
-             //            Double_t xthiss(0.0);
-             //            Double_t xpp(0.0);
-             //            Double_t dca = trackN->GetDCA(trackP,bz,xthiss,xpp);
-
-             if (decayVertex1 == NULL) cout << "Secondary decay vtx pointer NULL" << endl;
-           if (decayVertex1) delete decayVertex1;
-           h1.SetXYZ(-dd1[0],-dd1[1],-dd1[2]);
-
-           //      if (dca>1) continue;
-             //            if (dca>0.1) continue;
-
-           fourSum=threeSum+posProt;
-
-           posProt1.SetXYZM(trackP->Px(),trackP->Py(),trackP->Pz(),cProtonMass);
-           negPio1.SetXYZM(trackN->Px(),trackN->Py(),trackN->Pz(),cPionMass);
-           hDibaryon=lambdaH+posProt1+negPio1;
-           Double_t hPointingAngle = hDibaryon.Angle(h);
-           Double_t pointingAngleH = hDibaryon.Angle(h1);
-           Double_t decayAngleH = h.Angle(h1);
-           TVector3 vecDist(dd[0]-dd1[0],dd[1]-dd1[1],dd[2]-dd1[2]);
-           fHistMassLambdaPPi->Fill(hDibaryon.M());
-           fHistHPointingAngle->Fill(pointingAngleH);
-
-            fHistMassHcentMult->Fill(hDibaryon.M(),triggertype,refMultTpc);
-
-           Double_t rapidity = hDibaryon.Rapidity();
-           if(rapidity > 1.0 || rapidity < -1.0) continue;
-
-             //Double_t vec[16]={hDibaryon.M(), lInvMassLambda, pointingAngleH, alfa, qt, lPtLambda, hDibaryon.Pt(), posPionKF.GetDistanceFromVertex(primVtx), protonKF.GetDistanceFromVertex(primVtx), dca, protonKF.GetDistanceFromVertex(posPionKF), TMath::Cos(pointingAngleH), centrPerc, refMultTpc, mcStatus};
-             //fHistNdim->Fill(vec);
-
-           fHistRap->Fill(rapidity);
-           //if (pointingAngleH > 0.1) continue;
-           if (pointingAngleH > 0.05) continue;
-
-           ///////////////////////////
-           //MC part for Associated H
-           ///////////////////////////
-
-           if (HasMC() && isCorrectlyAssociatedLambda) {
-             Int_t labelP = trackP->GetLabel();
-             TParticle *tparticleDaughter = stack->Particle(TMath::Abs(labelP));
-             Int_t labelMother = tparticleDaughter->GetFirstMother();
-             TParticle *tparticleMother = stack->Particle(TMath::Abs(labelMother));
-             
-             Int_t labelProton = trackP->GetLabel();
-             Int_t labelPion = trackN->GetLabel();
-             
-             //H-Dibaryon
-             if(tparticleMother->GetPdgCode() == pdgHDibaryon && labelAssociatedH==labelMother){ //check mother PDG
-               Int_t labelFirstDaughter  = tparticleMother->GetDaughter(0);
-               Int_t labelThirdDaughter  = tparticleMother->GetDaughter(1);
-               Int_t labelSecondDaughter = labelFirstDaughter +1;
-
-               TParticle *tparticleSecondDaughter = stack->Particle(TMath::Abs(labelSecondDaughter));
-               TParticle *tparticleThirdDaughter  = stack->Particle(TMath::Abs(labelThirdDaughter));
-               
-               TLorentzVector ppi;
-               TLorentzVector lpi;
-               TLorentzVector lP;
-               
-               ppi=posProt+negPio;
-               lpi=lambdaH+negPio;
-               lP=lambdaH+posProt;
-
-               if((tparticleThirdDaughter->GetPdgCode() == pdgPionMinus && labelPion==labelThirdDaughter)&&(tparticleSecondDaughter->GetPdgCode() == pdgProton||tparticleSecondDaughter->GetPdgCode() == pdgPionMinus) && labelProton==labelSecondDaughter) fHistMassPpi->Fill(ppi.M());
-               
-               if(tparticleThirdDaughter->GetPdgCode() == pdgPionMinus && labelPion==labelThirdDaughter) fHistMassLpi->Fill(lpi.M());
-               
-               if(tparticleSecondDaughter->GetPdgCode() == pdgProton && labelProton==labelSecondDaughter) fHistMassLP->Fill(lP.M());
-               
-               if(tparticleSecondDaughter->GetPdgCode() == pdgProton && labelProton==labelSecondDaughter){//check second daughter PDG
-                 if(tparticleThirdDaughter->GetPdgCode() == pdgPionMinus && labelPion==labelThirdDaughter){//check second daughter PDG
-
-                   fHistHDibaryonInvaMassAso->Fill(hDibaryon.M()); 
-                   
-                   Double_t distance01=vecDist.Mag();
-                   fHistMCdcaPvtxDvtx->Fill(decayLengthH);
-                   fHistMCdcaPvtxLvtx->Fill(decayLength);
-                   fHistMCdcaDvtxLvtx->Fill(distance01);
-                   fHistMCangleLH->Fill(hPointingAngle);
-                   fHistMCdecayAngle->Fill(decayAngleH);
-                   fHistMCpointingAngle->Fill(pointingAngleH);
-                   fHistMCap->Fill(alfa,qt);
-
-                   fHistHilf1->Fill(posPionKF.GetDistanceFromVertex(primVtx));
-                   fHistHilf2->Fill(protonKF.GetDistanceFromVertex(primVtx));
-                   fHistHilf3->Fill(protonKF.GetDistanceFromVertex(posPionKF));
-                   fHistHilf6->Fill(dca);
-                   fHistPtvsYAso->Fill(hDibaryon.Pt(),hDibaryon.Rapidity());
-                   fHistPtvsEtaAso->Fill(hDibaryon.Pt(),hDibaryon.Eta());
-                   mcStatus=1;
-                 }//end check for third daughter PDG
-               }//end check second daughter PDG
-             }//end H-Dibaryon
-           }//end MC
-           
-           //      cout<<"Trigger: "<<triggertype<<endl;
-           fHistMassH->Fill(hDibaryon.M());
-           fHistMassHcentMult->Fill(hDibaryon.M(),triggertype,refMultTpc);
-           ppK=lambdaH+posProt;
-           fHistMassLambdaP->Fill(ppK.M());
-
-             //fHistNdim = new THnSparseF("fHistNdim","THnS;InvMass, InvMassLambda, pointingAngle, armPoAlpha, armPoQt, pTL, pTH, d0p, d0n, dcaHd, dca, decayL, cosPA, centr, multi, mcinf;InvMassH", 16,binsD01,xminD01,xmaxD01);
-
-           Double_t vec[16]={hDibaryon.M(), lInvMassLambda, pointingAngleH, alfa, qt, lPtLambda, hDibaryon.Pt(), posPionKF.GetDistanceFromVertex(primVtx), protonKF.GetDistanceFromVertex(primVtx), dca, protonKF.GetDistanceFromVertex(posPionKF), TMath::Cos(pointingAngleH), centrPerc, static_cast<Double_t>(refMultTpc), static_cast<Double_t>(mcStatus)};
-                     fHistNdim->Fill(vec);
-
-         }
-       }
-      }
-    }    
-  }
-  
-  //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-  //Pure MC Part!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-  //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-  // Monte Carlo for genenerated particles
-  if (HasMC()) //MC loop  
-    {
-
-      Int_t stackN = 0;
-
-      Double_t momentumPionGen[3]={0,0,0};
-      Double_t momentumNucleonGen[3]={0,0,0};
-      Double_t momentumLambdaGen[3]={0,0,0};
-
-      Double_t energyPionGen = 0;
-      Double_t energyNucleonGen = 0;
-      Double_t energyLambdaGen = 0;
-
-      Double_t transversMomentumMotherGen = 0;
-      Double_t longitudinalMomentumMotherGen = 0;
-      Double_t totalEnergyMotherGen = 0;
-      
-      Double_t rapidityGen = 2;
-
-      for(stackN = 0; stackN < stack->GetNtrack(); stackN++) //loop over stack
-       {
-
-         TParticle *tparticleMother = stack->Particle(stackN);
-
-         if(tparticleMother->GetPdgCode() == pdgLambda) fHistCount->Fill(16); 
-
-         //H-Dibaryon
-         if(tparticleMother->GetPdgCode() == pdgHDibaryon) //check mother PDG
-           {
-             Int_t labelFirstDaughter  = tparticleMother->GetDaughter(0);
-             Int_t labelThirdDaughter  = tparticleMother->GetDaughter(1);
-             Int_t labelSecondDaughter = labelFirstDaughter +1;
-
-             TParticle *tparticleFirstDaughter  = stack->Particle(TMath::Abs(labelFirstDaughter));
-             TParticle *tparticleSecondDaughter = stack->Particle(TMath::Abs(labelSecondDaughter));
-             TParticle *tparticleThirdDaughter  = stack->Particle(TMath::Abs(labelThirdDaughter));
-            
-             if(tparticleFirstDaughter->GetPdgCode() == pdgLambda) //check first daughter PDG
-               {
-                 if(tparticleSecondDaughter->GetPdgCode() == pdgProton)//check second daughter PDG
-                   {
-                     if(tparticleThirdDaughter->GetPdgCode() == pdgPionMinus)//check second daughter PDG
-                       {                                     
-                         momentumLambdaGen[0] = tparticleFirstDaughter->Px();
-                         momentumLambdaGen[1] = tparticleFirstDaughter->Py();
-                         momentumLambdaGen[2] = tparticleFirstDaughter->Pz();
-               
-                         momentumNucleonGen[0] = tparticleSecondDaughter->Px();
-                         momentumNucleonGen[1] = tparticleSecondDaughter->Py();
-                         momentumNucleonGen[2] = tparticleSecondDaughter->Pz();
-
-                         momentumPionGen[0] = tparticleThirdDaughter->Px();
-                         momentumPionGen[1] = tparticleThirdDaughter->Py();
-                         momentumPionGen[2] = tparticleThirdDaughter->Pz();
-
-                         TLorentzVector lorentzVectorLambda;
-                         TLorentzVector lorentzVectorProton;
-                         TLorentzVector lorentzVectorPion;
-                         TLorentzVector lorentzVectorHDibaryon;
-                         
-                         lorentzVectorLambda.SetXYZM(momentumLambdaGen[0],momentumLambdaGen[1],momentumLambdaGen[2],1.115);
-                         lorentzVectorProton.SetXYZM(momentumNucleonGen[0],momentumNucleonGen[1],momentumNucleonGen[2],protonMass);
-                         lorentzVectorPion.SetXYZM(momentumPionGen[0],momentumPionGen[1],momentumPionGen[2],pionMass);
-                         
-                         lorentzVectorHDibaryon = lorentzVectorLambda + lorentzVectorProton + lorentzVectorPion;
-                         rapidityGen=lorentzVectorHDibaryon.Rapidity();
-                         transversMomentumMotherGen = lorentzVectorHDibaryon.Pt();
-                         longitudinalMomentumMotherGen = lorentzVectorHDibaryon.Pz();
-                         totalEnergyMotherGen = lorentzVectorHDibaryon.Energy();
-
-                         if(rapidityGen > 1.0 || rapidityGen < -1 ) continue;
-                         //lorentzVectorLambda
-                         fHistHDibaryonInvaMassGen->Fill(lorentzVectorHDibaryon.M()); 
-                         if (lorentzVectorLambda.Rapidity()  > 1.0 || lorentzVectorLambda.Rapidity() < -1) continue;
-                         if (lorentzVectorProton.Rapidity()  > 1.0 ||      lorentzVectorProton.Rapidity() < -1) continue;
-
-                         if (lorentzVectorPion.Rapidity()  > 1.0 ||  lorentzVectorPion.Rapidity() < -1) continue;
-                         fHistHDibaryonInvaMassGenRes->Fill(lorentzVectorHDibaryon.M());
-                         fHistPtvsEtaGen->Fill(lorentzVectorHDibaryon.Pt(),lorentzVectorHDibaryon.Eta());
-                         fHistPtvsYGen->Fill(lorentzVectorHDibaryon.Pt(),lorentzVectorHDibaryon.Rapidity());
-                         fHistPtvsEtaGen->Fill(lorentzVectorHDibaryon.Pt(),lorentzVectorHDibaryon.Eta());
-                         fHistCount->Fill(11);
-                       }//end of check third daughter PDG
-                   }//end of check second daughter PDG
-               }//end of check first daughter PDG
-           }//end of H-Dibaryon
-
-         //Anti-H-Dibaryon
-         if(tparticleMother->GetPdgCode() == pdgAntiHDibaryon) //check mother PDG
-           {
-             Int_t labelFirstDaughter  = tparticleMother->GetDaughter(0);
-             Int_t labelThirdDaughter  = tparticleMother->GetDaughter(1);
-             Int_t labelSecondDaughter = labelFirstDaughter +1;
-
-             TParticle *tparticleFirstDaughter  = stack->Particle(TMath::Abs(labelFirstDaughter));
-             TParticle *tparticleSecondDaughter = stack->Particle(TMath::Abs(labelSecondDaughter));
-             TParticle *tparticleThirdDaughter  = stack->Particle(TMath::Abs(labelThirdDaughter));
-
-             if(tparticleFirstDaughter->GetPdgCode() == pdgAntiLambda) //check first daughter PDG
-               {
-                 if(tparticleSecondDaughter->GetPdgCode() == pdgAntiProton)//check second daughter PDG
-                   {
-                     if(tparticleThirdDaughter->GetPdgCode() == pdgPionPlus)//check second daughter PDG
-                       {                
-                         momentumLambdaGen[0] = tparticleFirstDaughter->Px();
-                         momentumLambdaGen[1] = tparticleFirstDaughter->Py();
-                         momentumLambdaGen[2] = tparticleFirstDaughter->Pz();
-               
-                         momentumNucleonGen[0] = tparticleSecondDaughter->Px();
-                         momentumNucleonGen[1] = tparticleSecondDaughter->Py();
-                         momentumNucleonGen[2] = tparticleSecondDaughter->Pz();
-
-                         momentumPionGen[0] = tparticleThirdDaughter->Px();
-                         momentumPionGen[1] = tparticleThirdDaughter->Py();
-                         momentumPionGen[2] = tparticleThirdDaughter->Pz();
-                         
-                         energyLambdaGen  = tparticleFirstDaughter->Energy();
-                         energyNucleonGen = tparticleSecondDaughter->Energy();
-                         energyPionGen    = tparticleThirdDaughter->Energy();
-                          
-                         TLorentzVector lorentzVectorLambda;
-                         TLorentzVector lorentzVectorProton;
-                         TLorentzVector lorentzVectorPion;
-                         TLorentzVector lorentzVectorHDibaryon;
-                         
-                         lorentzVectorLambda.SetXYZM(momentumLambdaGen[0],momentumLambdaGen[1],momentumLambdaGen[2],1.115);
-                         lorentzVectorProton.SetXYZM(momentumNucleonGen[0],momentumNucleonGen[1],momentumNucleonGen[2],protonMass);
-                         lorentzVectorPion.SetXYZM(momentumPionGen[0],momentumPionGen[1],momentumPionGen[2],pionMass);
-                         
-                         lorentzVectorHDibaryon = lorentzVectorLambda + lorentzVectorProton + lorentzVectorPion;
-
-                         rapidityGen=lorentzVectorHDibaryon.Rapidity();
-                         if(rapidityGen > 1.0 || rapidityGen < -1 ) continue;
-                         fHistAntiHDibaryonInvaMassGen->Fill(lorentzVectorHDibaryon.M()); 
-                       }//end of check third daughter PDG
-                   }//end of check second daughter PDG
-               }//end of check first daughter PDG
-           }//end of Anti-H-Dibaryon
-       }      
-    }//end MC
-
-  // Post output data.
-  PostData(1,fHistList);
-  //PostData(0,fHistList);
-
-    if (listCrossV0 == NULL) return;
-
-  if (listCrossV0) delete listCrossV0;
-  if (esdVer1) delete esdVer1;
-  if (vertexer) delete vertexer;
-  if (vertexer1) delete vertexer1;
-  if (trkArray) delete trkArray;
-  if (trkArray1) delete trkArray1;
-}
-
-//________________________________________________________________________
-void AliAnalysisTaskHdibaryonLPpi::Terminate(Option_t *) 
-{
-  // Draw result to the screen
-  // Called once at the end of the query
-
-}
-