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
 
class  SeedWithInfo
 

Public Member Functions

std::vector< TrajSeedMatcher::SeedWithInfooperator() (const TrajectorySeedCollection &seeds, const GlobalPoint &candPos, const GlobalPoint &vprim, const float energy)
 
 TrajSeedMatcher (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 ()
 
const MagneticFieldgetMagField (const GlobalPoint &point) 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 GlobalPoint &vprim, 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 GlobalPoint &vtx, const float energy, const int charge) const
 
bool passesMatchSel (const SCHitMatch &hit, const size_t hitNr) const
 
std::vector< SCHitMatchprocessSeed (const TrajectorySeed &seed, const GlobalPoint &candPos, const GlobalPoint &vprim, 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_
 
IntGlobalPointPairUnorderedMap< TrajectoryStateOnSurfacetrajStateFromPointNegChargeCache_
 
IntGlobalPointPairUnorderedMap< TrajectoryStateOnSurfacetrajStateFromPointPosChargeCache_
 
std::unordered_map< int, TrajectoryStateOnSurfacetrajStateFromVtxNegChargeCache_
 
std::unordered_map< int, TrajectoryStateOnSurfacetrajStateFromVtxPosChargeCache_
 

Static Private Attributes

static constexpr float kElectronMass_ = 0.000511
 

Detailed Description

Definition at line 52 of file TrajSeedMatcher.h.

Constructor & Destructor Documentation

◆ TrajSeedMatcher()

TrajSeedMatcher::TrajSeedMatcher ( TrajSeedMatcher::Configuration const &  cfg,
edm::EventSetup const &  iSetup,
MeasurementTrackerEvent const &  measTkEvt 
)
explicit

Definition at line 80 of file TrajSeedMatcher.cc.

References looper::cfg.

◆ ~TrajSeedMatcher()

TrajSeedMatcher::~TrajSeedMatcher ( )
default

Member Function Documentation

◆ clearCache()

void TrajSeedMatcher::clearCache ( )
private

◆ getMagField()

const MagneticField& TrajSeedMatcher::getMagField ( const GlobalPoint point) const
inlineprivate

◆ getNrHitsRequired()

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

Definition at line 363 of file TrajSeedMatcher.cc.

363  {
364  for (size_t binNr = 0; binNr < cfg_.minNrHitsValidLayerBins.size(); binNr++) {
365  if (nrValidLayers < cfg_.minNrHitsValidLayerBins[binNr])
366  return cfg_.minNrHits[binNr];
367  }
368  return cfg_.minNrHits.back();
369 }

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 312 of file TrajSeedMatcher.cc.

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

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 GlobalPoint vprim,
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 254 of file TrajSeedMatcher.cc.

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

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 237 of file TrajSeedMatcher.cc.

239  {
240  auto& trajStateFromVtxCache =
242 
243  auto key = hit.det()->gdetIndex();
244  auto res = trajStateFromVtxCache.find(key);
245  if (res != trajStateFromVtxCache.end())
246  return res->second;
247  else { //doesnt exist, need to make it
248  //FIXME: check for efficiency
249  auto val = trajStateFromVtxCache.emplace(key, propagator.propagate(initialState, hit.det()->surface()));
250  return val.first->second;
251  }
252 }

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 225 of file TrajSeedMatcher.cc.

227  {
228  auto sq = [](float x) { return x * x; };
229  auto calRDiff = [sq](const GlobalPoint& p1, const GlobalPoint& p2) {
230  return std::sqrt(sq(p2.x() - p1.x()) + sq(p2.y() - p1.y()));
231  };
232  const double r1Diff = calRDiff(primeVtxPos, hitPos);
233  const double r2Diff = calRDiff(hitPos, candPos);
234  return hitPos.z() - r1Diff * (candPos.z() - hitPos.z()) / r2Diff;
235 }

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 341 of file TrajSeedMatcher.cc.

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

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

Referenced by getNrValidLayersAlongTraj().

◆ makePSetDescription()

edm::ParameterSetDescription TrajSeedMatcher::makePSetDescription ( )
static

Definition at line 92 of file TrajSeedMatcher.cc.

92  {
94  desc.add<bool>("useRecoVertex", false);
95  desc.add<bool>("enableHitSkipping", false);
96  desc.add<bool>("requireExactMatchCount", true);
97  desc.add<bool>("useParamMagFieldIfDefined", true);
98  desc.add<edm::ESInputTag>("paramMagField", edm::ESInputTag{"", "ParabolicMf"});
99  desc.add<edm::ESInputTag>("navSchool", edm::ESInputTag{"", "SimpleNavigationSchool"});
100  desc.add<edm::ESInputTag>("detLayerGeom", edm::ESInputTag{"", "hltESPGlobalDetLayerGeometry"});
101  desc.add<std::vector<int> >("minNrHitsValidLayerBins", {4});
102  desc.add<std::vector<unsigned int> >("minNrHits", {2, 3});
103 
105  auto cutDescCases = 1 >> (edm::ParameterDescription<double>("dPhiMax", 0.04, true) and
106  edm::ParameterDescription<double>("dRZMax", 0.09, true) and
107  edm::ParameterDescription<double>("dRZMaxLowEtThres", 20., true) and
108  edm::ParameterDescription<std::vector<double> >("dRZMaxLowEtEtaBins", {1., 1.5}, true) and
109  edm::ParameterDescription<std::vector<double> >("dRZMaxLowEt", {0.09, 0.15, 0.09}, true)) or
110  2 >> (edm::ParameterDescription<std::vector<double> >("dPhiMaxHighEt", {0.003}, true) and
111  edm::ParameterDescription<std::vector<double> >("dPhiMaxHighEtThres", {0.0}, true) and
112  edm::ParameterDescription<std::vector<double> >("dPhiMaxLowEtGrad", {0.0}, true) and
113  edm::ParameterDescription<std::vector<double> >("dRZMaxHighEt", {0.005}, true) and
114  edm::ParameterDescription<std::vector<double> >("dRZMaxHighEtThres", {30}, true) and
115  edm::ParameterDescription<std::vector<double> >("dRZMaxLowEtGrad", {-0.002}, true) and
116  edm::ParameterDescription<std::vector<double> >("etaBins", {}, true));
117  cutsDesc.ifValue(edm::ParameterDescription<int>("version", 1, true), std::move(cutDescCases));
118 
120  defaults.addParameter<double>("dPhiMax", 0.04);
121  defaults.addParameter<double>("dRZMax", 0.09);
122  defaults.addParameter<double>("dRZMaxLowEtThres", 0.09);
123  defaults.addParameter<std::vector<double> >("dRZMaxLowEtEtaBins", std::vector<double>{1., 1.5});
124  defaults.addParameter<std::vector<double> >("dRZMaxLowEt", std::vector<double>{0.09, 0.09, 0.09});
125  defaults.addParameter<int>("version", 1);
126  desc.addVPSet("matchingCuts", cutsDesc, std::vector<edm::ParameterSet>{defaults, defaults, defaults});
127  return desc;
128 }

References edm::ParameterSetDescription::add(), edm::ParameterSetDescription::addVPSet(), l1GtPatternGenerator_cfi::defaults, eostools::move(), and or.

Referenced by ElectronNHitSeedProducer::fillDescriptions().

◆ makeTrajStateOnSurface()

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

◆ operator()()

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

Definition at line 130 of file TrajSeedMatcher.cc.

133  {
134  clearCache();
135 
136  std::vector<SeedWithInfo> matchedSeeds;
137 
138  //these are super expensive functions
139  TrajectoryStateOnSurface scTrajStateOnSurfNeg = makeTrajStateOnSurface(candPos, vprim, energy, -1);
140  TrajectoryStateOnSurface scTrajStateOnSurfPos = makeTrajStateOnSurface(candPos, vprim, energy, 1);
141 
142  for (const auto& seed : seeds) {
143  std::vector<SCHitMatch> matchedHitsNeg = processSeed(seed, candPos, vprim, energy, scTrajStateOnSurfNeg);
144  std::vector<SCHitMatch> matchedHitsPos = processSeed(seed, candPos, vprim, energy, scTrajStateOnSurfPos);
145 
146  int nrValidLayersPos = 0;
147  int nrValidLayersNeg = 0;
148  if (matchedHitsNeg.size() >= 2) {
149  nrValidLayersNeg = getNrValidLayersAlongTraj(matchedHitsNeg[0], matchedHitsNeg[1], candPos, vprim, energy, -1);
150  }
151  if (matchedHitsPos.size() >= 2) {
152  nrValidLayersPos = getNrValidLayersAlongTraj(matchedHitsPos[0], matchedHitsPos[1], candPos, vprim, energy, +1);
153  }
154 
155  int nrValidLayers = std::max(nrValidLayersNeg, nrValidLayersPos);
156  size_t nrHitsRequired = getNrHitsRequired(nrValidLayers);
157  bool matchCountPasses;
159  // If the input seed collection is not cross-cleaned, an exact match is necessary to
160  // prevent redundant seeds.
161  matchCountPasses = matchedHitsNeg.size() == nrHitsRequired || matchedHitsPos.size() == nrHitsRequired;
162  } else {
163  matchCountPasses = matchedHitsNeg.size() >= nrHitsRequired || matchedHitsPos.size() >= nrHitsRequired;
164  }
165  if (matchCountPasses) {
166  matchedSeeds.push_back({seed, matchedHitsPos, matchedHitsNeg, nrValidLayers});
167  }
168  }
169  return matchedSeeds;
170 }

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

