CMS 3D CMS Logo

GsfEleDxyCut.cc
Go to the documentation of this file.
6 
8 public:
10 
11  result_type operator()(const reco::GsfElectronPtr&) const final;
12 
14  void getEventContent(const edm::EventBase&) final;
15 
16  double value(const reco::CandidatePtr& cand) const final;
17 
19 
20 private:
23 };
24 
26 
29  _dxyCutValueEB(c.getParameter<double>("dxyCutValueEB")),
30  _dxyCutValueEE(c.getParameter<double>("dxyCutValueEE")),
31  _barrelCutOff(c.getParameter<double>("barrelCutOff")) {
32  edm::InputTag vertextag = c.getParameter<edm::InputTag>("vertexSrc");
33  edm::InputTag vertextagMiniAOD = c.getParameter<edm::InputTag>("vertexSrcMiniAOD");
34  contentTags_.emplace("vertices", vertextag);
35  contentTags_.emplace("verticesMiniAOD", vertextagMiniAOD);
36 }
37 
39  auto vtcs = cc.mayConsume<reco::VertexCollection>(contentTags_["vertices"]);
40  auto vtcsMiniAOD = cc.mayConsume<reco::VertexCollection>(contentTags_["verticesMiniAOD"]);
41  contentTokens_.emplace("vertices", vtcs);
42  contentTokens_.emplace("verticesMiniAOD", vtcsMiniAOD);
43 }
44 
46  // First try AOD, then go to miniAOD. Use the same Handle since collection class is the same.
47  ev.getByLabel(contentTags_["vertices"], _vtxs);
48  if (!_vtxs.isValid())
49  ev.getByLabel(contentTags_["verticesMiniAOD"], _vtxs);
50 }
51 
53  const float dxyCutValue =
54  (std::abs(cand->superCluster()->position().eta()) < _barrelCutOff ? _dxyCutValueEB : _dxyCutValueEE);
55 
56  const reco::VertexCollection& vtxs = *_vtxs;
57  const double dxy = (!vtxs.empty() ? cand->gsfTrack()->dxy(vtxs[0].position()) : cand->gsfTrack()->dxy());
58  return std::abs(dxy) < dxyCutValue;
59 }
60 
63  const reco::VertexCollection& vtxs = *_vtxs;
64  const double dxy = (!vtxs.empty() ? ele->gsfTrack()->dxy(vtxs[0].position()) : ele->gsfTrack()->dxy());
65  return std::abs(dxy);
66 }
GsfEleDxyCut::_vtxs
edm::Handle< reco::VertexCollection > _vtxs
Definition: GsfEleDxyCut.cc:22
GsfEleDxyCut::candidateType
CandidateType candidateType() const final
Definition: GsfEleDxyCut.cc:18
reco::GsfElectron::gsfTrack
GsfTrackRef gsfTrack() const override
reference to a GsfTrack
Definition: GsfElectron.h:164
GsfEleDxyCut::setConsumes
void setConsumes(edm::ConsumesCollector &) final
Definition: GsfEleDxyCut.cc:38
reco::VertexCollection
std::vector< Vertex > VertexCollection
collection of Vertex objects
Definition: VertexFwd.h:9
GsfEleDxyCut::GsfEleDxyCut
GsfEleDxyCut(const edm::ParameterSet &c)
Definition: GsfEleDxyCut.cc:27
GsfEleDxyCut
Definition: GsfEleDxyCut.cc:7
watchdog.const
const
Definition: watchdog.py:83
edm::Handle< reco::VertexCollection >
CutApplicatorWithEventContentBase::contentTags_
std::unordered_map< std::string, edm::InputTag > contentTags_
Definition: CutApplicatorWithEventContentBase.h:35
candidate_functions::CandidateCut::result_type
bool result_type
Definition: CandidateCut.h:11
GsfEleDxyCut::_dxyCutValueEB
const double _dxyCutValueEB
Definition: GsfEleDxyCut.cc:21
GsfEleDxyCut::operator()
result_type operator()(const reco::GsfElectronPtr &) const final
Definition: GsfEleDxyCut.cc:52
GsfEleDxyCut::_dxyCutValueEE
const double _dxyCutValueEE
Definition: GsfEleDxyCut.cc:21
CutApplicatorWithEventContentBase.h
GsfEleDxyCut::value
double value(const reco::CandidatePtr &cand) const final
Definition: GsfEleDxyCut.cc:61
GsfElectron.h
DEFINE_EDM_PLUGIN
#define DEFINE_EDM_PLUGIN(factory, type, name)
Definition: PluginFactory.h:124
Vertex.h
edm::ParameterSet
Definition: ParameterSet.h:47
CutApplicatorBase::CandidateType
CandidateType
Definition: CutApplicatorBase.h:47
edmplugin::PluginFactory
Definition: PluginFactory.h:34
position
static int position[264][3]
Definition: ReadPGInfo.cc:289
cand
Definition: decayParser.h:32
GsfTrack.h
HltBtagPostValidation_cff.c
c
Definition: HltBtagPostValidation_cff.py:31
cc
edm::Ptr< reco::GsfElectron >
GsfEleDxyCut::getEventContent
void getEventContent(const edm::EventBase &) final
Definition: GsfEleDxyCut.cc:45
VertexFwd.h
PVValHelper::dxy
Definition: PVValidationHelpers.h:47
GsfEleDxyCut::_barrelCutOff
const double _barrelCutOff
Definition: GsfEleDxyCut.cc:21
ev
bool ev
Definition: Hydjet2Hadronizer.cc:95
CutApplicatorWithEventContentBase::contentTokens_
std::unordered_map< std::string, edm::EDGetToken > contentTokens_
Definition: CutApplicatorWithEventContentBase.h:40
edm::EventBase
Definition: EventBase.h:46
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
edm::HandleBase::isValid
bool isValid() const
Definition: HandleBase.h:70
CutApplicatorBase::ELECTRON
Definition: CutApplicatorBase.h:47
edm::InputTag
Definition: InputTag.h:15
edm::ConsumesCollector
Definition: ConsumesCollector.h:45
CutApplicatorWithEventContentBase
Definition: CutApplicatorWithEventContentBase.h:19