CMS 3D CMS Logo

List of all members | Classes | Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes
PFDisplacedVertexHelper Class Reference

Displaced Vertex Finder Algorithm. More...

#include <PFDisplacedVertexHelper.h>

Classes

struct  TracksSelector
 Tool which store the information for the tracks selection. More...
 
struct  VertexIdentifier
 Tool which store the information for the vertex identification. More...
 

Public Member Functions

void Dump (std::ostream &out=std::cout) const
 
reco::PFDisplacedVertex::VertexType identifyVertex (const reco::PFDisplacedVertex &v) const
 Vertex identification tool. More...
 
bool isTrackSelected (const reco::Track &trk, const reco::PFDisplacedVertex::VertexTrackType vertexTrackType) const
 Select tracks tool. More...
 
 PFDisplacedVertexHelper ()
 
math::XYZPoint primaryVertex () const
 Set Vertex direction using the primary vertex. More...
 
void setPrimaryVertex (edm::Handle< reco::VertexCollection > mainVertexHandle, edm::Handle< reco::BeamSpot > beamSpotHandle)
 Update the primary vertex information. More...
 
void setTracksSelector (const edm::ParameterSet &ps)
 Set Tracks selector parameters. More...
 
void setVertexIdentifier (const edm::ParameterSet &ps)
 Set Vertex identifier parameters. More...
 
 ~PFDisplacedVertexHelper ()
 

Private Member Functions

bool isKaonMass (const reco::PFDisplacedVertex &v) const
 
int lambdaCP (const reco::PFDisplacedVertex &v) const
 Tools used to calculate quantities for vertex identification. More...
 

Private Attributes

math::XYZPoint pvtx_
 Primary vertex information updated for each event. More...
 
TracksSelector tracksSelector_
 
VertexIdentifier vertexIdentifier_
 

Static Private Attributes

static const double muon_mass2 = 0.106 * 0.106
 
static const double pion_mass2 = 0.0194
 Masses2 taken from PDG. More...
 
static const double proton_mass2 = 0.938 * 0.938
 

Detailed Description

Displaced Vertex Finder Algorithm.

Author
Maxime Gouzevitch
Date
October 2009

Definition at line 17 of file PFDisplacedVertexHelper.h.

Constructor & Destructor Documentation

◆ PFDisplacedVertexHelper()

PFDisplacedVertexHelper::PFDisplacedVertexHelper ( )

Definition at line 18 of file PFDisplacedVertexHelper.cc.

◆ ~PFDisplacedVertexHelper()

PFDisplacedVertexHelper::~PFDisplacedVertexHelper ( )

Definition at line 21 of file PFDisplacedVertexHelper.cc.

21 {}

Member Function Documentation

◆ Dump()

void PFDisplacedVertexHelper::Dump ( std::ostream &  out = std::cout) const

◆ identifyVertex()

reco::PFDisplacedVertex::VertexType PFDisplacedVertexHelper::identifyVertex ( const reco::PFDisplacedVertex v) const

Vertex identification tool.

Definition at line 72 of file PFDisplacedVertexHelper.cc.

