CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
IsoDepositExtractor.h
Go to the documentation of this file.
1 #ifndef IsolationAlgos_IsoDepositExtractor_H
2 #define IsolationAlgos_IsoDepositExtractor_H
3 
4 //
5 //
6 //
7 
8 
10 
13 
16 
19 
21 
22 namespace reco {
23  namespace isodeposit {
24 
26  public:
28  virtual ~IsoDepositExtractor(){};
29 
30 
33  virtual void fillVetos(const edm::Event & ev, const edm::EventSetup & evSetup, const reco::TrackCollection & tracks) = 0;
34 
37  virtual reco::IsoDeposit deposit(const edm::Event & ev, const edm::EventSetup & evSetup,
38  const reco::Track & track) const = 0;
39 
41  virtual reco::IsoDeposit deposit(const edm::Event & ev, const edm::EventSetup & evSetup,
42  const reco::TrackBaseRef & track) const{
43  return deposit(ev, evSetup, *track);
44  }
45 
48  virtual reco::IsoDeposit deposit(const edm::Event & ev, const edm::EventSetup & evSetup,
49  const reco::Candidate & track) const {
50  //track-based implementation as default <-- do I want this pure virtual?
51  return deposit(ev, evSetup, reco::Track(10, 10,
52  track.vertex(), track.momentum(), track.charge(),
54  }
55 
57  virtual reco::IsoDeposit deposit(const edm::Event & ev, const edm::EventSetup & evSetup,
58  const reco::CandidateBaseRef & track) const{
59  return deposit(ev, evSetup, *track);
60  }
61 
65  virtual std::vector<reco::IsoDeposit>
66  deposits(const edm::Event & ev, const edm::EventSetup & evSetup, const reco::Track & track) const{
67  return std::vector<reco::IsoDeposit>(1, deposit(ev, evSetup, track));
68  }
69 
72  virtual std::vector<reco::IsoDeposit>
73  deposits(const edm::Event & ev, const edm::EventSetup & evSetup, const reco::TrackBaseRef & track) const{
74  return deposits(ev, evSetup, *track);
75  }
76 
79  virtual std::vector<reco::IsoDeposit>
80  deposits(const edm::Event & ev, const edm::EventSetup & evSetup, const reco::Candidate & track) const{
81  return deposits(ev, evSetup,
82  reco::Track(10, 10,
83  track.vertex(), track.momentum(), track.charge(),
85  }
86 
89  virtual std::vector<reco::IsoDeposit>
90  deposits(const edm::Event & ev, const edm::EventSetup & evSetup, const reco::CandidateBaseRef & track) const{
91  return deposits(ev, evSetup, *track);
92  }
93 
94  };
95  }
96 }
97 #endif
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 reco::IsoDeposit deposit(const edm::Event &ev, const edm::EventSetup &evSetup, const reco::Candidate &track) const
std::vector< Track > TrackCollection
collection of Tracks
Definition: TrackFwd.h:13
virtual void fillVetos(const edm::Event &ev, const edm::EventSetup &evSetup, const reco::TrackCollection &tracks)=0
virtual Vector momentum() const =0
spatial momentum vector
virtual const Point & vertex() const =0
vertex position
virtual int charge() const =0
electric charge
virtual std::vector< reco::IsoDeposit > deposits(const edm::Event &ev, const edm::EventSetup &evSetup, const reco::CandidateBaseRef &track) const
virtual std::vector< reco::IsoDeposit > deposits(const edm::Event &ev, const edm::EventSetup &evSetup, const reco::Candidate &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
tuple tracks
Definition: testEve_cfg.py:39
virtual std::vector< reco::IsoDeposit > deposits(const edm::Event &ev, const edm::EventSetup &evSetup, const reco::Track &track) const
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::Track &track) const =0
math::Error< dimension >::type CovarianceMatrix
5 parameter covariance matrix
Definition: TrackBase.h:76