#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 31 of file PFDisplacedVertexFinder.h.
typedef reco::PFDisplacedVertexCollection::iterator PFDisplacedVertexFinder::IDV |
Definition at line 40 of file PFDisplacedVertexFinder.h.
typedef reco::PFDisplacedVertexSeedCollection::iterator PFDisplacedVertexFinder::IDVS |
-----— Useful Types -----— ///
Definition at line 39 of file PFDisplacedVertexFinder.h.
typedef std::pair<PFTrackHitInfo, PFTrackHitInfo> PFDisplacedVertexFinder::PFTrackHitFullInfo |
Definition at line 43 of file PFDisplacedVertexFinder.h.
typedef std::pair<unsigned int, unsigned int> PFDisplacedVertexFinder::PFTrackHitInfo |
Definition at line 42 of file PFDisplacedVertexFinder.h.
Fitter Type.
Enumerator | |
---|---|
F_NOTDEFINED | |
F_DONOTREFIT | |
F_KALMAN | |
F_ADAPTIVE |
Definition at line 46 of file PFDisplacedVertexFinder.h.
PFDisplacedVertexFinder::PFDisplacedVertexFinder | ( | ) |
Definition at line 30 of file PFDisplacedVertexFinder.cc.
PFDisplacedVertexFinder::~PFDisplacedVertexFinder | ( | ) |
Definition at line 41 of file PFDisplacedVertexFinder.cc.
|
private |
Definition at line 661 of file PFDisplacedVertexFinder.cc.
References edm::RefToBase< T >::key(), reco::Vertex::originalTrack(), and reco::Vertex::refittedTracks().
Referenced by selectAndLabelVertices().
|
inline |
Definition at line 104 of file PFDisplacedVertexFinder.h.
References displacedVertices_, and eostools::move().
Referenced by operator<<().
void PFDisplacedVertexFinder::findDisplacedVertices | ( | ) |
-----— Main function which find vertices -----— ///
Definition at line 54 of file PFDisplacedVertexFinder.cc.
References gather_cfg::cout, debug_, displacedVertexCandidates_, displacedVertices_, findSeedsFromCandidate(), fitVertexFromSeed(), mps_fire::i, mergeSeeds(), and selectAndLabelVertices().
Referenced by PFDisplacedVertexProducer::produce().
|
private |
--—— Different steps of the finder algorithm --—— ///
Analyse a vertex candidate and select potential vertex point(s)
Definition at line 141 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 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 209 of file PFDisplacedVertexFinder.cc.
References reco::PFDisplacedVertex::addElement(), PFCheckHitPattern::analyze(), reco::PFDisplacedVertex::calcKinematics(), reco::Vertex::chi2(), HLT_FULL_cff::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(), 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(), reco::TransientTrack::track(), HLT_FULL_cff::track, TransientVertex::trackWeight(), KalmanVertexFitter::vertex(), AdaptiveVertexFitter::vertex(), histoStyle::weight, PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), z, and PV3DBase< T, PVType, FrameType >::z().
Referenced by findDisplacedVertices().
|
private |
Definition at line 630 of file PFDisplacedVertexFinder.cc.
References PV3DBase< T, PVType, FrameType >::basicVector(), Basic3DVector< T >::mag2(), and mathSSE::sqrt().
Referenced by findSeedsFromCandidate(), and isCloseTo().
|
private |
Definition at line 641 of file PFDisplacedVertexFinder.cc.
Referenced by fitVertexFromSeed().
|
private |
-----— Tools -----— ///
Definition at line 616 of file PFDisplacedVertexFinder.cc.
References getTransvLongDiff(), longSize_, reco::PFDisplacedVertexSeed::seedPoint(), and transvSize_.
Referenced by mergeSeeds().
|
private |
Sometimes two vertex candidates can be quite close and coming from the same vertex.
Definition at line 189 of file PFDisplacedVertexFinder.cc.
References gather_cfg::cout, debug_, and isCloseTo().
Referenced by findDisplacedVertices().
|
private |
Definition at line 607 of file PFDisplacedVertexFinder.cc.
References helper_, PFDisplacedVertexHelper::identifyVertex(), reco::PFDisplacedVertex::isFake(), and reco::PFDisplacedVertex::setVertexType().
Referenced by selectAndLabelVertices().
|
private |
Remove potentially fakes displaced vertices.
Definition at line 523 of file PFDisplacedVertexFinder.cc.
References commonTracks(), gather_cfg::cout, debug_, primaryVertexCut_, rejectAndLabelVertex(), rho, tecCut_, tobCut_, and z.
Referenced by findDisplacedVertices().
|
inline |
Definition at line 90 of file PFDisplacedVertexFinder.h.
References edm::ParameterSet::getParameter(), ratio_, sigmacut_, and t_ini_.
Referenced by PFDisplacedVertexProducer::PFDisplacedVertexProducer().
|
inline |
Sets debug printout flag.
Definition at line 68 of file PFDisplacedVertexFinder.h.
Referenced by PFDisplacedVertexProducer::PFDisplacedVertexProducer().
|
inline |
Sets parameters for track extrapolation and hits study.
Definition at line 71 of file PFDisplacedVertexFinder.h.
References globTkGeomHandle_, magField, magField_, tkerGeom_, and tkerTopo_.
Referenced by PFDisplacedVertexProducer::produce().
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 PFDisplacedVertexProducer::produce().
|
inline |
--—— Set different algo parameters --—— ///
Sets algo parameters for the vertex finder
Definition at line 51 of file PFDisplacedVertexFinder.h.
References longSize_, minAdaptWeight_, primaryVertexCut_, switchOff2TrackVertex_, tecCut_, tobCut_, and transvSize_.
Referenced by PFDisplacedVertexProducer::PFDisplacedVertexProducer().
|
inline |
Definition at line 85 of file PFDisplacedVertexFinder.h.
References helper_, and PFDisplacedVertexHelper::setPrimaryVertex().
Referenced by PFDisplacedVertexProducer::produce().
|
inline |
Definition at line 81 of file PFDisplacedVertexFinder.h.
References helper_, and PFDisplacedVertexHelper::setTracksSelector().
Referenced by PFDisplacedVertexProducer::PFDisplacedVertexProducer().
|
inline |
Definition at line 83 of file PFDisplacedVertexFinder.h.
References helper_, and PFDisplacedVertexHelper::setVertexIdentifier().
Referenced by PFDisplacedVertexProducer::PFDisplacedVertexProducer().
|
inline |
Definition at line 100 of file PFDisplacedVertexFinder.h.
References displacedVertices_, and eostools::move().
Referenced by PFDisplacedVertexProducer::produce().
|
friend |
Definition at line 680 of file PFDisplacedVertexFinder.cc.
|
private |
If true, debug printouts activated.
Definition at line 166 of file PFDisplacedVertexFinder.h.
Referenced by findDisplacedVertices(), findSeedsFromCandidate(), fitVertexFromSeed(), mergeSeeds(), selectAndLabelVertices(), and setDebug().
|
private |
-----— Members -----— ///
Definition at line 143 of file PFDisplacedVertexFinder.h.
Referenced by findDisplacedVertices(), and setInput().
|
private |
Definition at line 144 of file PFDisplacedVertexFinder.h.
Referenced by displacedVertices(), findDisplacedVertices(), and transferDisplacedVertices().
|
private |
Tracker geometry for discerning hit positions.
Definition at line 169 of file PFDisplacedVertexFinder.h.
Referenced by fitVertexFromSeed(), and setEdmParameters().
|
private |
Definition at line 180 of file PFDisplacedVertexFinder.h.
Referenced by fitVertexFromSeed(), operator<<(), rejectAndLabelVertex(), setPrimaryVertex(), setTracksSelector(), and setVertexIdentifier().
|
private |
Definition at line 178 of file PFDisplacedVertexFinder.h.
Referenced by fitVertexFromSeed().
|
private |
Definition at line 151 of file PFDisplacedVertexFinder.h.
Referenced by findSeedsFromCandidate(), isCloseTo(), and setParameters().
|
private |
to be able to extrapolate tracks f
Definition at line 176 of file PFDisplacedVertexFinder.h.
Referenced by fitVertexFromSeed(), and setEdmParameters().
|
private |
Definition at line 155 of file PFDisplacedVertexFinder.h.
Referenced by fitVertexFromSeed(), and setParameters().
|
private |
Definition at line 152 of file PFDisplacedVertexFinder.h.
Referenced by fitVertexFromSeed(), selectAndLabelVertices(), and setParameters().
|
private |
Definition at line 163 of file PFDisplacedVertexFinder.h.
Referenced by fitVertexFromSeed(), operator<<(), and setAVFParameters().
|
private |
Adaptive Vertex Fitter parameters.
Definition at line 161 of file PFDisplacedVertexFinder.h.
Referenced by fitVertexFromSeed(), operator<<(), and setAVFParameters().
|
private |
Definition at line 157 of file PFDisplacedVertexFinder.h.
Referenced by fitVertexFromSeed(), and setParameters().
|
private |
Definition at line 162 of file PFDisplacedVertexFinder.h.
Referenced by fitVertexFromSeed(), operator<<(), and setAVFParameters().
|
private |
Definition at line 154 of file PFDisplacedVertexFinder.h.
Referenced by fitVertexFromSeed(), selectAndLabelVertices(), and setParameters().
|
private |
Definition at line 173 of file PFDisplacedVertexFinder.h.
Referenced by fitVertexFromSeed(), and setEdmParameters().
|
private |
doc?
Definition at line 172 of file PFDisplacedVertexFinder.h.
Referenced by fitVertexFromSeed(), and setEdmParameters().
|
private |
Definition at line 153 of file PFDisplacedVertexFinder.h.
Referenced by fitVertexFromSeed(), selectAndLabelVertices(), and setParameters().
|
private |
--—— Parameters --—— ///
Algo parameters for the vertex finder
Definition at line 150 of file PFDisplacedVertexFinder.h.
Referenced by findSeedsFromCandidate(), isCloseTo(), and setParameters().