72  {
75 
76  PFDisplacedVertex::M_Hypo massElec = PFDisplacedVertex::M_MASSLESS;
77  PFDisplacedVertex::M_Hypo massPion = PFDisplacedVertex::M_PION;
78 
79  math::XYZTLorentzVector mom_ee = v.secondaryMomentum(massElec, true);
80  math::XYZTLorentzVector mom_pipi = v.secondaryMomentum(massPion, true);
81 
82  // ===== (1) Identify fake and looper vertices ===== //
83 
84  double ang = v.angle_io();
85  double pt_ee = mom_ee.Pt();
86  double eta_vtx = v.position().eta();
87 
88  //cout << "Angle = " << ang << endl;
89 
90  bool bDirectionFake = ang > vertexIdentifier_.angle_max();
91  bool bLowPt = pt_ee < vertexIdentifier_.pt_min();
92  bool bLooperEta = fabs(eta_vtx) < vertexIdentifier_.looper_eta_max();
93 
94  bool isFake = bDirectionFake || (bLowPt && !bLooperEta);
95  bool isLooper = !bDirectionFake && bLowPt && bLooperEta;
96 
97  if (isFake)
99  if (isLooper)
100  return PFDisplacedVertex::LOOPER;
101 
102  // ===== (2) Identify Decays and Conversions ===== //
103 
104  int c1 = v.originalTrack(v.refittedTracks()[0])->charge();
105  int c2 = v.originalTrack(v.refittedTracks()[1])->charge();
106  double mass_ee = mom_ee.M();
107 
108  int nTracks = v.nTracks();
109  int nSecondaryTracks = v.nSecondaryTracks();
110  bool bPrimaryTracks = v.isTherePrimaryTracks();
111  bool bMergedTracks = v.isThereMergedTracks();
112 
113  bool bPair = (nTracks == nSecondaryTracks) && (nTracks == 2);
114  bool bOpposite = (c1 * c2 < -0.1);
115  bool bDirection = ang < vertexIdentifier_.angle_V0Conv_max();
116  bool bConvMass = mass_ee < vertexIdentifier_.mConv_max();
117 
118  bool bV0Conv = bPair && bOpposite && bDirection;
119 
120  // If the basic configuration of conversions and V0 decays is respected
121  // pair of secondary track with opposite charge and going in the right direction
122  // the selection is then based on mass limits
123  if (bV0Conv) {
124  // == (2.1) Identify Conversions == //
125 
126  bool isConv = bConvMass;
127 
128  if (isConv)
129  return PFDisplacedVertex::CONVERSION_LOOSE;
130 
131  // == (2.2) Identify K0 == //
132 
133  double mass_pipi = mom_pipi.M();
134 
135  bool bK0Mass = mass_pipi < vertexIdentifier_.mK0_max() && mass_pipi > vertexIdentifier_.mK0_min();
136 
137  bool isK0 = bK0Mass;
138 
139  if (isK0)
140  return PFDisplacedVertex::K0_DECAY;
141 
142  // == (2.3) Identify Lambda == //
143 
144  int lambdaKind = lambdaCP(v);
145 
146  bool isLambda = (lambdaKind == 1);
147  bool isLambdaBar = (lambdaKind == -1);
148 
149  if (isLambda)
150  return PFDisplacedVertex::LAMBDA_DECAY;
151  if (isLambdaBar)
152  return PFDisplacedVertex::LAMBDABAR_DECAY;
153  }
154 
155  // == (2.4) Identify K- and K+ ==
156  bool bK = (nSecondaryTracks == 1) && bPrimaryTracks && !bMergedTracks && !bOpposite;
157 
158  if (bK) {
159  bool bKMass = isKaonMass(v);
160 
161  bool isKPlus = bKMass && c1 > 0;
162  bool isKMinus = bKMass && c1 < 0;
163 
164  if (isKMinus)
165  return PFDisplacedVertex::KMINUS_DECAY_LOOSE;
166  if (isKPlus)
167  return PFDisplacedVertex::KPLUS_DECAY_LOOSE;
168  }
169 
170  // ===== (3) Identify Nuclears, Kinks and Remaining Fakes ===== //
171 
172  math::XYZTLorentzVector mom_prim = v.primaryMomentum(massPion, true);
173 
174  double p_prim = mom_prim.P();
175  double p_sec = mom_pipi.P();
176  double pt_prim = mom_prim.Pt();
177 
178  bool bLog = false;
179  if (p_prim > 0.05 && p_sec > 0.05)
180  bLog = log10(p_prim / p_sec) > vertexIdentifier_.logPrimSec_min();
181  bool bPtMin = pt_prim > vertexIdentifier_.pt_kink_min();
182 
183  // A vertex with at least 3 tracks is considered as high purity nuclear interaction
184  // the only exception is K- decay into 3 prongs. To be studied.
185  bool isNuclearHighPurity = nTracks > 2 && mass_ee > vertexIdentifier_.mNucl_min();
186  bool isFakeHighPurity = nTracks > 2 && mass_ee < vertexIdentifier_.mNucl_min();
187  // Two secondary tracks with some minimal tracks angular opening are still accepted
188  // as nuclear interactions
189  bool isNuclearLowPurity = (nTracks == nSecondaryTracks) && (nTracks == 2) && mass_ee > vertexIdentifier_.mNucl_min();
190 
191  bool isFakeNucl = (nTracks == nSecondaryTracks) && (nTracks == 2) && mass_ee < vertexIdentifier_.mNucl_min();
192 
193  // Kinks: 1 primary + 1 secondary is accepted only if the primary tracks
194  // has more energy than the secondary and primary have some minimal pT
195  // to produce a nuclear interaction
196  bool isNuclearKink = (nSecondaryTracks == 1) && bPrimaryTracks && !bMergedTracks && bLog && bPtMin;
197 
198  // Here some loopers may hide appearing in Particle Isolation plots. To be studied...
199  bool isFakeKink = ((nSecondaryTracks == 1) && bMergedTracks && !bPrimaryTracks) ||
200  ((nSecondaryTracks == 1) && bPrimaryTracks && !bMergedTracks && (!bLog || !bPtMin));
201 
202  if (isNuclearHighPurity)
203  return PFDisplacedVertex::NUCL;
204  if (isNuclearLowPurity)
205  return PFDisplacedVertex::NUCL_LOOSE;
206  if (isFakeKink || isFakeNucl || isFakeHighPurity)
208  if (isNuclearKink)
209  return PFDisplacedVertex::NUCL_KINK;
210 
211  return PFDisplacedVertex::ANY;
212 }

