463 double DmesonMass = -99.0;
464 const float Dmeson_reference = 1864.83;
465 const float Dmeson_upper = 2200.0;
466 const float Dmeson_lower = 1000.0;
467 TLorentzVector secondaryVtx_4momentum_Dmeson;
470 if(secondaryVtx_track_number == 3 && abs(secondaryVtx_charge) == 1){
471 std::vector<TLorentzVector>::const_iterator secondaryVtx_4momentum_Iter = secondaryVtx_4momentum_vector.begin();
472 for (std::vector<float>::const_iterator secondaryVtx_charge_Iter = secondaryVtx_charge_vector.begin();
473 secondaryVtx_charge_Iter != secondaryVtx_charge_vector.end();
474 ++secondaryVtx_charge_Iter) {
475 TLorentzVector track_fourVector_new;
476 if((secondaryVtx_charge==1 && (*secondaryVtx_charge_Iter)==-1) || (secondaryVtx_charge==-1 && (*secondaryVtx_charge_Iter)==1)){
477 track_fourVector_new.SetVectM((*secondaryVtx_4momentum_Iter).Vect(), track_kaon);
479 track_fourVector_new.SetVectM((*secondaryVtx_4momentum_Iter).Vect(), track_mass);
481 secondaryVtx_4momentum_Dmeson += track_fourVector_new;
482 ++secondaryVtx_4momentum_Iter;
484 if(secondaryVtx_4momentum_Dmeson.M()>Dmeson_lower && secondaryVtx_4momentum_Dmeson.M()<Dmeson_upper){
485 DmesonMass = secondaryVtx_4momentum_Dmeson.M();
487 }
else if(secondaryVtx_track_number == 2 && secondaryVtx_charge == 0){
488 std::vector<TLorentzVector>::const_iterator secondaryVtx_4momentum_Iter = secondaryVtx_4momentum_vector.begin();
489 for (std::vector<float>::const_iterator secondaryVtx_charge_Iter = secondaryVtx_charge_vector.begin();
490 secondaryVtx_charge_Iter != secondaryVtx_charge_vector.end();
491 ++secondaryVtx_charge_Iter) {
492 TLorentzVector track_fourVector_new;
493 if((*secondaryVtx_charge_Iter)==-1){
494 track_fourVector_new.SetVectM((*secondaryVtx_4momentum_Iter).Vect(), track_kaon);
496 track_fourVector_new.SetVectM((*secondaryVtx_4momentum_Iter).Vect(), track_mass);
498 secondaryVtx_4momentum_Dmeson += track_fourVector_new;
499 ++secondaryVtx_4momentum_Iter;
501 if(secondaryVtx_4momentum_Dmeson.M()>Dmeson_lower && secondaryVtx_4momentum_Dmeson.M()<Dmeson_upper){
502 DmesonMass = secondaryVtx_4momentum_Dmeson.M();
504 }
else if(secondaryVtx_track_number == 4 && secondaryVtx_charge == 0){
505 std::vector<TLorentzVector>::const_iterator secondaryVtx_4momentum_Iter = secondaryVtx_4momentum_vector.begin();
506 bool KaonFlag =
false;
507 for (std::vector<float>::const_iterator secondaryVtx_charge_Iter = secondaryVtx_charge_vector.begin();
508 secondaryVtx_charge_Iter != secondaryVtx_charge_vector.end();
509 ++secondaryVtx_charge_Iter) {
510 TLorentzVector track_fourVector_new;
511 if((*secondaryVtx_charge_Iter)==-1 && KaonFlag ==
false){
512 track_fourVector_new.SetVectM((*secondaryVtx_4momentum_Iter).Vect(), track_kaon);
515 track_fourVector_new.SetVectM((*secondaryVtx_4momentum_Iter).Vect(), track_mass);
517 secondaryVtx_4momentum_Dmeson += track_fourVector_new;
518 ++secondaryVtx_4momentum_Iter;
520 double mDmeson_1 = secondaryVtx_4momentum_Dmeson.M();
521 secondaryVtx_4momentum_Iter = secondaryVtx_4momentum_vector.begin();
523 TLorentzVector secondaryVtx_4momentum_Dmeson_new;
524 for(std::vector<float>::const_iterator secondaryVtx_charge_Iter = secondaryVtx_charge_vector.begin();
525 secondaryVtx_charge_Iter != secondaryVtx_charge_vector.end();
526 ++secondaryVtx_charge_Iter) {
527 TLorentzVector track_fourVector_new2;
528 if((*secondaryVtx_charge_Iter)==-1 && KaonFlag ==
false){
530 }
else if ((*secondaryVtx_charge_Iter)==-1 && KaonFlag ==
true){
531 track_fourVector_new2.SetVectM((*secondaryVtx_4momentum_Iter).Vect(), track_kaon);
533 track_fourVector_new2.SetVectM((*secondaryVtx_4momentum_Iter).Vect(), track_mass);
535 secondaryVtx_4momentum_Dmeson_new += track_fourVector_new2;
536 ++secondaryVtx_4momentum_Iter;
538 double mDmeson_2 = secondaryVtx_4momentum_Dmeson_new.M();
539 if (std::abs(mDmeson_1 - Dmeson_reference)<=std::abs(mDmeson_2 - Dmeson_reference) && mDmeson_1>Dmeson_lower && mDmeson_1<Dmeson_upper){
540 DmesonMass=mDmeson_1;
542 else if(std::abs(mDmeson_2 - Dmeson_reference)<=std::abs(mDmeson_1 - Dmeson_reference) && mDmeson_2>Dmeson_lower && mDmeson_2<Dmeson_upper){
543 DmesonMass=mDmeson_2;