#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_ |
double | qoverpError_max_ |
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 18 of file PFDisplacedVertexCandidateFinder.cc.
PFDisplacedVertexCandidateFinder::~PFDisplacedVertexCandidateFinder | ( | ) |
Definition at line 28 of file PFDisplacedVertexCandidateFinder.cc.
References eventTracks_, and LogDebug.
|
private |
--—— Different steps of the finder algorithm --—— ///
Recursive procedure to associate tracks together
Definition at line 111 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 82 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 299 of file PFDisplacedVertexCandidateFinder.cc.
References magField_, position, and HLT_2024v14_cff::track.
Referenced by setInput().
|
private |
Quality Criterion on the Pt resolution to select a Track.
Definition at line 310 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_prim_, reco::TrackBase::ptError(), pvtx_, run3scouting_cff::qoverpError, reco::TrackBase::qoverpError(), and qoverpError_max_.
Referenced by isSelected().
|
inlineprivate |
A function which gather the information if a track is available for vertexing
Definition at line 104 of file PFDisplacedVertexCandidateFinder.h.
References goodPtResolution().
Referenced by setInput().
|
private |
Check whether 2 elements are linked and fill the link parameters.
Definition at line 176 of file PFDisplacedVertexCandidateFinder.cc.
References funct::abs(), TwoTrackMinimumDistance::calculate(), TwoTrackMinimumDistance::crossingPoint(), dcaCut_, SiPixelRawToDigiRegional_cfi::deltaPhi, TwoTrackMinimumDistance::distance(), HLT_2024v14_cff::eta1, HLT_2024v14_cff::eta2, eventTrackTrajectories_, edm::RefToBase< T >::key(), LogDebug, primaryVertexCut2_, HLT_2024v14_cff::pt1, HLT_2024v14_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 271 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 54 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 50 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_, pt_min_prim_, and qoverpError_max_.
Referenced by PFDisplacedVertexCandidateProducer::PFDisplacedVertexCandidateProducer().
void PFDisplacedVertexCandidateFinder::setPrimaryVertex | ( | edm::Handle< reco::VertexCollection > | mainVertexHandle, |
edm::Handle< reco::BeamSpot > | beamSpotHandle | ||
) |
Definition at line 33 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 61 of file PFDisplacedVertexCandidateFinder.h.
References eostools::move(), and vertexCandidates_.
Referenced by PFDisplacedVertexCandidateProducer::produce().
|
inline |
Definition at line 65 of file PFDisplacedVertexCandidateFinder.h.
References eostools::move(), and vertexCandidates_.
Referenced by operator<<().
|
friend |
Definition at line 334 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 127 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 131 of file PFDisplacedVertexCandidateFinder.h.
Referenced by setParameters().
|
private |
if true, debug printouts activated
Definition at line 153 of file PFDisplacedVertexCandidateFinder.h.
Referenced by setDebug().
|
private |
Definition at line 140 of file PFDisplacedVertexCandidateFinder.h.
Referenced by goodPtResolution(), and setParameters().
|
private |
The track refs.
Definition at line 113 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 121 of file PFDisplacedVertexCandidateFinder.h.
Referenced by link(), and setInput().
|
private |
Definition at line 156 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 136 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 129 of file PFDisplacedVertexCandidateFinder.h.
Referenced by link(), and setParameters().
|
private |
Definition at line 137 of file PFDisplacedVertexCandidateFinder.h.
Referenced by setParameters().
|
private |
Definition at line 139 of file PFDisplacedVertexCandidateFinder.h.
Referenced by goodPtResolution(), and setParameters().
|
private |
Definition at line 150 of file PFDisplacedVertexCandidateFinder.h.
Referenced by goodPtResolution(), and setPrimaryVertex().
|
private |
Definition at line 141 of file PFDisplacedVertexCandidateFinder.h.
Referenced by goodPtResolution(), and setParameters().
|
private |
Definition at line 148 of file PFDisplacedVertexCandidateFinder.h.
Referenced by link().
|
private |
Definition at line 158 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 118 of file PFDisplacedVertexCandidateFinder.h.
Referenced by associate(), and setInput().
|
private |
-----— Members -----— ///
Definition at line 110 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 145 of file PFDisplacedVertexCandidateFinder.h.
Referenced by findDisplacedVertexCandidates().