462 double DmesonMass = -99.0;
463 const float Dmeson_reference = 1864.83;
464 const float Dmeson_upper = 2200.0;
465 const float Dmeson_lower = 1000.0;
466 TLorentzVector secondaryVtx_4momentum_Dmeson;
469 if(secondaryVtx_track_number == 3 && abs(secondaryVtx_charge) == 1){
470 std::vector<TLorentzVector>::const_iterator secondaryVtx_4momentum_Iter = secondaryVtx_4momentum_vector.begin();
471 for (std::vector<float>::const_iterator secondaryVtx_charge_Iter = secondaryVtx_charge_vector.begin();
472 secondaryVtx_charge_Iter != secondaryVtx_charge_vector.end();
473 ++secondaryVtx_charge_Iter) {
474 TLorentzVector track_fourVector_new;
475 if((secondaryVtx_charge==1 && (*secondaryVtx_charge_Iter)==-1) || (secondaryVtx_charge==-1 && (*secondaryVtx_charge_Iter)==1)){
476 track_fourVector_new.SetVectM((*secondaryVtx_4momentum_Iter).Vect(), track_kaon);
478 track_fourVector_new.SetVectM((*secondaryVtx_4momentum_Iter).Vect(), track_mass);
480 secondaryVtx_4momentum_Dmeson += track_fourVector_new;
481 ++secondaryVtx_4momentum_Iter;
483 if(secondaryVtx_4momentum_Dmeson.M()>Dmeson_lower && secondaryVtx_4momentum_Dmeson.M()<Dmeson_upper){
484 DmesonMass = secondaryVtx_4momentum_Dmeson.M();
486 }
else if(secondaryVtx_track_number == 2 && secondaryVtx_charge == 0){
487 std::vector<TLorentzVector>::const_iterator secondaryVtx_4momentum_Iter = secondaryVtx_4momentum_vector.begin();
488 for (std::vector<float>::const_iterator secondaryVtx_charge_Iter = secondaryVtx_charge_vector.begin();
489 secondaryVtx_charge_Iter != secondaryVtx_charge_vector.end();
490 ++secondaryVtx_charge_Iter) {
491 TLorentzVector track_fourVector_new;
492 if((*secondaryVtx_charge_Iter)==-1){
493 track_fourVector_new.SetVectM((*secondaryVtx_4momentum_Iter).Vect(), track_kaon);
495 track_fourVector_new.SetVectM((*secondaryVtx_4momentum_Iter).Vect(), track_mass);
497 secondaryVtx_4momentum_Dmeson += track_fourVector_new;
498 ++secondaryVtx_4momentum_Iter;
500 if(secondaryVtx_4momentum_Dmeson.M()>Dmeson_lower && secondaryVtx_4momentum_Dmeson.M()<Dmeson_upper){
501 DmesonMass = secondaryVtx_4momentum_Dmeson.M();
503 }
else if(secondaryVtx_track_number == 4 && secondaryVtx_charge == 0){
504 std::vector<TLorentzVector>::const_iterator secondaryVtx_4momentum_Iter = secondaryVtx_4momentum_vector.begin();
505 bool KaonFlag =
false;
506 for (std::vector<float>::const_iterator secondaryVtx_charge_Iter = secondaryVtx_charge_vector.begin();
507 secondaryVtx_charge_Iter != secondaryVtx_charge_vector.end();
508 ++secondaryVtx_charge_Iter) {
509 TLorentzVector track_fourVector_new;
510 if((*secondaryVtx_charge_Iter)==-1 && KaonFlag ==
false){
511 track_fourVector_new.SetVectM((*secondaryVtx_4momentum_Iter).Vect(), track_kaon);
514 track_fourVector_new.SetVectM((*secondaryVtx_4momentum_Iter).Vect(), track_mass);
516 secondaryVtx_4momentum_Dmeson += track_fourVector_new;
517 ++secondaryVtx_4momentum_Iter;
519 double mDmeson_1 = secondaryVtx_4momentum_Dmeson.M();
520 secondaryVtx_4momentum_Iter = secondaryVtx_4momentum_vector.begin();
522 TLorentzVector secondaryVtx_4momentum_Dmeson_new;
523 for(std::vector<float>::const_iterator secondaryVtx_charge_Iter = secondaryVtx_charge_vector.begin();
524 secondaryVtx_charge_Iter != secondaryVtx_charge_vector.end();
525 ++secondaryVtx_charge_Iter) {
526 TLorentzVector track_fourVector_new2;
527 if((*secondaryVtx_charge_Iter)==-1 && KaonFlag ==
false){
529 }
else if ((*secondaryVtx_charge_Iter)==-1 && KaonFlag ==
true){
530 track_fourVector_new2.SetVectM((*secondaryVtx_4momentum_Iter).Vect(), track_kaon);
532 track_fourVector_new2.SetVectM((*secondaryVtx_4momentum_Iter).Vect(), track_mass);
534 secondaryVtx_4momentum_Dmeson_new += track_fourVector_new2;
535 ++secondaryVtx_4momentum_Iter;
537 double mDmeson_2 = secondaryVtx_4momentum_Dmeson_new.M();
538 if (std::abs(mDmeson_1 - Dmeson_reference)<=std::abs(mDmeson_2 - Dmeson_reference) && mDmeson_1>Dmeson_lower && mDmeson_1<Dmeson_upper){
539 DmesonMass=mDmeson_1;
541 else if(std::abs(mDmeson_2 - Dmeson_reference)<=std::abs(mDmeson_1 - Dmeson_reference) && mDmeson_2>Dmeson_lower && mDmeson_2<Dmeson_upper){
542 DmesonMass=mDmeson_2;