Belle II Software  release-08-01-10
Belle2::ParticleListName Namespace Reference

Helper to deal with ParticleList names. More...

Functions

std::string antiParticleListName (const std::string &listName)
 Returns name of anti-particle-list corresponding to listName. More...
 

Detailed Description

Helper to deal with ParticleList names.

Own namespace because of CINT.

Function Documentation

◆ antiParticleListName()

std::string antiParticleListName ( const std::string &  listName)

Returns name of anti-particle-list corresponding to listName.

Throws std::runtime_error for invalid particle lists. If listName refers to a self-conjugated list, simply returns listName.

Ex: antiParticleListName("B+:somelabel") -> "B-:somelabel" antiParticleListName("gamma") -> "gamma"

User documentation is located at analysis/doc/DecayDescriptor.rst Please modify in accordingly to introduced changes.

Definition at line 17 of file ParticleListName.cc.

18 {
19  DecayDescriptor decayDescriptor;
20  bool valid = decayDescriptor.init(listName);
21  if (!valid)
22  throw std::runtime_error("Invalid ParticleList name: '" + listName + "' Should be EVTPDLNAME[:LABEL], e.g. B+ or B+:mylist.");
23 
24  int nProducts = decayDescriptor.getNDaughters();
25  if (nProducts > 0)
26  throw std::runtime_error("Invalid ParticleList name " + listName
27  + ". DecayString should not contain any daughters, only the mother particle.");
28 
29  const DecayDescriptorParticle* mother = decayDescriptor.getMother();
30  const int pdgCode = mother->getPDGCode();
31 
32  bool isSelfConjugatedParticle = !(EvtPDLUtil::hasAntiParticle(pdgCode));
33  if (isSelfConjugatedParticle)
34  return listName;
35  else
36  return EvtPDLUtil::antiParticleListName(pdgCode, mother->getLabel());
37 }
Represents a particle in the DecayDescriptor.
The DecayDescriptor stores information about a decay tree or parts of a decay tree.