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 
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 
36  virtual void initEvent(const edm::Event & , const edm::EventSetup & ) {}
37 
40  virtual reco::IsoDeposit deposit(const edm::Event & ev, const edm::EventSetup & evSetup,
41  const reco::Track & track) const = 0;
42 
44  virtual reco::IsoDeposit deposit(const edm::Event & ev, const edm::EventSetup & evSetup,
45  const reco::TrackBaseRef & track) const{
46  return deposit(ev, evSetup, *track);
47  }
48 
51  virtual reco::IsoDeposit deposit(const edm::Event & ev, const edm::EventSetup & evSetup,
52  const reco::Candidate & track) const {
53  //track-based implementation as default <-- do I want this pure virtual?
54  return deposit(ev, evSetup, reco::Track(10, 10,
55  track.vertex(), track.momentum(), track.charge(),
57  }
58 
60  virtual reco::IsoDeposit deposit(const edm::Event & ev, const edm::EventSetup & evSetup,
61  const reco::CandidateBaseRef & track) const{
62  return deposit(ev, evSetup, *track);
63  }
64 
68  virtual std::vector<reco::IsoDeposit>
69  deposits(const edm::Event & ev, const edm::EventSetup & evSetup, const reco::Track & track) const{
70  return std::vector<reco::IsoDeposit>(1, deposit(ev, evSetup, track));
71  }
72 
75  virtual std::vector<reco::IsoDeposit>
76  deposits(const edm::Event & ev, const edm::EventSetup & evSetup, const reco::TrackBaseRef & track) const{
77  return deposits(ev, evSetup, *track);
78  }
79 
82  virtual std::vector<reco::IsoDeposit>
83  deposits(const edm::Event & ev, const edm::EventSetup & evSetup, const reco::Candidate & track) const{
84  return deposits(ev, evSetup,
85  reco::Track(10, 10,
86  track.vertex(), track.momentum(), track.charge(),
88  }
89 
92  virtual std::vector<reco::IsoDeposit>
93  deposits(const edm::Event & ev, const edm::EventSetup & evSetup, const reco::CandidateBaseRef & track) const{
94  return deposits(ev, evSetup, *track);
95  }
96 
97  };
98  }
99 }
100 #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:15
bool ev
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
virtual reco::IsoDeposit deposit(const edm::Event &ev, const edm::EventSetup &evSetup, const reco::Track &track) const =0
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
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 Vector momentum() const =0
spatial momentum vector
virtual int charge() const =0
electric charge
fixed size matrix
virtual const Point & vertex() const =0
vertex position
math::Error< dimension >::type CovarianceMatrix
5 parameter covariance matrix
Definition: TrackBase.h:77