ROOT logo
#ifndef ALIAODRECODECAYHF4PRONG_H
#define ALIAODRECODECAYHF4PRONG_H
/* Copyright(c) 1998-2006, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

/* $Id$ */ 

//***********************************************************
// Class AliAODRecoDecayHF4Prong
// base class for AOD reconstructed 4-prong heavy-flavour decays
// (D0->Kpipipi, etc...)
// Authors: G.E.Bruno Giuseppe.Bruno@ba.infn.it, R.Romita Rossella.Romita@ba.infn.it
//***********************************************************

#include "AliAODRecoDecay.h"
#include "AliAODRecoDecayHF.h"

class AliAODRecoDecayHF4Prong : public AliAODRecoDecayHF {

 public:

  AliAODRecoDecayHF4Prong();
  AliAODRecoDecayHF4Prong(AliAODVertex *vtx2,
			   Double_t *px,Double_t *py,Double_t *pz,
			   Double_t *d0,Double_t *d0err,
			   Double_t *dca, //Double_t sigvert,
			   Double_t dist12,Double_t dist3, 
			   Double_t dist4, 
                           Short_t charge);
   AliAODRecoDecayHF4Prong(AliAODVertex *vtx2,
			   Double_t *d0,Double_t *d0err,
			   Double_t *dca, //Double_t sigvert,
			   Double_t dist12,Double_t dist3, 
			   Double_t dist4, 
			   Short_t charge);

  AliAODRecoDecayHF4Prong(const AliAODRecoDecayHF4Prong& source);
  AliAODRecoDecayHF4Prong& operator=(const AliAODRecoDecayHF4Prong& source); 

  virtual ~AliAODRecoDecayHF4Prong() {}  
 
  void GetDCAs(Double_t dca[6]) const 
    {for(Int_t i=0;i<6;i++) dca[i]=GetDCA(i);} 
  // convention:fDCA[0]=p0p1,fDCA[1]=p0p2,fDCA[2]=p0p3,fDCA[3]=p1p2...
  Double_t GetDist12toPrim() const {return fDist12toPrim;}
  Double_t GetDist3toPrim() const {return fDist3toPrim;}
  Double_t GetDist4toPrim() const {return fDist4toPrim;}

  // D0->pi+K- pipi and D0bar->K+pi- pipi (in the order given) 
  Double_t ED0() const {return E(421);}
  Double_t YD0() const {return Y(421);} 
  Double_t CtD0() const {return Ct(421);} 
  Double_t CtD0(Double_t point[3]) const {return AliAODRecoDecay::Ct(421,point);}
  Double_t CtD0(AliAODVertex *vtx1) const {return AliAODRecoDecay::Ct(421,vtx1);}
  Double_t InvMassRho(Int_t i,Int_t j) const {return InvMass2Prongs(i,j,211,211);} 
  Bool_t CutRhoMass(Double_t massD0[2],Double_t massD0bar[2],Double_t CutMass,Double_t CutRho) const; 

  void InvMassD0(Double_t mD0[2]) const;
  void InvMassD0bar(Double_t mD0bar[2]) const;

  Bool_t   SelectD0(const Double_t* cuts,Int_t &okD0,Int_t &okD0bar) const;

 private:

  //Double_t fSigmaVert; // track dispersion around the secondary vertex
  Double_t fDist12toPrim; //distance prim vert - 2 opposite sign track vertex 
  Double_t fDist3toPrim; //distance prim vert - 3 track vertex 
  Double_t fDist4toPrim; //distance prim vert - 4 track vertex 
  //Double_t fDist123toPrim;  //distance 
 

  ClassDef(AliAODRecoDecayHF4Prong,2)  // base class for AOD reconstructed 
                                       // heavy-flavour 3-prong decays
};

