Go to the documentation of this file. 1 #ifndef RecoParticleFlow_PFTracking_PFDisplacedVertexCandidateFinder_h
2 #define RecoParticleFlow_PFTracking_PFDisplacedVertexCandidateFinder_h
33 typedef std::vector<bool>
Mask;
35 typedef std::list<reco::TrackBaseRef>::iterator
IE;
36 typedef std::list<reco::TrackBaseRef>::const_iterator
IEC;
37 typedef reco::PFDisplacedVertexCandidateCollection::const_iterator
IBC;
64 const std::unique_ptr<reco::PFDisplacedVertexCandidateCollection>&
vertexCandidates()
const {
PFDisplacedVertexCandidateFinder()
const std::unique_ptr< reco::PFDisplacedVertexCandidateCollection > & vertexCandidates() const
IE associate(IE next, IE last, reco::PFDisplacedVertexCandidate &tempVertexCandidate)
-----— Different steps of the finder algorithm -----— ///
void setPrimaryVertex(edm::Handle< reco::VertexCollection > mainVertexHandle, edm::Handle< reco::BeamSpot > beamSpotHandle)
GlobalTrajectoryParameters getGlobalTrajectoryParameters(const reco::Track *) const
-----— TOOLS -----— //
unsigned vertexCandidatesSize_
void setInput(const edm::Handle< reco::TrackCollection > &trackh, const MagneticField *magField)
friend std::ostream & operator<<(std::ostream &, const PFDisplacedVertexCandidateFinder &)
TwoTrackMinimumDistance theMinimum_
std::list< reco::TrackBaseRef > eventTracks_
The track refs.
edm::soa::PtEtaPhiTable track_table_
std::list< reco::TrackBaseRef >::iterator IE
~PFDisplacedVertexCandidateFinder()
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.
double dcaCut_
--— Algo parameters for the vertex finder -— ///
void setDebug(bool debug)
sets debug printout flag
void setParameters(double dcaCut, double primaryVertexCut, double dcaPInnerHitCut, const edm::ParameterSet &ps_trk)
------— Set different algo parameters ---— ///
XYZPointD XYZPoint
point in space with cartesian internal representation
const MagneticField * magField_
std::vector< GlobalTrajectoryParameters > eventTrackTrajectories_
reco::PFDisplacedVertexCandidateCollection::const_iterator IBC
std::unique_ptr< reco::PFDisplacedVertexCandidateCollection > vertexCandidates_
-----— Members -----— ///
void packLinks(reco::PFDisplacedVertexCandidate &vertexCandidate)
std::vector< bool > Mask
Mask used to spot if a track is free or not.
bool isSelected(const reco::TrackBaseRef &trackref)
std::list< reco::TrackBaseRef >::const_iterator IEC
std::unique_ptr< reco::PFDisplacedVertexCandidateCollection > transferVertexCandidates()
bool debug_
if true, debug printouts activated
T getParameter(std::string const &) const
void findDisplacedVertexCandidates()
-----— Main function which find vertices -----— ///
double dcaPInnerHitCut2_
Maximum distance between the DCA Point and the inner hit of the track.
A block of tracks linked together.
double primaryVertexCut2_
Do not reconstruct vertices wich are too close to the beam pipe.
bool goodPtResolution(const reco::TrackBaseRef &trackref) const
Quality Criterion on the Pt resolution to select a Track.
edm::soa::AddColumns_t< EtaPhiTable, std::tuple< col::Pt > > PtEtaPhiTable