CMS 3D CMS Logo

CompositePtrCandidate.h
Go to the documentation of this file.
1 #ifndef Candidate_CompositePtrCandidate_h
2 #define Candidate_CompositePtrCandidate_h
15 namespace reco {
16 
18  public:
20  typedef std::vector<CandidatePtr> daughters;
22  typedef std::vector<CandidatePtr> mothers;
27  const LorentzVector& p4,
28  const Point& vtx = Point(0, 0, 0),
29  int pdgId = 0,
30  int status = 0,
31  bool integerCharge = true)
32  : LeafCandidate(q, p4, vtx, pdgId, status, integerCharge) {}
35  const PolarLorentzVector& p4,
36  const Point& vtx = Point(0, 0, 0),
37  int pdgId = 0,
38  int status = 0,
39  bool integerCharge = true)
40  : LeafCandidate(q, p4, vtx, pdgId, status, integerCharge) {}
44  ~CompositePtrCandidate() override;
46  CompositePtrCandidate* clone() const override;
48  size_t numberOfDaughters() const override;
50  size_t numberOfMothers() const override;
52  const Candidate* daughter(size_type) const override;
53  using reco::LeafCandidate::daughter; // avoid hiding the base
55  Candidate* daughter(size_type) override;
57  void addDaughter(const CandidatePtr&);
59  virtual void clearDaughters() { dau.clear(); }
61  virtual CandidatePtr daughterPtr(size_type i) const { return dau[i]; }
63  virtual const daughters& daughterPtrVector() const { return dau; }
65  const Candidate* mother(size_t i = 0) const override;
70  size_type numberOfSourceCandidatePtrs() const override;
76 
77  private:
81  bool overlap(const Candidate&) const override;
82  };
83 
84  inline void CompositePtrCandidate::addDaughter(const CandidatePtr& cand) { dau.push_back(cand); }
85 
86 } // namespace reco
87 
88 #endif
int Charge
electric charge type
Definition: Candidate.h:34
size_type numberOfSourceCandidatePtrs() const override
virtual CandidatePtr daughterPtr(size_type i) const
reference to daughter at given position
CompositePtrCandidate()
default constructor
const Candidate * mother(size_t i=0) const override
return pointer to mother
size_t size_type
Definition: Candidate.h:29
CandidatePtr sourceCandidatePtr(size_type i) const override
int status() const final
status word
virtual const daughters & daughterPtrVector() const
references to daughtes
CompositePtrCandidate(Charge q, const LorentzVector &p4, const Point &vtx=Point(0, 0, 0), int pdgId=0, int status=0, bool integerCharge=true)
constructor from values
const LorentzVector & p4() const final
four-momentum Lorentz vector
daughters dau
collection of references to daughters
int pdgId() const final
PDG identifier.
~CompositePtrCandidate() override
destructor
const Candidate * daughter(size_type) const override
return daughter at a given position (throws an exception)
double p() const final
magnitude of momentum vector
CompositePtrCandidate(const Candidate &p)
constructor from a Candidate
CompositePtrCandidate(Charge q, const PolarLorentzVector &p4, const Point &vtx=Point(0, 0, 0), int pdgId=0, int status=0, bool integerCharge=true)
constructor from values
virtual void clearDaughters()
clear daughter references
std::vector< CandidatePtr > daughters
collection of references to daughters
size_t numberOfDaughters() const override
number of daughters
size_t numberOfMothers() const override
number of mothers
std::vector< CandidatePtr > mothers
collection of references to daughters
math::XYZTLorentzVector LorentzVector
Lorentz vector.
Definition: Candidate.h:36
bool overlap(const Candidate &) const override
check overlap with another candidate
fixed size matrix
Structure Point Contains parameters of Gaussian fits to DMRs.
void addDaughter(const CandidatePtr &)
add a daughter via a reference
const Candidate * daughter(size_type) const override
return daughter at a given position, i = 0, ... numberOfDaughters() - 1 (read only mode) ...
CompositePtrCandidate * clone() const override
returns a clone of the candidate
math::XYZPoint Point
point in the space
Definition: LeafCandidate.h:27
math::PtEtaPhiMLorentzVector PolarLorentzVector
Lorentz vector.
Definition: Candidate.h:38