CMS 3D CMS Logo

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

#include <TrajSeedMatcher.h>

Classes

struct  Configuration
 
struct  MatchInfo
 
class  MatchingCuts
 
class  MatchingCutsV1
 
class  MatchingCutsV2
 
struct  SCHitMatch
 
struct  SeedWithInfo
 

Public Member Functions

std::vector< TrajSeedMatcher::SeedWithInfooperator() (const GlobalPoint &candPos, const float energy)
 
 TrajSeedMatcher (TrajectorySeedCollection const &seeds, math::XYZPoint const &vprim, Configuration const &cfg, edm::EventSetup const &iSetup, MeasurementTrackerEvent const &measTkEvt)
 
 ~TrajSeedMatcher ()=default
 

Static Public Member Functions

static edm::ParameterSetDescription makePSetDescription ()
 

Private Member Functions

void clearCache ()
 
auto ftsFromVertexToPoint (GlobalPoint const &point, GlobalPoint const &vertex, float energy, int charge) const
 
size_t getNrHitsRequired (const int nrValidLayers) const
 
int getNrValidLayersAlongTraj (const DetId &hitId, const TrajectoryStateOnSurface &hitTrajState) const
 
int getNrValidLayersAlongTraj (const SCHitMatch &hit1, const SCHitMatch &hit2, const GlobalPoint &candPos, const float energy, const int charge)
 
const TrajectoryStateOnSurfacegetTrajStateFromPoint (const TrackingRecHit &hit, const FreeTrajectoryState &initialState, const GlobalPoint &point, const PropagatorWithMaterial &propagator)
 
const TrajectoryStateOnSurfacegetTrajStateFromVtx (const TrackingRecHit &hit, const TrajectoryStateOnSurface &initialState, const PropagatorWithMaterial &propagator)
 
bool layerHasValidHits (const DetLayer &layer, const TrajectoryStateOnSurface &hitSurState, const Propagator &propToLayerFromState) const
 
TrajectoryStateOnSurface makeTrajStateOnSurface (const GlobalPoint &pos, const float energy, const int charge) const
 
std::vector< SCHitMatchprocessSeed (const TrajectorySeed &seed, const GlobalPoint &candPos, const float energy, const TrajectoryStateOnSurface &initialTrajState)
 

Static Private Member Functions

static float getZVtxFromExtrapolation (const GlobalPoint &primeVtxPos, const GlobalPoint &hitPos, const GlobalPoint &candPos)
 

Private Attributes

PropagatorWithMaterial backwardPropagator_
 
Configuration const & cfg_
 
DetLayerGeometry const & detLayerGeom_
 
PropagatorWithMaterial forwardPropagator_
 
MagneticField const & magField_
 
MagneticField const & magFieldParam_
 
MeasurementTrackerEvent const & measTkEvt_
 
NavigationSchool const & navSchool_
 
TrajectorySeedCollection const & seeds_
 
IntGlobalPointPairUnorderedMap< TrajectoryStateOnSurfacetrajStateFromPointNegChargeCache_
 
IntGlobalPointPairUnorderedMap< TrajectoryStateOnSurfacetrajStateFromPointPosChargeCache_
 
std::unordered_map< int, TrajectoryStateOnSurfacetrajStateFromVtxNegChargeCache_
 
std::unordered_map< int, TrajectoryStateOnSurfacetrajStateFromVtxPosChargeCache_
 
const GlobalPoint vprim_
 

Static Private Attributes

static constexpr float kElectronMass_ = 0.000511
 

Detailed Description

Definition at line 54 of file TrajSeedMatcher.h.

Constructor & Destructor Documentation

◆ TrajSeedMatcher()

TrajSeedMatcher::TrajSeedMatcher ( TrajectorySeedCollection const &  seeds,
math::XYZPoint const &  vprim,
TrajSeedMatcher::Configuration const &  cfg,
edm::EventSetup const &  iSetup,
MeasurementTrackerEvent const &  measTkEvt 
)
explicit

Definition at line 102 of file TrajSeedMatcher.cc.

107  : seeds_{seeds},
108  vprim_(vprim.x(), vprim.y(), vprim.z()),
109  cfg_{cfg},
110  magField_{iSetup.getData(cfg_.magFieldToken)},
111  magFieldParam_{iSetup.getData(cfg_.paramMagFieldToken)},
113  navSchool_{iSetup.getData(cfg_.navSchoolToken)},
114  detLayerGeom_{iSetup.getData(cfg_.detLayerGeomToken)},

References InitialStep_cff::seeds.

◆ ~TrajSeedMatcher()

TrajSeedMatcher::~TrajSeedMatcher ( )
default

Member Function Documentation

◆ clearCache()

void TrajSeedMatcher::clearCache ( )
private

◆ ftsFromVertexToPoint()

auto TrajSeedMatcher::ftsFromVertexToPoint ( GlobalPoint const &  point,
GlobalPoint const &  vertex,
float  energy,
int  charge 
) const
inlineprivate