References PFDisplacedVertexHelper::VertexIdentifier::angle_max(), PFDisplacedVertexHelper::VertexIdentifier::angle_V0Conv_max(), cscdqm::ANY, alignmentValidation::c1, ALCARECOTkAlJpsiMuMu_cff::charge, sistrip::FAKE, PFDisplacedVertexHelper::VertexIdentifier::identifyVertices(), isKaonMass(), lambdaCP(), PFDisplacedVertexHelper::VertexIdentifier::logPrimSec_min(), PFDisplacedVertexHelper::VertexIdentifier::looper_eta_max(), PFDisplacedVertexHelper::VertexIdentifier::mConv_max(), PFDisplacedVertexHelper::VertexIdentifier::mK0_max(), PFDisplacedVertexHelper::VertexIdentifier::mK0_min(), PFDisplacedVertexHelper::VertexIdentifier::mNucl_min(), BeamSpotPI::nTracks, PFDisplacedVertexHelper::VertexIdentifier::pt_kink_min(), PFDisplacedVertexHelper::VertexIdentifier::pt_min(), findQualityFiles::v, and vertexIdentifier_.

Referenced by PFDisplacedVertexFinder::rejectAndLabelVertex().

◆ isKaonMass()

bool PFDisplacedVertexHelper::isKaonMass ( const reco::PFDisplacedVertex v) const
private

Definition at line 285 of file PFDisplacedVertexHelper.cc.

285  {
286  math::XYZVector trkInit = v.refittedTracks()[1].momentum();
287  math::XYZVector trkFinal = v.refittedTracks()[0].momentum();
288 
289  if (v.trackTypes()[0] == PFDisplacedVertex::T_TO_VERTEX) {
290  trkInit = v.refittedTracks()[0].momentum();
291  trkFinal = v.refittedTracks()[1].momentum();
292  }
293 
294  math::XYZVector trkNeutre(trkInit.x() - trkFinal.x(), trkInit.y() - trkFinal.y(), trkInit.z() - trkFinal.z());
295 
296  double Ec = sqrt(muon_mass2 + trkFinal.Mag2());
297  double En = sqrt(0 * 0 + trkNeutre.Mag2());
298 
299  math::XYZTLorentzVectorD trkMuNu(trkInit.x(), trkInit.y(), trkInit.z(), Ec + En);
300  double massMuNu = trkMuNu.M();
301 
302  bool bKMass = massMuNu > vertexIdentifier_.mK_min() && massMuNu < vertexIdentifier_.mK_max();
303 
304  return bKMass;
305 }

References PFDisplacedVertexHelper::VertexIdentifier::mK_max(), PFDisplacedVertexHelper::VertexIdentifier::mK_min(), muon_mass2, mathSSE::sqrt(), findQualityFiles::v, and vertexIdentifier_.

