62 if (bApplyVeto && iParticleType ==
kElectron) {
161 float fTempPhoton = 0.0;
164 float fTempNeutral = 0.0;
167 float fTempCharged = 0.0;
170 float fTempChargedAll = 0.0;
174 fConeSize = fRingSize * (float)iNumberOfRings;
206 fPt = pfCandidate->
pt();
207 fVx = pfCandidate->
vx();
208 fVy = pfCandidate->
vy();
209 fVz = pfCandidate->
vz();
213 for (
unsigned iPF = 0; iPF < pfParticlesColl->size(); iPF++) {
216 if (&pfParticle == (pfCandidate))
219 if (pfParticle.
pdgId() == 22) {
279 for (
unsigned iPF = 0; iPF < pfParticlesColl->size(); iPF++) {
286 if (pfParticle.
pdgId() == 22) {
292 fEta = direction.Eta();
293 fPhi = direction.Phi();
294 fVx = pfParticle.
vx();
295 fVy = pfParticle.
vy();
296 fVz = pfParticle.
vz();
309 fEta = direction.Eta();
310 fPhi = direction.Phi();
311 fVx = pfParticle.
vx();
312 fVy = pfParticle.
vy();
313 fVz = pfParticle.
vz();
327 fEta = direction.Eta();
328 fPhi = direction.Phi();
378 fPt = electron->
pt();
379 fVx = electron->
vx();
380 fVy = electron->
vy();
381 fVz = electron->
vz();
388 for (
unsigned iPF = 0; iPF < pfParticlesColl->size(); iPF++) {
391 if (pfParticle.
pdgId() == 22) {
547 float fVtxMainZ = (*vtxMain).z();
560 double dxy = pfIsoCand->
trackRef()->dxy((*vtxMain).position());
580 double dxy = (-(vtx->x() -
fVx) * pfIsoCand->
py() + (vtx->y() -
fVy) * pfIsoCand->
px()) / pfIsoCand->
pt();
647 unsigned nFoundVertex = 0;
649 float bestweight = 0;
653 for (reco::VertexCollection::const_iterator
iv = vertices.begin();
iv != vertices.end(); ++
iv, ++
index) {
662 if (baseRef == trackBaseRef) {
665 if (w > bestweight) {
674 if (nFoundVertex > 0) {
675 if (nFoundVertex != 1)
676 edm::LogWarning(
"TrackOnTwoVertex") <<
"a track is shared by at least two verteces. Used to be an assert";
683 double dzmin = 10000.;
684 double ztrack = pfcand.
vertex().z();
685 bool foundVertex =
false;
687 for (reco::VertexCollection::const_iterator
iv = vertices.begin();
iv != vertices.end(); ++
iv, ++
index) {
707 for (reco::PFCandidateCollection::const_iterator iPF = Candidates->begin(); iPF != Candidates->end(); iPF++) {
710 if ((((pfParticle.
pdgId() == 22) || TMath::Abs(pfParticle.
pdgId()) == 11))) {
746 for (reco::PFCandidateCollection::const_iterator iPF = Candidates->begin(); iPF != Candidates->end(); iPF++) {
749 if ((((pfParticle.
pdgId() == 22) || TMath::Abs(pfParticle.
pdgId()) == 11))) {
760 for (reco::PFCandidateCollection::const_iterator iPF = Candidates->begin(); iPF != Candidates->end(); iPF++) {
762 if ((((pfParticle.
pdgId() == 22) || TMath::Abs(pfParticle.
pdgId()) == 11))) {
763 if (pfParticle.
pt() >
fPt) {
767 fPt = pfParticle.
pt();
void setRectangleVetoEndcap(Bool_t bValue=kTRUE)
void setDeltaRVetoBarrel(Bool_t bValue=kTRUE)
float fRectangleDeltaPhiVetoEndcapNeutrals
std::vector< float > fIsolationInRings
std::vector< float > fIsolationInRingsChargedAll
bool isNonnull() const
Checks for non-null.
void setNumberOfCrystalEndcapPhotons(float fValue=-1)
void setDeltaRVetoEndcap(Bool_t bValue=kTRUE)
double pt() const final
transverse momentum
float fDeltaRVetoEndcapPhotons
void setRectangleDeltaPhiVetoBarrelPhotons(float fValue=-1.0)
double vz() const override
z coordinate of vertex position
void setApplyMissHitPhVeto(Bool_t bValue=kFALSE)
float mva_nothing_gamma() const
mva for gamma detection
float fRectangleDeltaPhiVetoBarrelNeutrals
float fRectangleDeltaEtaVetoEndcapCharged
std::vector< float > fGetIsolationInRings(const reco::PFCandidate *pfCandidate, const reco::PFCandidateCollection *pfParticlesColl, reco::VertexRef vtx, edm::Handle< reco::VertexCollection > vertices)
float fDeltaRVetoBarrelPhotons
float isChargedParticleVetoed(const reco::PFCandidate *pfIsoCand, edm::Handle< reco::VertexCollection > vertices)
void setApplyDzDxyVeto(Bool_t bValue=kTRUE)
reco::VertexRef chargedHadronVertex(edm::Handle< reco::VertexCollection > verticies, const reco::PFCandidate &pfcand)
float fRectangleDeltaEtaVetoEndcapPhotons
double vy() const override
y coordinate of vertex position
float fRectangleDeltaEtaVetoBarrelCharged
double vy() const override
y coordinate of vertex position
float fRectangleDeltaPhiVetoBarrelCharged
void setNumbersOfRings(int iValue=1)
void setDeltaRVetoBarrelNeutrals(float fValue=-1.0)
void setDeltaRVetoEndcapNeutrals(float fValue=-1.0)
std::vector< Vertex > VertexCollection
collection of Vertex objects
float fDeltaRVetoEndcapNeutrals
void setDeltaRVetoBarrelCharged(float fValue=-1.0)
float isPhotonParticleVetoed(const reco::PFCandidate *pfIsoCand)
void initialize(Bool_t bApplyVeto, int iParticleType)
void setDeltaRVetoEndcapPhotons(float fValue=-1.0)
void setApplyPFPUVeto(Bool_t bValue=kFALSE)
void setRectangleVetoBarrel(Bool_t bValue=kTRUE)
void setRectangleDeltaEtaVetoBarrelNeutrals(float fValue=-1.0)
edm::Ref< SuperClusterCollection > SuperClusterRef
reference to an object in a collection of SuperCluster objects
float fRectangleDeltaPhiVetoEndcapCharged
const math::XYZPointF & positionAtECALEntrance() const
float fRectangleDeltaEtaVetoBarrelNeutrals
reco::TrackRef trackRef() const
int pdgId() const final
PDG identifier.
float fDeltaRVetoBarrelNeutrals
GsfTrackRef gsfTrack() const override
reference to a GsfTrack
double px() const final
x coordinate of momentum vector
void setUseCrystalSize(Bool_t bValue=kFALSE)
reco::SuperClusterRef superCluster() const override
Ref to SuperCluster.
void setParticleType(int iValue)
std::vector< float > fIsolationInRingsPhoton
float fDeltaRVetoEndcapCharged
void setRectangleDeltaPhiVetoBarrelCharged(float fValue=-1.0)
int matchPFObject(const reco::Photon *photon, const reco::PFCandidateCollection *pfParticlesColl)
Abs< T >::type abs(const T &t)
trackRef_iterator tracks_end() const
last iterator over tracks
void setRectangleDeltaPhiVetoEndcapNeutrals(float fValue=-1.0)
void setRectangleDeltaPhiVetoBarrelNeutrals(float fValue=-1.0)
float fRectangleDeltaPhiVetoBarrelPhotons
void setRectangleDeltaEtaVetoBarrelCharged(float fValue=-1.0)
std::vector< float > fIsolationInRingsCharged
float isNeutralParticleVetoed(const reco::PFCandidate *pfIsoCand)
void initializeRings(int iNumberOfRings, float fRingSize)
float trackWeight(const TREF &r) const
returns the weight with which a Track has contributed to the vertex-fit.
trackRef_iterator tracks_begin() const
first iterator over tracks
double py() const final
y coordinate of momentum vector
double vx() const override
x coordinate of vertex position
void setDeltaRVetoBarrelPhotons(float fValue=-1.0)
edm::Ref< VertexCollection > VertexRef
persistent reference to a Vertex
reco::SuperClusterRef refSC
bool isNull() const
Checks for null.
void initializeElectronIsolation(Bool_t bApplyVeto)
void setRectangleDeltaPhiVetoEndcapCharged(float fValue=-1.0)
Bool_t checkClosestZVertex
std::vector< reco::PFCandidate > PFCandidateCollection
collection of PFCandidates
void setRectangleDeltaEtaVetoEndcapCharged(float fValue=-1.0)
T const * product() const
void setRectangleDeltaEtaVetoEndcapPhotons(float fValue=-1.0)
XYZVectorD XYZVector
spatial vector with cartesian internal representation
void setDeltaRVetoEndcapCharged(float fValue=-1.0)
void setApplyVeto(Bool_t bValue=kTRUE)
void initializeElectronIsolationInRings(Bool_t bApplyVeto, int iNumberOfRings, float fRingSize)
const Point & vertex() const override
vertex position (overwritten by PF...)
void setRingSize(float fValue=0.4)
Particle reconstructed by the particle flow algorithm.
Bool_t bApplyMissHitPhVeto
float fRectangleDeltaEtaVetoEndcapNeutrals
void initializePhotonIsolation(Bool_t bApplyVeto)
void setRectangleDeltaPhiVetoEndcapPhotons(float fValue=-1.0)
float fGetIsolation(const reco::PFCandidate *pfCandidate, const reco::PFCandidateCollection *pfParticlesColl, reco::VertexRef vtx, edm::Handle< reco::VertexCollection > vertices)
std::vector< float > fIsolationInRingsNeutral
void setRectangleDeltaEtaVetoBarrelPhotons(float fValue=-1.0)
double vz() const override
z coordinate of vertex position
Log< level::Warning, false > LogWarning
float fRectangleDeltaEtaVetoBarrelPhotons
void setRectangleDeltaEtaVetoEndcapNeutrals(float fValue=-1.0)
void setConeSize(float fValue=0.4)
double phi() const final
momentum azimuthal angle
float fDeltaRVetoBarrelCharged
double vx() const override
x coordinate of vertex position
Bool_t bRectangleVetoEndcap
std::vector< TrackBaseRef >::const_iterator trackRef_iterator
The iteratator for the vector<TrackRef>
SuperClusterRef superCluster() const override
reference to a SuperCluster
Bool_t bRectangleVetoBarrel
float fRectangleDeltaPhiVetoEndcapPhotons
reco::SuperClusterRef superClusterRef() const
return a reference to the corresponding SuperCluster if any
void initializePhotonIsolationInRings(Bool_t bApplyVeto, int iNumberOfRings, float fRingSize)
float fNumberOfCrystalEndcapPhotons
double eta() const final
momentum pseudorapidity