3131using std::array;
3232using namespace o2 ::constants::math;
3333
34- // / Base class for calculating properties of reconstructed decays.
34+ // / Base class for calculating properties of reconstructed decays
35+ // /
36+ // / Provides static helper functions for:
37+ // / - useful arithmetic operations and basic vector algebra
38+ // / - calculation of kinematic quantities
39+ // / - calculation of topological properties of secondary vertices
40+ // / - Monte Carlo matching of decays at track and particle level
3541
3642class RecoDecay
3743{
@@ -509,6 +515,14 @@ class RecoDecay
509515 return maxNormDeltaIP;
510516 }
511517
518+ // / Adds particle mass in the list.
519+ // / \param pdg PDG code
520+ // / \param mass particle mass
521+ static void addMassPDG (int pdg, double mass)
522+ {
523+ mListMass .push_back (std::make_tuple (pdg, mass));
524+ }
525+
512526 // / Returns particle mass based on PDG code.
513527 // / \param pdg PDG code
514528 // / \return particle mass
@@ -521,14 +535,29 @@ class RecoDecay
521535 }
522536 }
523537 // Get the mass of the new particle and add it in the list.
524- const TParticlePDG* particle = TDatabasePDG::Instance ()->GetParticle (pdg);
525- if (!particle) { // Check that it's there
526- LOGF (fatal, " Cannot find particle mass for PDG code %i" , pdg);
527- return 999 .;
538+ double mass = 0 .;
539+ switch (pdg) {
540+ // Particles that cannot be taken from ROOT ($ROOTSYS/etc/pdg_table.txt)
541+ case 4422 : { // Ξcc (wrong mass in ROOT)
542+ mass = 3.62155 ; // https://pdg.lbl.gov/ (2021)
543+ break ;
544+ }
545+ case 9920443 : { // χc1 aka X(3872)
546+ mass = 3.87165 ; // https://pdg.lbl.gov/ (2021)
547+ break ;
548+ }
549+ // Take the rest from ROOT.
550+ default : {
551+ const TParticlePDG* particle = TDatabasePDG::Instance ()->GetParticle (pdg);
552+ if (!particle) { // Check that it's there.
553+ LOGF (fatal, " Cannot find particle mass for PDG code %i" , pdg);
554+ return 999 .;
555+ }
556+ mass = particle->Mass ();
557+ }
528558 }
529- auto newMass = particle->Mass ();
530- mListMass .push_back (std::make_tuple (pdg, newMass));
531- return newMass;
559+ addMassPDG (pdg, mass);
560+ return mass;
532561 }
533562
534563 // / Finds the mother of an MC particle by looking for the expected PDG code in the mother chain.
0 commit comments