1 #ifndef _ClusterShapeHitFilter_h_
2 #define _ClusterShapeHitFilter_h_
16 #include <unordered_map>
26 operator unsigned int()
const {
return key;}
29 if ( dx<0 || dy<0 )
return N;
30 if ( dx>10 || dy>4 )
return N;
35 if ( dx<0 || dy<0 )
return N;
36 if ( dx>10 || dy>15 )
return N;
37 if (dx<8)
return dx*16+dy;
39 return 128 + (dx-8)*3+dy;
61 static const int N=40;
65 operator unsigned int()
const {
return key;}
95 bool isInside(
const std::pair<float,float> & pred)
const {
97 bool one = (pred.first >
limit[0][0]) && ( pred.first <
limit[0][1] )
98 && (pred.second >
limit[1][0]) && (pred.second <
limit[1][1]);
101 bool two = (pred.first >
limit[0][0]) && ( pred.first <
limit[0][1] )
102 && (pred.second >
limit[1][0]) && (pred.second <
limit[1][1]);
123 bool one = pred > limit[0] && pred < limit[1];
125 bool two = pred > limit[0] && pred < limit[1];
167 int &
part, std::vector<std::pair<int,int> > & meas,
168 std::pair<float,float> & predr,
179 int & meas,
float & pred)
const;
181 int & meas,
float & pred)
const {
const MagneticField * theMagneticField
const SiStripLorentzAngle * theSiStripLorentzAngle
const PixelData & getpd(const SiPixelRecHit &recHit, PixelData const *pd=0) const
bool operator<(const PixelKeys &right) const
static unsigned char barrelPacking(int dx, int dy)
std::pair< float, float > cotangent
bool isCompatible(const SiPixelRecHit &recHit, const LocalVector &ldir, PixelData const *pd=0) const
bool isCompatible(const SiStripRecHit2D &recHit, const GlobalVector &gdir) const
bool isInside(const std::pair< float, float > &pred) const
static const int N_endcap
static const int N_barrel
PixelLimits pixelLimits[PixelKeys::N+1]
std::unordered_map< unsigned int, PixelData > pixelData
const TrackerGeometry * theTracker
std::pair< float, float > getCotangent(const PixelGeomDetUnit *pixelDet) const
StripLimits stripLimits[StripKeys::N+1]
static unsigned char endcapPacking(int dx, int dy)
const PixelGeomDetUnit * det
bool isInside(float pred) const
std::pair< float, float > drift
static const int offset_endcap_dx
const SiPixelLorentzAngle * theSiPixelLorentzAngle
bool isCompatible(const SiStripRecHit2D &recHit, const LocalVector &ldir) const
bool isNormalOriented(const GeomDetUnit *geomDet) const
bool getSizes(const SiStripRecHit2D &recHit, const LocalVector &ldir, int &meas, float &pred) const
std::pair< float, float > getDrift(const PixelGeomDetUnit *pixelDet) const
SiStripCluster const & stripCluster() const
TrajectoryFilter::Record Record
bool getSizes(const SiPixelRecHit &recHit, const LocalVector &ldir, int &part, std::vector< std::pair< int, int > > &meas, std::pair< float, float > &predr, PixelData const *pd=0) const
PixelKeys(int part, int dx, int dy)
DetId geographicalId() const
bool operator<(const StripKeys &right) const
static const int offset_endcap_dy