#ifndef HEP_HepK0sDecay
#include <HepK0sDecay.h>
#endif
#include <HepVertex.h>
#ifndef __CINT__
ClassImp(HepK0sDecay);
#endif
HepK0sDecay::HepK0sDecay() {
fDaughter1 = new TRef;
fDaughter2 = new TRef;
fVtx = new TRef;
fFit_Daughter1.Clear();
fFit_Daughter2.Clear();
}
HepK0sDecay::HepK0sDecay(Int_t Id, Float_t Px, Float_t Py, Float_t Pz,
Float_t E, TObject *Daughter1, TObject *Daughter2,
HepVertex *DecayVtx, HepVertex *PrimaryVtx,
HepParticle Fit_Daughter1, HepParticle Fit_Daughter2) :
HepDecayParticle(Id, Px, Py, Pz, E, 310) {
fDaughter1 = new TRef; *fDaughter1 = Daughter1;
fDaughter2 = new TRef; *fDaughter2 = Daughter2;
fVtx = new TRef; *fVtx = (TObject*)DecayVtx;
fFit_Daughter1 = Fit_Daughter1;
fFit_Daughter2 = Fit_Daughter2;
TVector3 d = PrimaryVtx->GetPos() - DecayVtx->GetPos();
fDecayLength = d.Mag();
}
HepK0sDecay::~HepK0sDecay() {
delete fDaughter1;
delete fDaughter2;
delete fVtx;
}
void HepK0sDecay::Clear(Option_t *option) {
HepDecayParticle::Clear(option);
delete fDaughter1; fDaughter1 = 0;
delete fDaughter2; fDaughter2 = 0;
delete fVtx; fVtx = 0;
fDecayLength = 0.;
}
Float_t HepK0sDecay::GetLifeTime() {
Double_t BetaGamma = Pmag()/M("pdg");
return GetDecayLength()/(BetaGamma*TMath::Ccgs())*1.e12;
}