/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/DQA/DQADtagAlg/DQADtagAlg-00-00-13/src/util/DQAKsInfo.cxx

Go to the documentation of this file.
00001 #include "DQADtagAlg/util/DQAKsInfo.h" 
00002 
00003 DQAKsInfo::DQAKsInfo(): m_track0(0),m_track1(0)
00004 {
00005         m_vtxFit = VertexFit::instance();
00006         m_2ndVtxFit = SecondVertexFit::instance();
00007 }
00008 
00009 DQAKsInfo::DQAKsInfo(EvtRecTrack* track0, EvtRecTrack* track1,VertexParameter vtxpar, VertexParameter privtxpar)
00010 {
00011         m_vtxFit = VertexFit::instance();
00012         m_2ndVtxFit = SecondVertexFit::instance();
00013         m_track0 = track0;
00014         m_track1 = track1;
00015         m_vtxpar = vtxpar;
00016         m_privtxpar = privtxpar;
00017 }
00018 DQAKsInfo::~DQAKsInfo()
00019 {
00020         m_track0 = 0;
00021         m_track1 = 0;
00022         m_p4 = HepLorentzVector(0,0,0,0);
00023         m_vmks = 0;
00024 }
00025 bool DQAKsInfo::calculate()
00026 {
00027   if (m_track0 == 0 || m_track1 == 0 ) return false;
00028   RecMdcKalTrack* pion1Trk = m_track0->mdcKalTrack();
00029   RecMdcKalTrack* pion2Trk = m_track1->mdcKalTrack();
00030   HepLorentzVector pion1p4 = pion1Trk->p4(Ksinfo_mpi);
00031   HepLorentzVector pion2p4 = pion2Trk->p4(Ksinfo_mpi);
00032   HepLorentzVector ksp4 = pion1p4 + pion2p4;
00033   m_mksp4 = ksp4.m();
00034 
00035   WTrackParameter wvTrk1(Ksinfo_mpi,     pion1Trk->getZHelix(),  pion1Trk->getZError());
00036   WTrackParameter wvTrk2(Ksinfo_mpi,     pion2Trk->getZHelix(),  pion2Trk->getZError());
00037 
00038   m_vtxFit->init();
00039   m_vtxFit->setChisqCut(100);
00040   m_vtxFit->AddTrack(0, wvTrk1);
00041   m_vtxFit->AddTrack(1, wvTrk2);
00042   m_vtxFit->AddVertex(0, m_vtxpar, 0, 1);
00043   if ( ! m_vtxFit->Fit(0) ) return false;
00044   m_vtxFit->Swim(0);
00045   m_vtxFit->BuildVirtualParticle(0);
00046   WTrackParameter wtKs = m_vtxFit->wVirtualTrack(0);
00047   VertexParameter vtKs = m_vtxFit->vpar(0);
00048 
00049   m_2ndVtxFit->init();
00050   m_2ndVtxFit->setChisqCut(100);
00051   m_2ndVtxFit->setPrimaryVertex(m_privtxpar);
00052   m_2ndVtxFit->AddTrack(0, wtKs);
00053   m_2ndVtxFit->setVpar(vtKs);
00054   if ( ! m_2ndVtxFit->Fit() ) return false;
00055   HepLorentzVector vp4Ks = m_2ndVtxFit->p4par();
00056   m_p4 = vp4Ks;
00057   m_vmks = vp4Ks.m();
00058   m_vchi2ks1 = m_vtxFit->chisq(0);
00059   m_vchi2ks2 = m_2ndVtxFit->chisq();
00060   m_vlks = m_2ndVtxFit->decayLength();
00061   m_vrks = m_2ndVtxFit->decayLength() / m_2ndVtxFit->decayLengthError();
00062   return true;
00063 }

Generated on Tue Nov 29 22:58:06 2016 for BOSS_7.0.2 by  doxygen 1.4.7