#ifndef HEP_HepWDecay
#include <HepWDecay.h>
#endif
#include <TClass.h>
#include <iostream>
using namespace std;
#ifndef __CINT__
ClassImp(HepWDecay);
#endif
HepWDecay::HepWDecay() {
fDaughter1 = new TRef;
fDaughter2 = new TRef;
fTruthW = new TRef;
}
HepWDecay::HepWDecay(Int_t Id, Float_t Px, Float_t Py, Float_t Pz,
Float_t E, TObject *Daughter1, TObject *Daughter2,
ProductionMode mode) :
HepDecayParticle(Id, Px, Py, Pz, E, 24) {
if ( TClass(((TObject*)Daughter1)->ClassName()).InheritsFrom("HepParticle") ) {
fPdgCode = ( ((HepParticle*)Daughter1)->IsPositive() ) ? 24 : -24;
}
fDaughter1 = new TRef; *fDaughter1 = Daughter1;
fDaughter2 = new TRef; *fDaughter2 = Daughter2;
fTruthW = new TRef;
fMode = mode;
}
HepWDecay::~HepWDecay() {
delete fDaughter1; fDaughter1 = 0;
delete fDaughter2; fDaughter2 = 0;
delete fTruthW; fTruthW = 0;
}
void HepWDecay::Clear(Option_t *option) {
HepDecayParticle::Clear(option);
delete fDaughter1; fDaughter1 = 0;
delete fDaughter2; fDaughter2 = 0;
delete fTruthW; fTruthW = 0;
}
Bool_t HepWDecay::IsHadronicDecay() const {
if ( TClass(((TObject*)GetDaughter1())
->ClassName()).InheritsFrom("HepJet") )
return kTRUE;
return kFALSE;
}