本文整理汇总了C++中atools::Flavour::Bar方法的典型用法代码示例。如果您正苦于以下问题:C++ Flavour::Bar方法的具体用法?C++ Flavour::Bar怎么用?C++ Flavour::Bar使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类atools::Flavour
的用法示例。
在下文中一共展示了Flavour::Bar方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: MinimalEnergy
double Hadron_Remnant::MinimalEnergy(const ATOOLS::Flavour &flavour)
{
if (!m_initialized) {
if (!flavour.Strong()) {
return p_beam->Beam().HadMass();
}
bool found(false);
kf_code di[3];
if (flavour.IsQuark()) {
short unsigned int j=0;
for (Flavour_Vector::const_iterator flit(m_constit.begin());
flit!=m_constit.end();++flit) {
if (found || flavour!=*flit) di[j++]=flit->Kfcode();
else found=true;
}
}
Flavour difl;
if (!found || flavour.IsGluon()) {
int single=-1;
for (size_t i=0;i<m_constit.size();++i) {
for (size_t j=i+1;j<m_constit.size();++j) {
if (m_constit[i]==m_constit[j]) {
single=j;
break;
}
}
if (single>0) break;
}
Flavour fl(m_constit[single]);
for (short unsigned int j=0, i=0;i<3;i++)
if (i!=single) di[j++]=m_constit[i].Kfcode();
if (di[0]>di[1]) difl=Flavour((kf_code)(di[0]*1000+di[1]*100+1));
else if (di[1]>di[0]) difl=Flavour((kf_code)(di[1]*1000+di[0]*100+1));
else difl=Flavour((kf_code)(di[0]*1100+3));
if (m_constit[single].IsAnti()) difl=difl.Bar();
return difl.Mass()+fl.Mass()+flavour.Bar().Mass();
}
if (di[0]>di[1]) difl=Flavour((kf_code)(di[0]*1000+di[1]*100+1));
else if (di[1]>di[0]) difl=Flavour((kf_code)(di[1]*1000+di[0]*100+1));
else difl=Flavour((kf_code)(di[0]*1100+3));
if (m_constit[0].IsAnti()) difl=difl.Bar();
return difl.Mass();
}
else {
if (flavour.IsQuark()) return flavour.Bar().Mass();
}
return 0.;
}
示例2: flavour
Primitive_Observable_Base *GetObservable(const Argument_Matrix ¶meters)
{
if (parameters.size()<1) return NULL;
if (parameters.size()==1) {
if (parameters[0].size()<5) return NULL;
int kf=ATOOLS::ToType<int>(parameters[0][0]);
ATOOLS::Flavour flavour((kf_code)abs(kf));
if (kf<0) flavour=flavour.Bar();
std::string list=parameters[0].size()>5?parameters[0][5]:finalstate_list;
return new Class(flavour,HistogramType(parameters[0][4]),
ATOOLS::ToType<double>(parameters[0][1]),
ATOOLS::ToType<double>(parameters[0][2]),
ATOOLS::ToType<int>(parameters[0][3]),list);
}
else if (parameters.size()<5) return NULL;
double min=0.0, max=1.0;
size_t bins=100;
std::string list=finalstate_list, scale="Lin";
ATOOLS::Flavour flavour;
for (size_t i=0;i<parameters.size();++i) {
if (parameters[i].size()<2) continue;
if (parameters[i][0]=="FLAV") {
int kf=ATOOLS::ToType<int>(parameters[i][1]);
flavour=ATOOLS::Flavour((kf_code)abs(kf));
if (kf<0) flavour=flavour.Bar();
}
else if (parameters[i][0]=="MIN") min=ATOOLS::ToType<double>(parameters[i][1]);
else if (parameters[i][0]=="MAX") max=ATOOLS::ToType<double>(parameters[i][1]);
else if (parameters[i][0]=="BINS") bins=ATOOLS::ToType<int>(parameters[i][1]);
else if (parameters[i][0]=="SCALE") scale=parameters[i][1];
else if (parameters[i][0]=="LIST") list=parameters[i][1];
}
return new Class(flavour,HistogramType(scale),min,max,bins,list);
}