◆ passesMatchSel()

bool TrajSeedMatcher::passesMatchSel ( const SCHitMatch hit,
const size_t  hitNr 
) const
private

Definition at line 288 of file TrajSeedMatcher.cc.

288  {
289  if (hitNr < cfg_.matchingCuts.size()) {
290  return (*cfg_.matchingCuts[hitNr])(hit);
291  } else {
292  throw cms::Exception("LogicError") << " Error, attempting to apply selection to hit " << hitNr
293  << " but only cuts for " << cfg_.matchingCuts.size() << " defined";
294  }
295 }

References cfg_, Exception, and TrajSeedMatcher::Configuration::matchingCuts.

Referenced by processSeed().

◆ processSeed()

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

Definition at line 172 of file TrajSeedMatcher.cc.

176  {
177  //next try passing these variables in once...
178  const float candEta = candPos.eta();
179  const float candEt = energy * std::sin(candPos.theta());
180  const int charge = initialTrajState.charge();
181 
182  std::vector<SCHitMatch> matchedHits;
183  FreeTrajectoryState firstMatchFreeTraj;
184  GlobalPoint prevHitPos;
186  for (size_t hitNr = 0; hitNr < cfg_.matchingCuts.size() && hitNr < seed.nHits(); hitNr++) {
187  if (!cfg_.enableHitSkipping && hitNr > 0 && matchedHits.empty()) {
188  break;
189  }
190 
191  auto const& recHit = *(seed.recHits().first + hitNr);
192 
193  if (!recHit.isValid()) {
194  continue;
195  }
196 
197  const bool doFirstMatch = matchedHits.empty();
198 
199  auto const& trajState = doFirstMatch
200  ? getTrajStateFromVtx(recHit, initialTrajState, backwardPropagator_)
201  : getTrajStateFromPoint(recHit, firstMatchFreeTraj, prevHitPos, forwardPropagator_);
202  if (!trajState.isValid()) {
203  continue;
204  }
205 
206  auto const& vtxForMatchObject = doFirstMatch ? vprim : vertex;
207  auto match = makeSCHitMatch(vtxForMatchObject, trajState, recHit, candEt, candEta, candPos.phi(), charge, 1);
208 
209  if (passesMatchSel(match, matchedHits.size())) {
210  matchedHits.push_back(match);
211  if (doFirstMatch) {
212  //now we can figure out the z vertex
213  double zVertex = cfg_.useRecoVertex ? vprim.z() : getZVtxFromExtrapolation(vprim, match.hitPos, candPos);
214  vertex = GlobalPoint(vprim.x(), vprim.y(), zVertex);
215  firstMatchFreeTraj =
217  }
218  prevHitPos = match.hitPos;
219  }
220  }
221  return matchedHits;
222 }

