//  
// Author: Oliver Maria Kind <mailto: kind@mail.desy.de>
// Update: $Id: HepZ0Decay.h,v 1.5 2016/04/10 20:19:00 kind Exp $
// Copyright: 2009 (C) Oliver Maria Kind
//
#ifndef HEP_HepZ0Decay
#define HEP_HepZ0Decay
#ifndef HEP_HepDecayParticle
#include <HepDecayParticle.h>
#endif

class HepZ0Decay : public HepDecayParticle {

private:
    TRef  *fDaughter1;  // Daughter particle 1
    TRef  *fDaughter2;  // Daughter particle 2
    HepParticle fReFitDaughter1; // in case of using the kinematic fitter,
    HepParticle fReFitDaughter2; // storig new momenta and PDGCode
    
    
public:
    HepZ0Decay();
    HepZ0Decay(Int_t Id, Float_t Px, Float_t Py, Float_t Pz,
	       Float_t E, TObject *Daughter1, TObject *Daughter2);
    HepZ0Decay(Int_t Id, Float_t Px, Float_t Py, Float_t Pz,
	       Float_t E, TObject *Daughter1, TObject *Daughter2,
	       HepParticle ReFitDaughter1, HepParticle ReFitDaughter2);
    virtual ~HepZ0Decay();
    virtual void Clear(Option_t *option);
    virtual Int_t Compare(const TObject *obj) const;
 
    inline virtual Bool_t IsSortable() const { return kTRUE; }
    inline TObject* GetDaughter1() { return fDaughter1->GetObject(); }
    inline TObject* GetDaughter2() { return fDaughter2->GetObject(); }
    inline HepParticle GetReFit_Daughter1(){ return fReFitDaughter1;   }
    inline HepParticle GetReFit_Daughter2(){ return fReFitDaughter2;   }

    inline Bool_t IsEE()     { return ((HepParticle*)GetDaughter1())->IsElectron(); }
    inline Bool_t IsMuMu()   { return ((HepParticle*)GetDaughter1())->IsMuon(); }
    inline Bool_t IsTauTau() { return ((HepParticle*)GetDaughter1())->IsTau(); }
    
    ClassDef(HepZ0Decay,2) // Base Z0 boson decay class
};
#endif

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