Referenced by identifyVertex().

◆ isTrackSelected()

bool PFDisplacedVertexHelper::isTrackSelected ( const reco::Track trk,
const reco::PFDisplacedVertex::VertexTrackType  vertexTrackType 
) const

Select tracks tool.

Definition at line 38 of file PFDisplacedVertexHelper.cc.

39  {
41  return true;
42 
43  bool isGoodTrack = false;
44 
45  bool isHighPurity = trk.quality(trk.qualityByName(tracksSelector_.quality()));
46 
47  double nChi2 = trk.normalizedChi2();
48  double pt = trk.pt();
49  int nHits = trk.numberOfValidHits();
50 
51  bool bIsPrimary = ((vertexTrackType == reco::PFDisplacedVertex::T_TO_VERTEX) ||
52  (vertexTrackType == reco::PFDisplacedVertex::T_MERGED));
53 
54  if (bIsPrimary) {
55  // Primary or merged track selection
56  isGoodTrack = ((nChi2 > tracksSelector_.nChi2_min() && nChi2 < tracksSelector_.nChi2_max()) || isHighPurity) &&
58  } else {
59  // Secondary tracks selection
60  int nOuterHits = trk.hitPattern().numberOfLostHits(HitPattern::MISSING_OUTER_HITS);
61 
62  double dxy = trk.dxy(pvtx_);
63 
64  isGoodTrack = nChi2 < tracksSelector_.nChi2_max() && pt > tracksSelector_.pt_min() &&
66  nOuterHits <= tracksSelector_.nOuterHits_max();
67  }
68 
69  return isGoodTrack;
70 }

References PVValHelper::dxy, reco::TrackBase::dxy(), PFDisplacedVertexHelper::TracksSelector::dxy_min(), reco::TrackBase::hitPattern(), PFDisplacedVertexHelper::TracksSelector::nChi2_max(), PFDisplacedVertexHelper::TracksSelector::nChi2_min(), nHits, PFDisplacedVertexHelper::TracksSelector::nHits_min(), reco::TrackBase::normalizedChi2(), PFDisplacedVertexHelper::TracksSelector::nOuterHits_max(), reco::HitPattern::numberOfLostHits(), reco::TrackBase::numberOfValidHits(), DiDispStaMuonMonitor_cfi::pt, reco::TrackBase::pt(), PFDisplacedVertexHelper::TracksSelector::pt_min(), pvtx_, PFDisplacedVertexHelper::TracksSelector::quality(), reco::TrackBase::quality(), reco::TrackBase::qualityByName(), PFDisplacedVertexHelper::TracksSelector::selectTracks(), reco::PFDisplacedVertex::T_MERGED, reco::PFDisplacedVertex::T_TO_VERTEX, and tracksSelector_.

Referenced by PFDisplacedVertexFinder::fitVertexFromSeed().

◆ lambdaCP()

int PFDisplacedVertexHelper::lambdaCP ( const reco::PFDisplacedVertex v) const
private

Tools used to calculate quantities for vertex identification.

Definition at line 214 of file PFDisplacedVertexHelper.cc.