References backwardPropagator_, cfg_, ALCARECOTkAlJpsiMuMu_cff::charge, TrajectoryStateOnSurface::charge(), TrajSeedMatcher::Configuration::enableHitSkipping, HCALHighEnergyHPDFilter_cfi::energy, PV3DBase< T, PVType, FrameType >::eta(), forwardPropagator_, trackingTools::ftsFromVertexToPoint(), getMagField(), getTrajStateFromPoint(), getTrajStateFromVtx(), getZVtxFromExtrapolation(), TrajectoryStateOnSurface::isValid(), match(), TrajSeedMatcher::Configuration::matchingCuts, passesMatchSel(), PV3DBase< T, PVType, FrameType >::phi(), rpcPointValidation_cfi::recHit, SurveyInfoScenario_cff::seed, funct::sin(), PV3DBase< T, PVType, FrameType >::theta(), TrajSeedMatcher::Configuration::useRecoVertex, bphysicsOniaDQM_cfi::vertex, 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 244 of file TrajSeedMatcher.h.

Referenced by getNrValidLayersAlongTraj(), and processSeed().

◆ cfg_

Configuration const& TrajSeedMatcher::cfg_
private

◆ detLayerGeom_

DetLayerGeometry const& TrajSeedMatcher::detLayerGeom_
private

