#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 &crossing_point, 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_ |
edm::soa::PtEtaPhiTable | track_table_ |
Mask | trackMask_ |
std::unique_ptr< reco::PFDisplacedVertexCandidateCollection > | vertexCandidates_ |
-----— Members -----— /// More... | |
unsigned | vertexCandidatesSize_ |
Friends | |
std::ostream & | operator<< (std::ostream &, const PFDisplacedVertexCandidateFinder &) |
Definition at line 26 of file PFDisplacedVertexCandidateFinder.h.
typedef reco::PFDisplacedVertexCandidateCollection::const_iterator PFDisplacedVertexCandidateFinder::IBC |
Definition at line 37 of file PFDisplacedVertexCandidateFinder.h.
typedef std::list<reco::TrackBaseRef>::iterator PFDisplacedVertexCandidateFinder::IE |
Definition at line 35 of file PFDisplacedVertexCandidateFinder.h.
typedef std::list<reco::TrackBaseRef>::const_iterator PFDisplacedVertexCandidateFinder::IEC |
Definition at line 36 of file PFDisplacedVertexCandidateFinder.h.
typedef std::vector<bool> PFDisplacedVertexCandidateFinder::Mask |
Mask used to spot if a track is free or not.
Definition at line 33 of file PFDisplacedVertexCandidateFinder.h.
PFDisplacedVertexCandidateFinder::PFDisplacedVertexCandidateFinder | ( | ) |
Definition at line 17 of file PFDisplacedVertexCandidateFinder.cc.
PFDisplacedVertexCandidateFinder::~PFDisplacedVertexCandidateFinder | ( | ) |
Definition at line 27 of file PFDisplacedVertexCandidateFinder.cc.
References eventTracks_, and LogDebug.
|
private |
--—— Different steps of the finder algorithm --—— ///
Recursive procedure to associate tracks together
Definition at line 110 of file PFDisplacedVertexCandidateFinder.cc.
References reco::PFDisplacedVertexCandidate::addElement(), reco::PFDisplacedVertexCandidate::elements(), eventTracks_, mps_fire::i, dqmdumpme::last, link(), LogDebug, LogTrace, GetRecoTauVFromDQM_MC_cff::next, trackMask_, PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().
Referenced by findDisplacedVertexCandidates().
void PFDisplacedVertexCandidateFinder::findDisplacedVertexCandidates | ( | ) |
-----— Main function which find vertices -----— ///
Definition at line 81 of file PFDisplacedVertexCandidateFinder.cc.
References associate(), reco::PFDisplacedVertexCandidate::elements(), eventTracks_, reco::PFDisplacedVertexCandidate::isValid(), LogDebug, packLinks(), vertexCandidates_, and vertexCandidatesSize_.
Referenced by PFDisplacedVertexCandidateProducer::produce().
|
private |
--—— TOOLS --—— //
Allows to calculate the helix aproximation for a given track which may be then extrapolated to any point.
Definition at line 298 of file PFDisplacedVertexCandidateFinder.cc.
References magField_, position, and HLT_2022v12_cff::track.
Referenced by setInput().
|
private |
Quality Criterion on the Pt resolution to select a Track.
Definition at line 309 of file PFDisplacedVertexCandidateFinder.cc.
References funct::abs(), PVValHelper::dxy, reco::TrackBase::dxy(), dxy_, LogDebug, nChi2_max_, reco::TrackBase::normalizedChi2(), DiDispStaMuonMonitor_cfi::pt, reco::TrackBase::pt(), pt_min_, pt_min_prim_, reco::TrackBase::ptError(), and pvtx_.
Referenced by isSelected().
|
inlineprivate |
A function which gather the information if a track is available for vertexing
Definition at line 103 of file PFDisplacedVertexCandidateFinder.h.
References goodPtResolution().
Referenced by setInput().
|
private |
Check whether 2 elements are linked and fill the link parameters.
Definition at line 175 of file PFDisplacedVertexCandidateFinder.cc.
References funct::abs(), TwoTrackMinimumDistance::calculate(), TwoTrackMinimumDistance::crossingPoint(), dcaCut_, TwoTrackMinimumDistance::distance(), HLT_2022v12_cff::eta1, HLT_2022v12_cff::eta2, eventTrackTrajectories_, edm::RefToBase< T >::key(), LogDebug, primaryVertexCut2_, HLT_2022v12_cff::pt1, HLT_2022v12_cff::pt2, theMinimum_, track_table_, PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().
Referenced by associate(), and packLinks().
|
private |
Compute missing links in the displacedVertexCandidates (the recursive procedure does not build all links)
Definition at line 270 of file PFDisplacedVertexCandidateFinder.cc.
References reco::PFDisplacedVertexCandidate::elements(), testProducerWithPsetDescEmpty_cfi::i1, testProducerWithPsetDescEmpty_cfi::i2, link(), LogDebug, and reco::PFDisplacedVertexCandidate::setLink().
Referenced by findDisplacedVertexCandidates().
|
inline |
sets debug printout flag
Definition at line 53 of file PFDisplacedVertexCandidateFinder.h.
Referenced by PFDisplacedVertexCandidateProducer::PFDisplacedVertexCandidateProducer().
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 49 of file PFDisplacedVertexCandidateFinder.cc.
References eventTracks_, eventTrackTrajectories_, edm::Ref< C, T, F >::get(), getGlobalTrajectoryParameters(), mps_fire::i, isSelected(), edm::HandleBase::isValid(), magField_, track_table_, and trackMask_.
Referenced by PFDisplacedVertexCandidateProducer::produce().
|
inline |
---—— Set different algo parameters —— ///
Sets algo parameters for the vertex candidate finder
Definition at line 42 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_.
Referenced by PFDisplacedVertexCandidateProducer::PFDisplacedVertexCandidateProducer().
void PFDisplacedVertexCandidateFinder::setPrimaryVertex | ( | edm::Handle< reco::VertexCollection > | mainVertexHandle, |
edm::Handle< reco::BeamSpot > | beamSpotHandle | ||
) |
Definition at line 32 of file PFDisplacedVertexCandidateFinder.cc.
References pwdgSkimBPark_cfi::beamSpot, edm::HandleBase::isValid(), pvtx_, reco::BeamSpot::x0(), reco::BeamSpot::y0(), and reco::BeamSpot::z0().
Referenced by PFDisplacedVertexCandidateProducer::produce().
|
inline |
Definition at line 60 of file PFDisplacedVertexCandidateFinder.h.
References eostools::move(), and vertexCandidates_.
Referenced by PFDisplacedVertexCandidateProducer::produce().
|
inline |
Definition at line 64 of file PFDisplacedVertexCandidateFinder.h.
References eostools::move(), and vertexCandidates_.
Referenced by operator<<().
|
friend |
Definition at line 332 of file PFDisplacedVertexCandidateFinder.cc.
|
private |
–— Algo parameters for the vertex finder -— ///
Distance of minimal approach below which two tracks are considered as linked together
Definition at line 126 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 130 of file PFDisplacedVertexCandidateFinder.h.
Referenced by setParameters().
|
private |
if true, debug printouts activated
Definition at line 151 of file PFDisplacedVertexCandidateFinder.h.
Referenced by setDebug().
|
private |
Definition at line 139 of file PFDisplacedVertexCandidateFinder.h.
Referenced by goodPtResolution(), and setParameters().
|
private |
The track refs.
Definition at line 112 of file PFDisplacedVertexCandidateFinder.h.
Referenced by associate(), findDisplacedVertexCandidates(), setInput(), and ~PFDisplacedVertexCandidateFinder().
|
private |
The Trajectories vector allow to calculate snd to store only once the track trajectory parameters
Definition at line 120 of file PFDisplacedVertexCandidateFinder.h.
Referenced by link(), and setInput().
|
private |
Definition at line 154 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 135 of file PFDisplacedVertexCandidateFinder.h.
Referenced by goodPtResolution(), and setParameters().
|
private |
Do not reconstruct vertices wich are too close to the beam pipe.
Definition at line 128 of file PFDisplacedVertexCandidateFinder.h.
Referenced by link(), and setParameters().
|
private |
Definition at line 136 of file PFDisplacedVertexCandidateFinder.h.
Referenced by goodPtResolution(), and setParameters().
|
private |
Definition at line 138 of file PFDisplacedVertexCandidateFinder.h.
Referenced by goodPtResolution(), and setParameters().
|
private |
Definition at line 148 of file PFDisplacedVertexCandidateFinder.h.
Referenced by goodPtResolution(), and setPrimaryVertex().
|
private |
Definition at line 146 of file PFDisplacedVertexCandidateFinder.h.
Referenced by link().
|
private |
Definition at line 156 of file PFDisplacedVertexCandidateFinder.h.
Referenced by link(), and setInput().
|
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 117 of file PFDisplacedVertexCandidateFinder.h.
Referenced by associate(), and setInput().
|
private |
-----— Members -----— ///
Definition at line 109 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 143 of file PFDisplacedVertexCandidateFinder.h.
Referenced by findDisplacedVertexCandidates().