1 #ifndef RecoEgamma_EgammaElectronAlgos_TrajSeedMatcher_h 2 #define RecoEgamma_EgammaElectronAlgos_TrajSeedMatcher_h 41 #include <unordered_map> 60 struct hash<
std::pair<int,GlobalPoint> > {
61 std::size_t
operator()(
const std::pair<int,GlobalPoint>&
g)
const {
62 auto h1 = std::hash<unsigned long long>()((
unsigned long long)g.first);
63 unsigned long long k; memcpy(&k, &g.second,
sizeof(k));
64 auto h2 = std::hash<unsigned long long>()(k);
65 return h1 ^ (h2 << 1);
78 et_(0),eta_(0),phi_(0),charge_(0),nrClus_(0){}
97 float dRZ()
const{
return dRZ_;}
98 float dPhi()
const{
return dPhi_;}
100 float et()
const{
return et_;}
101 float eta()
const{
return eta_;}
102 float phi()
const{
return phi_;}
129 float iDRZPos,
float iDRZNeg,
130 float iDPhiPos,
float iDPhiNeg):
131 detId(iDetId),dRZPos(iDRZPos),dRZNeg(iDRZNeg),
132 dPhiPos(iDPhiPos),dPhiNeg(iDPhiNeg){}
138 const std::vector<SCHitMatch>& posCharge,
139 const std::vector<SCHitMatch>& negCharge,
144 float dRZPos(
size_t hitNr)
const{
return getVal(hitNr,&MatchInfo::dRZPos);}
145 float dRZNeg(
size_t hitNr)
const{
return getVal(hitNr,&MatchInfo::dRZNeg);}
146 float dPhiPos(
size_t hitNr)
const{
return getVal(hitNr,&MatchInfo::dPhiPos);}
147 float dPhiNeg(
size_t hitNr)
const{
return getVal(hitNr,&MatchInfo::dPhiNeg);}
148 DetId detId(
size_t hitNr)
const{
return hitNr<matchInfo_.size() ? matchInfo_[hitNr].detId :
DetId(0);}
150 const std::vector<MatchInfo>&
matches()
const{
return matchInfo_;}
167 virtual bool operator()(
const SCHitMatch& scHitMatch)
const=0;
173 bool operator()(
const SCHitMatch& scHitMatch)
const override;
175 float getDRZCutValue(
const float scEt,
const float scEta)
const;
187 bool operator()(
const SCHitMatch& scHitMatch)
const override;
189 size_t getBinNr(
float eta)
const;
191 return highEt +
std::min(0.
f,et-highEtThres)*lowEtGrad;
208 std::vector<TrajSeedMatcher::SeedWithInfo>
247 bool passesMatchSel(
const SCHitMatch& hit,
const size_t hitNr)
const;
252 const float energy,
const int charge);
254 int getNrValidLayersAlongTraj(
const DetId& hitId,
260 size_t getNrHitsRequired(
const int nrValidLayers)
const;
const GlobalPoint & hitPos() const
std::unordered_map< std::pair< int, GlobalPoint >, TrajectoryStateOnSurface > trajStateFromPointNegChargeCache_
std::unordered_map< int, TrajectoryStateOnSurface > trajStateFromVtxNegChargeCache_
size_t nrMatchedHits() const
DetId detId(size_t hitNr) const
std::vector< double > dRZLowEtGrad_
std::vector< double > dPhiLowEtGrad_
std::unordered_map< int, TrajectoryStateOnSurface > trajStateFromVtxPosChargeCache_
const TrackingRecHit * hit() const
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_
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 g
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::unordered_map< std::pair< int, GlobalPoint >, TrajectoryStateOnSurface > trajStateFromPointPosChargeCache_
std::vector< TrajectorySeed > TrajectorySeedCollection
edm::ESHandle< MagneticField > magField_
MatchInfo(const DetId &iDetId, float iDRZPos, float iDRZNeg, float iDPhiPos, float iDPhiNeg)
std::vector< MatchInfo > matchInfo_
std::vector< std::unique_ptr< MatchingCuts > > matchingCuts_
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_
edm::Handle< MeasurementTrackerEvent > measTkEvt_
std::size_t operator()(const std::pair< int, GlobalPoint > &g) const
et
define resolution functions of each parameter
const TrackingRecHit * hit_
int nrValidLayers() const
std::string detLayerGeomLabel_
float dRZNeg(size_t hitNr) const
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
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_