#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 35 of file PFDisplacedVertexCandidateFinder.h.
typedef std::list<reco::TrackBaseRef>::iterator PFDisplacedVertexCandidateFinder::IE |
Definition at line 33 of file PFDisplacedVertexCandidateFinder.h.
typedef std::list<reco::TrackBaseRef>::const_iterator PFDisplacedVertexCandidateFinder::IEC |
Definition at line 34 of file PFDisplacedVertexCandidateFinder.h.
typedef std::vector<bool> PFDisplacedVertexCandidateFinder::Mask |
Mask used to spot if a track is free or not.
Definition at line 31 of file PFDisplacedVertexCandidateFinder.h.
PFDisplacedVertexCandidateFinder::PFDisplacedVertexCandidateFinder | ( | ) |
Definition at line 15 of file PFDisplacedVertexCandidateFinder.cc.
PFDisplacedVertexCandidateFinder::~PFDisplacedVertexCandidateFinder | ( | ) |
Definition at line 25 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 110 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 80 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 309 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 setInput(), and vertexCandidates().
|
private |
Quality Criterion on the Pt resolution to select a Track.
Definition at line 320 of file PFDisplacedVertexCandidateFinder.cc.
References gather_cfg::cout, debug_, PVValHelper::dxy, reco::TrackBase::dxy(), dxy_, nChi2_max_, reco::TrackBase::normalizedChi2(), DiDispStaMuonMonitor_cfi::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 101 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 194 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 278 of file PFDisplacedVertexCandidateFinder.cc.
References gather_cfg::cout, debug_, reco::PFDisplacedVertexCandidate::elements(), testProducerWithPsetDescEmpty_cfi::i1, testProducerWithPsetDescEmpty_cfi::i2, link(), and reco::PFDisplacedVertexCandidate::setLink().
Referenced by findDisplacedVertexCandidates(), and vertexCandidates().
|
inline |
sets debug printout flag
Definition at line 51 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 49 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 40 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 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 vertexCandidates().
|
inline |
Definition at line 58 of file PFDisplacedVertexCandidateFinder.h.
References eostools::move(), and vertexCandidates_.
|
inline |
Definition at line 62 of file PFDisplacedVertexCandidateFinder.h.
References associate(), findDisplacedVertexCandidates(), getGlobalTrajectoryParameters(), goodPtResolution(), dqmdumpme::last, link(), eostools::move(), GetRecoTauVFromDQM_MC_cff::next, packLinks(), setPrimaryVertex(), and vertexCandidates_.
Referenced by operator<<().
|
friend |
Definition at line 345 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 124 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 128 of file PFDisplacedVertexCandidateFinder.h.
Referenced by setParameters().
|
private |
if true, debug printouts activated
Definition at line 149 of file PFDisplacedVertexCandidateFinder.h.
Referenced by associate(), findDisplacedVertexCandidates(), goodPtResolution(), packLinks(), setDebug(), and ~PFDisplacedVertexCandidateFinder().
|
private |
Definition at line 137 of file PFDisplacedVertexCandidateFinder.h.
Referenced by goodPtResolution(), operator<<(), and setParameters().
|
private |
The track refs.
Definition at line 110 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 118 of file PFDisplacedVertexCandidateFinder.h.
Referenced by link(), and setInput().
|
private |
Definition at line 152 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 133 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 126 of file PFDisplacedVertexCandidateFinder.h.
Referenced by link(), and setParameters().
|
private |
Definition at line 134 of file PFDisplacedVertexCandidateFinder.h.
Referenced by goodPtResolution(), operator<<(), and setParameters().
|
private |
Definition at line 136 of file PFDisplacedVertexCandidateFinder.h.
Referenced by goodPtResolution(), operator<<(), and setParameters().
|
private |
Definition at line 146 of file PFDisplacedVertexCandidateFinder.h.
Referenced by goodPtResolution(), operator<<(), and setPrimaryVertex().
|
private |
Definition at line 144 of file PFDisplacedVertexCandidateFinder.h.
Referenced by link().
|
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 115 of file PFDisplacedVertexCandidateFinder.h.
Referenced by associate(), and setInput().
|
private |
-----— Members -----— ///
Definition at line 107 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 141 of file PFDisplacedVertexCandidateFinder.h.
Referenced by findDisplacedVertexCandidates().