#endif
 AliAODRecoDecayHF4Prong.h:1
 AliAODRecoDecayHF4Prong.h:2
 AliAODRecoDecayHF4Prong.h:3
 AliAODRecoDecayHF4Prong.h:4
 AliAODRecoDecayHF4Prong.h:5
 AliAODRecoDecayHF4Prong.h:6
 AliAODRecoDecayHF4Prong.h:7
 AliAODRecoDecayHF4Prong.h:8
 AliAODRecoDecayHF4Prong.h:9
 AliAODRecoDecayHF4Prong.h:10
 AliAODRecoDecayHF4Prong.h:11
 AliAODRecoDecayHF4Prong.h:12
 AliAODRecoDecayHF4Prong.h:13
 AliAODRecoDecayHF4Prong.h:14
 AliAODRecoDecayHF4Prong.h:15
 AliAODRecoDecayHF4Prong.h:16
 AliAODRecoDecayHF4Prong.h:17
 AliAODRecoDecayHF4Prong.h:18
 AliAODRecoDecayHF4Prong.h:19
 AliAODRecoDecayHF4Prong.h:20
 AliAODRecoDecayHF4Prong.h:21
 AliAODRecoDecayHF4Prong.h:22
 AliAODRecoDecayHF4Prong.h:23
 AliAODRecoDecayHF4Prong.h:24
 AliAODRecoDecayHF4Prong.h:25
 AliAODRecoDecayHF4Prong.h:26
 AliAODRecoDecayHF4Prong.h:27
 AliAODRecoDecayHF4Prong.h:28
 AliAODRecoDecayHF4Prong.h:29
 AliAODRecoDecayHF4Prong.h:30
 AliAODRecoDecayHF4Prong.h:31
 AliAODRecoDecayHF4Prong.h:32
 AliAODRecoDecayHF4Prong.h:33
 AliAODRecoDecayHF4Prong.h:34
 AliAODRecoDecayHF4Prong.h:35
 AliAODRecoDecayHF4Prong.h:36
 AliAODRecoDecayHF4Prong.h:37
 AliAODRecoDecayHF4Prong.h:38
 AliAODRecoDecayHF4Prong.h:39
 AliAODRecoDecayHF4Prong.h:40
 AliAODRecoDecayHF4Prong.h:41
 AliAODRecoDecayHF4Prong.h:42
 AliAODRecoDecayHF4Prong.h:43
 AliAODRecoDecayHF4Prong.h:44
 AliAODRecoDecayHF4Prong.h:45
 AliAODRecoDecayHF4Prong.h:46
 AliAODRecoDecayHF4Prong.h:47
 AliAODRecoDecayHF4Prong.h:48
 AliAODRecoDecayHF4Prong.h:49
 AliAODRecoDecayHF4Prong.h:50
 AliAODRecoDecayHF4Prong.h:51
 AliAODRecoDecayHF4Prong.h:52
 AliAODRecoDecayHF4Prong.h:53
 AliAODRecoDecayHF4Prong.h:54
 AliAODRecoDecayHF4Prong.h:55
 AliAODRecoDecayHF4Prong.h:56
 AliAODRecoDecayHF4Prong.h:57
 AliAODRecoDecayHF4Prong.h:58
 AliAODRecoDecayHF4Prong.h:59
 AliAODRecoDecayHF4Prong.h:60
 AliAODRecoDecayHF4Prong.h:61
 AliAODRecoDecayHF4Prong.h:62
 AliAODRecoDecayHF4Prong.h:63
 AliAODRecoDecayHF4Prong.h:64
 AliAODRecoDecayHF4Prong.h:65
 AliAODRecoDecayHF4Prong.h:66
 AliAODRecoDecayHF4Prong.h:67
 AliAODRecoDecayHF4Prong.h:68
 AliAODRecoDecayHF4Prong.h:69
 AliAODRecoDecayHF4Prong.h:70
 AliAODRecoDecayHF4Prong.h:71
 AliAODRecoDecayHF4Prong.h:72
 AliAODRecoDecayHF4Prong.h:73
 AliAODRecoDecayHF4Prong.h:74
 AliAODRecoDecayHF4Prong.h:75
 AliAODRecoDecayHF4Prong.h:76