Belle II Software  release-05-01-25
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 10 of file ParticleListName.cc.

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