CMS 3D CMS Logo

IsoDepositExtractor.h
Go to the documentation of this file.
1 #ifndef IsolationAlgos_IsoDepositExtractor_H
2 #define IsolationAlgos_IsoDepositExtractor_H
3 
4 //
5 //
6 //
7 
9 
12 
15 
18 
20 
21 namespace reco {
22  namespace isodeposit {
23 
25  public:
27  virtual ~IsoDepositExtractor(){};
28 
31  virtual void fillVetos(const edm::Event& ev,
32  const edm::EventSetup& evSetup,
33  const reco::TrackCollection& tracks) = 0;
34 
36  virtual void initEvent(const edm::Event&, const edm::EventSetup&) {}
37 
40  virtual reco::IsoDeposit deposit(const edm::Event& ev,
41  const edm::EventSetup& evSetup,
42  const reco::Track& track) const = 0;
43 
46  const edm::EventSetup& evSetup,
47  const reco::TrackBaseRef& track) const {
48  return deposit(ev, evSetup, *track);
49  }
50 
54  const edm::EventSetup& evSetup,
55  const reco::Candidate& track) const {
56  //track-based implementation as default <-- do I want this pure virtual?
57  return deposit(
58  ev,
59  evSetup,
60  reco::Track(10, 10, track.vertex(), track.momentum(), track.charge(), reco::Track::CovarianceMatrix()));
61  }
62 
65  const edm::EventSetup& evSetup,
66  const reco::CandidateBaseRef& track) const {
67  return deposit(ev, evSetup, *track);
68  }
69 
73  virtual std::vector<reco::IsoDeposit> deposits(const edm::Event& ev,
74  const edm::EventSetup& evSetup,
75  const reco::Track& track) const {
76  return std::vector<reco::IsoDeposit>(1, deposit(ev, evSetup, track));
77  }
78 
81  virtual std::vector<reco::IsoDeposit> deposits(const edm::Event& ev,
82  const edm::EventSetup& evSetup,
83  const reco::TrackBaseRef& track) const {
84  return deposits(ev, evSetup, *track);
85  }
86 
89  virtual std::vector<reco::IsoDeposit> deposits(const edm::Event& ev,
90  const edm::EventSetup& evSetup,
91  const reco::Candidate& track) const {
92  return deposits(
93  ev,
94  evSetup,
95  reco::Track(10, 10, track.vertex(), track.momentum(), track.charge(), reco::Track::CovarianceMatrix()));
96  }
97 
100  virtual std::vector<reco::IsoDeposit> deposits(const edm::Event& ev,
101  const edm::EventSetup& evSetup,
102  const reco::CandidateBaseRef& track) const {
103  return deposits(ev, evSetup, *track);
104  }
105  };
106  } // namespace isodeposit
107 } // namespace reco
108 #endif
virtual std::vector< reco::IsoDeposit > deposits(const edm::Event &ev, const edm::EventSetup &evSetup, const reco::CandidateBaseRef &track) const
std::vector< Track > TrackCollection
collection of Tracks
Definition: TrackFwd.h:14
virtual void fillVetos(const edm::Event &ev, const edm::EventSetup &evSetup, const reco::TrackCollection &tracks)=0
virtual void initEvent(const edm::Event &, const edm::EventSetup &)
perform some constly initialization
auto const & tracks
cannot be loose
virtual reco::IsoDeposit deposit(const edm::Event &ev, const edm::EventSetup &evSetup, const reco::Candidate &track) const
virtual std::vector< reco::IsoDeposit > deposits(const edm::Event &ev, const edm::EventSetup &evSetup, const reco::Candidate &track) const
fixed size matrix
virtual std::vector< reco::IsoDeposit > deposits(const edm::Event &ev, const edm::EventSetup &evSetup, const reco::TrackBaseRef &track) const
virtual reco::IsoDeposit deposit(const edm::Event &ev, const edm::EventSetup &evSetup, const reco::TrackBaseRef &track) const
make single IsoDeposit based on trackRef as input
virtual reco::IsoDeposit deposit(const edm::Event &ev, const edm::EventSetup &evSetup, const reco::Track &track) const =0
virtual reco::IsoDeposit deposit(const edm::Event &ev, const edm::EventSetup &evSetup, const reco::CandidateBaseRef &track) const
make single IsoDeposit based on a CandidateBaseRef as input
virtual std::vector< reco::IsoDeposit > deposits(const edm::Event &ev, const edm::EventSetup &evSetup, const reco::Track &track) const
math::Error< dimension >::type CovarianceMatrix
5 parameter covariance matrix
Definition: TrackBase.h:74