]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWG3/vertexingHF/AliAODRecoDecayHF.h
Added method to recalculate the primary vertex without the daughter tracks
[u/mrichter/AliRoot.git] / PWG3 / vertexingHF / AliAODRecoDecayHF.h
index 49dab5a15596a7bba29c312c8701494d1a7d8962..a631f7f8ea19b62e30dc8c0084d871d0c52001d5 100644 (file)
 
 #include <TRef.h>
 #include <TList.h>
+#include "AliAODTrack.h"
 #include "AliAODRecoDecay.h"
 
+class AliAODEvent;
 class AliRDHFCuts;
 class AliKFParticle;
 
@@ -46,6 +48,8 @@ class AliAODRecoDecayHF : public AliAODRecoDecay {
     {CheckOwnPrimaryVtx();fOwnPrimaryVtx->GetPosition(vtx);}
   void UnsetOwnPrimaryVtx() {if(fOwnPrimaryVtx) {delete fOwnPrimaryVtx; fOwnPrimaryVtx=0;} return;}
   AliAODVertex* GetPrimaryVtx() const { return (GetOwnPrimaryVtx() ? GetOwnPrimaryVtx() : GetPrimaryVtxRef()); }
+  AliAODVertex* RemoveDaughtersFromPrimaryVtx(AliAODEvent *aod);  
+
 
   // kinematics & topology
   Double_t DecayLength() const 
@@ -82,6 +86,9 @@ class AliAODRecoDecayHF : public AliAODRecoDecay {
   UShort_t GetProngID(Int_t ip) const 
     {if(fProngID) {return fProngID[ip];} else {return 9999;}}
 
+  // ITS clustermap for daughters
+  Bool_t DaughterHasPointOnITSLayer(Int_t dg,Int_t l) const;
+
   // check if it is like-sign
   Bool_t IsLikeSign() const;
 
@@ -148,5 +155,19 @@ inline AliRDHFCuts *AliAODRecoDecayHF::GetCuts(const char* name) const
   return (AliRDHFCuts*)list->FindObject(name);
 }
 
+inline Bool_t AliAODRecoDecayHF::DaughterHasPointOnITSLayer(Int_t dg,Int_t l) const
+{
+  // ITS clustermap for daughters
+
+  if(l<0 || l>5) {
+    printf("ERROR: layer has to be in the range 0-5\n");
+    return kFALSE;
+  }
+  AliAODTrack *t = (AliAODTrack*)GetDaughter(dg);
+  if(!t) return kFALSE;
+
+  return TESTBIT(t->GetITSClusterMap(),l);
+}
+
 #endif