CMS 3D CMS Logo

PFCandWithSuperClusterExtractor.h
Go to the documentation of this file.
1 #ifndef CommonToolsParticleFlow_PDCandWithSuperCluster_H
2 #define CommonToolsParticleFlow_PDCandWithSuperCluster_H
3 
4 #include <string>
5 #include <vector>
6 
7 
9 
20 
21 
23 
24 public:
25 
28 
30 
31  void fillVetos (const edm::Event & ev,
32  const edm::EventSetup & evSetup, const reco::TrackCollection & cand) override { }
33 
34 
36  const edm::EventSetup & evSetup, const reco::Track & muon) const override {
37  return depositFromObject(ev, evSetup, muon);
38  }
39 
41  const edm::EventSetup & evSetup, const reco::Candidate & cand) const override {
42 
43  const reco::Photon * myPhoton= dynamic_cast<const reco::Photon*>(&cand);
44  if(myPhoton)
45  return depositFromObject(ev, evSetup,*myPhoton);
46 
47  const reco::GsfElectron * myElectron = dynamic_cast<const reco::GsfElectron*>(&cand);
48  if(myElectron)
49  return depositFromObject(ev,evSetup,*myElectron);
50 
51  const reco::PFCandidate * myPFCand = dynamic_cast<const reco::PFCandidate*>(&cand);
52  return depositFromObject(ev, evSetup,*myPFCand);
53  }
54 
55 private:
57 
59  const edm::EventSetup & evSetup, const reco::Photon &cand) const ;
60 
62  const edm::EventSetup & evSetup, const reco::GsfElectron &cand) const ;
63 
65  const edm::EventSetup & evSetup, const reco::Track &cand) const ;
66 
68  const edm::EventSetup & evSetup, const reco::PFCandidate &cand) const ;
69 
70  // Parameter set
72  std::string theDepositLabel; // name for deposit
73  bool theVetoSuperClusterMatch; //SuperClusterRef Check
74  bool theMissHitVetoSuperClusterMatch; // veto PF photons sharing SC with supercluster if misshits >0
75  double theDiff_r; // transverse distance to vertex
76  double theDiff_z; // z distance to vertex
77  double theDR_Max; // Maximum cone angle for deposits
78  double theDR_Veto; // Veto cone angle
79 };
80 
81 
82 #endif
edm::EDGetTokenT< reco::PFCandidateCollection > thePFCandToken
std::vector< Track > TrackCollection
collection of Tracks
Definition: TrackFwd.h:14
void fillVetos(const edm::Event &ev, const edm::EventSetup &evSetup, const reco::TrackCollection &cand) override
bool ev
reco::IsoDeposit depositFromObject(const edm::Event &ev, const edm::EventSetup &evSetup, const reco::Photon &cand) const
reco::IsoDeposit deposit(const edm::Event &ev, const edm::EventSetup &evSetup, const reco::Candidate &cand) const override
reco::IsoDeposit::Veto veto(const reco::IsoDeposit::Direction &dir) const
Particle reconstructed by the particle flow algorithm.
Definition: PFCandidate.h:40
dbl *** dir
Definition: mlp_gen.cc:35
reco::IsoDeposit deposit(const edm::Event &ev, const edm::EventSetup &evSetup, const reco::Track &muon) const override