//  
// Author: Oliver Maria Kind <mailto: kind@mail.desy.de>
// Update: $Id: HepDecayParticle.h,v 1.6 2010/05/25 15:25:07 herrberg Exp $
// Copyright: 2009 (C) Oliver Maria Kind
//
#ifndef HEP_HepDecayParticle
#define HEP_HepDecayParticle
#ifndef HEP_HepParticle
#include <HepParticle.h>
#endif
#ifndef ROOT_TRef
#include <TRef.h>
#endif

class HepDecayParticle : public HepParticle {

protected:
    TRef   *fMCDecay; // Matched MC truth decay (if any)
    Float_t fChi2;    // Chi2 of the kinematic fit
    Int_t   fNDoF;    // No. of degrees per freedom of the kinematic fit
    Float_t fProb;    // Chi2 probability of the kinematic fit
    
public:
    HepDecayParticle();
    HepDecayParticle(Int_t Id, Float_t Px, Float_t Py, Float_t Pz,
		     Float_t E, Int_t PdgCode);
    virtual ~HepDecayParticle();
    virtual void Clear(Option_t *option = "");
    inline void SetChi2NDoF(Float_t chi2, Int_t ndof) {
	fChi2 = chi2;
	fNDoF = ndof;
	fProb = TMath::Prob(chi2, ndof);
    }
    inline Float_t GetChi2() const { return fChi2; }
    inline Float_t GetProb() const { return fProb; }
    inline Int_t   GetNDoF() const { return fNDoF; }
    inline Float_t GetChi2overNDoF() const {
	return ( fNDoF == 0 ) ? 0. : fChi2/fNDoF;
    }
    
    ClassDef(HepDecayParticle,3) // Base class for particle decays
};
#endif

 HepDecayParticle.h:1
 HepDecayParticle.h:2
 HepDecayParticle.h:3
 HepDecayParticle.h:4
 HepDecayParticle.h:5
 HepDecayParticle.h:6
 HepDecayParticle.h:7
 HepDecayParticle.h:8
 HepDecayParticle.h:9
 HepDecayParticle.h:10
 HepDecayParticle.h:11
 HepDecayParticle.h:12
 HepDecayParticle.h:13
 HepDecayParticle.h:14
 HepDecayParticle.h:15
 HepDecayParticle.h:16
 HepDecayParticle.h:17
 HepDecayParticle.h:18
 HepDecayParticle.h:19
 HepDecayParticle.h:20
 HepDecayParticle.h:21
 HepDecayParticle.h:22
 HepDecayParticle.h:23
 HepDecayParticle.h:24
 HepDecayParticle.h:25
 HepDecayParticle.h:26
 HepDecayParticle.h:27
 HepDecayParticle.h:28
 HepDecayParticle.h:29
 HepDecayParticle.h:30
 HepDecayParticle.h:31
 HepDecayParticle.h:32
 HepDecayParticle.h:33
 HepDecayParticle.h:34
 HepDecayParticle.h:35
 HepDecayParticle.h:36
 HepDecayParticle.h:37
 HepDecayParticle.h:38
 HepDecayParticle.h:39
 HepDecayParticle.h:40
 HepDecayParticle.h:41
 HepDecayParticle.h:42
 HepDecayParticle.h:43
 HepDecayParticle.h:44