25 fisInitialized(kFALSE)
73 if(bApplyVeto && iParticleType==
kElectron){
180 float fTempPhoton = 0.0;
183 float fTempNeutral = 0.0;
186 float fTempCharged = 0.0;
189 float fTempChargedAll = 0.0;
194 fConeSize = fRingSize * (float)iNumberOfRings;
228 fPt = pfCandidate->
pt();
229 fVx = pfCandidate->
vx();
230 fVy = pfCandidate->
vy();
231 fVz = pfCandidate->
vz();
235 for(
unsigned iPF=0; iPF<pfParticlesColl->size(); iPF++) {
239 if(&pfParticle==(pfCandidate))
242 if(pfParticle.
pdgId()==22){
249 }
else if(
abs(pfParticle.
pdgId())==130){
258 }
else if(
abs(pfParticle.
pdgId()) == 211){
304 for(
unsigned iPF=0; iPF<pfParticlesColl->size(); iPF++) {
313 if(pfParticle.
pdgId()==22){
320 fEta = direction.Eta();
321 fPhi = direction.Phi();
322 fVx = pfParticle.
vx();
323 fVy = pfParticle.
vy();
324 fVz = pfParticle.
vz();
331 }
else if(
abs(pfParticle.
pdgId())==130){
338 fEta = direction.Eta();
339 fPhi = direction.Phi();
340 fVx = pfParticle.
vx();
341 fVy = pfParticle.
vy();
342 fVz = pfParticle.
vz();
350 }
else if(
abs(pfParticle.
pdgId()) == 211){
357 fEta = direction.Eta();
358 fPhi = direction.Phi();
409 fPt = electron->
pt();
410 fVx = electron->
vx();
411 fVy = electron->
vy();
412 fVz = electron->
vz();
419 for(
unsigned iPF=0; iPF<pfParticlesColl->size(); iPF++) {
424 if(pfParticle.
pdgId()==22){
432 }
else if(
abs(pfParticle.
pdgId())==130){
440 }
else if(
abs(pfParticle.
pdgId()) == 211){
583 float fVtxMainZ = (*vtxMain).z();
594 float dz = fabs( pfIsoCand->
trackRef()->dz( (*vtxMain).position() ) );
598 double dxy = pfIsoCand->
trackRef()->dxy( (*vtxMain).position() );
616 float dz = fabs(vtx->z() - fVtxMainZ);
620 double dxy = ( -(vtx->x() -
fVx)*pfIsoCand->
py() + (vtx->y() -
fVy)*pfIsoCand->
px()) / pfIsoCand->
pt();
691 unsigned nFoundVertex = 0;
697 for( reco::VertexCollection::const_iterator iv=vertices.begin(); iv!=vertices.end(); ++iv, ++
index) {
708 if(baseRef == trackBaseRef ) {
725 edm::LogWarning(
"TrackOnTwoVertex")<<
"a track is shared by at least two verteces. Used to be an assert";
733 double dzmin = 10000.;
734 double ztrack = pfcand.
vertex().z();
735 bool foundVertex =
false;
737 for( reco::VertexCollection::const_iterator iv=vertices.begin(); iv!=vertices.end(); ++iv, ++
index) {
739 double dz = fabs(ztrack - iv->z());
762 for(reco::PFCandidateCollection::const_iterator iPF=Candidates->begin();iPF !=Candidates->end();iPF++){
808 for(reco::PFCandidateCollection::const_iterator iPF=Candidates->begin();iPF !=Candidates->end();iPF++){
824 for(reco::PFCandidateCollection::const_iterator iPF=Candidates->begin();iPF !=Candidates->end();iPF++){
827 if(pfParticle.
pt()>
fPt){
831 fPt = pfParticle.
pt();
void setRectangleVetoEndcap(Bool_t bValue=kTRUE)
void setDeltaRVetoBarrel(Bool_t bValue=kTRUE)
float fRectangleDeltaPhiVetoEndcapNeutrals
std::vector< float > fIsolationInRingsNeutral
virtual double vz() const
z coordinate of vertex position
std::vector< float > fIsolationInRingsPhoton
bool isNonnull() const
Checks for non-null.
void setNumberOfCrystalEndcapPhotons(float fValue=-1)
void setDeltaRVetoEndcap(Bool_t bValue=kTRUE)
float fDeltaRVetoEndcapPhotons
reco::SuperClusterRef superCluster() const
Ref to SuperCluster.
void setRectangleDeltaPhiVetoBarrelPhotons(float fValue=-1.0)
trackRef_iterator tracks_end() const
last iterator over tracks
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
float fRectangleDeltaEtaVetoBarrelCharged
float fRectangleDeltaPhiVetoBarrelCharged
void setNumbersOfRings(int iValue=1)
virtual double phi() const final
momentum azimuthal angle
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)
std::vector< float > fIsolationInRings
void setDeltaRVetoEndcapPhotons(float fValue=-1.0)
void setApplyPFPUVeto(Bool_t bValue=kFALSE)
void setRectangleVetoBarrel(Bool_t bValue=kTRUE)
virtual double vy() const
y coordinate of vertex position
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
virtual double vx() const
x coordinate of vertex position
std::vector< float > fIsolationInRingsChargedAll
float fRectangleDeltaEtaVetoBarrelNeutrals
reco::TrackRef trackRef() const
float fDeltaRVetoBarrelNeutrals
void setUseCrystalSize(Bool_t bValue=kFALSE)
void setParticleType(int iValue)
virtual SuperClusterRef superCluster() const
reference to a SuperCluster
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)
virtual const Point & vertex() const
vertex position (overwritten by PF...)
void setRectangleDeltaPhiVetoEndcapNeutrals(float fValue=-1.0)
void setRectangleDeltaPhiVetoBarrelNeutrals(float fValue=-1.0)
float fRectangleDeltaPhiVetoBarrelPhotons
virtual double py() const final
y coordinate of momentum vector
void setRectangleDeltaEtaVetoBarrelCharged(float fValue=-1.0)
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.
std::vector< float > fIsolationInRingsCharged
virtual double vz() const
z 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)
double deltaR(double eta1, double eta2, double phi1, double phi2)
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)
virtual double vy() const
y coordinate of vertex position
virtual int pdgId() const final
PDG identifier.
void setApplyVeto(Bool_t bValue=kTRUE)
void initializeElectronIsolationInRings(Bool_t bApplyVeto, int iNumberOfRings, float fRingSize)
void setRingSize(float fValue=0.4)
Particle reconstructed by the particle flow algorithm.
Bool_t bApplyMissHitPhVeto
float fRectangleDeltaEtaVetoEndcapNeutrals
std::vector< TrackBaseRef >::const_iterator trackRef_iterator
The iteratator for the vector<TrackRef>
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)
virtual double vx() const
x coordinate of vertex position
virtual double px() const final
x coordinate of momentum vector
void setRectangleDeltaEtaVetoBarrelPhotons(float fValue=-1.0)
virtual double eta() const final
momentum pseudorapidity
trackRef_iterator tracks_begin() const
first iterator over tracks
float fRectangleDeltaEtaVetoBarrelPhotons
void setRectangleDeltaEtaVetoEndcapNeutrals(float fValue=-1.0)
void setConeSize(float fValue=0.4)
float fDeltaRVetoBarrelCharged
Bool_t bRectangleVetoEndcap
Bool_t bRectangleVetoBarrel
virtual GsfTrackRef gsfTrack() const
reference to a GsfTrack
virtual double pt() const final
transverse momentum
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