#include <PFDisplacedVertexFinder.h>
Public Types | |
enum | FitterType { F_NOTDEFINED, F_DONOTREFIT, F_KALMAN, F_ADAPTIVE } |
Fitter Type. More... | |
typedef reco::PFDisplacedVertexCollection::iterator | IDV |
typedef reco::PFDisplacedVertexSeedCollection::iterator | IDVS |
-----— Useful Types -----— /// More... | |
typedef std::pair< PFTrackHitInfo, PFTrackHitInfo > | PFTrackHitFullInfo |
typedef std::pair< unsigned int, unsigned int > | PFTrackHitInfo |
Public Member Functions | |
const std::auto_ptr< reco::PFDisplacedVertexCollection > & | displacedVertices () const |
void | findDisplacedVertices () |
-----— Main function which find vertices -----— /// More... | |
PFDisplacedVertexFinder () | |
void | setAVFParameters (const edm::ParameterSet &ps) |
void | setDebug (bool debug) |
Sets debug printout flag. More... | |
void | setEdmParameters (const MagneticField *magField, edm::ESHandle< GlobalTrackingGeometry > globTkGeomHandle, const TrackerTopology *tkerTopo, const TrackerGeometry *tkerGeom) |
Sets parameters for track extrapolation and hits study. More... | |
void | setInput (const edm::Handle< reco::PFDisplacedVertexCandidateCollection > &) |
Set input collections of tracks. More... | |
void | setParameters (double transvSize, double longSize, double primaryVertexCut, double tobCut, double tecCut, double minAdaptWeight, bool switchOff2TrackVertex) |
--—— Set different algo parameters --—— /// More... | |
void | setPrimaryVertex (edm::Handle< reco::VertexCollection > mainVertexHandle, edm::Handle< reco::BeamSpot > beamSpotHandle) |
void | setTracksSelector (const edm::ParameterSet &ps) |
void | setVertexIdentifier (const edm::ParameterSet &ps) |
std::auto_ptr< reco::PFDisplacedVertexCollection > | transferDisplacedVertices () |
~PFDisplacedVertexFinder () | |
Private Attributes | |
bool | debug_ |
If true, debug printouts activated. More... | |
reco::PFDisplacedVertexCandidateCollection const * | displacedVertexCandidates_ |
-----— Members -----— /// More... | |
std::auto_ptr< reco::PFDisplacedVertexCollection > | displacedVertices_ |
edm::ESHandle< GlobalTrackingGeometry > | globTkGeomHandle_ |
Tracker geometry for discerning hit positions. More... | |
PFDisplacedVertexHelper | helper_ |
PFCheckHitPattern | hitPattern_ |
double | longSize_ |
const MagneticField * | magField_ |
to be able to extrapolate tracks f More... | |
double | minAdaptWeight_ |
double | primaryVertexCut_ |
double | ratio_ |
double | sigmacut_ |
Adaptive Vertex Fitter parameters. More... | |
bool | switchOff2TrackVertex_ |
double | t_ini_ |
double | tecCut_ |
const TrackerGeometry * | tkerGeom_ |
const TrackerTopology * | tkerTopo_ |
doc? More... | |
double | tobCut_ |
double | transvSize_ |
--—— Parameters --—— /// More... | |
Friends | |
std::ostream & | operator<< (std::ostream &, const PFDisplacedVertexFinder &) |
Definition at line 32 of file PFDisplacedVertexFinder.h.
typedef reco::PFDisplacedVertexCollection::iterator PFDisplacedVertexFinder::IDV |
Definition at line 43 of file PFDisplacedVertexFinder.h.
typedef reco::PFDisplacedVertexSeedCollection::iterator PFDisplacedVertexFinder::IDVS |
-----— Useful Types -----— ///
Definition at line 42 of file PFDisplacedVertexFinder.h.
typedef std::pair<PFTrackHitInfo, PFTrackHitInfo> PFDisplacedVertexFinder::PFTrackHitFullInfo |
Definition at line 46 of file PFDisplacedVertexFinder.h.
typedef std::pair<unsigned int, unsigned int> PFDisplacedVertexFinder::PFTrackHitInfo |
Definition at line 45 of file PFDisplacedVertexFinder.h.
Fitter Type.
Enumerator | |
---|---|
F_NOTDEFINED | |
F_DONOTREFIT | |
F_KALMAN | |
F_ADAPTIVE |
Definition at line 49 of file PFDisplacedVertexFinder.h.
PFDisplacedVertexFinder::PFDisplacedVertexFinder | ( | ) |
Definition at line 28 of file PFDisplacedVertexFinder.cc.
PFDisplacedVertexFinder::~PFDisplacedVertexFinder | ( | ) |
Definition at line 40 of file PFDisplacedVertexFinder.cc.
|
private |
Definition at line 763 of file PFDisplacedVertexFinder.cc.
References edm::RefToBase< T >::key(), reco::Vertex::originalTrack(), and reco::Vertex::refittedTracks().
Referenced by displacedVertices(), and selectAndLabelVertices().
|
inline |
Definition at line 112 of file PFDisplacedVertexFinder.h.
References commonTracks(), displacedVertices_, findDisplacedVertices(), findSeedsFromCandidate(), fitVertexFromSeed(), getLongDiff(), getLongProj(), getTransvDiff(), getVertexTrackType(), isCloseTo(), mergeSeeds(), operator<<, rejectAndLabelVertex(), and selectAndLabelVertices().
Referenced by operator<<().
void PFDisplacedVertexFinder::findDisplacedVertices | ( | ) |
-----— Main function which find vertices -----— ///
Definition at line 58 of file PFDisplacedVertexFinder.cc.
References gather_cfg::cout, debug_, displacedVertexCandidates_, displacedVertices_, findSeedsFromCandidate(), fitVertexFromSeed(), mps_fire::i, mergeSeeds(), and selectAndLabelVertices().
Referenced by displacedVertices().
|
private |
--—— Different steps of the finder algorithm --—— ///
Analyse a vertex candidate and select potential vertex point(s)
Definition at line 143 of file PFDisplacedVertexFinder.cc.
References gather_cfg::cout, reco::PFDisplacedVertexCandidate::dcaPoint(), debug_, getLongDiff(), getTransvDiff(), longSize_, reco::PFDisplacedVertexCandidate::r2Map(), mathSSE::sqrt(), transvSize_, reco::PFDisplacedVertexCandidate::tref(), and PV3DBase< T, PVType, FrameType >::x().
Referenced by displacedVertices(), and findDisplacedVertices().
|
private |
Fit one by one the vertex points with associated tracks to get displaced vertices.
This prefit procedure allow to reduce the Warning rate from Adaptive Vertex fitter It reject also many fake tracks
Definition at line 231 of file PFDisplacedVertexFinder.cc.
References reco::PFDisplacedVertex::addElement(), patPFMETCorrections_cff::algo, PFCheckHitPattern::analyze(), reco::PFDisplacedVertex::calcKinematics(), HiEvtPlane_cfi::chi2, reco::Vertex::chi2(), gather_cfg::cout, debug_, reco::PFDisplacedVertexSeed::Dump(), reco::PFDisplacedVertexSeed::elements(), cppFunctionSkipper::exception, F_ADAPTIVE, F_DONOTREFIT, F_KALMAN, F_NOTDEFINED, getVertexTrackType(), globTkGeomHandle_, helper_, PFTrackAlgoTools::highQuality(), hitPattern_, mps_fire::i, PFDisplacedVertexHelper::isTrackSelected(), TransientVertex::isValid(), magField_, minAdaptWeight_, reco::Vertex::ndof(), PFTrackAlgoTools::nonIterative(), listBenchmarks::pattern, reco::Vertex::position(), TransientVertex::position(), PFDisplacedVertexHelper::primaryVertex(), primaryVertexCut_, ratio_, TransientVertex::refittedTrack(), reco::Vertex::removeTracks(), rho, reco::PFDisplacedVertexSeed::seedPoint(), reco::PFDisplacedVertex::setPrimaryDirection(), sigmacut_, mathSSE::sqrt(), PFTrackAlgoTools::step45(), switchOff2TrackVertex_, t_ini_, tecCut_, tkerGeom_, tkerTopo_, tobCut_, TransientVertex::totalChiSquared(), HiIsolationCommonParameters_cff::track, reco::TransientTrack::track(), TransientVertex::trackWeight(), KalmanVertexFitter::vertex(), AdaptiveVertexFitter::vertex(), badGlobalMuonTaggersAOD_cff::vtx, PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), z, and PV3DBase< T, PVType, FrameType >::z().
Referenced by displacedVertices(), and findDisplacedVertices().
|
private |
Definition at line 710 of file PFDisplacedVertexFinder.cc.
References Basic3DVector< T >::dot(), Basic3DVector< T >::mag(), and Basic3DVector< T >::mag2().
Referenced by displacedVertices(), findSeedsFromCandidate(), and isCloseTo().
|
private |
Definition at line 719 of file PFDisplacedVertexFinder.cc.
References Basic3DVector< T >::dot(), and Basic3DVector< T >::mag().
Referenced by displacedVertices().
|
private |
Definition at line 730 of file PFDisplacedVertexFinder.cc.
References Basic3DVector< T >::cross(), and Basic3DVector< T >::mag().
Referenced by displacedVertices(), findSeedsFromCandidate(), and isCloseTo().
|
private |
Definition at line 740 of file PFDisplacedVertexFinder.cc.
Referenced by displacedVertices(), and fitVertexFromSeed().
|
private |
-----— Tools -----— ///
Definition at line 693 of file PFDisplacedVertexFinder.cc.
References getLongDiff(), getTransvDiff(), longSize_, reco::PFDisplacedVertexSeed::seedPoint(), and transvSize_.
Referenced by displacedVertices(), and mergeSeeds().
|
private |
Sometimes two vertex candidates can be quite close and coming from the same vertex.
Definition at line 200 of file PFDisplacedVertexFinder.cc.
References gather_cfg::cout, debug_, and isCloseTo().
Referenced by displacedVertices(), and findDisplacedVertices().
|
private |
Definition at line 680 of file PFDisplacedVertexFinder.cc.
References helper_, PFDisplacedVertexHelper::identifyVertex(), reco::PFDisplacedVertex::isFake(), and reco::PFDisplacedVertex::setVertexType().
Referenced by displacedVertices(), and selectAndLabelVertices().
|
private |
Remove potentially fakes displaced vertices.
Definition at line 587 of file PFDisplacedVertexFinder.cc.
References commonTracks(), gather_cfg::cout, debug_, primaryVertexCut_, rejectAndLabelVertex(), rho, tecCut_, tobCut_, and z.
Referenced by displacedVertices(), and findDisplacedVertices().
|
inline |
Definition at line 99 of file PFDisplacedVertexFinder.h.
References edm::ParameterSet::getParameter(), ratio_, setInput(), sigmacut_, and t_ini_.
|
inline |
Sets debug printout flag.
Definition at line 73 of file PFDisplacedVertexFinder.h.
|
inline |
Sets parameters for track extrapolation and hits study.
Definition at line 76 of file PFDisplacedVertexFinder.h.
References globTkGeomHandle_, magField_, tkerGeom_, and tkerTopo_.
void PFDisplacedVertexFinder::setInput | ( | const edm::Handle< reco::PFDisplacedVertexCandidateCollection > & | displacedVertexCandidates | ) |
Set input collections of tracks.
Definition at line 43 of file PFDisplacedVertexFinder.cc.
References displacedVertexCandidates_, edm::HandleBase::isValid(), and edm::Handle< T >::product().
Referenced by setAVFParameters().
|
inline |
--—— Set different algo parameters --—— ///
Sets algo parameters for the vertex finder
Definition at line 60 of file PFDisplacedVertexFinder.h.
References particleFlowDisplacedVertex_cfi::longSize, longSize_, particleFlowDisplacedVertex_cfi::minAdaptWeight, minAdaptWeight_, particleFlowDisplacedVertex_cfi::primaryVertexCut, primaryVertexCut_, particleFlowDisplacedVertex_cfi::switchOff2TrackVertex, switchOff2TrackVertex_, particleFlowDisplacedVertex_cfi::tecCut, tecCut_, particleFlowDisplacedVertex_cfi::tobCut, tobCut_, particleFlowDisplacedVertex_cfi::transvSize, and transvSize_.
|
inline |
Definition at line 94 of file PFDisplacedVertexFinder.h.
References helper_, and PFDisplacedVertexHelper::setPrimaryVertex().
|
inline |
Definition at line 86 of file PFDisplacedVertexFinder.h.
References helper_, and PFDisplacedVertexHelper::setTracksSelector().
|
inline |
Definition at line 90 of file PFDisplacedVertexFinder.h.
References helper_, and PFDisplacedVertexHelper::setVertexIdentifier().
|
inline |
Definition at line 110 of file PFDisplacedVertexFinder.h.
References displacedVertices_.
|
friend |
Definition at line 782 of file PFDisplacedVertexFinder.cc.
Referenced by displacedVertices().
|
private |
If true, debug printouts activated.
Definition at line 180 of file PFDisplacedVertexFinder.h.
Referenced by findDisplacedVertices(), findSeedsFromCandidate(), fitVertexFromSeed(), mergeSeeds(), selectAndLabelVertices(), and setDebug().
|
private |
-----— Members -----— ///
Definition at line 156 of file PFDisplacedVertexFinder.h.
Referenced by findDisplacedVertices(), and setInput().
|
private |
Definition at line 157 of file PFDisplacedVertexFinder.h.
Referenced by displacedVertices(), findDisplacedVertices(), operator<<(), and transferDisplacedVertices().
|
private |
Tracker geometry for discerning hit positions.
Definition at line 183 of file PFDisplacedVertexFinder.h.
Referenced by fitVertexFromSeed(), and setEdmParameters().
|
private |
Definition at line 195 of file PFDisplacedVertexFinder.h.
Referenced by fitVertexFromSeed(), operator<<(), rejectAndLabelVertex(), setPrimaryVertex(), setTracksSelector(), and setVertexIdentifier().
|
private |
Definition at line 193 of file PFDisplacedVertexFinder.h.
Referenced by fitVertexFromSeed().
|
private |
Definition at line 164 of file PFDisplacedVertexFinder.h.
Referenced by findSeedsFromCandidate(), isCloseTo(), and setParameters().
|
private |
to be able to extrapolate tracks f
Definition at line 190 of file PFDisplacedVertexFinder.h.
Referenced by fitVertexFromSeed(), and setEdmParameters().
|
private |
Definition at line 168 of file PFDisplacedVertexFinder.h.
Referenced by fitVertexFromSeed(), and setParameters().
|
private |
Definition at line 165 of file PFDisplacedVertexFinder.h.
Referenced by fitVertexFromSeed(), selectAndLabelVertices(), and setParameters().
|
private |
Definition at line 176 of file PFDisplacedVertexFinder.h.
Referenced by fitVertexFromSeed(), operator<<(), and setAVFParameters().
|
private |
Adaptive Vertex Fitter parameters.
Definition at line 174 of file PFDisplacedVertexFinder.h.
Referenced by fitVertexFromSeed(), operator<<(), and setAVFParameters().
|
private |
Definition at line 170 of file PFDisplacedVertexFinder.h.
Referenced by fitVertexFromSeed(), and setParameters().
|
private |
Definition at line 175 of file PFDisplacedVertexFinder.h.
Referenced by fitVertexFromSeed(), operator<<(), and setAVFParameters().
|
private |
Definition at line 167 of file PFDisplacedVertexFinder.h.
Referenced by fitVertexFromSeed(), selectAndLabelVertices(), and setParameters().
|
private |
Definition at line 187 of file PFDisplacedVertexFinder.h.
Referenced by fitVertexFromSeed(), and setEdmParameters().
|
private |
doc?
Definition at line 186 of file PFDisplacedVertexFinder.h.
Referenced by fitVertexFromSeed(), and setEdmParameters().
|
private |
Definition at line 166 of file PFDisplacedVertexFinder.h.
Referenced by fitVertexFromSeed(), selectAndLabelVertices(), and setParameters().
|
private |
--—— Parameters --—— ///
Algo parameters for the vertex finder
Definition at line 163 of file PFDisplacedVertexFinder.h.
Referenced by findSeedsFromCandidate(), isCloseTo(), and setParameters().