#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::unique_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::unique_ptr< reco::PFDisplacedVertexCollection > | transferDisplacedVertices () |
~PFDisplacedVertexFinder () | |
Private Member Functions | |
unsigned | commonTracks (const reco::PFDisplacedVertex &, const reco::PFDisplacedVertex &) const |
void | findSeedsFromCandidate (const reco::PFDisplacedVertexCandidate &, reco::PFDisplacedVertexSeedCollection &) |
--—— Different steps of the finder algorithm --—— /// More... | |
bool | fitVertexFromSeed (const reco::PFDisplacedVertexSeed &, reco::PFDisplacedVertex &) |
Fit one by one the vertex points with associated tracks to get displaced vertices. More... | |
std::pair< float, float > | getTransvLongDiff (const GlobalPoint &, const GlobalPoint &) const |
reco::PFDisplacedVertex::VertexTrackType | getVertexTrackType (PFTrackHitFullInfo &) const |
bool | isCloseTo (const reco::PFDisplacedVertexSeed &, const reco::PFDisplacedVertexSeed &) const |
-----— Tools -----— /// More... | |
void | mergeSeeds (reco::PFDisplacedVertexSeedCollection &, std::vector< bool > &bLocked) |
Sometimes two vertex candidates can be quite close and coming from the same vertex. More... | |
bool | rejectAndLabelVertex (reco::PFDisplacedVertex &dv) |
void | selectAndLabelVertices (reco::PFDisplacedVertexCollection &, std::vector< bool > &) |
Remove potentially fakes displaced vertices. More... | |
Private Attributes | |
bool | debug_ |
If true, debug printouts activated. More... | |
reco::PFDisplacedVertexCandidateCollection const * | displacedVertexCandidates_ |
-----— Members -----— /// More... | |
std::unique_ptr< reco::PFDisplacedVertexCollection > | displacedVertices_ |
edm::ESHandle< GlobalTrackingGeometry > | globTkGeomHandle_ |
Tracker geometry for discerning hit positions. More... | |
PFDisplacedVertexHelper | helper_ |
PFCheckHitPattern | hitPattern_ |
float | 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_ |
float | 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 739 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(), getTransvLongDiff(), getVertexTrackType(), isCloseTo(), mergeSeeds(), eostools::move(), 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_, getTransvLongDiff(), 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 229 of file PFDisplacedVertexFinder.cc.
References reco::PFDisplacedVertex::addElement(), patPFMETCorrections_cff::algo, PFCheckHitPattern::analyze(), reco::PFDisplacedVertex::calcKinematics(), vertices_cff::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(), extraflags_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 704 of file PFDisplacedVertexFinder.cc.
References PV3DBase< T, PVType, FrameType >::basicVector(), Basic3DVector< T >::mag2(), and mathSSE::sqrt().
Referenced by displacedVertices(), findSeedsFromCandidate(), and isCloseTo().
|
private |
Definition at line 716 of file PFDisplacedVertexFinder.cc.
Referenced by displacedVertices(), and fitVertexFromSeed().
|
private |
-----— Tools -----— ///
Definition at line 688 of file PFDisplacedVertexFinder.cc.
References getTransvLongDiff(), 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 198 of file PFDisplacedVertexFinder.cc.
References gather_cfg::cout, debug_, and isCloseTo().
Referenced by displacedVertices(), and findDisplacedVertices().
|
private |
Definition at line 675 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 582 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_, and eostools::move().
|
friend |
Definition at line 758 of file PFDisplacedVertexFinder.cc.
Referenced by displacedVertices().
|
private |
If true, debug printouts activated.
Definition at line 178 of file PFDisplacedVertexFinder.h.
Referenced by findDisplacedVertices(), findSeedsFromCandidate(), fitVertexFromSeed(), mergeSeeds(), selectAndLabelVertices(), and setDebug().
|
private |
-----— Members -----— ///
Definition at line 154 of file PFDisplacedVertexFinder.h.
Referenced by findDisplacedVertices(), and setInput().
|
private |
Definition at line 155 of file PFDisplacedVertexFinder.h.
Referenced by displacedVertices(), findDisplacedVertices(), operator<<(), and transferDisplacedVertices().
|
private |
Tracker geometry for discerning hit positions.
Definition at line 181 of file PFDisplacedVertexFinder.h.
Referenced by fitVertexFromSeed(), and setEdmParameters().
|
private |
Definition at line 193 of file PFDisplacedVertexFinder.h.
Referenced by fitVertexFromSeed(), operator<<(), rejectAndLabelVertex(), setPrimaryVertex(), setTracksSelector(), and setVertexIdentifier().
|
private |
Definition at line 191 of file PFDisplacedVertexFinder.h.
Referenced by fitVertexFromSeed().
|
private |
Definition at line 162 of file PFDisplacedVertexFinder.h.
Referenced by findSeedsFromCandidate(), isCloseTo(), and setParameters().
|
private |
to be able to extrapolate tracks f
Definition at line 188 of file PFDisplacedVertexFinder.h.
Referenced by fitVertexFromSeed(), and setEdmParameters().
|
private |
Definition at line 166 of file PFDisplacedVertexFinder.h.
Referenced by fitVertexFromSeed(), and setParameters().
|
private |
Definition at line 163 of file PFDisplacedVertexFinder.h.
Referenced by fitVertexFromSeed(), selectAndLabelVertices(), and setParameters().
|
private |
Definition at line 174 of file PFDisplacedVertexFinder.h.
Referenced by fitVertexFromSeed(), operator<<(), and setAVFParameters().
|
private |
Adaptive Vertex Fitter parameters.
Definition at line 172 of file PFDisplacedVertexFinder.h.
Referenced by fitVertexFromSeed(), operator<<(), and setAVFParameters().
|
private |
Definition at line 168 of file PFDisplacedVertexFinder.h.
Referenced by fitVertexFromSeed(), and setParameters().
|
private |
Definition at line 173 of file PFDisplacedVertexFinder.h.
Referenced by fitVertexFromSeed(), operator<<(), and setAVFParameters().
|
private |
Definition at line 165 of file PFDisplacedVertexFinder.h.
Referenced by fitVertexFromSeed(), selectAndLabelVertices(), and setParameters().
|
private |
Definition at line 185 of file PFDisplacedVertexFinder.h.
Referenced by fitVertexFromSeed(), and setEdmParameters().
|
private |
doc?
Definition at line 184 of file PFDisplacedVertexFinder.h.
Referenced by fitVertexFromSeed(), and setEdmParameters().
|
private |
Definition at line 164 of file PFDisplacedVertexFinder.h.
Referenced by fitVertexFromSeed(), selectAndLabelVertices(), and setParameters().
|
private |
--—— Parameters --—— ///
Algo parameters for the vertex finder
Definition at line 161 of file PFDisplacedVertexFinder.h.
Referenced by findSeedsFromCandidate(), isCloseTo(), and setParameters().