12 chi01,
chi02,
chi03,
chi04,
ch1plus,
ch1minus,
ch2plus,
ch2minus,
gluino,
squark,
26 else if (
c[
gluino]==2)
return 2;
62 if (
c[
chi01]==2)
return 111;
72 else if (
c[
chi02]==2)
return 122;
81 else if (
c[
chi03]==2)
return 133;
89 else if (
c[
chi04]==2)
return 144;
109 else if (
c[
selnuL]==2)
return 203;
127 else if (
c[
smunuL]==2)
return 218;
135 finalStateID(
const int SUSY_Spart1_pdgId,
const int SUSY_Spart2_pdgId){
136 std::array<int, nParticleIndices> particleCountByType{};
137 std::array<PdgConditional,34> conditions{
148 PdgConditional([](
int pdgId)->
bool{
return ((std::abs(pdgId)>1000000 && std::abs(pdgId)<= 1000004) || (std::abs(pdgId)>2000000 && std::abs(pdgId)<=2000004)) && (pdgId>0);}),
149 PdgConditional([](
int pdgId)->
bool{
return (std::abs(pdgId)>1000000 && std::abs(pdgId)<= 1000004) || (std::abs(pdgId)>2000000 && std::abs(pdgId)<=2000004);}),
174 auto it =
std::find(conditions.begin(),conditions.end(), SUSY_Spart1_pdgId);
176 ++particleCountByType[
idx];
178 it =
std::find(conditions.begin(),conditions.end(), SUSY_Spart2_pdgId);
180 ++particleCountByType[
idx];
186 if (
const auto &
v=
slepton(particleCountByType);
v)
return v;
188 if (
const auto &
v=
smuon(particleCountByType);
v)
return v;