Definition at line 192 of file TrajSeedMatcher.h.

192  {
193  //parameterised b-fields may not be valid for entire detector, just tracker volume
194  //however need we ecal so we auto select based on the position
195  bool useMagFieldParam = cfg_.useParamMagFieldIfDefined && magFieldParam_.isDefined(point);
196  auto const& magneticField = useMagFieldParam ? magFieldParam_ : magField_;
198  }

References cfg_, ALCARECOTkAlJpsiMuMu_cff::charge, HCALHighEnergyHPDFilter_cfi::energy, trackingTools::ftsFromVertexToPoint(), MagneticField::isDefined(), magField_, magFieldParam_, HLT_FULL_cff::magneticField, point, TrajSeedMatcher::Configuration::useParamMagFieldIfDefined, and bphysicsOniaDQM_cfi::vertex.

Referenced by getNrValidLayersAlongTraj(), makeTrajStateOnSurface(), and processSeed().

◆ getNrHitsRequired()

size_t TrajSeedMatcher::getNrHitsRequired ( const int  nrValidLayers) const
private

Definition at line 367 of file TrajSeedMatcher.cc.

367  {
368  for (size_t binNr = 0; binNr < cfg_.minNrHitsValidLayerBins.size(); binNr++) {
369  if (nrValidLayers < cfg_.minNrHitsValidLayerBins[binNr])
370  return cfg_.minNrHits[binNr];
371  }
372  return cfg_.minNrHits.back();
373 }

References cfg_, TrajSeedMatcher::Configuration::minNrHits, and TrajSeedMatcher::Configuration::minNrHitsValidLayerBins.

Referenced by operator()().

◆ getNrValidLayersAlongTraj() [1/2]

int TrajSeedMatcher::getNrValidLayersAlongTraj ( const DetId hitId,
const TrajectoryStateOnSurface hitTrajState 
) const
private

Definition at line 316 of file TrajSeedMatcher.cc.

316  {
317  const DetLayer* detLayer = detLayerGeom_.idToLayer(hitId);
318  if (detLayer == nullptr)
319  return 0;
320 
321  const FreeTrajectoryState& hitFreeState = *hitTrajState.freeState();
322  auto const inLayers = navSchool_.compatibleLayers(*detLayer, hitFreeState, oppositeToMomentum);
323  const auto outLayers = navSchool_.compatibleLayers(*detLayer, hitFreeState, alongMomentum);
324 
325  int nrValidLayers = 1; //because our current hit is also valid and wont be included in the count otherwise
326  int nrPixInLayers = 0;
327  int nrPixOutLayers = 0;
328  for (auto layer : inLayers) {
329  if (GeomDetEnumerators::isTrackerPixel(layer->subDetector())) {
330  nrPixInLayers++;
331  if (layerHasValidHits(*layer, hitTrajState, backwardPropagator_))
332  nrValidLayers++;
333  }
334  }
335  for (auto layer : outLayers) {
336  if (GeomDetEnumerators::isTrackerPixel(layer->subDetector())) {
337  nrPixOutLayers++;
338  if (layerHasValidHits(*layer, hitTrajState, forwardPropagator_))
339  nrValidLayers++;
340  }
341  }
342  return nrValidLayers;
343 }

References alongMomentum, backwardPropagator_, NavigationSchool::compatibleLayers(), detLayerGeom_, forwardPropagator_, TrajectoryStateOnSurface::freeState(), DetLayerGeometry::idToLayer(), GeomDetEnumerators::isTrackerPixel(), layerHasValidHits(), navSchool_, and oppositeToMomentum.

◆ getNrValidLayersAlongTraj() [2/2]

int TrajSeedMatcher::getNrValidLayersAlongTraj ( const SCHitMatch hit1,
const SCHitMatch hit2,
const GlobalPoint candPos,
const float  energy,
const int  charge 
)
private

◆ getTrajStateFromPoint()

const TrajectoryStateOnSurface & TrajSeedMatcher::getTrajStateFromPoint ( const TrackingRecHit hit,
const FreeTrajectoryState initialState,
const GlobalPoint point,
const PropagatorWithMaterial propagator 
)
private

Definition at line 274 of file TrajSeedMatcher.cc.

277  {
278  auto& trajStateFromPointCache =
280 
281  auto key = std::make_pair(hit.det()->gdetIndex(), point);
282  auto res = trajStateFromPointCache.find(key);
283  if (res != trajStateFromPointCache.end())
284  return res->second;
285  else { //doesnt exist, need to make it
286  //FIXME: check for efficiency
287  auto val = trajStateFromPointCache.emplace(key, propagator.propagate(initialState, hit.det()->surface()));
288  return val.first->second;
289  }
290 }

References FreeTrajectoryState::charge(), crabWrapper::key, point, TrackCandidateProducer_cfi::propagator, trajStateFromPointNegChargeCache_, trajStateFromPointPosChargeCache_, and heppy_batch::val.

Referenced by getNrValidLayersAlongTraj(), and processSeed().

