254 {
255
256 MsgStream log(
msgSvc(), name());
257 log << MSG::INFO << "in execute()" << endreq;
258
259
260
261
262
263 SmartDataPtr<Event::EventHeader> eventHeader(eventSvc(),"/Event/EventHeader");
264 m_runNo = eventHeader->runNumber();
265 m_event=eventHeader->eventNumber();
266 log << MSG::DEBUG <<"run, evtnum = "
267 << m_runNo << " , "
268 << m_event <<endreq;
269
271
272
273 log << MSG::DEBUG <<"ncharg, nneu, tottks = "
274 << evtRecEvent->totalCharged() << " , "
275 << evtRecEvent->totalNeutral() << " , "
276 << evtRecEvent->totalTracks() <<endreq;
277
279
280 if(evtRecEvent->totalNeutral()>100) {
281 return StatusCode::SUCCESS;
282 }
283
285 iGood.clear();
286
287 Hep3Vector xorigin(0,0,0);
288
290 Gaudi::svcLocator()->service("VertexDbSvc", vtxsvc);
294 xorigin.setX(dbv[0]);
295 xorigin.setY(dbv[1]);
296 xorigin.setZ(dbv[2]);
297 log << MSG::INFO
298 <<"xorigin.x="<<xorigin.x()<<", "
299 <<"xorigin.y="<<xorigin.y()<<", "
300 <<"xorigin.z="<<xorigin.z()<<", "
301 <<endreq ;
302 }
303
304 int nCharge = 0;
305 for(int i = 0; i < evtRecEvent->totalCharged(); i++){
307 if(!(*itTrk)->isMdcTrackValid()) continue;
308 if (!(*itTrk)->isMdcKalTrackValid()) continue;
310
311 double pch =mdcTrk->
p();
312 double x0 =mdcTrk->
x();
313 double y0 =mdcTrk->
y();
314 double z0 =mdcTrk->
z();
315 double phi0=mdcTrk->
helix(1);
316 double xv=xorigin.x();
317 double yv=xorigin.y();
318 double Rxy=fabs((x0-xv)*
cos(phi0)+(y0-yv)*
sin(phi0));
319 double vx0 = x0;
320 double vy0 = y0;
321 double vz0 = z0-xorigin.z();
322 double vr0 = Rxy;
324
325 HepVector a = mdcTrk->
helix();
326 HepSymMatrix Ea = mdcTrk->
err();
328 HepPoint3D IP(xorigin[0],xorigin[1],xorigin[2]);
330 helixip.pivot(IP);
331 HepVector vecipa = helixip.a();
332 double Rvxy0=fabs(vecipa[0]);
333 double Rvz0=vecipa[3];
334 double Rvphi0=vecipa[1];
335
336
337
338
339 if(fabs(Rvz0) >= m_vz0cut) continue;
340 if(Rvxy0 >= m_vr0cut) continue;
341
342
343 iGood.push_back(i);
344 nCharge += mdcTrk->
charge();
345 }
346
347
348
349
350 int m_ngch = iGood.size();
351 log << MSG::DEBUG << "ngood, totcharge = " << m_ngch << " , " << nCharge << endreq;
352 if((m_ngch != 4)||(nCharge!=0)){
353 return StatusCode::SUCCESS;
354 }
355
356
357
358 Vint ipip, ipim, ikp, ikm, ipp, ipm;
359 ipip.clear();
360 ipim.clear();
361 ikp.clear();
362 ikm.clear();
363 ipp.clear();
364 ipm.clear();
365
366 Vp4 p_pip, p_pim, p_kp, p_km, p_pp, p_pm ;
367 p_pip.clear();
368 p_pim.clear();
369 p_kp.clear();
370 p_km.clear();
371 p_pp.clear();
372 p_pm.clear();
373
375 for(int i = 0; i < m_ngch; i++) {
377
383
385
386
387
390
393 if((*itTrk)->isMdcKalTrackValid()) mdcKalTrk = (*itTrk)->mdcKalTrack();
394
398
399 HepLorentzVector
ptrk;
400 ptrk.setPx(mdcTrk->
px()) ;
401 ptrk.setPy(mdcTrk->
py()) ;
402 ptrk.setPz(mdcTrk->
pz()) ;
404
405 if (prob_pi > prob_K && prob_pi > prob_p) {
406 m_pidcode[i]=2;
407 m_pidprob[i]=pid->
prob(2);
408 m_pidchiDedx[i]=pid->
chiDedx(2);
409 m_pidchiTof1[i]=pid->
chiTof1(2);
410 m_pidchiTof2[i]=pid->
chiTof2(2);
412 if(mdcTrk->
charge() > 0) {
413 ipip.push_back(iGood[i]);
414 p_pip.push_back(
ptrk);
415 }
416 if (mdcTrk->
charge() < 0) {
417 ipim.push_back(iGood[i]);
418 p_pim.push_back(
ptrk);
419 }
420 }
421
422 if (prob_K > prob_pi && prob_K > prob_p) {
423 m_pidcode[i]=3;
424 m_pidprob[i]=pid->
prob(3);
425 m_pidchiDedx[i]=pid->
chiDedx(3);
426 m_pidchiTof1[i]=pid->
chiTof1(3);
427 m_pidchiTof2[i]=pid->
chiTof2(3);
429 if(mdcTrk->
charge() > 0) {
430 ikp.push_back(iGood[i]);
431 p_kp.push_back(
ptrk);
432 }
433 if (mdcTrk->
charge() < 0) {
434 ikm.push_back(iGood[i]);
435 p_km.push_back(
ptrk);
436 }
437 }
438
439 if (prob_p > prob_pi && prob_p > prob_K) {
440 m_pidcode[i]=4;
441 m_pidprob[i]=pid->
prob(4);
442 m_pidchiDedx[i]=pid->
chiDedx(4);
443 m_pidchiTof1[i]=pid->
chiTof1(4);
444 m_pidchiTof2[i]=pid->
chiTof2(4);
446 if(mdcTrk->
charge() > 0) {
447 ipp.push_back(iGood[i]);
448 p_pp.push_back(
ptrk);
449 }
450 if (mdcTrk->
charge() < 0) {
451 ipm.push_back(iGood[i]);
452 p_pm.push_back(
ptrk);
453 }
454 }
455 }
456
457 m_npip= ipip.size() ;
458 m_npim= ipim.size() ;
459 m_nkp = ikp.size() ;
460 m_nkm = ikm.size() ;
461 m_np = ipp.size() ;
462 m_npb = ipm.size() ;
463
464
465 if( m_npip*m_npim != 2 ) {
466 return StatusCode::SUCCESS;
467 }
468
469 if( m_nkp+m_nkm != 1 ) {
470 return StatusCode::SUCCESS;
471 }
472
473
474
476 HepSymMatrix Evx(3, 0);
477 double bx = 1E+6;
478 double by = 1E+6;
479 double bz = 1E+6;
480 Evx[0][0] = bx*bx;
481 Evx[1][1] = by*by;
482 Evx[2][2] = bz*bz;
483
487
491
495
496 double chi_temp = 999.0;
497 double mks_temp = 10.0 ;
498 bool okloop=false;
499 for(unsigned int i1 = 0; i1 < m_npip; i1++) {
500 RecMdcKalTrack *pi1KalTrk = (*(evtRecTrkCol->begin()+ipip[i1]))-> mdcKalTrack();
503
504 for(unsigned int i2 = 0; i2 < m_npim; i2++) {
505 RecMdcKalTrack *pi2KalTrk = (*(evtRecTrkCol->begin()+ipim[i2]))-> mdcKalTrack();
508
513
514 if(!(vtxfit_s->
Fit(0)))
continue;
516 m_vfits_chi = vtxfit_s->
chisq(0);
519
520 m_vfits_vx = (vparks.
Vx())[0];
521 m_vfits_vy = (vparks.
Vx())[1];
522 m_vfits_vz = (vparks.
Vx())[2];
523 m_vfits_vr = sqrt(m_vfits_vx*m_vfits_vx + m_vfits_vy*m_vfits_vy) ;
524
525 if ( m_npip == 2 ) {
526 int j = i1 ;
527 int jj = ( i1 == 1 ) ? 0 : 1;
528 pi3KalTrk = (*(evtRecTrkCol->begin()+ipip[jj]))->mdcKalTrack();
529 k1KalTrk = (*(evtRecTrkCol->begin()+ikm[0]))->mdcKalTrack();
530 }
531 if (m_npim == 2 ) {
532 int j = i2 ;
533 int jj = ( i2 == 1 ) ? 0 : 1;
534 pi3KalTrk = (*(evtRecTrkCol->begin()+ipim[jj]))->mdcKalTrack();
535 k1KalTrk = (*(evtRecTrkCol->begin()+ikp[0]))->mdcKalTrack();
536 }
537
542
544
548 if(!(vtxfit_p->
Fit(0)))
continue;
549
550 m_vfitp_chi = vtxfit_p->
chisq(0) ;
551
553 m_vfitp_vx = (primaryVpar.
Vx())[0];
554 m_vfitp_vy = (primaryVpar.
Vx())[1];
555 m_vfitp_vz = (primaryVpar.
Vx())[2];
556 m_vfitp_vr = sqrt(m_vfitp_vx*m_vfitp_vx + m_vfitp_vy*m_vfitp_vy);
557
562 if(!vtxfit2->
Fit())
continue;
563
564 if ( fabs(((vtxfit2->
wpar()).p()).m()-
mks0) < mks_temp ) {
565 mks_temp = fabs(((vtxfit2->
wpar()).p()).m()-
mks0) ;
566
567 okloop = true;
568
569 wks = vtxfit2->
wpar();
570 m_vfit2_mks = (wks.
p()).m();
571 m_vfit2_chi = vtxfit2->
chisq();
572 m_vfit2_ct = vtxfit2->
ctau();
575
576 pipKalTrk = pi1KalTrk ;
577 pimKalTrk = pi2KalTrk ;
578 piKalTrk = pi3KalTrk ;
579 kKalTrk = k1KalTrk ;
580
581 }
582 }
583 }
584
585 if (! okloop ) {
586 return StatusCode::SUCCESS;
587 }
588
593
596
599
600
601
602 int ii ;
603 for(int j=0; j<m_ngch; j++){
604 m_charge[j] = 9999.0;
605 m_vx0[j] = 9999.0;
606 m_vy0[j] = 9999.0;
607 m_vz0[j] = 9999.0;
608 m_vr0[j] = 9999.0;
609
610 m_vx[j] = 9999.0;
611 m_vy[j] = 9999.0;
612 m_vz[j] = 9999.0;
613 m_vr[j] = 9999.0;
614
615 m_px[j] = 9999.0;
616 m_py[j] = 9999.0;
617 m_pz[j] = 9999.0;
618 m_p[j] = 9999.0;
619 m_cost[j] = 9999.0;
620
621 m_probPH[j] = 9999.0;
622 m_normPH[j] = 9999.0;
623 m_chie[j] = 9999.0;
624 m_chimu[j] = 9999.0;
625 m_chipi[j] = 9999.0;
626 m_chik[j] = 9999.0;
627 m_chip[j] = 9999.0;
628 m_ghit[j] = 9999.0;
629 m_thit[j] = 9999.0;
630
631 m_e_emc[j] = 9999.0;
632
633 m_qual_etof[j] = 9999.0;
634 m_tof_etof[j] = 9999.0;
635 m_te_etof[j] = 9999.0;
636 m_tmu_etof[j] = 9999.0;
637 m_tpi_etof[j] = 9999.0;
638 m_tk_etof[j] = 9999.0;
639 m_tp_etof[j] = 9999.0;
640
641 m_qual_btof1[j] = 9999.0;
642 m_tof_btof1[j] = 9999.0;
643 m_te_btof1[j] = 9999.0;
644 m_tmu_btof1[j] = 9999.0;
645 m_tpi_btof1[j] = 9999.0;
646 m_tk_btof1[j] = 9999.0;
647 m_tp_btof1[j] = 9999.0;
648
649 m_qual_btof2[j] = 9999.0;
650 m_tof_btof2[j] = 9999.0;
651 m_te_btof2[j] = 9999.0;
652 m_tmu_btof2[j] = 9999.0;
653 m_tpi_btof2[j] = 9999.0;
654 m_tk_btof2[j] = 9999.0;
655 m_tp_btof2[j] = 9999.0;
656
657 m_pidcode[j] = 9999.0;
658 m_pidprob[j] = 9999.0;
659 m_pidchiDedx[j] = 9999.0;
660 m_pidchiTof1[j] = 9999.0;
661 m_pidchiTof2[j] = 99999.0;
662 }
663
664 for(int i = 0; i < m_ngch; i++ ){
665
667 if(!(*itTrk)->isMdcTrackValid()) continue;
670
671 if ( mdcKalTrk == pipKalTrk ) {
672 ii = 0 ;
674 }
675 if ( mdcKalTrk == pimKalTrk ) {
676 ii = 1 ;
678 }
679 if ( mdcKalTrk == piKalTrk ) {
680 ii = 2 ;
682 }
683 if ( mdcKalTrk == kKalTrk ) {
684 ii = 3 ;
686 }
687
688 m_charge[ii] = mdcTrk->
charge();
689 double x0=mdcTrk->
x();
690 double y0=mdcTrk->
y();
691 double z0=mdcTrk->
z();
692 double phi0=mdcTrk->
helix(1);
693 double xv=xorigin.x();
694 double yv=xorigin.y();
695 double zv=xorigin.z();
696 double rv=(x0-xv)*
cos(phi0)+(y0-yv)*
sin(phi0);
697
698 m_vx0[ii] = x0-xv ;
699 m_vy0[ii] = y0-yv ;
700 m_vz0[ii] = z0-zv ;
701 m_vr0[ii] = rv ;
702
706 rv=(x0-xv)*
cos(phi0)+(y0-yv)*
sin(phi0);
707
708 m_vx[ii] = x0-xv ;
709 m_vy[ii] = y0-yv ;
710 m_vz[ii] = z0-zv ;
711 m_vr[ii] = rv ;
712
713 m_px[ii] = mdcKalTrk->
px();
714 m_py[ii] = mdcKalTrk->
py();
715 m_pz[ii] = mdcKalTrk->
pz();
716 m_p[ii] = sqrt(m_px[ii]*m_px[ii] + m_py[ii]*m_py[ii] + m_pz[ii]*m_pz[ii]);
717 m_cost[ii] = m_pz[ii]/m_p[ii];
718
719 double ptrk = m_p[ii];
720 if((*itTrk)->isMdcDedxValid()) {
722 m_probPH[ii]= dedxTrk->
probPH();
723 m_normPH[ii]= dedxTrk->
normPH();
724
725 m_chie[ii] = dedxTrk->
chiE();
726 m_chimu[ii] = dedxTrk->
chiMu();
727 m_chipi[ii] = dedxTrk->
chiPi();
728 m_chik[ii] = dedxTrk->
chiK();
729 m_chip[ii] = dedxTrk->
chiP();
732 }
733
734 if((*itTrk)->isEmcShowerValid()) {
736 m_e_emc[ii] = emcTrk->
energy();
737 }
738
739 if((*itTrk)->isTofTrackValid()) {
740 SmartRefVector<RecTofTrack> tofTrkCol = (*itTrk)->tofTrack();
741
742 SmartRefVector<RecTofTrack>::iterator iter_tof = tofTrkCol.begin();
743
744 for(;iter_tof != tofTrkCol.end(); iter_tof++ ) {
746 status->
setStatus((*iter_tof)->status());
747
750 if( status->
layer()!=0 )
continue;
751 double path=(*iter_tof)->path();
752 double tof = (*iter_tof)->tof();
753 double ph = (*iter_tof)->ph();
754 double rhit = (*iter_tof)->zrhit();
755 double qual = 0.0 + (*iter_tof)->quality();
756 double cntr = 0.0 + (*iter_tof)->tofID();
757 double texp[5];
758 for(int j = 0; j < 5; j++) {
760 double beta = gb/sqrt(1+gb*gb);
761 texp[j] = path /beta/
velc;
762 }
763
764 m_qual_etof[ii] = qual;
765 m_tof_etof[ii] = tof ;
766 }
767 else {
769 if(status->
layer()==1){
770 double path=(*iter_tof)->path();
771 double tof = (*iter_tof)->tof();
772 double ph = (*iter_tof)->ph();
773 double rhit = (*iter_tof)->zrhit();
774 double qual = 0.0 + (*iter_tof)->quality();
775 double cntr = 0.0 + (*iter_tof)->tofID();
776 double texp[5];
777 for(int j = 0; j < 5; j++) {
779 double beta = gb/sqrt(1+gb*gb);
780 texp[j] = path /beta/
velc;
781 }
782
783 m_qual_btof1[ii] = qual;
784 m_tof_btof1[ii] = tof ;
785 }
786
787 if(status->
layer()==2){
788 double path=(*iter_tof)->path();
789 double tof = (*iter_tof)->tof();
790 double ph = (*iter_tof)->ph();
791 double rhit = (*iter_tof)->zrhit();
792 double qual = 0.0 + (*iter_tof)->quality();
793 double cntr = 0.0 + (*iter_tof)->tofID();
794 double texp[5];
795 for(int j = 0; j < 5; j++) {
797 double beta = gb/sqrt(1+gb*gb);
798 texp[j] = path /beta/
velc;
799 }
800
801 m_qual_btof2[ii] = qual;
802 m_tof_btof2[ii] = tof ;
803 }
804 }
805 }
806 }
807 }
808
809
811
813 double chisq = 9999.;
814 m_4c_chi2 = 9999.;
815 m_4c_mks = 10.0;
816 m_4c_mkspi = 10.0;
817 m_4c_mksk = 10.0;
818 m_4c_mkpi = 10.0;
819 m_4c_ks_px = 10.0;
820 m_4c_ks_py = 10.0;
821 m_4c_ks_pz = 10.0;
822 m_4c_ks_p = 10.0;
823 m_4c_ks_cos= 10.0;
824
830 bool oksq = kmfit->
Fit();
831 if(oksq) {
832 chisq = kmfit->
chisq();
833
834 HepLorentzVector pk = kmfit->
pfit(1);
835 HepLorentzVector pks = kmfit->
pfit(2);
836 HepLorentzVector pkspi = kmfit->
pfit(0) + kmfit->
pfit(2);
837 HepLorentzVector pksk = kmfit->
pfit(1) + kmfit->
pfit(2);
838 HepLorentzVector pkpi = kmfit->
pfit(0) + kmfit->
pfit(1);
839
844
845 m_4c_chi2 = chisq ;
846 m_4c_mks = pks.m();
847 m_4c_mkspi = pkspi.m();
848 m_4c_mksk = pksk.m();
849 m_4c_mkpi = pkpi.m();
850
851 m_4c_ks_px = pks.px() ;
852 m_4c_ks_py = pks.py() ;
853 m_4c_ks_pz = pks.pz() ;
854 m_4c_ks_p = (pks.vect()).mag() ;
855 m_4c_ks_cos = m_4c_ks_pz/m_4c_ks_p ;
856
857 }
858
859 chisq = 9999.;
860 m_chi2_fs4c = 9999.;
861 m_mks_fs4c = 10.0;
862 m_mkspi_fs4c = 10.0;
863 m_mksk_fs4c = 10.0;
864 m_mkpi_fs4c = 10.0;
865
873 if(oksq) {
874 chisq = kmfit->
chisq();
875
876 HepLorentzVector pks = kmfit->
pfit(0) + kmfit->
pfit(1);
877 HepLorentzVector pkspi = pks + kmfit->
pfit(2);
878 HepLorentzVector pksk = pks + kmfit->
pfit(3);
879 HepLorentzVector pkpi = kmfit->
pfit(2) + kmfit->
pfit(3);
880
885
886 m_chi2_fs4c = chisq ;
887 m_mks_fs4c = pks.m();
888 m_mkspi_fs4c = pkspi.m();
889 m_mksk_fs4c = pksk.m();
890 m_mkpi_fs4c = pkpi.m();
891 }
892
893
894 if(chisq > 20) { return StatusCode::SUCCESS; }
895 if(m_vfit2_dl < 0.5) { return StatusCode::SUCCESS; }
896 if(fabs(m_4c_mks-
mks0) > 0.01) {
return StatusCode::SUCCESS; }
897 if(m_4c_mkspi < 1.25) { return StatusCode::SUCCESS; }
898
899
900 TH1 *h(0);
901 if (m_thsvc->getHist("/DQAHist/DQAKsKpi/hks_dl", h).isSuccess()) {
902 h->Fill(m_vfit2_dl);
903 } else {
904 log << MSG::ERROR << "Couldn't retrieve hks_dl" << endreq;
905 }
906
907 if (m_thsvc->getHist("/DQAHist/DQAKsKpi/hks_m", h).isSuccess()) {
908 h->Fill(m_4c_mks);
909 } else {
910 log << MSG::ERROR << "Couldn't retrieve hks_m" << endreq;
911 }
912
913 if (m_thsvc->getHist("/DQAHist/DQAKsKpi/hkspi_m", h).isSuccess()) {
914 h->Fill(m_4c_mkspi);
915 } else {
916 log << MSG::ERROR << "Couldn't retrieve hkspi_m" << endreq;
917 }
918
919 if (m_thsvc->getHist("/DQAHist/DQAKsKpi/hks_p", h).isSuccess()) {
920 h->Fill(m_4c_ks_p);
921 } else {
922 log << MSG::ERROR << "Couldn't retrieve hks_p" << endreq;
923 }
924
925 if (m_thsvc->getHist("/DQAHist/DQAKsKpi/hkpi_m", h).isSuccess()) {
926 h->Fill(m_4c_mkpi);
927 } else {
928 log << MSG::ERROR << "Couldn't retrieve hkpi_m" << endreq;
929 }
930
931
932
933
934
935
936 if(m_npip==2 && m_npim==1){
937 (*(evtRecTrkCol->begin()+ipip[0]))->setPartId(2);
938 (*(evtRecTrkCol->begin()+ipip[1]))->setPartId(2);
939 (*(evtRecTrkCol->begin()+ipim[0]))->setPartId(2);
940 (*(evtRecTrkCol->begin()+ikm[0]))->setPartId(4);
941 }
942 if(m_npip==1 && m_npim==2){
943 (*(evtRecTrkCol->begin()+ipip[0]))->setPartId(2);
944 (*(evtRecTrkCol->begin()+ipim[0]))->setPartId(2);
945 (*(evtRecTrkCol->begin()+ipim[1]))->setPartId(2);
946 (*(evtRecTrkCol->begin()+ikp[0]))->setPartId(4);
947 }
948
949
950
951
952
953 if(m_npip==2 && m_npim==1){
954 (*(evtRecTrkCol->begin()+ipip[0]))->setQuality(1);
955 (*(evtRecTrkCol->begin()+ipip[1]))->setQuality(1);
956 (*(evtRecTrkCol->begin()+ipim[0]))->setQuality(1);
957 (*(evtRecTrkCol->begin()+ikm[0]))->setQuality(1);
958 }
959 if(m_npip==1 && m_npim==2){
960 (*(evtRecTrkCol->begin()+ipip[0]))->setQuality(1);
961 (*(evtRecTrkCol->begin()+ipim[0]))->setQuality(1);
962 (*(evtRecTrkCol->begin()+ipim[1]))->setQuality(1);
963 (*(evtRecTrkCol->begin()+ikp[0]))->setQuality(1);
964 }
965
966
967
968 setFilterPassed(true);
969
970
971 m_tuple->write();
972
973 return StatusCode::SUCCESS;
974
975}
double sin(const BesAngle a)
double cos(const BesAngle a)
const HepLorentzVector p_cms(0.034067, 0.0, 0.0, 3.097)
EvtRecTrackCol::iterator EvtRecTrackIterator
std::vector< HepLorentzVector > Vp4
static void setPidType(PidType pidType)
const double theta() const
const HepSymMatrix err() const
const HepVector helix() const
......
virtual bool isVertexValid()=0
virtual double * SigmaPrimaryVertex()=0
virtual double * PrimaryVertex()=0
static KinematicFit * instance()
void AddFourMomentum(int number, HepLorentzVector p4)
HepLorentzVector pfit(int n) const
int methodProbability() const
int onlyPionKaonProton() const
void setChiMinCut(const double chi=4)
void setRecTrack(EvtRecTrack *trk)
void setMethod(const int method)
double chiTof2(int n) const
void identify(const int pidcase)
void usePidSys(const int pidsys)
static ParticleID * instance()
bool IsPidInfoValid() const
double chiTof1(int n) const
double probProton() const
double chiDedx(int n) const
const HepVector & getZHelix() const
const HepSymMatrix & getZError() const
HepSymMatrix & getZErrorK()
void setPrimaryVertex(const VertexParameter vpar)
double decayLength() const
double decayLengthError() const
static SecondVertexFit * instance()
void setVpar(const VertexParameter vpar)
WTrackParameter wpar() const
unsigned int layer() const
void setStatus(unsigned int status)
void AddTrack(const int number, const double mass, const RecMdcTrack *trk)
WTrackParameter wVirtualTrack(int n) const
void AddVertex(int number, VertexParameter vpar, std::vector< int > lis)
static VertexFit * instance()
VertexParameter vpar(int n) const
void BuildVirtualParticle(int number)
void setEvx(const HepSymMatrix &eVx)
void setVx(const HepPoint3D &vx)
HepLorentzVector p() const
_EXTERN_ std::string EvtRecEvent
_EXTERN_ std::string EvtRecTrackCol