]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWG3/vertexingHF/AliAODRecoCascadeHF.h
Coverity
[u/mrichter/AliRoot.git] / PWG3 / vertexingHF / AliAODRecoCascadeHF.h
index 508b6d3bddc0a0200a3303c2b9600a7d1970f24c..0500596ac67230170e5642cdf9b39a264831a4e7 100644 (file)
@@ -3,6 +3,8 @@
 /* Copyright(c) 1998-2008, ALICE Experiment at CERN, All rights reserved. *
  * See cxx source for full Copyright notice                               */
 
+/* $Id$ */ 
+
 //***********************************************************
 // Class AliAODRecoCascadeHF
 // base class for AOD reconstructed heavy-flavour cascade decays
@@ -15,7 +17,9 @@
 #include <TRef.h>
 #include <TRefArray.h>
 #include <TClonesArray.h>
+#include <TClass.h>
 #include "AliAODVertex.h"
+#include "AliAODv0.h"
 #include "AliAODRecoDecayHF2Prong.h"
 
 class AliAODRecoCascadeHF : public AliAODRecoDecayHF2Prong {
@@ -34,11 +38,31 @@ class AliAODRecoCascadeHF : public AliAODRecoDecayHF2Prong {
   AliAODRecoCascadeHF& operator=(const AliAODRecoCascadeHF& source);
 
   // 2prong (D0 for Dstar)
-  AliAODRecoDecayHF2Prong* Get2Prong() const {return (AliAODRecoDecayHF2Prong*)GetDaughter(1);}
+  AliAODRecoDecayHF2Prong* Get2Prong() const {
+    if ( ! ((AliAODRecoDecay*)GetDaughter(1))->IsA()->InheritsFrom("AliAODRecoDecayHF2Prong") ){
+      AliWarning("Object is not of type AliAODRecoDecayHF2Prong");
+      return 0;
+    }
+    return (AliAODRecoDecayHF2Prong*)GetDaughter(1);
+  }
 
   // Bachelor (soft pion for Dstar)
   AliAODTrack* GetBachelor() const {return (AliAODTrack*)GetDaughter(0);}
 
+  // v0 (Ks or Lambda for Lambda_c)
+  AliAODv0* Getv0() const {
+    if ( ! ((AliAODRecoDecay*)GetDaughter(1))->IsA()->InheritsFrom("AliAODv0") ){
+       AliWarning("Object is not of type v0");
+       return 0;
+      }
+    return (AliAODv0*)GetDaughter(1);
+    }
+
+  // Get v0 positive track
+  AliAODTrack* Getv0PositiveTrack() const { return  (AliAODTrack*)Getv0()->GetDaughter(0);  }
+  // Get v0 negative track
+  AliAODTrack* Getv0NegativeTrack() const { return  (AliAODTrack*)Getv0()->GetDaughter(1);  }
+
   // D*->D0pi, D0->Kpi
   Double_t EDstar() const {return E(413);} 
   Double_t YDstar() const {return Y(413);} 
@@ -46,8 +70,21 @@ class AliAODRecoCascadeHF : public AliAODRecoDecayHF2Prong {
   Double_t InvMassD0() const {return (Charge()>0 ? Get2Prong()->InvMassD0() : Get2Prong()->InvMassD0bar());}
   Double_t InvMassDstarKpipi() const;
   Double_t DeltaInvMass() const {return (InvMassDstarKpipi()-InvMassD0());}
+  Double_t AngleD0dkpPisoft() const;
+  Bool_t   TrigonometricalCut() const;
+
+  // Lc invariant mass
+  Double_t InvMassLctoK0sP() const {
+    UInt_t pdg[2]={2212,310}; return InvMass(2,pdg);
+  }
+  Double_t InvMassLctoLambdaPi() const {
+    UInt_t pdg[2]={211,3122}; return InvMass(2,pdg);
+  }
+  Bool_t SelectLctoV0(const Double_t *cutsLctoV0, Bool_t okLck0sp, Bool_t okLcLpi) const;
 
-  Int_t MatchToMC(Int_t pdgabs,Int_t pdgabs2prong,TClonesArray *mcArray) const;
+  Int_t MatchToMC(Int_t pdgabs,Int_t pdgabs2prong,
+                  Int_t *pdgDg,Int_t *pdgDg2prong,
+                  TClonesArray *mcArray) const;
 
  protected: