33 produces<reco::GsfElectronCollection>();
51 for (
unsigned int i = 0 ;
i != gsfCollection.size(); ++
i)
56 output->push_back(gsfCollection[i]);
64 const double ecalEnergy = gsfcandidate.
superCluster()->energy();
65 const double pIn = gsfcandidate.
gsfTrack()->innerMomentum().R();
66 const double pOut = gsfcandidate.
gsfTrack()->outerMomentum().R();
67 const double EemPinRatio = (ecalEnergy - pIn)/(ecalEnergy + pIn);
69 const double pt = gsfcandidate.
pt();
70 const double fbrem = (pIn - pOut)/pIn;
71 const double dRGsfTrackElectron =
deltaR(gsfcandidate.
gsfTrack()->eta(), gsfcandidate.
gsfTrack()->phi(), gsfcandidate.
eta(), gsfcandidate.
phi());
72 const double mva = gsfcandidate.
mva();
75 const double inversedRFirstLastHit = 1.0/
deltaR(firstHit.eta(), firstHit.phi(), lastHit.eta(), lastHit.phi());
76 const double radiusFirstHit = firstHit.Rho();
77 const double zFirstHit = firstHit.Z();
83 if(fabs(gsfcandidate.
eta()) < 1.5)
std::vector< double > forwardRadiusFirstHitCuts_
T getParameter(std::string const &) const
std::vector< double > forwardPtCuts_
bool isClean(const reco::GsfElectron &gsfcandidate)
virtual void produce(edm::Event &iEvent, const edm::EventSetup &iSetup)
std::vector< double > forwardInverseFBremCuts_
SuperClusterRef superCluster() const
reference to a SuperCluster
~SoftPFElectronProducer()
std::vector< double > barrelEemPinRatioCuts_
std::vector< double > forwarddRGsfTrackElectronCuts_
std::vector< GsfElectron > GsfElectronCollection
collection of GsfElectron objects
virtual double eta() const
momentum pseudorapidity
std::vector< double > barrelInversedRFirstLastHitCuts_
std::vector< double > barrelRadiusFirstHitCuts_
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
std::vector< double > barrelPtCuts_
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
double deltaR(double eta1, double eta2, double phi1, double phi2)
GsfTrackRef gsfTrack() const
reference to a GsfTrack
virtual double pt() const
transverse momentum
XYZPointD XYZPoint
point in space with cartesian internal representation
T const * product() const
std::vector< double > barrelZFirstHitCuts_
std::vector< double > barrelMVACuts_
virtual double phi() const
momentum azimuthal angle
std::vector< double > barreldRGsfTrackElectronCuts_
std::vector< double > forwardMVACuts_
SoftPFElectronProducer(const edm::ParameterSet &conf)
edm::InputTag gsfElectronTag_
std::vector< double > forwardZFirstHitCuts_