214  {
215  int lambdaCP = 0;
216 
217  vector<Track> refittedTracks = v.refittedTracks();
218 
219  math::XYZTLorentzVector totalMomentumDcaRefit_lambda;
220  math::XYZTLorentzVector totalMomentumDcaRefit_lambdabar;
221 
222  reco::Track tMomentumDcaRefit_0 = refittedTracks[0];
223  reco::Track tMomentumDcaRefit_1 = refittedTracks[1];
224 
225  double mass2_0 = 0, mass2_1 = 0;
226 
227  int c1 = v.originalTrack(v.refittedTracks()[1])->charge();
228 
229  // --------------------------- lambda --------------------
230 
231  if (c1 > 0.1)
232  mass2_0 = pion_mass2, mass2_1 = proton_mass2;
233  else
234  mass2_0 = proton_mass2, mass2_1 = pion_mass2;
235 
236  double E = sqrt(tMomentumDcaRefit_0.p() * tMomentumDcaRefit_0.p() + mass2_0);
237 
238  math::XYZTLorentzVector momentumDcaRefit_0(
239  tMomentumDcaRefit_0.px(), tMomentumDcaRefit_0.py(), tMomentumDcaRefit_0.pz(), E);
240 
241  E = sqrt(tMomentumDcaRefit_1.p() * tMomentumDcaRefit_1.p() + mass2_1);
242 
243  math::XYZTLorentzVector momentumDcaRefit_1(
244  tMomentumDcaRefit_1.px(), tMomentumDcaRefit_1.py(), tMomentumDcaRefit_1.pz(), E);
245 
246  totalMomentumDcaRefit_lambda = momentumDcaRefit_0 + momentumDcaRefit_1;
247 
248  // --------------------------- anti - lambda --------------------
249 
250  if (c1 > 0.1)
251  mass2_1 = pion_mass2, mass2_0 = proton_mass2;
252  else
253  mass2_1 = proton_mass2, mass2_0 = pion_mass2;
254 
255  E = sqrt(tMomentumDcaRefit_0.p() * tMomentumDcaRefit_0.p() + mass2_0);
256 
257  math::XYZTLorentzVector momentumDcaRefit_01(
258  tMomentumDcaRefit_0.px(), tMomentumDcaRefit_0.py(), tMomentumDcaRefit_0.pz(), E);
259 
260  E = sqrt(tMomentumDcaRefit_1.p() * tMomentumDcaRefit_1.p() + mass2_1);
261 
262  math::XYZTLorentzVector momentumDcaRefit_11(
263  tMomentumDcaRefit_1.px(), tMomentumDcaRefit_1.py(), tMomentumDcaRefit_1.pz(), E);
264 
265  totalMomentumDcaRefit_lambdabar = momentumDcaRefit_01 + momentumDcaRefit_11;
266 
267  double mass_l = totalMomentumDcaRefit_lambda.M();
268  double mass_lbar = totalMomentumDcaRefit_lambdabar.M();
269 
270  // cout << "mass_l = " << mass_l << " mass_lbar = " << mass_lbar << endl;
271 
272  if (mass_l < mass_lbar && mass_l > vertexIdentifier_.mLambda_min() && mass_l < vertexIdentifier_.mLambda_max())
273  lambdaCP = 1;
274  else if (mass_lbar < mass_l && mass_lbar > vertexIdentifier_.mLambda_min() &&
275  mass_lbar < vertexIdentifier_.mLambda_max())
276  lambdaCP = -1;
277  else
278  lambdaCP = 0;
279 
280  //cout << "lambdaCP = " << lambdaCP << endl;
281 
282  return lambdaCP;
283 }

References alignmentValidation::c1, ALCARECOTkAlJpsiMuMu_cff::charge, PFDisplacedVertexHelper::VertexIdentifier::mLambda_max(), PFDisplacedVertexHelper::VertexIdentifier::mLambda_min(), reco::TrackBase::p(), pion_mass2, proton_mass2, reco::TrackBase::px(), reco::TrackBase::py(), reco::TrackBase::pz(), tkAlTrackRefitSequence_cff::refittedTracks, mathSSE::sqrt(), findQualityFiles::v, and vertexIdentifier_.

Referenced by identifyVertex().

◆ primaryVertex()

math::XYZPoint PFDisplacedVertexHelper::primaryVertex ( ) const
inline

Set Vertex direction using the primary vertex.

Definition at line 39 of file PFDisplacedVertexHelper.h.

39 { return pvtx_; }

References pvtx_.

Referenced by PFDisplacedVertexFinder::fitVertexFromSeed().

◆ setPrimaryVertex()

void PFDisplacedVertexHelper::setPrimaryVertex ( edm::Handle< reco::VertexCollection mainVertexHandle,
edm::Handle< reco::BeamSpot beamSpotHandle 
)

Update the primary vertex information.

Definition at line 23 of file PFDisplacedVertexHelper.cc.