◆ getTrajStateFromVtx()

const TrajectoryStateOnSurface & TrajSeedMatcher::getTrajStateFromVtx ( const TrackingRecHit hit,
const TrajectoryStateOnSurface initialState,
const PropagatorWithMaterial propagator 
)
private

Definition at line 257 of file TrajSeedMatcher.cc.

259  {
260  auto& trajStateFromVtxCache =
262 
263  auto key = hit.det()->gdetIndex();
264  auto res = trajStateFromVtxCache.find(key);
265  if (res != trajStateFromVtxCache.end())
266  return res->second;
267  else { //doesnt exist, need to make it
268  //FIXME: check for efficiency
269  auto val = trajStateFromVtxCache.emplace(key, propagator.propagate(initialState, hit.det()->surface()));
270  return val.first->second;
271  }
272 }

References TrajectoryStateOnSurface::charge(), crabWrapper::key, TrackCandidateProducer_cfi::propagator, trajStateFromVtxNegChargeCache_, trajStateFromVtxPosChargeCache_, and heppy_batch::val.

Referenced by processSeed().

◆ getZVtxFromExtrapolation()

float TrajSeedMatcher::getZVtxFromExtrapolation ( const GlobalPoint primeVtxPos,
const GlobalPoint hitPos,
const GlobalPoint candPos 
)
staticprivate

Definition at line 245 of file TrajSeedMatcher.cc.

247  {
248  auto sq = [](float x) { return x * x; };
249  auto calRDiff = [sq](const GlobalPoint& p1, const GlobalPoint& p2) {
250  return std::sqrt(sq(p2.x() - p1.x()) + sq(p2.y() - p1.y()));
251  };
252  const double r1Diff = calRDiff(primeVtxPos, hitPos);
253  const double r2Diff = calRDiff(hitPos, candPos);
254  return hitPos.z() - r1Diff * (candPos.z() - hitPos.z()) / r2Diff;
255 }

References p1, p2, mathSSE::sqrt(), x, and PV3DBase< T, PVType, FrameType >::z().

Referenced by getNrValidLayersAlongTraj(), and processSeed().

◆ layerHasValidHits()

bool TrajSeedMatcher::layerHasValidHits ( const DetLayer layer,
const TrajectoryStateOnSurface hitSurState,
const Propagator propToLayerFromState 
) const
private

Definition at line 345 of file TrajSeedMatcher.cc.

347  {
348  //FIXME: do not hardcode with werid magic numbers stolen from ancient tracking code
349  //its taken from https://cmssdt.cern.ch/dxr/CMSSW/source/RecoTracker/TrackProducer/interface/TrackProducerBase.icc#165
350  //which inspires this code
351  Chi2MeasurementEstimator estimator(30., -3.0, 0.5, 2.0, 0.5, 1.e12); // same as defauts....
352 
353  const std::vector<GeometricSearchDet::DetWithState>& detWithState =
354  layer.compatibleDets(hitSurState, propToLayerFromState, estimator);
355  if (detWithState.empty())
356  return false;
357  else {
358  DetId id = detWithState.front().first->geographicalId();
360  if (measDet.isActive())
361  return true;
362  else
363  return false;
364  }
365 }

References GeometricSearchDet::compatibleDets(), MeasurementTrackerEvent::idToDet(), MeasurementDetWithData::isActive(), and measTkEvt_.

Referenced by getNrValidLayersAlongTraj().

◆ makePSetDescription()

edm::ParameterSetDescription TrajSeedMatcher::makePSetDescription ( )
static

Definition at line 118 of file TrajSeedMatcher.cc.