Definition at line 241 of file TrajSeedMatcher.h.

Referenced by getNrValidLayersAlongTraj().

◆ forwardPropagator_

PropagatorWithMaterial TrajSeedMatcher::forwardPropagator_
private

Definition at line 243 of file TrajSeedMatcher.h.

Referenced by getNrValidLayersAlongTraj(), and processSeed().

◆ kElectronMass_

constexpr float TrajSeedMatcher::kElectronMass_ = 0.000511
staticconstexprprivate

Definition at line 233 of file TrajSeedMatcher.h.

◆ magField_

MagneticField const& TrajSeedMatcher::magField_
private

Definition at line 237 of file TrajSeedMatcher.h.

Referenced by getMagField().

◆ magFieldParam_

MagneticField const& TrajSeedMatcher::magFieldParam_
private

Definition at line 238 of file TrajSeedMatcher.h.

Referenced by getMagField().

◆ measTkEvt_

MeasurementTrackerEvent const& TrajSeedMatcher::measTkEvt_
private

Definition at line 239 of file TrajSeedMatcher.h.

Referenced by layerHasValidHits().

◆ navSchool_

NavigationSchool const& TrajSeedMatcher::navSchool_
private

Definition at line 240 of file TrajSeedMatcher.h.

Referenced by getNrValidLayersAlongTraj().

◆ trajStateFromPointNegChargeCache_

IntGlobalPointPairUnorderedMap<TrajectoryStateOnSurface> TrajSeedMatcher::trajStateFromPointNegChargeCache_
private

Definition at line 250 of file TrajSeedMatcher.h.

Referenced by clearCache(), and getTrajStateFromPoint().

◆ trajStateFromPointPosChargeCache_

IntGlobalPointPairUnorderedMap<TrajectoryStateOnSurface> TrajSeedMatcher::trajStateFromPointPosChargeCache_
private

Definition at line 249 of file TrajSeedMatcher.h.

Referenced by clearCache(), and getTrajStateFromPoint().

◆ trajStateFromVtxNegChargeCache_

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

