CMS 3D CMS Logo

PFDisplacedVertexCandidateFinder.h
Go to the documentation of this file.
1 #ifndef RecoParticleFlow_PFTracking_PFDisplacedVertexCandidateFinder_h
2 #define RecoParticleFlow_PFTracking_PFDisplacedVertexCandidateFinder_h
3 
10 
12 
15 
17 
22 class MagneticField;
23 
25 public:
27 
29 
31  typedef std::vector<bool> Mask;
32 
33  typedef std::list<reco::TrackBaseRef>::iterator IE;
34  typedef std::list<reco::TrackBaseRef>::const_iterator IEC;
35  typedef reco::PFDisplacedVertexCandidateCollection::const_iterator IBC;
36 
38 
40  void setParameters(double dcaCut, double primaryVertexCut, double dcaPInnerHitCut, const edm::ParameterSet& ps_trk) {
41  dcaCut_ = dcaCut;
44  nChi2_max_ = ps_trk.getParameter<double>("nChi2_max");
45  pt_min_ = ps_trk.getParameter<double>("pt_min");
46  pt_min_prim_ = ps_trk.getParameter<double>("pt_min_prim");
47  dxy_ = ps_trk.getParameter<double>("dxy");
48  }
49 
51  void setDebug(bool debug) { debug_ = debug; }
52 
55  void setInput(const edm::Handle<reco::TrackCollection>& trackh, const MagneticField* magField);
56 
58  std::unique_ptr<reco::PFDisplacedVertexCandidateCollection> transferVertexCandidates() {
60  }
61 
62  const std::unique_ptr<reco::PFDisplacedVertexCandidateCollection>& vertexCandidates() const {
64  }
65 
67 
69 
71  edm::Handle<reco::BeamSpot> beamSpotHandle);
72 
73 private:
75 
77  IE associate(IE next, IE last, reco::PFDisplacedVertexCandidate& tempVertexCandidate);
78 
80  void link(const reco::TrackBaseRef& el1,
81  const reco::TrackBaseRef& el2,
82  double& dist,
83  GlobalPoint& P,
85 
88  void packLinks(reco::PFDisplacedVertexCandidate& vertexCandidate);
89 
91 
95 
97  bool goodPtResolution(const reco::TrackBaseRef& trackref) const;
98 
101  bool isSelected(const reco::TrackBaseRef& trackref) { return goodPtResolution(trackref); }
102 
103  friend std::ostream& operator<<(std::ostream&, const PFDisplacedVertexCandidateFinder&);
104 
106 
107  std::unique_ptr<reco::PFDisplacedVertexCandidateCollection> vertexCandidates_;
108 
110  std::list<reco::TrackBaseRef> eventTracks_;
111 
118  std::vector<GlobalTrajectoryParameters> eventTrackTrajectories_;
119 
121 
124  double dcaCut_;
129 
133  double nChi2_max_;
134  double pt_min_;
135 
136  double pt_min_prim_;
137  double dxy_;
138 
142 
143  // Two track minimum distance algo
145 
147 
149  bool debug_;
150 
151  // Tracker geometry for extrapolation
153 };
154 
155 #endif
PFDisplacedVertexCandidateFinder::PFDisplacedVertexCandidateFinder
PFDisplacedVertexCandidateFinder()
Definition: PFDisplacedVertexCandidateFinder.cc:15
PFDisplacedVertexCandidateFinder::vertexCandidates
const std::unique_ptr< reco::PFDisplacedVertexCandidateCollection > & vertexCandidates() const
Definition: PFDisplacedVertexCandidateFinder.h:62
PFDisplacedVertexCandidateFinder::link
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.
Definition: PFDisplacedVertexCandidateFinder.cc:194
PFDisplacedVertexCandidateFwd.h
GlobalTrajectoryParameters.h
PFDisplacedVertexCandidateFinder::associate
IE associate(IE next, IE last, reco::PFDisplacedVertexCandidate &tempVertexCandidate)
-----— Different steps of the finder algorithm -----— ///
Definition: PFDisplacedVertexCandidateFinder.cc:110
PFDisplacedVertexCandidateFinder::setPrimaryVertex
void setPrimaryVertex(edm::Handle< reco::VertexCollection > mainVertexHandle, edm::Handle< reco::BeamSpot > beamSpotHandle)
Definition: PFDisplacedVertexCandidateFinder.cc:32
PFDisplacedVertexCandidateFinder::nChi2_max_
double nChi2_max_
Definition: PFDisplacedVertexCandidateFinder.h:133
PFDisplacedVertexCandidateFinder::getGlobalTrajectoryParameters
GlobalTrajectoryParameters getGlobalTrajectoryParameters(const reco::Track *) const
-----— TOOLS -----— //
Definition: PFDisplacedVertexCandidateFinder.cc:309
PFDisplacedVertexCandidateFinder::vertexCandidatesSize_
unsigned vertexCandidatesSize_
Definition: PFDisplacedVertexCandidateFinder.h:141
PFDisplacedVertexCandidateFinder::setInput
void setInput(const edm::Handle< reco::TrackCollection > &trackh, const MagneticField *magField)
Definition: PFDisplacedVertexCandidateFinder.cc:49
TwoTrackMinimumDistance
Definition: TwoTrackMinimumDistance.h:20
PFDisplacedVertexCandidateFinder::operator<<
friend std::ostream & operator<<(std::ostream &, const PFDisplacedVertexCandidateFinder &)
Definition: PFDisplacedVertexCandidateFinder.cc:345
reco::PFDisplacedVertexCandidate::VertexLinkTest
VertexLinkTest
Definition: PFDisplacedVertexCandidate.h:43
PFDisplacedVertexCandidateFinder::theMinimum_
TwoTrackMinimumDistance theMinimum_
Definition: PFDisplacedVertexCandidateFinder.h:144
edm::Handle< reco::TrackCollection >
TwoTrackMinimumDistance.h
PFDisplacedVertexCandidateFinder::dxy_
double dxy_
Definition: PFDisplacedVertexCandidateFinder.h:137
PFDisplacedVertexCandidateFinder::eventTracks_
std::list< reco::TrackBaseRef > eventTracks_
The track refs.
Definition: PFDisplacedVertexCandidateFinder.h:110
dqmdumpme.last
last
Definition: dqmdumpme.py:56
debug
#define debug
Definition: HDRShower.cc:19
TrackFwd.h
particleFlowDisplacedVertexCandidate_cfi.dcaPInnerHitCut
dcaPInnerHitCut
Definition: particleFlowDisplacedVertexCandidate_cfi.py:24
BeamSpot.h
PFDisplacedVertexCandidateFinder::IE
std::list< reco::TrackBaseRef >::iterator IE
Definition: PFDisplacedVertexCandidateFinder.h:33
reco::Track
Definition: Track.h:27
GlobalTrajectoryParameters
Definition: GlobalTrajectoryParameters.h:15
PFDisplacedVertexCandidateFinder::~PFDisplacedVertexCandidateFinder
~PFDisplacedVertexCandidateFinder()
Definition: PFDisplacedVertexCandidateFinder.cc:25
Point3DBase< float, GlobalTag >
PFDisplacedVertexCandidateFinder::dcaCut_
double dcaCut_
--— Algo parameters for the vertex finder -— ///
Definition: PFDisplacedVertexCandidateFinder.h:124
particleFlowDisplacedVertexCandidate_cfi.dcaCut
dcaCut
Definition: particleFlowDisplacedVertexCandidate_cfi.py:17
PFDisplacedVertexCandidateFinder::setDebug
void setDebug(bool debug)
sets debug printout flag
Definition: PFDisplacedVertexCandidateFinder.h:51
PFDisplacedVertexCandidateFinder::setParameters
void setParameters(double dcaCut, double primaryVertexCut, double dcaPInnerHitCut, const edm::ParameterSet &ps_trk)
------— Set different algo parameters ---— ///
Definition: PFDisplacedVertexCandidateFinder.h:40
edm::ParameterSet
Definition: ParameterSet.h:36
math::XYZPoint
XYZPointD XYZPoint
point in space with cartesian internal representation
Definition: Point3D.h:12
PFDisplacedVertexCandidate.h
PFDisplacedVertexCandidateFinder::pt_min_
double pt_min_
Definition: PFDisplacedVertexCandidateFinder.h:134
PFDisplacedVertexCandidateFinder::magField_
const MagneticField * magField_
Definition: PFDisplacedVertexCandidateFinder.h:152
PFDisplacedVertexCandidateFinder::eventTrackTrajectories_
std::vector< GlobalTrajectoryParameters > eventTrackTrajectories_
Definition: PFDisplacedVertexCandidateFinder.h:118
PFDisplacedVertexCandidateFinder
Definition: PFDisplacedVertexCandidateFinder.h:24
PFDisplacedVertexCandidateFinder::IBC
reco::PFDisplacedVertexCandidateCollection::const_iterator IBC
Definition: PFDisplacedVertexCandidateFinder.h:35
PFDisplacedVertexCandidateFinder::vertexCandidates_
std::unique_ptr< reco::PFDisplacedVertexCandidateCollection > vertexCandidates_
-----— Members -----— ///
Definition: PFDisplacedVertexCandidateFinder.h:107
PFDisplacedVertexCandidateFinder::packLinks
void packLinks(reco::PFDisplacedVertexCandidate &vertexCandidate)
Definition: PFDisplacedVertexCandidateFinder.cc:278
particleFlowDisplacedVertex_cfi.primaryVertexCut
primaryVertexCut
Definition: particleFlowDisplacedVertex_cfi.py:21
VertexFwd.h
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
eostools.move
def move(src, dest)
Definition: eostools.py:511
PFDisplacedVertexCandidateFinder::Mask
std::vector< bool > Mask
Mask used to spot if a track is free or not.
Definition: PFDisplacedVertexCandidateFinder.h:31
PFDisplacedVertexCandidateFinder::isSelected
bool isSelected(const reco::TrackBaseRef &trackref)
Definition: PFDisplacedVertexCandidateFinder.h:101
PFDisplacedVertexCandidateFinder::IEC
std::list< reco::TrackBaseRef >::const_iterator IEC
Definition: PFDisplacedVertexCandidateFinder.h:34
PFDisplacedVertexCandidateFinder::transferVertexCandidates
std::unique_ptr< reco::PFDisplacedVertexCandidateCollection > transferVertexCandidates()
Definition: PFDisplacedVertexCandidateFinder.h:58
PFDisplacedVertexCandidateFinder::pt_min_prim_
double pt_min_prim_
Definition: PFDisplacedVertexCandidateFinder.h:136
PFDisplacedVertexCandidateFinder::debug_
bool debug_
if true, debug printouts activated
Definition: PFDisplacedVertexCandidateFinder.h:149
edm::RefToBase< reco::Track >
PFDisplacedVertexCandidateFinder::findDisplacedVertexCandidates
void findDisplacedVertexCandidates()
-----— Main function which find vertices -----— ///
Definition: PFDisplacedVertexCandidateFinder.cc:80
PFDisplacedVertexCandidateFinder::dcaPInnerHitCut2_
double dcaPInnerHitCut2_
Maximum distance between the DCA Point and the inner hit of the track.
Definition: PFDisplacedVertexCandidateFinder.h:128
PFDisplacedVertexCandidateFinder::trackMask_
Mask trackMask_
Definition: PFDisplacedVertexCandidateFinder.h:115
ParameterSet.h
reco::PFDisplacedVertexCandidate
A block of tracks linked together.
Definition: PFDisplacedVertexCandidate.h:28
P
std::pair< OmniClusterRef, TrackingParticleRef > P
Definition: BDHadronTrackMonitoringAnalyzer.cc:202
MagneticField
Definition: MagneticField.h:19
GlobalPoint.h
PFDisplacedVertexCandidateFinder::primaryVertexCut2_
double primaryVertexCut2_
Do not reconstruct vertices wich are too close to the beam pipe.
Definition: PFDisplacedVertexCandidateFinder.h:126
PFDisplacedVertexCandidateFinder::goodPtResolution
bool goodPtResolution(const reco::TrackBaseRef &trackref) const
Quality Criterion on the Pt resolution to select a Track.
Definition: PFDisplacedVertexCandidateFinder.cc:320
GetRecoTauVFromDQM_MC_cff.next
next
Definition: GetRecoTauVFromDQM_MC_cff.py:31
PFDisplacedVertexCandidateFinder::pvtx_
math::XYZPoint pvtx_
Definition: PFDisplacedVertexCandidateFinder.h:146