7 const std::vector<double>&
cuts,
8 bool hltIterativeTracking =
true) {
36 return hltIterativeTracking ?
cuts[1] :
cuts[0];
38 return hltIterativeTracking ?
cuts[2] :
cuts[0];
42 return hltIterativeTracking ?
cuts.at(5) :
cuts[0];
47 const std::vector<unsigned int>&
cuts,
48 bool hltIterativeTracking =
true) {
76 return hltIterativeTracking ?
cuts[1] :
cuts[0];
78 return hltIterativeTracking ?
cuts[2] :
cuts[0];
82 return hltIterativeTracking ?
cuts.at(5) :
cuts[0];
237 const std::vector<double>& DPtovPtCut,
238 const std::vector<unsigned>& NHitCut,
239 bool useIterTracking,
245 const double p = trackref->p();
246 const double pT = trackref->pt();
247 const double dpT = trackref->ptError();
248 const unsigned int nHit = trackref->hitPattern().trackerLayersWithMeasurement();
250 const unsigned int lostHits = trackref->numberOfLostHits();
257 LogDebug(
"goodPtResolution") <<
" PFBlockAlgo: PFrecTrack->Track Pt= " <<
pT <<
" DPt = " << dpT << std::endl;
259 double dptCut =
dPtCut(trackref->algo(), DPtovPtCut, useIterTracking);
260 unsigned int nhitCut =
nHitCut(trackref->algo(), NHitCut, useIterTracking);
262 if ((dptCut > 0. && dpT /
pT > dptCut * sigmaHad) || nHit < nhitCut) {
263 LogDebug(
"goodPtResolution") <<
" PFBlockAlgo: skip badly measured track"
264 <<
", P = " <<
p <<
", Pt = " <<
pT <<
" DPt = " << dpT <<
", N(hits) = " << nHit
265 <<
" (Lost : " <<
lostHits <<
"/" << nLostHit <<
")"
266 <<
", Algo = " << trackref->algo() << std::endl;
267 LogDebug(
"goodPtResolution") <<
" cut is DPt/Pt < " << dptCut * sigmaHad << std::endl;
268 LogDebug(
"goodPtResolution") <<
" cut is NHit >= " << nhitCut << std::endl;