示例#1
0
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());
}
示例#2
0
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;
  }
}
示例#3
0
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);
}
示例#4
0
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);
}