Go to the documentation of this file. 1 #ifndef RecoEgamma_EgammaElectronAlgos_TrajSeedMatcher_h
2 #define RecoEgamma_EgammaElectronAlgos_TrajSeedMatcher_h
44 class ConsumesCollector;
63 const float eta = 0.f;
64 const float phi = 0.f;
188 const Propagator& propToLayerFromState)
const;
size_t getBinNr(float eta) const
TrajectorySeedCollection const & seeds_
static float getZVtxFromExtrapolation(const GlobalPoint &primeVtxPos, const GlobalPoint &hitPos, const GlobalPoint &candPos)
bool layerHasValidHits(const DetLayer &layer, const TrajectoryStateOnSurface &hitSurState, const Propagator &propToLayerFromState) const
std::vector< TrajectorySeed > TrajectorySeedCollection
DetLayerGeometry const & detLayerGeom_
float getCutValue(float et, float highEt, float highEtThres, float lowEtGrad) const
std::unordered_map< int, TrajectoryStateOnSurface > trajStateFromVtxPosChargeCache_
std::vector< double > dRZHighEtThres_
const bool requireExactMatchCount
const double dRZMaxLowEtThres_
virtual bool isDefined(const GlobalPoint &) const
True if the point is within the region where the concrete field.
std::vector< double > etaBins_
static edm::ParameterSetDescription makePSetDescription()
size_t getNrHitsRequired(const int nrValidLayers) const
PropagatorWithMaterial backwardPropagator_
std::vector< double > dPhiHighEtThres_
MatchingCutsV2(const edm::ParameterSet &pset)
MagneticField const & magField_
const TrackingRecHit & hit
IntGlobalPointPairUnorderedMap< TrajectoryStateOnSurface > trajStateFromPointNegChargeCache_
const TrajectoryStateOnSurface & getTrajStateFromVtx(const TrackingRecHit &hit, const TrajectoryStateOnSurface &initialState, const PropagatorWithMaterial &propagator)
const bool useParamMagFieldIfDefined
MeasurementTrackerEvent const & measTkEvt_
bool operator()(const SCHitMatch &scHitMatch) const override
MagneticField const & magFieldParam_
auto ftsFromVertexToPoint(GlobalPoint const &point, GlobalPoint const &vertex, float energy, int charge) const
const edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > paramMagFieldToken
Configuration const & cfg_
std::vector< double > dPhiLowEtGrad_
std::vector< double > dPhiHighEt_
const std::vector< std::unique_ptr< MatchingCuts > > matchingCuts
virtual bool operator()(const SCHitMatch &scHitMatch) const =0
const std::vector< unsigned int > minNrHits
std::vector< double > dRZHighEt_
IntGlobalPointPairUnorderedMap< TrajectoryStateOnSurface > trajStateFromPointPosChargeCache_
XYZPointD XYZPoint
point in space with cartesian internal representation
~TrajSeedMatcher()=default
const edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > magFieldToken
const TrajectorySeed & seed
float getDRZCutValue(const float scEt, const float scEta) const
const std::vector< double > dRZMaxLowEtEtaBins_
int getNrValidLayersAlongTraj(const SCHitMatch &hit1, const SCHitMatch &hit2, const GlobalPoint &candPos, const float energy, const int charge)
const bool enableHitSkipping
static constexpr float kElectronMass_
std::unordered_map< std::pair< int, GlobalPoint >, T, HashIntGlobalPointPair > IntGlobalPointPairUnorderedMap
TrajectoryStateOnSurface makeTrajStateOnSurface(const GlobalPoint &pos, const float energy, const int charge) const
MatchingCutsV1(const edm::ParameterSet &pset)
const TrajectoryStateOnSurface & getTrajStateFromPoint(const TrackingRecHit &hit, const FreeTrajectoryState &initialState, const GlobalPoint &point, const PropagatorWithMaterial &propagator)
std::vector< double > dRZLowEtGrad_
const std::vector< int > minNrHitsValidLayerBins
Configuration(const edm::ParameterSet &pset, edm::ConsumesCollector &&cc)
const std::vector< double > dRZMaxLowEt_
bool operator()(const SCHitMatch &scHitMatch) const override
std::vector< TrajSeedMatcher::SeedWithInfo > operator()(const GlobalPoint &candPos, const float energy)
const std::vector< MatchInfo > matchInfos
TrajSeedMatcher(TrajectorySeedCollection const &seeds, math::XYZPoint const &vprim, Configuration const &cfg, edm::EventSetup const &iSetup, MeasurementTrackerEvent const &measTkEvt)
const edm::ESGetToken< NavigationSchool, NavigationSchoolRecord > navSchoolToken
const edm::ESGetToken< DetLayerGeometry, RecoGeometryRecord > detLayerGeomToken
*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
std::vector< SCHitMatch > processSeed(const TrajectorySeed &seed, const GlobalPoint &candPos, const float energy, const TrajectoryStateOnSurface &initialTrajState)
PropagatorWithMaterial forwardPropagator_
std::unordered_map< int, TrajectoryStateOnSurface > trajStateFromVtxNegChargeCache_
NavigationSchool const & navSchool_