Definition at line 247 of file TrajSeedMatcher.h.

Referenced by clearCache(), and getTrajStateFromVtx().

◆ trajStateFromVtxPosChargeCache_

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

Definition at line 246 of file TrajSeedMatcher.h.

Referenced by clearCache(), and getTrajStateFromVtx().

ParameterDescription
TrajSeedMatcher::getZVtxFromExtrapolation
static float getZVtxFromExtrapolation(const GlobalPoint &primeVtxPos, const GlobalPoint &hitPos, const GlobalPoint &candPos)
Definition: TrajSeedMatcher.cc:225
TrajSeedMatcher::layerHasValidHits
bool layerHasValidHits(const DetLayer &layer, const TrajectoryStateOnSurface &hitSurState, const Propagator &propToLayerFromState) const
Definition: TrajSeedMatcher.cc:341
TrajSeedMatcher::clearCache
void clearCache()
Definition: TrajSeedMatcher.cc:281
edm::ESInputTag
Definition: ESInputTag.h:87
edm::ParameterSetDescription::add
ParameterDescriptionBase * add(U const &iLabel, T const &value)
Definition: ParameterSetDescription.h:95
Chi2MeasurementEstimator
Definition: Chi2MeasurementEstimator.h:15
MeasurementDetWithData::isActive
bool isActive() const
Definition: MeasurementDetWithData.h:67
TrajSeedMatcher::detLayerGeom_
DetLayerGeometry const & detLayerGeom_
Definition: TrajSeedMatcher.h:241
TrajSeedMatcher::passesMatchSel
bool passesMatchSel(const SCHitMatch &hit, const size_t hitNr) const
Definition: TrajSeedMatcher.cc:288
DetLayer
Definition: DetLayer.h:21
TrajSeedMatcher::trajStateFromVtxPosChargeCache_
std::unordered_map< int, TrajectoryStateOnSurface > trajStateFromVtxPosChargeCache_
Definition: TrajSeedMatcher.h:246
PV3DBase::x
T x() const
Definition: PV3DBase.h:59
TrajSeedMatcher::Configuration::requireExactMatchCount
const bool requireExactMatchCount
Definition: TrajSeedMatcher.h:157
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:155
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:363
TrajSeedMatcher::backwardPropagator_
PropagatorWithMaterial backwardPropagator_
Definition: TrajSeedMatcher.h:244
DDAxes::x
TrajSeedMatcher::magField_
MagneticField const & magField_
Definition: TrajSeedMatcher.h:237
rpcPointValidation_cfi.recHit
recHit
Definition: rpcPointValidation_cfi.py:7
TrajSeedMatcher::trajStateFromPointNegChargeCache_
IntGlobalPointPairUnorderedMap< TrajectoryStateOnSurface > trajStateFromPointNegChargeCache_
Definition: TrajSeedMatcher.h:250
HLT_FULL_cff.zVertex
zVertex
Definition: HLT_FULL_cff.py:109725
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:237
TrajSeedMatcher::Configuration::useParamMagFieldIfDefined
const bool useParamMagFieldIfDefined
Definition: TrajSeedMatcher.h:158
DetId
Definition: DetId.h:17
TrajSeedMatcher::measTkEvt_
MeasurementTrackerEvent const & measTkEvt_
Definition: TrajSeedMatcher.h:239
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:238
PVValHelper::estimator
estimator
Definition: PVValidationHelpers.h:44
TrackCandidateProducer_cfi.propagator
propagator
Definition: TrackCandidateProducer_cfi.py:17
TrajSeedMatcher::Configuration::paramMagFieldToken
const edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > paramMagFieldToken
Definition: TrajSeedMatcher.h:151
TrajSeedMatcher::cfg_
Configuration const & cfg_
Definition: TrajSeedMatcher.h:235
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:168
MeasurementTrackerEvent::idToDet
MeasurementDetWithData idToDet(const DetId &id) const
Previous MeasurementDetSystem interface.
Definition: MeasurementTrackerEvent.h:69
HCALHighEnergyHPDFilter_cfi.energy
energy
Definition: HCALHighEnergyHPDFilter_cfi.py:5
HLT_2018_cff.measTkEvt
measTkEvt
Definition: HLT_2018_cff.py:13898
GlobalPoint
Global3DPoint GlobalPoint
Definition: GlobalPoint.h:10
Point3DBase< float, GlobalTag >
TrajSeedMatcher::Configuration::minNrHits
const std::vector< unsigned int > minNrHits
Definition: TrajSeedMatcher.h:165
TrajSeedMatcher::trajStateFromPointPosChargeCache_
IntGlobalPointPairUnorderedMap< TrajectoryStateOnSurface > trajStateFromPointPosChargeCache_
Definition: TrajSeedMatcher.h:249
badGlobalMuonTaggersAOD_cff.vtx
vtx
Definition: badGlobalMuonTaggersAOD_cff.py:5
ALCARECOTkAlJpsiMuMu_cff.charge
charge
Definition: ALCARECOTkAlJpsiMuMu_cff.py:47
InitialStep_cff.seeds
seeds
Definition: InitialStep_cff.py:232
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:36
TrajSeedMatcher::getNrValidLayersAlongTraj
int getNrValidLayersAlongTraj(const SCHitMatch &hit1, const SCHitMatch &hit2, const GlobalPoint &candPos, const GlobalPoint &vprim, const float energy, const int charge)
Definition: TrajSeedMatcher.cc:297
TrajSeedMatcher::Configuration::magFieldToken
const edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > magFieldToken
Definition: TrajSeedMatcher.h:150
edm::ParameterSetDescription::addVPSet
ParameterDescriptionBase * addVPSet(U const &iLabel, ParameterSetDescription const &validator, std::vector< ParameterSet > const &defaults)
Definition: ParameterSetDescription.h:149
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::Configuration::enableHitSkipping
const bool enableHitSkipping
Definition: TrajSeedMatcher.h:156
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
TrajSeedMatcher::kElectronMass_
static constexpr float kElectronMass_
Definition: TrajSeedMatcher.h:233
TrajSeedMatcher::getMagField
const MagneticField & getMagField(const GlobalPoint &point) const
Definition: TrajSeedMatcher.h:228
p1
double p1[4]
Definition: TauolaWrapper.h:89
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:254
TrajSeedMatcher::Configuration::minNrHitsValidLayerBins
const std::vector< int > minNrHitsValidLayerBins
Definition: TrajSeedMatcher.h:166
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
TrajSeedMatcher::makeTrajStateOnSurface
TrajectoryStateOnSurface makeTrajStateOnSurface(const GlobalPoint &pos, const GlobalPoint &vtx, const float energy, const int charge) const
Definition: TrajSeedMatcher.cc:272
Exception
Definition: hltDiff.cc:246
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:152
TrajSeedMatcher::Configuration::detLayerGeomToken
const edm::ESGetToken< DetLayerGeometry, RecoGeometryRecord > detLayerGeomToken
Definition: TrajSeedMatcher.h:153
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
edm::ParameterDescription
Definition: ParameterDescription.h:110
TrajSeedMatcher::forwardPropagator_
PropagatorWithMaterial forwardPropagator_
Definition: TrajSeedMatcher.h:243
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:247
SurveyInfoScenario_cff.seed
seed
Definition: SurveyInfoScenario_cff.py:295
hit
Definition: SiStripHitEffFromCalibTree.cc:88
TrajSeedMatcher::navSchool_
NavigationSchool const & navSchool_
Definition: TrajSeedMatcher.h:240
TrajSeedMatcher::processSeed
std::vector< SCHitMatch > processSeed(const TrajectorySeed &seed, const GlobalPoint &candPos, const GlobalPoint &vprim, const float energy, const TrajectoryStateOnSurface &initialTrajState)
Definition: TrajSeedMatcher.cc:172