118  {
120  desc.add<bool>("useRecoVertex", false);
121  desc.add<bool>("enableHitSkipping", false);
122  desc.add<bool>("requireExactMatchCount", true);
123  desc.add<bool>("useParamMagFieldIfDefined", true);
124  desc.add<edm::ESInputTag>("paramMagField", edm::ESInputTag{"", "ParabolicMf"});
125  desc.add<edm::ESInputTag>("navSchool", edm::ESInputTag{"", "SimpleNavigationSchool"});
126  desc.add<edm::ESInputTag>("detLayerGeom", edm::ESInputTag{"", "hltESPGlobalDetLayerGeometry"});
127  desc.add<std::vector<int> >("minNrHitsValidLayerBins", {4});
128  desc.add<std::vector<unsigned int> >("minNrHits", {2, 3});
129 
131  auto cutDescCases = 1 >> (edm::ParameterDescription<double>("dPhiMax", 0.04, true) and
132  edm::ParameterDescription<double>("dRZMax", 0.09, true) and
133  edm::ParameterDescription<double>("dRZMaxLowEtThres", 20., true) and
134  edm::ParameterDescription<std::vector<double> >("dRZMaxLowEtEtaBins", {1., 1.5}, true) and
135  edm::ParameterDescription<std::vector<double> >("dRZMaxLowEt", {0.09, 0.15, 0.09}, true)) or
136  2 >> (edm::ParameterDescription<std::vector<double> >("dPhiMaxHighEt", {0.003}, true) and
137  edm::ParameterDescription<std::vector<double> >("dPhiMaxHighEtThres", {0.0}, true) and
138  edm::ParameterDescription<std::vector<double> >("dPhiMaxLowEtGrad", {0.0}, true) and
139  edm::ParameterDescription<std::vector<double> >("dRZMaxHighEt", {0.005}, true) and
140  edm::ParameterDescription<std::vector<double> >("dRZMaxHighEtThres", {30}, true) and
141  edm::ParameterDescription<std::vector<double> >("dRZMaxLowEtGrad", {-0.002}, true) and
142  edm::ParameterDescription<std::vector<double> >("etaBins", {}, true));
143  cutsDesc.ifValue(edm::ParameterDescription<int>("version", 1, true), std::move(cutDescCases));
144 
146  defaults.addParameter<double>("dPhiMax", 0.04);
147  defaults.addParameter<double>("dRZMax", 0.09);
148  defaults.addParameter<double>("dRZMaxLowEtThres", 0.09);
149  defaults.addParameter<std::vector<double> >("dRZMaxLowEtEtaBins", std::vector<double>{1., 1.5});
150  defaults.addParameter<std::vector<double> >("dRZMaxLowEt", std::vector<double>{0.09, 0.09, 0.09});
151  defaults.addParameter<int>("version", 1);
152  desc.addVPSet("matchingCuts", cutsDesc, std::vector<edm::ParameterSet>{defaults, defaults, defaults});
153  return desc;
154 }

References l1GtPatternGenerator_cfi::defaults, submitPVResolutionJobs::desc, eostools::move(), and or.

Referenced by ElectronNHitSeedProducer::fillDescriptions().

◆ makeTrajStateOnSurface()

TrajectoryStateOnSurface TrajSeedMatcher::makeTrajStateOnSurface ( const GlobalPoint pos,
const float  energy,
const int  charge 
) const
private

Definition at line 292 of file TrajSeedMatcher.cc.

294  {
295  auto freeTS = ftsFromVertexToPoint(pos, vprim_, energy, charge);
296  return TrajectoryStateOnSurface(freeTS, *PerpendicularBoundPlaneBuilder{}(freeTS.position(), freeTS.momentum()));
297 }

References ALCARECOTkAlJpsiMuMu_cff::charge, HCALHighEnergyHPDFilter_cfi::energy, ftsFromVertexToPoint(), and vprim_.

Referenced by operator()().

◆ operator()()

std::vector< TrajSeedMatcher::SeedWithInfo > TrajSeedMatcher::operator() ( const GlobalPoint candPos,
const float  energy 
)

Definition at line 156 of file TrajSeedMatcher.cc.

156  {
157  clearCache();
158 
159  std::vector<SeedWithInfo> matchedSeeds;
160 
161  //these are super expensive functions
162  TrajectoryStateOnSurface scTrajStateOnSurfNeg = makeTrajStateOnSurface(candPos, energy, -1);
163  TrajectoryStateOnSurface scTrajStateOnSurfPos = makeTrajStateOnSurface(candPos, energy, 1);
164 
165  for (const auto& seed : seeds_) {
166  std::vector<SCHitMatch> matchedHitsNeg = processSeed(seed, candPos, energy, scTrajStateOnSurfNeg);
167  std::vector<SCHitMatch> matchedHitsPos = processSeed(seed, candPos, energy, scTrajStateOnSurfPos);
168 
169  int nrValidLayersPos = 0;
170  int nrValidLayersNeg = 0;
171  if (matchedHitsNeg.size() >= 2) {
172  nrValidLayersNeg = getNrValidLayersAlongTraj(matchedHitsNeg[0], matchedHitsNeg[1], candPos, energy, -1);
173  }
174  if (matchedHitsPos.size() >= 2) {
175  nrValidLayersPos = getNrValidLayersAlongTraj(matchedHitsPos[0], matchedHitsPos[1], candPos, energy, +1);
176  }
177 
178  int nrValidLayers = std::max(nrValidLayersNeg, nrValidLayersPos);
179  size_t nrHitsRequired = getNrHitsRequired(nrValidLayers);
180  bool matchCountPasses;
182  // If the input seed collection is not cross-cleaned, an exact match is necessary to
183  // prevent redundant seeds.
184  matchCountPasses = matchedHitsNeg.size() == nrHitsRequired || matchedHitsPos.size() == nrHitsRequired;
185  } else {
186  matchCountPasses = matchedHitsNeg.size() >= nrHitsRequired || matchedHitsPos.size() >= nrHitsRequired;
187  }
188  if (matchCountPasses) {
189  matchedSeeds.push_back({seed, makeMatchInfoVector(matchedHitsPos, matchedHitsNeg), nrValidLayers});
190  }
191  }
192  return matchedSeeds;
193 }