24  {
25  const math::XYZPoint beamSpot = beamSpotHandle.isValid()
26  ? math::XYZPoint(beamSpotHandle->x0(), beamSpotHandle->y0(), beamSpotHandle->z0())
27  : math::XYZPoint(0, 0, 0);
28 
29  // The primary vertex is taken from the refitted list,
30  // if does not exist from the average offline beam spot position
31  // if does not exist (0,0,0) is used
32  pvtx_ = mainVertexHandle.isValid()
34  mainVertexHandle->begin()->x(), mainVertexHandle->begin()->y(), mainVertexHandle->begin()->z())
35  : beamSpot;
36 }

References pwdgSkimBPark_cfi::beamSpot, edm::HandleBase::isValid(), pvtx_, reco::BeamSpot::x0(), reco::BeamSpot::y0(), and reco::BeamSpot::z0().

Referenced by PFDisplacedVertexFinder::setPrimaryVertex().

◆ setTracksSelector()

void PFDisplacedVertexHelper::setTracksSelector ( const edm::ParameterSet ps)
inline

Set Tracks selector parameters.

Definition at line 23 of file PFDisplacedVertexHelper.h.

23 { tracksSelector_ = TracksSelector(ps); };

References tracksSelector_.

Referenced by PFDisplacedVertexFinder::setTracksSelector().

◆ setVertexIdentifier()

void PFDisplacedVertexHelper::setVertexIdentifier ( const edm::ParameterSet ps)
inline

Set Vertex identifier parameters.

Definition at line 26 of file PFDisplacedVertexHelper.h.

26 { vertexIdentifier_ = VertexIdentifier(ps); };

References vertexIdentifier_.

Referenced by PFDisplacedVertexFinder::setVertexIdentifier().

Member Data Documentation

◆ muon_mass2

const double PFDisplacedVertexHelper::muon_mass2 = 0.106 * 0.106
staticprivate

Definition at line 182 of file PFDisplacedVertexHelper.h.

Referenced by isKaonMass().

◆ pion_mass2

const double PFDisplacedVertexHelper::pion_mass2 = 0.0194
staticprivate

Masses2 taken from PDG.

Definition at line 181 of file PFDisplacedVertexHelper.h.

Referenced by lambdaCP().

◆ proton_mass2

const double PFDisplacedVertexHelper::proton_mass2 = 0.938 * 0.938
staticprivate

Definition at line 183 of file PFDisplacedVertexHelper.h.

Referenced by lambdaCP().

◆ pvtx_

math::XYZPoint PFDisplacedVertexHelper::pvtx_
private

Primary vertex information updated for each event.

Definition at line 178 of file PFDisplacedVertexHelper.h.

Referenced by Dump(), isTrackSelected(), primaryVertex(), and setPrimaryVertex().

◆ tracksSelector_

TracksSelector PFDisplacedVertexHelper::tracksSelector_
private

Definition at line 175 of file PFDisplacedVertexHelper.h.

Referenced by Dump(), isTrackSelected(), and setTracksSelector().

◆ vertexIdentifier_

