#include <PFDisplacedVertexCandidateFinder.h>
Public Types | |
typedef reco::PFDisplacedVertexCandidateCollection::const_iterator | IBC |
typedef std::list< reco::TrackBaseRef >::iterator | IE |
typedef std::list< reco::TrackBaseRef >::const_iterator | IEC |
typedef std::vector< bool > | Mask |
Mask used to spot if a track is free or not. More... | |
Public Member Functions | |
void | findDisplacedVertexCandidates () |
-----— Main function which find vertices -----— /// More... | |
PFDisplacedVertexCandidateFinder () | |
void | setDebug (bool debug) |
sets debug printout flag More... | |
void | setInput (const edm::Handle< reco::TrackCollection > &trackh, const MagneticField *magField) |
void | setParameters (double dcaCut, double primaryVertexCut, double dcaPInnerHitCut, const edm::ParameterSet &ps_trk) |
---—— Set different algo parameters —— /// More... | |
void | setPrimaryVertex (edm::Handle< reco::VertexCollection > mainVertexHandle, edm::Handle< reco::BeamSpot > beamSpotHandle) |
std::unique_ptr< reco::PFDisplacedVertexCandidateCollection > | transferVertexCandidates () |
const std::unique_ptr< reco::PFDisplacedVertexCandidateCollection > & | vertexCandidates () const |
~PFDisplacedVertexCandidateFinder () | |
Private Member Functions | |
IE | associate (IE next, IE last, reco::PFDisplacedVertexCandidate &tempVertexCandidate) |
--—— Different steps of the finder algorithm --—— /// More... | |
GlobalTrajectoryParameters | getGlobalTrajectoryParameters (const reco::Track *) const |
--—— TOOLS --—— // More... | |
bool | goodPtResolution (const reco::TrackBaseRef &trackref) const |
Quality Criterion on the Pt resolution to select a Track. More... | |
bool | isSelected (const reco::TrackBaseRef &trackref) |
void | link (const reco::TrackBaseRef &el1, const reco::TrackBaseRef &el2, double &dist, GlobalPoint &P, reco::PFDisplacedVertexCandidate::VertexLinkTest &linktest) |
Check whether 2 elements are linked and fill the link parameters. More... | |
void | packLinks (reco::PFDisplacedVertexCandidate &vertexCandidate) |
Private Attributes | |
double | dcaCut_ |
–— Algo parameters for the vertex finder -— /// More... | |
double | dcaPInnerHitCut2_ |
Maximum distance between the DCA Point and the inner hit of the track. More... | |
bool | debug_ |
if true, debug printouts activated More... | |
double | dxy_ |
std::list< reco::TrackBaseRef > | eventTracks_ |
The track refs. More... | |
std::vector< GlobalTrajectoryParameters > | eventTrackTrajectories_ |
const MagneticField * | magField_ |
double | nChi2_max_ |
double | primaryVertexCut2_ |
Do not reconstruct vertices wich are too close to the beam pipe. More... | |
double | pt_min_ |
double | pt_min_prim_ |
math::XYZPoint | pvtx_ |
TwoTrackMinimumDistance | theMinimum_ |
Mask | trackMask_ |
std::unique_ptr< reco::PFDisplacedVertexCandidateCollection > | vertexCandidates_ |
-----— Members -----— /// More... | |
unsigned | vertexCandidatesSize_ |
Friends | |
std::ostream & | operator<< (std::ostream &, const PFDisplacedVertexCandidateFinder &) |
Definition at line 24 of file PFDisplacedVertexCandidateFinder.h.
typedef reco::PFDisplacedVertexCandidateCollection::const_iterator PFDisplacedVertexCandidateFinder::IBC |
Definition at line 38 of file PFDisplacedVertexCandidateFinder.h.
typedef std::list< reco::TrackBaseRef >::iterator PFDisplacedVertexCandidateFinder::IE |
Definition at line 36 of file PFDisplacedVertexCandidateFinder.h.
typedef std::list< reco::TrackBaseRef >::const_iterator PFDisplacedVertexCandidateFinder::IEC |
Definition at line 37 of file PFDisplacedVertexCandidateFinder.h.
typedef std::vector<bool> PFDisplacedVertexCandidateFinder::Mask |
Mask used to spot if a track is free or not.
Definition at line 34 of file PFDisplacedVertexCandidateFinder.h.
PFDisplacedVertexCandidateFinder::PFDisplacedVertexCandidateFinder | ( | ) |
Definition at line 15 of file PFDisplacedVertexCandidateFinder.cc.
References TwoTrackMinimumDistance::SlowMode, and theMinimum_.
PFDisplacedVertexCandidateFinder::~PFDisplacedVertexCandidateFinder | ( | ) |
Definition at line 28 of file PFDisplacedVertexCandidateFinder.cc.
References gather_cfg::cout, debug_, and eventTracks_.
|
private |
--—— Different steps of the finder algorithm --—— ///
Recursive procedure to associate tracks together
Definition at line 129 of file PFDisplacedVertexCandidateFinder.cc.
References reco::PFDisplacedVertexCandidate::addElement(), gather_cfg::cout, debug_, eventTracks_, mps_fire::i, link(), GetRecoTauVFromDQM_MC_cff::next, trackMask_, PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().
Referenced by findDisplacedVertexCandidates(), and vertexCandidates().
void PFDisplacedVertexCandidateFinder::findDisplacedVertexCandidates | ( | ) |
-----— Main function which find vertices -----— ///
Definition at line 94 of file PFDisplacedVertexCandidateFinder.cc.
References associate(), gather_cfg::cout, debug_, eventTracks_, reco::PFDisplacedVertexCandidate::isValid(), packLinks(), vertexCandidates_, and vertexCandidatesSize_.
Referenced by vertexCandidates().
|
private |
--—— TOOLS --—— //
Allows to calculate the helix aproximation for a given track which may be then extrapolated to any point.
Definition at line 341 of file PFDisplacedVertexCandidateFinder.cc.
References reco::TrackBase::charge(), magField_, reco::TrackBase::momentum(), position, reco::TrackBase::vx(), reco::TrackBase::vy(), and reco::TrackBase::vz().
Referenced by packLinks(), setInput(), and vertexCandidates().
|
private |
Quality Criterion on the Pt resolution to select a Track.
Definition at line 361 of file PFDisplacedVertexCandidateFinder.cc.
References gather_cfg::cout, debug_, PVValHelper::dxy, reco::TrackBase::dxy(), dxy_, nChi2_max_, reco::TrackBase::normalizedChi2(), EnergyCorrector::pt, reco::TrackBase::pt(), pt_min_, pt_min_prim_, reco::TrackBase::ptError(), and pvtx_.
Referenced by isSelected(), and vertexCandidates().
|
inlineprivate |
A function which gather the information if a track is available for vertexing
Definition at line 110 of file PFDisplacedVertexCandidateFinder.h.
References goodPtResolution(), and operator<<.
Referenced by setInput().
|
private |
Check whether 2 elements are linked and fill the link parameters.
Definition at line 226 of file PFDisplacedVertexCandidateFinder.cc.
References TwoTrackMinimumDistance::calculate(), TwoTrackMinimumDistance::crossingPoint(), dcaCut_, TwoTrackMinimumDistance::distance(), reco::TrackBase::eta(), eventTrackTrajectories_, edm::RefToBase< T >::key(), reco::TrackBase::phi(), primaryVertexCut2_, reco::TrackBase::pt(), theMinimum_, PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().
Referenced by associate(), packLinks(), and vertexCandidates().
|
private |
Compute missing links in the displacedVertexCandidates (the recursive procedure does not build all links)
Definition at line 299 of file PFDisplacedVertexCandidateFinder.cc.
References gather_cfg::cout, debug_, reco::PFDisplacedVertexCandidate::elements(), getGlobalTrajectoryParameters(), link(), and reco::PFDisplacedVertexCandidate::setLink().
Referenced by findDisplacedVertexCandidates(), and vertexCandidates().
|
inline |
sets debug printout flag
Definition at line 56 of file PFDisplacedVertexCandidateFinder.h.
References debug, debug_, and setInput().
void PFDisplacedVertexCandidateFinder::setInput | ( | const edm::Handle< reco::TrackCollection > & | trackh, |
const MagneticField * | magField | ||
) |
Set the imput collection of tracks and calculate their trajectory parameters the Global Trajectory Parameters
Definition at line 60 of file PFDisplacedVertexCandidateFinder.cc.
References eventTracks_, eventTrackTrajectories_, edm::Ref< C, T, F >::get(), getGlobalTrajectoryParameters(), mps_fire::i, isSelected(), edm::HandleBase::isValid(), magField_, and trackMask_.
Referenced by setDebug().
|
inline |
---—— Set different algo parameters —— ///
Sets algo parameters for the vertex candidate finder
Definition at line 44 of file PFDisplacedVertexCandidateFinder.h.
References particleFlowDisplacedVertexCandidate_cfi::dcaCut, dcaCut_, particleFlowDisplacedVertexCandidate_cfi::dcaPInnerHitCut, dcaPInnerHitCut2_, dxy_, edm::ParameterSet::getParameter(), nChi2_max_, particleFlowDisplacedVertex_cfi::primaryVertexCut, primaryVertexCut2_, pt_min_, and pt_min_prim_.
void PFDisplacedVertexCandidateFinder::setPrimaryVertex | ( | edm::Handle< reco::VertexCollection > | mainVertexHandle, |
edm::Handle< reco::BeamSpot > | beamSpotHandle | ||
) |
Definition at line 39 of file PFDisplacedVertexCandidateFinder.cc.
References ecalDrivenElectronSeedsParameters_cff::beamSpot, edm::HandleBase::isValid(), pvtx_, reco::BeamSpot::x0(), reco::BeamSpot::y0(), and reco::BeamSpot::z0().
Referenced by vertexCandidates().
|
inline |
Definition at line 65 of file PFDisplacedVertexCandidateFinder.h.
References eostools::move(), and vertexCandidates_.
|
inline |
Definition at line 67 of file PFDisplacedVertexCandidateFinder.h.
References associate(), findDisplacedVertexCandidates(), getGlobalTrajectoryParameters(), goodPtResolution(), plotBeamSpotDB::last, link(), eostools::move(), GetRecoTauVFromDQM_MC_cff::next, packLinks(), setPrimaryVertex(), and vertexCandidates_.
Referenced by operator<<().
|
friend |
Definition at line 398 of file PFDisplacedVertexCandidateFinder.cc.
Referenced by isSelected().
|
private |
–— Algo parameters for the vertex finder -— ///
Distance of minimal approach below which two tracks are considered as linked together
Definition at line 138 of file PFDisplacedVertexCandidateFinder.h.
Referenced by link(), and setParameters().
|
private |
Maximum distance between the DCA Point and the inner hit of the track.
Definition at line 142 of file PFDisplacedVertexCandidateFinder.h.
Referenced by setParameters().
|
private |
if true, debug printouts activated
Definition at line 163 of file PFDisplacedVertexCandidateFinder.h.
Referenced by associate(), findDisplacedVertexCandidates(), goodPtResolution(), packLinks(), setDebug(), and ~PFDisplacedVertexCandidateFinder().
|
private |
Definition at line 151 of file PFDisplacedVertexCandidateFinder.h.
Referenced by goodPtResolution(), operator<<(), and setParameters().
|
private |
The track refs.
Definition at line 123 of file PFDisplacedVertexCandidateFinder.h.
Referenced by associate(), findDisplacedVertexCandidates(), operator<<(), setInput(), and ~PFDisplacedVertexCandidateFinder().
|
private |
The Trajectories vector allow to calculate snd to store only once the track trajectory parameters
Definition at line 132 of file PFDisplacedVertexCandidateFinder.h.
Referenced by link(), and setInput().
|
private |
Definition at line 166 of file PFDisplacedVertexCandidateFinder.h.
Referenced by getGlobalTrajectoryParameters(), and setInput().
|
private |
Tracks preselection to reduce the combinatorics in PFDisplacedVertexCandidates this cuts are repeated then in a smarter way in the PFDisplacedVertexFinder be sure you are consistent between them
Definition at line 147 of file PFDisplacedVertexCandidateFinder.h.
Referenced by goodPtResolution(), operator<<(), and setParameters().
|
private |
Do not reconstruct vertices wich are too close to the beam pipe.
Definition at line 140 of file PFDisplacedVertexCandidateFinder.h.
Referenced by link(), and setParameters().
|
private |
Definition at line 148 of file PFDisplacedVertexCandidateFinder.h.
Referenced by goodPtResolution(), operator<<(), and setParameters().
|
private |
Definition at line 150 of file PFDisplacedVertexCandidateFinder.h.
Referenced by goodPtResolution(), operator<<(), and setParameters().
|
private |
Definition at line 160 of file PFDisplacedVertexCandidateFinder.h.
Referenced by goodPtResolution(), operator<<(), and setPrimaryVertex().
|
private |
Definition at line 158 of file PFDisplacedVertexCandidateFinder.h.
Referenced by link(), and PFDisplacedVertexCandidateFinder().
|
private |
The trackMask allows to keep the information on the tracks which are still free and those which are already used or disabled.
Definition at line 129 of file PFDisplacedVertexCandidateFinder.h.
Referenced by associate(), and setInput().
|
private |
-----— Members -----— ///
Definition at line 119 of file PFDisplacedVertexCandidateFinder.h.
Referenced by findDisplacedVertexCandidates(), transferVertexCandidates(), and vertexCandidates().
|
private |
Max number of expected vertexCandidates in the event Used to allocate the memory and avoid multiple copy
Definition at line 155 of file PFDisplacedVertexCandidateFinder.h.
Referenced by findDisplacedVertexCandidates().