References cfg_, clearCache(), HCALHighEnergyHPDFilter_cfi::energy, getNrHitsRequired(), getNrValidLayersAlongTraj(), makeTrajStateOnSurface(), SiStripPI::max, processSeed(), TrajSeedMatcher::Configuration::requireExactMatchCount, fileCollector::seed, and seeds_.

◆ processSeed()

std::vector< TrajSeedMatcher::SCHitMatch > TrajSeedMatcher::processSeed ( const TrajectorySeed seed,
const GlobalPoint candPos,
const float  energy,
const TrajectoryStateOnSurface initialTrajState 
)
private

Definition at line 195 of file TrajSeedMatcher.cc.

198  {
199  //next try passing these variables in once...
200  const float candEta = candPos.eta();
201  const float candEt = energy * std::sin(candPos.theta());
202  const int charge = initialTrajState.charge();
203 
204  std::vector<SCHitMatch> matches;
205  FreeTrajectoryState firstMatchFreeTraj;
206  GlobalPoint prevHitPos;
208  const auto nCuts = cfg_.matchingCuts.size();
209  for (size_t iHit = 0;
210  matches.size() < nCuts && iHit < seed.nHits() && (cfg_.enableHitSkipping || iHit == matches.size());
211  iHit++) {
212  auto const& recHit = *(seed.recHits().begin() + iHit);
213 
214  if (!recHit.isValid()) {
215  continue;
216  }
217 
218  const bool doFirstMatch = matches.empty();
219 
220  auto const& trajState = doFirstMatch
221  ? getTrajStateFromVtx(recHit, initialTrajState, backwardPropagator_)
222  : getTrajStateFromPoint(recHit, firstMatchFreeTraj, prevHitPos, forwardPropagator_);
223  if (!trajState.isValid()) {
224  continue;
225  }
226 
227  auto const& vtxForMatchObject = doFirstMatch ? vprim_ : vertex;
228  auto match = makeSCHitMatch(vtxForMatchObject, trajState, recHit, candEt, candEta, candPos.phi(), charge, 1);
229 
230  if ((*cfg_.matchingCuts[matches.size()])(match)) {
231  matches.push_back(match);
232  if (doFirstMatch) {
233  //now we can figure out the z vertex
234  double zVertex = cfg_.useRecoVertex ? vprim_.z() : getZVtxFromExtrapolation(vprim_, match.hitPos, candPos);
236  firstMatchFreeTraj = ftsFromVertexToPoint(match.hitPos, vertex, energy, charge);
237  }
238  prevHitPos = match.hitPos;
239  }
240  }
241  return matches;
242 }

References backwardPropagator_, cfg_, ALCARECOTkAlJpsiMuMu_cff::charge, TrajectoryStateOnSurface::charge(), TrajSeedMatcher::Configuration::enableHitSkipping, HCALHighEnergyHPDFilter_cfi::energy, PV3DBase< T, PVType, FrameType >::eta(), forwardPropagator_, ftsFromVertexToPoint(), getTrajStateFromPoint(), getTrajStateFromVtx(), getZVtxFromExtrapolation(), TrajectoryStateOnSurface::isValid(), match(), patCandidatesForDimuonsSequences_cff::matches, TrajSeedMatcher::Configuration::matchingCuts, PV3DBase< T, PVType, FrameType >::phi(), rpcPointValidation_cfi::recHit, fileCollector::seed, funct::sin(), PV3DBase< T, PVType, FrameType >::theta(), TrajSeedMatcher::Configuration::useRecoVertex, bphysicsOniaDQM_cfi::vertex, vprim_, PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), PV3DBase< T, PVType, FrameType >::z(), and HLT_FULL_cff::zVertex.

Referenced by operator()().

Member Data Documentation

◆ backwardPropagator_

PropagatorWithMaterial TrajSeedMatcher::backwardPropagator_
private

Definition at line 215 of file TrajSeedMatcher.h.

Referenced by getNrValidLayersAlongTraj(), and processSeed().

◆ cfg_

Configuration const& TrajSeedMatcher::cfg_
private

◆ detLayerGeom_

DetLayerGeometry const& TrajSeedMatcher::detLayerGeom_
private

Definition at line 212 of file TrajSeedMatcher.h.

Referenced by getNrValidLayersAlongTraj().

◆ forwardPropagator_

PropagatorWithMaterial TrajSeedMatcher::forwardPropagator_
private

Definition at line 214 of file TrajSeedMatcher.h.

Referenced by getNrValidLayersAlongTraj(), and processSeed().

◆ kElectronMass_

constexpr float TrajSeedMatcher::kElectronMass_ = 0.000511
staticconstexprprivate

Definition at line 201 of file TrajSeedMatcher.h.

◆ magField_

MagneticField const& TrajSeedMatcher::magField_
private

Definition at line 208 of file TrajSeedMatcher.h.

Referenced by ftsFromVertexToPoint().

◆ magFieldParam_

MagneticField const& TrajSeedMatcher::magFieldParam_
private

Definition at line 209 of file TrajSeedMatcher.h.

Referenced by ftsFromVertexToPoint().

