Mēnsūra
GenParticle.hpp
1 #pragma once
2 
4 
5 #include <list>
6 #include <initializer_list>
7 
8 
16 class GenParticle: public Candidate
17 {
18 public:
20  typedef std::list<GenParticle const *> collection_t;
21 
22 public:
24  GenParticle() noexcept;
25 
27  GenParticle(TLorentzVector const &p4, int pdgId = 0) noexcept;
28 
30  GenParticle(GenParticle const &) = default;
31 
33  GenParticle(GenParticle &&) = default;
34 
35 public:
37  void AddDaughter(GenParticle const *p);
38 
40  void AddMother(GenParticle const *p);
41 
47  GenParticle const *FindFirstDaughter(std::initializer_list<int> const &pdgIds) const;
48 
57  GenParticle const *FindFirstDaughterRecursive(std::initializer_list<int> const &pdgIds)
58  const;
59 
61  collection_t const &GetDaughters() const;
62 
64  GenParticle const *GetFirstMother() const;
65 
71  int GetFirstMotherPdgId() const;
72 
74  collection_t const &GetMothers() const;
75 
77  int GetPdgId() const;
78 
80  void SetPdgId(int pdgId_);
81 
82 private:
84  int pdgId;
85 
87  collection_t mothers;
88 
90  collection_t daughters;
91 };
void SetPdgId(int pdgId_)
Sets the PDG ID code.
Definition: GenParticle.cpp:100
collection_t const & GetDaughters() const
Returns the collection of daughter particles.
Definition: GenParticle.cpp:64
GenParticle const * FindFirstDaughterRecursive(std::initializer_list< int > const &pdgIds) const
Recursively looks for a daughter with one of the specified PDG ID codes and returns the pointer to it...
Definition: GenParticle.cpp:43
Describes a generator-level particle.
Definition: GenParticle.hpp:16
void AddMother(GenParticle const *p)
Adds a mother particle.
Definition: GenParticle.cpp:24
Definition: BTagger.hpp:102
int GetPdgId() const
Returns the PDG ID code.
Definition: GenParticle.cpp:94
GenParticle const * GetFirstMother() const
A short-cut to access the first mother.
Definition: GenParticle.cpp:70
std::list< GenParticle const * > collection_t
Type of the container to store mothers and daughters.
Definition: GenParticle.hpp:20
GenParticle() noexcept
Default constructor.
Definition: GenParticle.cpp:6
collection_t const & GetMothers() const
Returns the collection of mother particles.
Definition: GenParticle.cpp:88
Represents a general object with a four-momentum.
Definition: PhysicsObjects.hpp:28
int GetFirstMotherPdgId() const
A short-cut to access PDG ID code of the first mother.
Definition: GenParticle.cpp:79
void AddDaughter(GenParticle const *p)
Adds a daughter particle.
Definition: GenParticle.cpp:18
GenParticle const * FindFirstDaughter(std::initializer_list< int > const &pdgIds) const
Returns the pointer to the first daughter that matches one of the given PDG ID codes.
Definition: GenParticle.cpp:30