CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
CandidateWithRef.h
Go to the documentation of this file.
1 #ifndef Candidate_CandidateWithRef_h
2 #define Candidate_CandidateWithRef_h
3 
14 
15 namespace reco {
16 
17  template <typename Ref>
19  public:
20  typedef Ref reference;
24  CandidateWithRef(const LorentzVector &p4, Charge q = 0, const Point &vtx = Point(0, 0, 0))
25  : LeafCandidate(q, p4, vtx) {}
27  ~CandidateWithRef() override;
29  CandidateWithRef *clone() const override;
31  void setRef(const Ref &r) { ref_ = r; }
33  reference ref() const { return ref_; }
34 
36 
37  private:
39  bool overlap(const Candidate &) const override;
42  };
43 
44  // the following has to be added for any single Ref type
45  // GET_DEFAULT_CANDIDATE_COMPONENT( CandidateWithRef<Ref>, CandidateWithRef<Ref>::reference, ref )
46 
47  template <typename Ref>
49 
50  template <typename Ref>
52  return new CandidateWithRef<Ref>(*this);
53  }
54 
55  template <typename Ref>
57  const CandidateWithRef *o = dynamic_cast<const CandidateWithRef *>(&c);
58  if (o == nullptr)
59  return false;
60  if (ref().isNull())
61  return false;
62  if (o->ref().isNull())
63  return false;
64  return (ref() != o->ref());
65  }
66 
67 } // namespace reco
68 
69 #endif
const edm::EventSetup & c
reference ref_
reference to a CaloRecHit
#define CMS_CLASS_VERSION(_version_)
const LorentzVector & p4() const final
four-momentum Lorentz vector
CandidateWithRef()
default constructor
bool overlap(const Candidate &) const override
check overlap with another candidate
math::XYZTLorentzVector LorentzVector
void setRef(const Ref &r)
set reference
CandidateWithRef * clone() const override
returns a clone of the candidate
reference ref() const
reference
Structure Point Contains parameters of Gaussian fits to DMRs.
Definition: DMRtrends.cc:57
int Charge
electric charge type
Definition: LeafCandidate.h:21
def template
Definition: svgfig.py:521
math::XYZPoint Point
point in the space
Definition: LeafCandidate.h:27