◆ measTkEvt_

MeasurementTrackerEvent const& TrajSeedMatcher::measTkEvt_
private

Definition at line 210 of file TrajSeedMatcher.h.

Referenced by layerHasValidHits().

◆ navSchool_

NavigationSchool const& TrajSeedMatcher::navSchool_
private

Definition at line 211 of file TrajSeedMatcher.h.

Referenced by getNrValidLayersAlongTraj().

◆ seeds_

TrajectorySeedCollection const& TrajSeedMatcher::seeds_
private

Definition at line 203 of file TrajSeedMatcher.h.

Referenced by operator()().

◆ trajStateFromPointNegChargeCache_

IntGlobalPointPairUnorderedMap<TrajectoryStateOnSurface> TrajSeedMatcher::trajStateFromPointNegChargeCache_
private

Definition at line 221 of file TrajSeedMatcher.h.

Referenced by clearCache(), and getTrajStateFromPoint().

◆ trajStateFromPointPosChargeCache_

IntGlobalPointPairUnorderedMap<TrajectoryStateOnSurface> TrajSeedMatcher::trajStateFromPointPosChargeCache_
private

Definition at line 220 of file TrajSeedMatcher.h.

Referenced by clearCache(), and getTrajStateFromPoint().

◆ trajStateFromVtxNegChargeCache_

std::unordered_map<int, TrajectoryStateOnSurface> TrajSeedMatcher::trajStateFromVtxNegChargeCache_
private

Definition at line 218 of file TrajSeedMatcher.h.

Referenced by clearCache(), and getTrajStateFromVtx().

◆ trajStateFromVtxPosChargeCache_

std::unordered_map<int, TrajectoryStateOnSurface> TrajSeedMatcher::trajStateFromVtxPosChargeCache_
private

Definition at line 217 of file TrajSeedMatcher.h.

Referenced by clearCache(), and getTrajStateFromVtx().

◆ vprim_

