本文整理汇总了C++中atools::Flavour::Mass方法的典型用法代码示例。如果您正苦于以下问题:C++ Flavour::Mass方法的具体用法?C++ Flavour::Mass怎么用?C++ Flavour::Mass使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类atools::Flavour
的用法示例。
在下文中一共展示了Flavour::Mass方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Init
Pol_Info::Pol_Info(const ATOOLS::Flavour& fl)
{
int dof = 1;
pol_type='s';
if(fl.IsFermion()) { dof = 2;pol_type='h';};
if(fl.IsVector() && ATOOLS::IsZero(fl.Mass())) { dof = 2;pol_type='c';}
if(fl.IsVector() && !ATOOLS::IsZero(fl.Mass())) {
#ifdef Explicit_Pols
dof=3;
#else
dof=1;
#endif
pol_type='c';
}
if(fl.IsTensor()) dof=5;
Init(dof);
if(!fl.IsTensor()) {
int tf[3] = {mt::p_m, mt::p_p, mt::p_l };
for(int j=0;j<dof;j++){
type[j] = tf[j];
factor[j] = 1.;
}
}
else {
type[0]=mt::p_t1;factor[0]=1.;
type[1]=mt::p_t2;factor[1]=1.;
type[2]=mt::p_t3;factor[2]=1.;
type[3]=mt::p_t4;factor[3]=1.;
type[4]=mt::p_t5;factor[4]=1.;
}
}
示例2: AllowSpec
bool CF_QED::AllowSpec(const ATOOLS::Flavour &fl)
{
if (!fl.Strong() && fl.Mass()>10.0) return false;
if (m_cfl.IntCharge()==0) return fl.Charge();
switch (m_type) {
case cstp::FF:
case cstp::II:
return fl.IntCharge()*m_cfl.IntCharge()<0;
case cstp::FI:
case cstp::IF:
return fl.IntCharge()*m_cfl.IntCharge()>0;
default:
return false;
}
}
示例3: GetXPDF
double Hadron_Remnant::GetXPDF(ATOOLS::Flavour flavour,double scale)
{
double cut, x;
cut=2.0*(flavour.HadMass()+m_hardpt.PPerp()/
sqr(m_companions.size()))/p_beam->OutMomentum()[0];
// assume heavy flavours have been pair-produced
// => scale should be approximately (2m)^2
scale=Max(scale,4.0*sqr(flavour.Mass()));
if (scale<p_pdfbase->Q2Min()) {
msg_Error()<<"Hadron_Remnant::GetXPDF("<<flavour<<","<<scale<<"): "
<<"Scale under-runs minimum given by PDF: "
<<scale<<" < "<<p_pdfbase->Q2Min()<<std::endl;
scale=1.001*p_pdfbase->Q2Min();
}
unsigned int xtrials, pdftrials=0;
while (true) {
++pdftrials;
xtrials=0;
do {
++xtrials;
x=m_xrem*ran->Get();
if (xtrials>=m_maxtrials) {
x=Min(cut,0.999999*p_pdfbase->RescaleFactor());
break;
}
if (x>p_pdfbase->RescaleFactor()) continue;
} while (x<cut);
if (x>p_pdfbase->XMin() && x<p_pdfbase->XMax()) {
p_pdfbase->Calculate(x,scale);
}
else {
m_xscheme=0; return 0.01;
}
if (pdftrials>=m_maxtrials) { m_xscheme=0; return 0.01; }
if (p_pdfbase->GetXPDF(flavour)/x>ran->Get()) return x;
}
return 0.0;
}
示例4: exit
Channel_Interface::Channel_Interface(int nin,int nout,ATOOLS::Flavour *flavour,ATOOLS::Flavour res):
Single_Channel(nin,nout,flavour)
{
if (nout != 2 || nin!=2) {
msg_Error()<<"Channel_Interface::Channel_Interface(..): "
<<"Cannot handle "<<nin<<" -> "<<nout<<" processes. Abort."<<std::endl;
exit(169);
}
nin = nin; nout = nout;
ms = new double[nin+nout];
for (short int i=0;i<nin+nout;i++) ms[i] = ATOOLS::sqr(flavour[i].Mass());
rannum = 3;
rans = new double[rannum];
s = smax = pt2max = ATOOLS::sqr(ATOOLS::rpa->gen.Ecms());
pt2min = 0.;
E = 0.5*sqrt(s);
name = "Channel Interface";
mass = width = 0.;
type = 0;
if (res!=ATOOLS::Flavour(kf_none)) {
mass = res.Mass(); width = res.Width(); type = 1;
}
}
示例5: Mass
double MI_Handler::Mass(const ATOOLS::Flavour &fl) const
{
return fl.Mass();
}
示例6: Mass
double Hard_Decay_Handler::Mass(const ATOOLS::Flavour &fl) const
{
if (m_usemass==0) return fl.Mass();
if (m_decmass.find(fl)!=m_decmass.end()) return fl.Mass(true);
return fl.Mass();
}