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