VertexIdentifier PFDisplacedVertexHelper::vertexIdentifier_
private
PFDisplacedVertexHelper::TracksSelector::selectTracks
bool selectTracks() const
Definition: PFDisplacedVertexHelper.h:71
PFDisplacedVertexHelper::VertexIdentifier::angle_max
double angle_max() const
Definition: PFDisplacedVertexHelper.h:131
PFDisplacedVertexHelper::VertexIdentifier::identifyVertices
bool identifyVertices() const
Definition: PFDisplacedVertexHelper.h:129
pwdgSkimBPark_cfi.beamSpot
beamSpot
Definition: pwdgSkimBPark_cfi.py:5
PFDisplacedVertexHelper::VertexIdentifier::logPrimSec_min
double logPrimSec_min() const
Definition: PFDisplacedVertexHelper.h:147
reco::PFDisplacedVertex::T_TO_VERTEX
Definition: PFDisplacedVertex.h:36
PFDisplacedVertexHelper::TracksSelector::nOuterHits_max
int nOuterHits_max() const
Definition: PFDisplacedVertexHelper.h:77
PFDisplacedVertexHelper::proton_mass2
static const double proton_mass2
Definition: PFDisplacedVertexHelper.h:183
reco::PFDisplacedVertex::T_MERGED
Definition: PFDisplacedVertex.h:36
PFDisplacedVertexHelper::TracksSelector::nChi2_min
double nChi2_min() const
Definition: PFDisplacedVertexHelper.h:72
DiDispStaMuonMonitor_cfi.pt
pt
Definition: DiDispStaMuonMonitor_cfi.py:39
reco::TrackBase::p
double p() const
momentum vector magnitude
Definition: TrackBase.h:631
PFDisplacedVertexHelper::TracksSelector::nChi2_max
double nChi2_max() const
Definition: PFDisplacedVertexHelper.h:73
reco::BeamSpot::z0
double z0() const
z coordinate
Definition: BeamSpot.h:65
math::XYZTLorentzVectorD
ROOT::Math::LorentzVector< ROOT::Math::PxPyPzE4D< double > > XYZTLorentzVectorD
Lorentz vector with cylindrical internal representation using pseudorapidity.
Definition: LorentzVector.h:14
PFDisplacedVertexHelper::VertexIdentifier::mLambda_max
double mLambda_max() const
Definition: PFDisplacedVertexHelper.h:143
reco::TrackBase::px
double px() const
x coordinate of momentum vector
Definition: TrackBase.h:640
PFDisplacedVertexHelper::isKaonMass
bool isKaonMass(const reco::PFDisplacedVertex &v) const
Definition: PFDisplacedVertexHelper.cc:285
findQualityFiles.v
v
Definition: findQualityFiles.py:179
PFDisplacedVertexHelper::TracksSelector::dxy_min
double dxy_min() const
Definition: PFDisplacedVertexHelper.h:75
reco::HitPattern::numberOfLostHits
int numberOfLostHits(HitCategory category) const
Definition: HitPattern.h:878
BeamSpotPI::nTracks
Definition: BeamSpotPayloadInspectorHelper.h:42
reco::TrackBase::numberOfValidHits
unsigned short numberOfValidHits() const
number of valid hits found
Definition: TrackBase.h:798
PFDisplacedVertexHelper::VertexIdentifier::angle_V0Conv_max
double angle_V0Conv_max() const
Definition: PFDisplacedVertexHelper.h:132
PFDisplacedVertexHelper::TracksSelector::pt_min
double pt_min() const
Definition: PFDisplacedVertexHelper.h:74
PFDisplacedVertexHelper::VertexIdentifier::looper_eta_max
double looper_eta_max() const
Definition: PFDisplacedVertexHelper.h:146
reco::TrackBase::pt
double pt() const
track transverse momentum
Definition: TrackBase.h:637
PFDisplacedVertexHelper::VertexIdentifier::mK0_max
double mK0_max() const
Definition: PFDisplacedVertexHelper.h:139
PFDisplacedVertexHelper::VertexIdentifier::mConv_max
double mConv_max() const
Definition: PFDisplacedVertexHelper.h:137
reco::TrackBase::py
double py() const
y coordinate of momentum vector
Definition: TrackBase.h:643
sistrip::FAKE
Definition: ConstantsForHardwareSystems.h:165
nHits
const caConstants::TupleMultiplicity *__restrict__ const HitsOnGPU *__restrict__ double *__restrict__ float *__restrict__ double *__restrict__ uint32_t nHits
Definition: BrokenLineFitOnGPU.h:27
mathSSE::sqrt
T sqrt(T t)
Definition: SSEVec.h:19
reco::Track
Definition: Track.h:27
PFDisplacedVertexHelper::TracksSelector::Dump
void Dump(std::ostream &out=std::cout) const
Definition: PFDisplacedVertexHelper.h:91
PFDisplacedVertexHelper::pion_mass2
static const double pion_mass2
Masses2 taken from PDG.
Definition: PFDisplacedVertexHelper.h:181
PFDisplacedVertexHelper::TracksSelector::nHits_min
int nHits_min() const
Definition: PFDisplacedVertexHelper.h:76
PFDisplacedVertexHelper::VertexIdentifier::mLambda_min
double mLambda_min() const
Definition: PFDisplacedVertexHelper.h:142
ALCARECOTkAlJpsiMuMu_cff.charge
charge
Definition: ALCARECOTkAlJpsiMuMu_cff.py:47
math::XYZPoint
XYZPointD XYZPoint
point in space with cartesian internal representation
Definition: Point3D.h:12
PFDisplacedVertexHelper::muon_mass2
static const double muon_mass2
Definition: PFDisplacedVertexHelper.h:182
PFDisplacedVertexHelper::VertexIdentifier::mNucl_min
double mNucl_min() const
Definition: PFDisplacedVertexHelper.h:144
PFDisplacedVertexHelper::VertexIdentifier::Dump
void Dump(std::ostream &out=std::cout) const
Definition: PFDisplacedVertexHelper.h:157
math::XYZVector
XYZVectorD XYZVector
spatial vector with cartesian internal representation
Definition: Vector3D.h:31
PFDisplacedVertexHelper::VertexIdentifier::pt_kink_min
double pt_kink_min() const
Definition: PFDisplacedVertexHelper.h:135
alignmentValidation.c1
c1
do drawing
Definition: alignmentValidation.py:1025
reco::TrackBase::normalizedChi2
double normalizedChi2() const
chi-squared divided by n.d.o.f. (or chi-squared * 1e6 if n.d.o.f. is zero)
Definition: TrackBase.h:593
tkAlTrackRefitSequence_cff.refittedTracks
refittedTracks
Definition: tkAlTrackRefitSequence_cff.py:6
reco::TrackBase::qualityByName
static TrackQuality qualityByName(const std::string &name)
Definition: TrackBase.cc:126
reco::TrackBase::hitPattern
const HitPattern & hitPattern() const
Access the hit pattern, indicating in which Tracker layers the track has hits.
Definition: TrackBase.h:504
reco::BeamSpot::x0
double x0() const
x coordinate
Definition: BeamSpot.h:61
PVValHelper::dxy
Definition: PVValidationHelpers.h:48
PFDisplacedVertexHelper::vertexIdentifier_
VertexIdentifier vertexIdentifier_
Definition: PFDisplacedVertexHelper.h:176
cscdqm::ANY
Definition: CSCDQM_DCSBase.h:35
math::XYZTLorentzVector
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
Definition: LorentzVector.h:29
PFDisplacedVertexHelper::lambdaCP
int lambdaCP(const reco::PFDisplacedVertex &v) const
Tools used to calculate quantities for vertex identification.
Definition: PFDisplacedVertexHelper.cc:214
PFDisplacedVertexHelper::VertexIdentifier::pt_min
double pt_min() const
Definition: PFDisplacedVertexHelper.h:134
PFDisplacedVertexHelper::tracksSelector_
TracksSelector tracksSelector_
Definition: PFDisplacedVertexHelper.h:175
PFDisplacedVertexHelper::VertexIdentifier::mK_max
double mK_max() const
Definition: PFDisplacedVertexHelper.h:141
MillePedeFileConverter_cfg.out
out
Definition: MillePedeFileConverter_cfg.py:31
reco::TrackBase::pz
double pz() const
z coordinate of momentum vector
Definition: TrackBase.h:646
edm::HandleBase::isValid
bool isValid() const
Definition: HandleBase.h:70
reco::BeamSpot::y0
double y0() const
y coordinate
Definition: BeamSpot.h:63
reco::PFDisplacedVertex::M_Hypo
M_Hypo
Mass hypothesis enum.
Definition: PFDisplacedVertex.h:30
reco::TrackBase::dxy
double dxy() const
dxy parameter. (This is the transverse impact parameter w.r.t. to (0,0,0) ONLY if refPoint is close t...
Definition: TrackBase.h:608
PFDisplacedVertexHelper::VertexIdentifier::mK_min
double mK_min() const
Definition: PFDisplacedVertexHelper.h:140
reco::TrackBase::quality
bool quality(const TrackQuality) const
Track quality.
Definition: TrackBase.h:552
PFDisplacedVertexHelper::pvtx_
math::XYZPoint pvtx_
Primary vertex information updated for each event.
Definition: PFDisplacedVertexHelper.h:178
PFDisplacedVertexHelper::VertexIdentifier::mK0_min
double mK0_min() const
Definition: PFDisplacedVertexHelper.h:138
PFDisplacedVertexHelper::TracksSelector::quality
std::string quality() const
Definition: PFDisplacedVertexHelper.h:78