1 #ifndef RecoEgamma_EgammaElectronAlgos_TrajSeedMatcher_h 2 #define RecoEgamma_EgammaElectronAlgos_TrajSeedMatcher_h 75 int subdetId()
const {
return detId_.subdetId(); }
77 float dRZ()
const {
return dRZ_; }
78 float dPhi()
const {
return dPhi_; }
80 float et()
const {
return et_; }
81 float eta()
const {
return eta_; }
82 float phi()
const {
return phi_; }
83 int charge()
const {
return charge_; }
84 int nrClus()
const {
return nrClus_; }
107 MatchInfo(
const DetId& iDetId,
float iDRZPos,
float iDRZNeg,
float iDPhiPos,
float iDPhiNeg)
108 : detId(iDetId), dRZPos(iDRZPos), dRZNeg(iDRZNeg), dPhiPos(iDPhiPos), dPhiNeg(iDPhiNeg) {}
114 const std::vector<SCHitMatch>& posCharge,
115 const std::vector<SCHitMatch>& negCharge,
120 float dRZPos(
size_t hitNr)
const {
return getVal(hitNr, &MatchInfo::dRZPos); }
121 float dRZNeg(
size_t hitNr)
const {
return getVal(hitNr, &MatchInfo::dRZNeg); }
122 float dPhiPos(
size_t hitNr)
const {
return getVal(hitNr, &MatchInfo::dPhiPos); }
123 float dPhiNeg(
size_t hitNr)
const {
return getVal(hitNr, &MatchInfo::dPhiNeg); }
124 DetId detId(
size_t hitNr)
const {
return hitNr < matchInfo_.size() ? matchInfo_[hitNr].detId :
DetId(0); }
126 const std::vector<MatchInfo>&
matches()
const {
return matchInfo_; }
144 virtual bool operator()(
const SCHitMatch& scHitMatch)
const = 0;
150 bool operator()(
const SCHitMatch& scHitMatch)
const override;
153 float getDRZCutValue(
const float scEt,
const float scEta)
const;
166 bool operator()(
const SCHitMatch& scHitMatch)
const override;
169 size_t getBinNr(
float eta)
const;
171 return highEt +
std::min(0.
f, et - highEtThres) * lowEtGrad;
202 static float getZVtxFromExtrapolation(
const GlobalPoint& primeVtxPos,
235 bool passesMatchSel(
const SCHitMatch& hit,
const size_t hitNr)
const;
237 int getNrValidLayersAlongTraj(
const SCHitMatch& hit1,
246 bool layerHasValidHits(
const DetLayer& layer,
248 const Propagator& propToLayerFromState)
const;
250 size_t getNrHitsRequired(
const int nrValidLayers)
const;
255 return useParamMagFieldIfDefined_ && magFieldParam_->
isDefined(point) ? *magFieldParam_ : *magField_;
const GlobalPoint & hitPos() const
bool useParamMagFieldIfDefined_
IntGlobalPointPairUnorderedMap< TrajectoryStateOnSurface > trajStateFromPointNegChargeCache_
size_t nrMatchedHits() const
DetId detId(size_t hitNr) const
std::vector< double > dRZLowEtGrad_
std::vector< double > dPhiLowEtGrad_
const TrackingRecHit * hit() const
const MagneticField & getMagField(const GlobalPoint &point) const
edm::ESHandle< MagneticField > magFieldParam_
IntGlobalPointPairUnorderedMap< TrajectoryStateOnSurface > trajStateFromPointPosChargeCache_
edm::ESHandle< DetLayerGeometry > detLayerGeom_
float dRZPos(size_t hitNr) const
std::unique_ptr< PropagatorWithMaterial > forwardPropagator_
const std::vector< MatchInfo > & matches() const
const std::vector< int > minNrHitsValidLayerBins_
const double dRZMaxLowEtThres_
const std::vector< double > dRZMaxLowEt_
void setMeasTkEvtHandle(edm::Handle< MeasurementTrackerEvent > handle)
edm::ESHandle< NavigationSchool > navSchool_
std::vector< double > etaBins_
unsigned long long cacheIDMagField_
float getVal(size_t hitNr, float MatchInfo::*val) const
std::vector< TrajectorySeed > TrajectorySeedCollection
edm::ESHandle< MagneticField > magField_
MatchInfo(const DetId &iDetId, float iDRZPos, float iDRZNeg, float iDPhiPos, float iDPhiNeg)
std::vector< MatchInfo > matchInfo_
virtual bool isDefined(const GlobalPoint &) const
True if the point is within the region where the concrete field.
std::vector< std::unique_ptr< MatchingCuts > > matchingCuts_
std::string paramMagFieldLabel_
std::unordered_map< int, TrajectoryStateOnSurface > trajStateFromVtxPosChargeCache_
void setExtra(float et, float eta, float phi, int charge, int nrClus)
float dPhiPos(size_t hitNr) const
std::string navSchoolLabel_
const TrajectorySeed & seed() const
const std::vector< double > dRZMaxLowEtEtaBins_
std::unordered_map< std::pair< int, GlobalPoint >, T, HashIntGlobalPointPair > IntGlobalPointPairUnorderedMap
edm::Handle< MeasurementTrackerEvent > measTkEvt_
const TrackingRecHit * hit_
int nrValidLayers() const
std::string detLayerGeomLabel_
float dRZNeg(size_t hitNr) const
std::unordered_map< int, TrajectoryStateOnSurface > trajStateFromVtxNegChargeCache_
std::unique_ptr< PropagatorWithMaterial > backwardPropagator_
const TrajectorySeed & seed_
*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
bool requireExactMatchCount_
EventID const & max(EventID const &lh, EventID const &rh)
float dPhiNeg(size_t hitNr) const
float getCutValue(float et, float highEt, float highEtThres, float lowEtGrad) const
const std::vector< unsigned int > minNrHits_