#ifndef ATLAS_AtlPhiDecayKK
#include <AtlPhiDecayKK.h>
#endif
#include <iostream>
using namespace std;
#ifndef __CINT__
ClassImp(AtlPhiDecayKK);
#endif
AtlPhiDecayKK::AtlPhiDecayKK() {
}
AtlPhiDecayKK::AtlPhiDecayKK(Int_t Id, Float_t Px, Float_t Py, Float_t Pz,
Float_t E, AtlIDTrack *KPlus, AtlIDTrack *KMinus,
HepVertex *DecayVtx, HepVertex *PrimaryVtx,
HepParticle ReFitKPlus, HepParticle ReFitKMinus) :
Hep2BodyDecay(Id, Px, Py, Pz, E, (TObject*)KPlus, (TObject*)KMinus,
DecayVtx, PrimaryVtx, ReFitKPlus, ReFitKMinus) {
fPdgCode = 333 ;
fAngle = KPlus->P().Angle(KMinus->P());
}
AtlPhiDecayKK::~AtlPhiDecayKK(){
}
void AtlPhiDecayKK::Clear(Option_t *option) {
Hep2BodyDecay::Clear(option);
fAngle = 0;
}
void AtlPhiDecayKK::Print(Option_t *option) {
TString opt = option;
opt.ToLower();
if ( !opt.Contains("nohead") ) PrintHeader();
cout.setf(ios::showpoint | ios::fixed, ios::floatfield);
cout.precision(3);
cout.width(4); cout << fId;
cout.width(7); cout << Pmag();
cout.width(10); cout << M("rec");
cout.width(12); cout << Theta()*180/TMath::Pi();
cout.width(13); cout << Phi()*180/TMath::Pi();
cout.width(10); cout << Eta();
cout.width(8); cout << GetKPlus()->GetId();
cout.width(5); cout << GetKMinus()->GetId();
cout << endl;
if ( !opt.Contains("nohead") ) PrintFooter();
if ( opt.Contains("vtx") || opt.Contains("all") ) {
cout << endl << "Phi Decay vertex:" << endl;
GetVtx()->Print("daughters");
}
}
void AtlPhiDecayKK::PrintHeader() {
cout << "------------------------------------------------------------------------"
<< endl
<< " Id P (GeV) Mrec (GeV) Theta (deg) Phi (deg) Eta K+ K-"
<< endl
<< "------------------------------------------------------------------------"
<< endl;
}
void AtlPhiDecayKK::PrintFooter() {
cout << "------------------------------------------------------------------------"
<< endl;
}