//  
// Author: Sebastian Beumler <mailto: beumler@physik.hu-berlin.de>
// Update: $Id: HepK0sDecay.cxx,v 1.4 2010/04/16 16:24:45 sbeumler Exp $
// Copyright: 2010 (C) Sebastian Beumler
//

#ifndef HEP_HepK0sDecay
#include <HepK0sDecay.h>
#endif
#include <HepVertex.h>

#ifndef __CINT__
ClassImp(HepK0sDecay);
#endif

//____________________________________________________________________

HepK0sDecay::HepK0sDecay() {
    //
    // Default constructor
    //
    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) {
    //
    // Normal constructor
    //
    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() {
    //
    // Default destructor
    //
    delete fDaughter1;
    delete fDaughter2;
    delete fVtx;
}

//____________________________________________________________________

void HepK0sDecay::Clear(Option_t *option) {
    //
    // Clear this object
    //
    HepDecayParticle::Clear(option);
    delete fDaughter1; fDaughter1 = 0;
    delete fDaughter2; fDaughter2 = 0;
    delete fVtx;       fVtx       = 0;
    fDecayLength = 0.;
}

//____________________________________________________________________

Float_t HepK0sDecay::GetLifeTime() {
    //
    // Compute life-time (in ps)
    //
    Double_t BetaGamma = Pmag()/M("pdg");
    return GetDecayLength()/(BetaGamma*TMath::Ccgs())*1.e12;
}
 HepK0sDecay.cxx:1
 HepK0sDecay.cxx:2
 HepK0sDecay.cxx:3
 HepK0sDecay.cxx:4
 HepK0sDecay.cxx:5
 HepK0sDecay.cxx:6
 HepK0sDecay.cxx:7
 HepK0sDecay.cxx:8
 HepK0sDecay.cxx:9
 HepK0sDecay.cxx:10
 HepK0sDecay.cxx:11
 HepK0sDecay.cxx:12
 HepK0sDecay.cxx:13
 HepK0sDecay.cxx:14
 HepK0sDecay.cxx:15
 HepK0sDecay.cxx:16
 HepK0sDecay.cxx:17
 HepK0sDecay.cxx:18
 HepK0sDecay.cxx:19
 HepK0sDecay.cxx:20
 HepK0sDecay.cxx:21
 HepK0sDecay.cxx:22
 HepK0sDecay.cxx:23
 HepK0sDecay.cxx:24
 HepK0sDecay.cxx:25
 HepK0sDecay.cxx:26
 HepK0sDecay.cxx:27
 HepK0sDecay.cxx:28
 HepK0sDecay.cxx:29
 HepK0sDecay.cxx:30
 HepK0sDecay.cxx:31
 HepK0sDecay.cxx:32
 HepK0sDecay.cxx:33
 HepK0sDecay.cxx:34
 HepK0sDecay.cxx:35
 HepK0sDecay.cxx:36
 HepK0sDecay.cxx:37
 HepK0sDecay.cxx:38
 HepK0sDecay.cxx:39
 HepK0sDecay.cxx:40
 HepK0sDecay.cxx:41
 HepK0sDecay.cxx:42
 HepK0sDecay.cxx:43
 HepK0sDecay.cxx:44
 HepK0sDecay.cxx:45
 HepK0sDecay.cxx:46
 HepK0sDecay.cxx:47
 HepK0sDecay.cxx:48
 HepK0sDecay.cxx:49
 HepK0sDecay.cxx:50
 HepK0sDecay.cxx:51
 HepK0sDecay.cxx:52
 HepK0sDecay.cxx:53
 HepK0sDecay.cxx:54
 HepK0sDecay.cxx:55
 HepK0sDecay.cxx:56
 HepK0sDecay.cxx:57
 HepK0sDecay.cxx:58
 HepK0sDecay.cxx:59
 HepK0sDecay.cxx:60
 HepK0sDecay.cxx:61
 HepK0sDecay.cxx:62
 HepK0sDecay.cxx:63
 HepK0sDecay.cxx:64
 HepK0sDecay.cxx:65
 HepK0sDecay.cxx:66
 HepK0sDecay.cxx:67
 HepK0sDecay.cxx:68
 HepK0sDecay.cxx:69
 HepK0sDecay.cxx:70
 HepK0sDecay.cxx:71
 HepK0sDecay.cxx:72
 HepK0sDecay.cxx:73
 HepK0sDecay.cxx:74
 HepK0sDecay.cxx:75
 HepK0sDecay.cxx:76
 HepK0sDecay.cxx:77
 HepK0sDecay.cxx:78
 HepK0sDecay.cxx:79
 HepK0sDecay.cxx:80
 HepK0sDecay.cxx:81
 HepK0sDecay.cxx:82