const GlobalPoint TrajSeedMatcher::vprim_
private
TrajSeedMatcher::seeds_
TrajectorySeedCollection const & seeds_
Definition: TrajSeedMatcher.h:203
ParameterDescription
TrajSeedMatcher::getZVtxFromExtrapolation
static float getZVtxFromExtrapolation(const GlobalPoint &primeVtxPos, const GlobalPoint &hitPos, const GlobalPoint &candPos)
Definition: TrajSeedMatcher.cc:245
TrajSeedMatcher::layerHasValidHits
bool layerHasValidHits(const DetLayer &layer, const TrajectoryStateOnSurface &hitSurState, const Propagator &propToLayerFromState) const
Definition: TrajSeedMatcher.cc:345
TrajSeedMatcher::clearCache
void clearCache()
Definition: TrajSeedMatcher.cc:299
edm::ESInputTag
Definition: ESInputTag.h:87
Chi2MeasurementEstimator
Definition: Chi2MeasurementEstimator.h:15
MeasurementDetWithData::isActive
bool isActive() const
Definition: MeasurementDetWithData.h:67
TrajSeedMatcher::detLayerGeom_
DetLayerGeometry const & detLayerGeom_
Definition: TrajSeedMatcher.h:212
DetLayer
Definition: DetLayer.h:21
TrajSeedMatcher::trajStateFromVtxPosChargeCache_
std::unordered_map< int, TrajectoryStateOnSurface > trajStateFromVtxPosChargeCache_
Definition: TrajSeedMatcher.h:217
PV3DBase::x
T x() const
Definition: PV3DBase.h:59
TrajSeedMatcher::Configuration::requireExactMatchCount
const bool requireExactMatchCount
Definition: TrajSeedMatcher.h:134
edm
HLT enums.
Definition: AlignableModifier.h:19
PV3DBase::theta
Geom::Theta< T > theta() const
Definition: PV3DBase.h:72
MagneticField::isDefined
virtual bool isDefined(const GlobalPoint &) const
True if the point is within the region where the concrete field.
Definition: MagneticField.h:40
pos
Definition: PixelAliasList.h:18
FreeTrajectoryState::charge
TrackCharge charge() const
Definition: FreeTrajectoryState.h:69
edm::ParameterSetDescription
Definition: ParameterSetDescription.h:52
TrajectoryStateOnSurface::charge
TrackCharge charge() const
Definition: TrajectoryStateOnSurface.h:68
TrajSeedMatcher::Configuration::useRecoVertex
const bool useRecoVertex
Definition: TrajSeedMatcher.h:132
oppositeToMomentum
Definition: PropagationDirection.h:4
DetLayerGeometry::idToLayer
virtual const DetLayer * idToLayer(const DetId &detId) const
Definition: DetLayerGeometry.h:33
GeometricSearchDet::compatibleDets
virtual std::vector< DetWithState > compatibleDets(const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est) const
Definition: GeometricSearchDet.cc:35
TrajSeedMatcher::getNrHitsRequired
size_t getNrHitsRequired(const int nrValidLayers) const
Definition: TrajSeedMatcher.cc:367
TrajSeedMatcher::backwardPropagator_
PropagatorWithMaterial backwardPropagator_
Definition: TrajSeedMatcher.h:215
DDAxes::x
HLT_FULL_cff.magneticField
magneticField
Definition: HLT_FULL_cff.py:348
TrajSeedMatcher::magField_
MagneticField const & magField_
Definition: TrajSeedMatcher.h:208
rpcPointValidation_cfi.recHit
recHit
Definition: rpcPointValidation_cfi.py:7
TrajSeedMatcher::trajStateFromPointNegChargeCache_
IntGlobalPointPairUnorderedMap< TrajectoryStateOnSurface > trajStateFromPointNegChargeCache_
Definition: TrajSeedMatcher.h:221
HLT_FULL_cff.zVertex
zVertex
Definition: HLT_FULL_cff.py:113773
funct::sin
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
PV3DBase::z
T z() const
Definition: PV3DBase.h:61
TrajSeedMatcher::getTrajStateFromVtx
const TrajectoryStateOnSurface & getTrajStateFromVtx(const TrackingRecHit &hit, const TrajectoryStateOnSurface &initialState, const PropagatorWithMaterial &propagator)
Definition: TrajSeedMatcher.cc:257
fileCollector.seed
seed
Definition: fileCollector.py:127
TrajSeedMatcher::Configuration::useParamMagFieldIfDefined
const bool useParamMagFieldIfDefined
Definition: TrajSeedMatcher.h:135
DetId
Definition: DetId.h:17
TrajSeedMatcher::measTkEvt_
MeasurementTrackerEvent const & measTkEvt_
Definition: TrajSeedMatcher.h:210
TrajectoryStateOnSurface
Definition: TrajectoryStateOnSurface.h:16
trackingTools::ftsFromVertexToPoint
FreeTrajectoryState ftsFromVertexToPoint(MagneticField const &magField, GlobalPoint const &xmeas, GlobalPoint const &xvert, float momentum, TrackCharge charge)
Definition: ftsFromVertexToPoint.cc:17
TrajectoryStateOnSurface::freeState
FreeTrajectoryState const * freeState(bool withErrors=true) const
Definition: TrajectoryStateOnSurface.h:58
TrajSeedMatcher::magFieldParam_
MagneticField const & magFieldParam_
Definition: TrajSeedMatcher.h:209
PVValHelper::estimator
estimator
Definition: PVValidationHelpers.h:44
TrajSeedMatcher::ftsFromVertexToPoint
auto ftsFromVertexToPoint(GlobalPoint const &point, GlobalPoint const &vertex, float energy, int charge) const
Definition: TrajSeedMatcher.h:192
TrackCandidateProducer_cfi.propagator
propagator
Definition: TrackCandidateProducer_cfi.py:17
TrajSeedMatcher::Configuration::paramMagFieldToken
const edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > paramMagFieldToken
Definition: TrajSeedMatcher.h:128
TrajSeedMatcher::cfg_
Configuration const & cfg_
Definition: TrajSeedMatcher.h:206
mathSSE::sqrt
T sqrt(T t)
Definition: SSEVec.h:19
p2
double p2[4]
Definition: TauolaWrapper.h:90
TrajSeedMatcher::Configuration::matchingCuts
const std::vector< std::unique_ptr< MatchingCuts > > matchingCuts
Definition: TrajSeedMatcher.h:145
MeasurementTrackerEvent::idToDet
MeasurementDetWithData idToDet(const DetId &id) const
Previous MeasurementDetSystem interface.
Definition: MeasurementTrackerEvent.h:76
HCALHighEnergyHPDFilter_cfi.energy
energy
Definition: HCALHighEnergyHPDFilter_cfi.py:5
GlobalPoint
Global3DPoint GlobalPoint
Definition: GlobalPoint.h:10
Point3DBase< float, GlobalTag >
TrajSeedMatcher::Configuration::minNrHits
const std::vector< unsigned int > minNrHits
Definition: TrajSeedMatcher.h:142
TrajSeedMatcher::trajStateFromPointPosChargeCache_
IntGlobalPointPairUnorderedMap< TrajectoryStateOnSurface > trajStateFromPointPosChargeCache_
Definition: TrajSeedMatcher.h:220
ALCARECOTkAlJpsiMuMu_cff.charge
charge
Definition: ALCARECOTkAlJpsiMuMu_cff.py:47
InitialStep_cff.seeds
seeds
Definition: InitialStep_cff.py:230
funct::true
true
Definition: Factorize.h:173
l1GtPatternGenerator_cfi.defaults
defaults
Definition: l1GtPatternGenerator_cfi.py:93
bphysicsOniaDQM_cfi.vertex
vertex
Definition: bphysicsOniaDQM_cfi.py:7
edm::ParameterSet
Definition: ParameterSet.h:47
TrajSeedMatcher::Configuration::magFieldToken
const edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > magFieldToken
Definition: TrajSeedMatcher.h:127
SiStripPI::max
Definition: SiStripPayloadInspectorHelper.h:169
match
std::pair< typename Association::data_type::first_type, double > match(Reference key, Association association, bool bestMatchByMaxValue)
Generic matching function.
Definition: Utils.h:10
TrajSeedMatcher::getNrValidLayersAlongTraj
int getNrValidLayersAlongTraj(const SCHitMatch &hit1, const SCHitMatch &hit2, const GlobalPoint &candPos, const float energy, const int charge)
Definition: TrajSeedMatcher.cc:306
TrajSeedMatcher::Configuration::enableHitSkipping
const bool enableHitSkipping
Definition: TrajSeedMatcher.h:133
PV3DBase::eta
T eta() const
Definition: PV3DBase.h:73
PV3DBase::y
T y() const
Definition: PV3DBase.h:60
GeomDetEnumerators::isTrackerPixel
bool isTrackerPixel(GeomDetEnumerators::SubDetector m)
Definition: GeomDetEnumerators.cc:68
trackerHitRTTI::vector
Definition: trackerHitRTTI.h:21
TrajSeedMatcher::kElectronMass_
static constexpr float kElectronMass_
Definition: TrajSeedMatcher.h:201
p1
double p1[4]
Definition: TauolaWrapper.h:89
TrajSeedMatcher::makeTrajStateOnSurface
TrajectoryStateOnSurface makeTrajStateOnSurface(const GlobalPoint &pos, const float energy, const int charge) const
Definition: TrajSeedMatcher.cc:292
res
Definition: Electron.h:6
NavigationSchool::compatibleLayers
std::vector< const DetLayer * > compatibleLayers(const DetLayer &detLayer, Args &&... args) const
Returns all layers compatible.
Definition: NavigationSchool.h:41
looper.cfg
cfg
Definition: looper.py:297
TrajSeedMatcher::getTrajStateFromPoint
const TrajectoryStateOnSurface & getTrajStateFromPoint(const TrackingRecHit &hit, const FreeTrajectoryState &initialState, const GlobalPoint &point, const PropagatorWithMaterial &propagator)
Definition: TrajSeedMatcher.cc:274
TrajSeedMatcher::vprim_
const GlobalPoint vprim_
Definition: TrajSeedMatcher.h:204
HLT_FULL_cff.measTkEvt
measTkEvt
Definition: HLT_FULL_cff.py:15288
submitPVResolutionJobs.desc
string desc
Definition: submitPVResolutionJobs.py:251
TrajSeedMatcher::Configuration::minNrHitsValidLayerBins
const std::vector< int > minNrHitsValidLayerBins
Definition: TrajSeedMatcher.h:143
heppy_batch.val
val
Definition: heppy_batch.py:351
eostools.move
def move(src, dest)
Definition: eostools.py:511
std
Definition: JetResolutionObject.h:76
MeasurementDetWithData
Definition: MeasurementDetWithData.h:6
FreeTrajectoryState
Definition: FreeTrajectoryState.h:27
PerpendicularBoundPlaneBuilder
Definition: PerpendicularBoundPlaneBuilder.h:11
or
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventID const &, edm::Timestamp const & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
TrajSeedMatcher::Configuration::navSchoolToken
const edm::ESGetToken< NavigationSchool, NavigationSchoolRecord > navSchoolToken
Definition: TrajSeedMatcher.h:129
patCandidatesForDimuonsSequences_cff.matches
matches
Definition: patCandidatesForDimuonsSequences_cff.py:131
TrajSeedMatcher::Configuration::detLayerGeomToken
const edm::ESGetToken< DetLayerGeometry, RecoGeometryRecord > detLayerGeomToken
Definition: TrajSeedMatcher.h:130
point
*vegas h *****************************************************used in the default bin number in original ***version of VEGAS is ***a higher bin number might help to derive a more precise ***grade subtle point
Definition: invegas.h:5
crabWrapper.key
key
Definition: crabWrapper.py:19
TrajSeedMatcher::processSeed
std::vector< SCHitMatch > processSeed(const TrajectorySeed &seed, const GlobalPoint &candPos, const float energy, const TrajectoryStateOnSurface &initialTrajState)
Definition: TrajSeedMatcher.cc:195
edm::ParameterDescription
Definition: ParameterDescription.h:110
TrajSeedMatcher::forwardPropagator_
PropagatorWithMaterial forwardPropagator_
Definition: TrajSeedMatcher.h:214
alongMomentum
Definition: PropagationDirection.h:4
PV3DBase::phi
Geom::Phi< T > phi() const
Definition: PV3DBase.h:66
TrajSeedMatcher::trajStateFromVtxNegChargeCache_
std::unordered_map< int, TrajectoryStateOnSurface > trajStateFromVtxNegChargeCache_
Definition: TrajSeedMatcher.h:218
hit
Definition: SiStripHitEffFromCalibTree.cc:88
TrajSeedMatcher::navSchool_
NavigationSchool const & navSchool_
Definition: TrajSeedMatcher.h:211