#ifndef HEP_HepZ0Decay
#include <HepZ0Decay.h>
#endif
#ifndef __CINT__
ClassImp(HepZ0Decay);
#endif
HepZ0Decay::HepZ0Decay() {
fDaughter1 = new TRef;
fDaughter2 = new TRef;
}
HepZ0Decay::HepZ0Decay(Int_t Id, Float_t Px, Float_t Py, Float_t Pz,
Float_t E, TObject *Daughter1, TObject *Daughter2) :
HepDecayParticle(Id, Px, Py, Pz, E, 23) {
fDaughter1 = new TRef; *fDaughter1 = Daughter1;
fDaughter2 = new TRef; *fDaughter2 = Daughter2;
}
HepZ0Decay::HepZ0Decay(Int_t Id, Float_t Px, Float_t Py, Float_t Pz,
Float_t E, TObject *Daughter1, TObject *Daughter2,
HepParticle ReFitDaughter1, HepParticle ReFitDaughter2) :
HepDecayParticle(Id, Px, Py, Pz, E, 23) {
fDaughter1 = new TRef; *fDaughter1 = Daughter1;
fDaughter2 = new TRef; *fDaughter2 = Daughter2;
fReFitDaughter1 = ReFitDaughter1;
fReFitDaughter2 = ReFitDaughter2;
}
HepZ0Decay::~HepZ0Decay() {
delete fDaughter1;
delete fDaughter2;
}
void HepZ0Decay::Clear(Option_t *option) {
HepDecayParticle::Clear(option);
delete fDaughter1; fDaughter1 = 0;
delete fDaughter2; fDaughter2 = 0;
fReFitDaughter1.Clear();
fReFitDaughter2.Clear();
}
Int_t HepZ0Decay::Compare(const TObject *obj) const {
static const Double_t m_Z = 91.187;
if ( TMath::Abs(M("rec") - m_Z)
< TMath::Abs(((HepZ0Decay*)obj)->M("rec") - m_Z) ) return 1;
if ( TMath::Abs(M("rec") - m_Z)
> TMath::Abs(((HepZ0Decay*)obj)->M("rec") - m_Z) ) return -1;
return 0;
}