Calculates a lepton's vertex association significance. More...
#include <PhysicsTools/PatUtils/interface/LeptonVertexSignificance.h>
Public Member Functions | |
float | calculate (const Electron &anElectron, const edm::Event &iEvent) |
float | calculate (const Muon &aMuon, const edm::Event &iEvent) |
LeptonVertexSignificance (const edm::EventSetup &iSetup) | |
LeptonVertexSignificance () | |
~LeptonVertexSignificance () | |
Private Member Functions | |
float | calculate (const reco::Track &track, const edm::Event &iEvent) |
Private Attributes | |
TransientTrackBuilder * | theTrackBuilder_ |
Calculates a lepton's vertex association significance.
LeptonVertexSignificance calculates the significance of the association of the lepton to a given vertex, as defined in CMS Note 2006/024
Definition at line 34 of file LeptonVertexSignificance.h.
pat::LeptonVertexSignificance::LeptonVertexSignificance | ( | ) |
LeptonVertexSignificance::LeptonVertexSignificance | ( | const edm::EventSetup & | iSetup | ) |
Definition at line 25 of file LeptonVertexSignificance.cc.
References edm::EventSetup::get(), edm::ESHandle< T >::product(), and theTrackBuilder_.
{ // instantiate the transient-track builder edm::ESHandle<TransientTrackBuilder> builder; iSetup.get<TransientTrackRecord>().get("TransientTrackBuilder", builder); theTrackBuilder_ = new TransientTrackBuilder(*builder.product()); }
LeptonVertexSignificance::~LeptonVertexSignificance | ( | ) |
Definition at line 33 of file LeptonVertexSignificance.cc.
References theTrackBuilder_.
{ delete theTrackBuilder_; }
float LeptonVertexSignificance::calculate | ( | const Electron & | anElectron, |
const edm::Event & | iEvent | ||
) |
Definition at line 38 of file LeptonVertexSignificance.cc.
References pat::Electron::gsfTrack(), and iEvent.
Referenced by calculate().
float LeptonVertexSignificance::calculate | ( | const reco::Track & | track, |
const edm::Event & | iEvent | ||
) | [private] |
Definition at line 47 of file LeptonVertexSignificance.cc.
References TransientTrackBuilder::build(), edm::Event::getByLabel(), reco::Vertex::position(), funct::pow(), edm::Handle< T >::product(), mathSSE::sqrt(), TrajectoryStateClosestToPoint::theState(), theTrackBuilder_, reco::TransientTrack::trajectoryStateClosestToPoint(), and reco::Vertex::zError().
{ // FIXME: think more about how to handle events without vertices // lepton LR calculation should have nothing to do with event selection edm::Handle<reco::VertexCollection> vertexHandle; iEvent.getByLabel("offlinePrimaryVerticesFromCTFTracks", vertexHandle); if (vertexHandle.product()->size() == 0) return 0; reco::Vertex theVertex = vertexHandle.product()->front(); // calculate the track-vertex association significance reco::TransientTrack theTrTrack = theTrackBuilder_->build(&theTrack); GlobalPoint theVertexPoint(theVertex.position().x(), theVertex.position().y(), theVertex.position().z()); FreeTrajectoryState theLeptonNearVertex = theTrTrack.trajectoryStateClosestToPoint(theVertexPoint).theState(); return fabs(theVertex.position().z() - theLeptonNearVertex.position().z()) / sqrt(std::pow(theVertex.zError(), 2) + theLeptonNearVertex.cartesianError().position().czz()); }
float LeptonVertexSignificance::calculate | ( | const Muon & | aMuon, |
const edm::Event & | iEvent | ||
) |
Definition at line 42 of file LeptonVertexSignificance.cc.
References calculate(), iEvent, and pat::Muon::track().
Definition at line 45 of file LeptonVertexSignificance.h.
Referenced by calculate(), LeptonVertexSignificance(), and ~LeptonVertexSignificance().