18 #include <boost/range/irange.hpp> 274 unsigned int fedid = 9999;
311 return std::make_pair(digi->
row(), digi->
column());
317 int row = cluster->
x() - 0.5,
col = cluster->
y() - 0.5;
318 return std::make_pair(row,
col);
329 return std::make_pair(row,
col);
340 nrows = topo->
nrows();
343 return (
pixel.first + 0.5) / nrows;
376 int rowsperroc = 80, colsperroc = 52;
426 return channel(static_cast<const SiPixelRecHit*>(rechit->
hit()));
447 int rowsperroc = 80, colsperroc = 52;
459 if (
roc_.count(pseudo_roc_num))
460 return roc_[pseudo_roc_num];
486 int rocX =
pixel.first / rowsperroc, rocY =
pixel.second / colsperroc;
489 int v1x8 =
half(
detid) == 1, v1x2 = (pan == 1 &&
mod == 1), v1x5 = (pan == 1 &&
mod == 4);
490 if (v1x8 || v1x2 || v1x5)
498 rocY = rocsY - 1 - rocY;
501 roc = rocX ? rocY : 2 * rocsY - 1 - rocY;
503 return roc_[pseudo_roc_num] =
roc;
523 return roc(static_cast<const SiPixelRecHit*>(rechit->
hit()));
704 return ring_coord(static_cast<const SiPixelRecHit*>(rechit->
hit()));
738 return disk_coord(static_cast<const SiPixelRecHit*>(rechit->
hit()));
750 coord_shift = -coord_shift;
819 coord_shift = -coord_shift;
863 coord_shift = -coord_shift;
867 coord_shift = -coord_shift;
890 return blade_coord(static_cast<const SiPixelRecHit*>(rechit->
hit()));
908 coord_shift = -coord_shift;
912 coord_shift = -coord_shift;
float ycoord_on_module_(const DetId &, const std::pair< int, int > &)
int sector(const DetId &)
float signed_module_coord(const DetId &, const std::pair< int, int > &)
std::unordered_map< uint32_t, int > panel_
std::unordered_map< uint64_t, unsigned int > channel_
float signed_blade_panel_coord(const DetId &, const std::pair< int, int > &)
int signed_blade(const DetId &)
float disk_ring_coord(const DetId &, const std::pair< int, int > &)
float ring_coord(const DetId &, const std::pair< int, int > &)
std::unordered_map< uint32_t, int > half_
unsigned int pxbLayer(const DetId &id) const
bool isPixel_(const DetId &)
const GeomDetUnit * detUnit() const override
virtual std::pair< float, float > pixel(const LocalPoint &p) const =0
int ringName() const
ring Id
const TrackerGeomDet * idToDetUnit(DetId) const override
Return the pointer to the GeomDetUnit corresponding to a given DetId.
std::unordered_map< uint32_t, int > sector_
unsigned int pxfBlade(const DetId &id) const
virtual int ncolumns() const =0
std::unordered_map< uint32_t, int > ladder_
std::unordered_map< uint32_t, int > signed_disk_
int bladeName() const
blade id
int moduleName() const
module id (index in z)
float ladder_coord(const DetId &, const std::pair< int, int > &)
int signed_disk(const DetId &)
unsigned int pxfModule(const DetId &id) const
virtual int rowsperroc() const =0
float disk_coord(const DetId &, const std::pair< int, int > &)
const TrackerTopology * tTopo_
virtual int nrows() const =0
float blade_coord(const DetId &, const std::pair< int, int > &)
unsigned int fedid(const DetId &)
unsigned int pxbLadder(const DetId &id) const
int flipped(const DetId &)
int module(const DetId &)
virtual ~SiPixelCoordinates()
bool isBPix_(const DetId &)
std::pair< int, int > pixel_(const PixelDigi *)
std::unordered_map< uint32_t, int > signed_module_
std::unordered_map< uint32_t, int > flipped_
std::unordered_map< uint32_t, int > ring_
std::unordered_map< uint32_t, int > outer_
bool isHalfModule() const
full or half module
virtual int colsperroc() const =0
bool isThere(GeomDetEnumerators::SubDetector subdet) const
HalfCylinder halfCylinder() const
std::unordered_map< uint32_t, int > layer_
std::unordered_map< uint32_t, int > module_
int channel(const DetId &, const std::pair< int, int > &)
unsigned int pxfDisk(const DetId &id) const
const SiPixelFedCablingMap * cablingMap_
void init(const TrackerTopology *, const TrackerGeometry *, const SiPixelFedCablingMap *)
std::unordered_map< uint32_t, int > signed_blade_
int roc(const DetId &, const std::pair< int, int > &)
std::vector< unsigned int > fedIds() const
std::unordered_map< uint32_t, int > disk_
unsigned int pxfPanel(const DetId &id) const
bool hasDetUnit(uint32_t radId) const
unsigned int pxfSide(const DetId &id) const
DetId geographicalId() const
unsigned long long uint64_t
std::unordered_map< uint32_t, int > signed_ladder_
const TrackerGeometry * tGeom_
int signed_module(const DetId &)
std::unordered_map< uint32_t, int > quadrant_
std::unordered_map< uint32_t, int > side_
int quadrant(const DetId &)
std::unordered_map< uint64_t, unsigned int > roc_
float xcoord_on_module_(const DetId &, const std::pair< int, int > &)
Pixel cluster – collection of neighboring pixels above threshold.
virtual const PixelTopology & specificTopology() const
Returns a reference to the pixel proxy topology.
LocalPoint localPosition() const override
float signed_disk_coord(const DetId &, const std::pair< int, int > &)
std::unordered_map< uint32_t, unsigned int > det2fedMap() const final
int ladderName() const
ladder id (index in phi)
std::unordered_map< uint32_t, int > blade_
virtual TrackingRecHit const * hit() const
int ladder(const DetId &)
float module_coord(const DetId &, const std::pair< int, int > &)
float signed_shifted_blade_panel_coord(const DetId &, const std::pair< int, int > &)
unsigned int pxbModule(const DetId &id) const
T mod(const T &a, const T &b)
float signed_blade_coord(const DetId &, const std::pair< int, int > &)
float signed_disk_ring_coord(const DetId &, const std::pair< int, int > &)
float blade_panel_coord(const DetId &, const std::pair< int, int > &)
unsigned int idInDetUnit() const
id of this ROC in DetUnit etermined by token path
float signed_ladder_coord(const DetId &, const std::pair< int, int > &)
int signed_ladder(const DetId &)
std::unordered_map< uint32_t, unsigned int > fedid_
bool isFPix_(const DetId &)
int sectorName() const
sector id