bool Decay_Channel::FlavourSort(const Flavour &fl1,const Flavour &fl2) { // TODO: Get rid of this custom sorting, but then the hadron decay channel // files have to be changed as well (order mapping in MEs) kf_code kf1(fl1.Kfcode()), kf2(fl2.Kfcode()); if (kf1>kf2) return true; if (kf1<kf2) return false; /* anti anti -> true anti part -> false part anti -> true anti anti -> true */ return !(fl1.IsAnti()&&!fl2.IsAnti()); }
void Lund_Interface::AdjustProperties(Flavour flav) { int kc = pycomp(SherpaToIdhep(flav)); if(kc>500) return; // adjust mass double pythiamass = pydat2.pmas[1-1][kc-1]; double sherpamass = flav.HadMass(); flav.SetMass(pythiamass); if( !(abs(sherpamass-pythiamass)/sherpamass < 1.e-2) ) { msg_Info()<<METHOD<<" Adjusted mass of "<<flav<<" ("<<flav.Kfcode() <<") from "<<sherpamass<<" to "<<pythiamass<<" to allow Pythia decays."<<endl; } }
Proto_Particle:: Proto_Particle(Flavour flav,Vec4D mom,char info) : m_flav(flav), m_mom(mom), m_info(info), m_mass(hadpars->GetConstituents()->Mass(flav)), m_kt2max(0.), p_partner(NULL) { if (!flav.IsGluon() && !flav.IsDiQuark()) { if (flav.IsQuark() && flav.Kfcode()>5) { std::cerr<<"Error in Proto_Particle::Proto_Particle():\n" <<" Tried to form a cluster particle from a "<<flav<<".\n" <<" Please make sure that heavy coloured objects decay " <<"before they enter hadronization.\n" <<" Will exit the run.\n"; abort(); } } control::s_AHAprotoparticles++; s_actives.push_back(this); }
void Hadron_Multiplicities::Evaluate(const ATOOLS::Particle_List & pl, double weight, double ncount) { //Particle_List * pl = p_ana->GetParticleList(m_listname); Flavour flav; kf_code kfc; for (Particle_List::const_iterator pliter=pl.begin();pliter!=pl.end();pliter++) { flav = (*pliter)->Flav(); if (!flav.IsHadron() && !flav.IsPhoton()) continue; kfc = flav.Kfcode(); if (kfc==kf_photon) p_obs->Insert(99.5,weight,ncount); if (kfc==kf_pi) p_obs->Insert(1.5,weight,ncount); if (kfc==kf_pi_plus) p_obs->Insert(2.5,weight,ncount); if (kfc==kf_eta) p_obs->Insert(3.5,weight,ncount); if (m_listname=="PrimordialHadrons") if (kfc==kf_K) p_obs->Insert(4.5,weight,ncount); //else if (kfc==kf_K_L||kfc==kf_K_S||kfc==kf_K) p_obs->Insert(4.5,weight,ncount); if (kfc==kf_K_plus) p_obs->Insert(5.5,weight,ncount); if (kfc==kf_eta_prime_958) p_obs->Insert(6.5,weight,ncount); if (kfc==kf_rho_770) p_obs->Insert(11.5,weight,ncount); if (kfc==kf_rho_770_plus) p_obs->Insert(12.5,weight,ncount); if (kfc==kf_omega_782) p_obs->Insert(13.5,weight,ncount); if (kfc==kf_K_star_892) p_obs->Insert(14.5,weight,ncount); if (kfc==kf_K_star_892_plus) p_obs->Insert(15.5,weight,ncount); if (kfc==kf_phi_1020) p_obs->Insert(16.5,weight,ncount); if (kfc==kf_D_plus) p_obs->Insert(21.5,weight,ncount); if (kfc==kf_D) p_obs->Insert(22.5,weight,ncount); if (kfc==kf_D_s_plus) p_obs->Insert(23.5,weight,ncount); if (kfc==kf_eta_c_1S) p_obs->Insert(24.5,weight,ncount); if (kfc==kf_B_plus) p_obs->Insert(25.5,weight,ncount); if (kfc==kf_B) p_obs->Insert(26.5,weight,ncount); if (kfc==kf_B_s) p_obs->Insert(27.5,weight,ncount); if (kfc==kf_B_c) p_obs->Insert(28.5,weight,ncount); if (kfc==kf_eta_b) p_obs->Insert(29.5,weight,ncount); if (kfc==kf_D_star_2010_plus) p_obs->Insert(31.5,weight,ncount); if (kfc==kf_D_star_2007) p_obs->Insert(32.5,weight,ncount); if (kfc==kf_D_s_star_plus) p_obs->Insert(33.5,weight,ncount); if (kfc==kf_J_psi_1S) p_obs->Insert(34.5,weight,ncount); if (kfc==kf_B_star_plus) p_obs->Insert(35.5,weight,ncount); if (kfc==kf_B_star) p_obs->Insert(36.5,weight,ncount); if (kfc==kf_B_s_star) p_obs->Insert(37.5,weight,ncount); if (kfc==kf_B_c_star) p_obs->Insert(38.5,weight,ncount); if (kfc==kf_Upsilon_1S) p_obs->Insert(39.5,weight,ncount); if (kfc==kf_f_2_1270) p_obs->Insert(41.5,weight,ncount); if (kfc==kf_f_2_prime_1525) p_obs->Insert(42.5,weight,ncount); if (kfc==kf_psi_2S) p_obs->Insert(43.5,weight,ncount); if (kfc==kf_p_plus) p_obs->Insert(51.5,weight,ncount); if (kfc==kf_n) p_obs->Insert(52.5,weight,ncount); if (kfc==kf_Sigma_plus) p_obs->Insert(53.5,weight,ncount); if (kfc==kf_Sigma) p_obs->Insert(54.5,weight,ncount); if (kfc==kf_Sigma_minus) p_obs->Insert(55.5,weight,ncount); if (kfc==kf_Lambda) p_obs->Insert(56.5,weight,ncount); if (kfc==kf_Xi) p_obs->Insert(57.5,weight,ncount); if (kfc==kf_Xi_minus) p_obs->Insert(58.5,weight,ncount); if (kfc==kf_Delta_1232_plus_plus) p_obs->Insert(61.5,weight,ncount); if (kfc==kf_Delta_1232_plus) p_obs->Insert(62.5,weight,ncount); if (kfc==kf_Delta_1232) p_obs->Insert(63.5,weight,ncount); if (kfc==kf_Delta_1232_minus) p_obs->Insert(64.5,weight,ncount); if (kfc==kf_Sigma_1385_plus) p_obs->Insert(65.5,weight,ncount); if (kfc==kf_Sigma_1385) p_obs->Insert(66.5,weight,ncount); if (kfc==kf_Sigma_1385_minus) p_obs->Insert(67.5,weight,ncount); if (kfc==kf_Xi_1530) p_obs->Insert(68.5,weight,ncount); if (kfc==kf_Xi_1530_minus) p_obs->Insert(69.5,weight,ncount); if (kfc==kf_Omega_minus) p_obs->Insert(70.5,weight,ncount); if (kfc==kf_Lambda_c_plus) p_obs->Insert(81.5,weight,ncount); if (kfc==kf_Sigma_c_2455_plus) p_obs->Insert(82.5,weight,ncount); if (kfc==kf_Sigma_c_2455_plus_plus) p_obs->Insert(83.5,weight,ncount); if (kfc==kf_Xi_c_2466) p_obs->Insert(84.5,weight,ncount); if (kfc==kf_Xi_c_2466_plus) p_obs->Insert(85.5,weight,ncount); if (kfc==kf_Lambda_b) p_obs->Insert(91.5,weight,ncount); if (kfc==kf_Sigma_b_5820) p_obs->Insert(92.5,weight,ncount); if (kfc==kf_Sigma_b_5820_plus) p_obs->Insert(93.5,weight,ncount); if (kfc==kf_Xi_b_5840) p_obs->Insert(94.5,weight,ncount); if (kfc==kf_Xi_b_5840_minus) p_obs->Insert(95.5,weight,ncount); } for (int i=0;i<100;++i) p_norm->Insert(i+.5,weight,ncount); }