CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Private Attributes
PixelTopologyMap Class Reference

#include <PixelTopologyMap.h>

Public Member Functions

const unsigned getPXBLadders (unsigned int lay) const
 
const unsigned getPXBModules (unsigned int lay) const
 
const unsigned getPXFBlades (int disk) const
 
const unsigned getPXFModules (int disk) const
 
 PixelTopologyMap (const TrackerGeometry *geom, const TrackerTopology *topo)
 
void printAll (std::ostream &os) const
 
 ~PixelTopologyMap ()=default
 

Private Member Functions

void buildTopologyMaps ()
 

Private Attributes

std::map< unsigned, std::pair< unsigned, unsigned > > m_pxbMap
 
std::map< unsigned, std::pair< unsigned, unsigned > > m_pxfMap
 
const TrackerGeometrym_trackerGeom
 
const TrackerTopologym_trackerTopo
 

Detailed Description

A specific Pixel Tracker class to determine the number of ladders / modules in PXB and number of blades/modules in PXF

Definition at line 20 of file PixelTopologyMap.h.

Constructor & Destructor Documentation

◆ PixelTopologyMap()

PixelTopologyMap::PixelTopologyMap ( const TrackerGeometry geom,
const TrackerTopology topo 
)
inline

Definition at line 22 of file PixelTopologyMap.h.

23  : m_trackerTopo{topo}, m_trackerGeom{geom} {
24  // build the maps
26  }
const TrackerGeometry * m_trackerGeom
const TrackerTopology * m_trackerTopo

◆ ~PixelTopologyMap()

PixelTopologyMap::~PixelTopologyMap ( )
default

Member Function Documentation

◆ buildTopologyMaps()

void PixelTopologyMap::buildTopologyMaps ( )
private

Definition at line 15 of file PixelTopologyMap.cc.

References TrackerGeometry::detsPXB(), TrackerGeometry::detsPXF(), GeomDet::geographicalId(), mps_fire::i, PVValHelper::ladder, pixelTopology::layer, m_pxbMap, m_pxfMap, m_trackerGeom, m_trackerTopo, callgraph::module, TrackerGeometry::numberOfLayers(), PixelSubdetector::PixelBarrel, PixelSubdetector::PixelEndcap, TrackerTopology::pxbLadder(), TrackerTopology::pxbLayer(), TrackerTopology::pxbModule(), TrackerTopology::pxfBlade(), TrackerTopology::pxfDisk(), and TrackerTopology::pxfModule().

15  {
16  // build barrel
18  std::vector<unsigned> maxLadder, maxModule;
19  maxLadder.resize(nlay);
20  maxModule.resize(nlay);
21  for (unsigned int i = 1; i <= nlay; i++) {
22  maxLadder.push_back(0);
23  maxModule.push_back(0);
24  }
25 
26  for (auto det : m_trackerGeom->detsPXB()) {
27  const PixelGeomDetUnit* pixelDet = dynamic_cast<const PixelGeomDetUnit*>(det);
28 
29  const auto& layer = m_trackerTopo->pxbLayer(pixelDet->geographicalId());
30  const auto& ladder = m_trackerTopo->pxbLadder(pixelDet->geographicalId());
31  const auto& module = m_trackerTopo->pxbModule(pixelDet->geographicalId());
32 
33  if (ladder > maxLadder[layer]) {
34  maxLadder[layer] = ladder;
35  }
36 
37  if (module > maxModule[layer]) {
38  maxModule[layer] = module;
39  }
40  }
41 
42  for (unsigned int i = 1; i <= nlay; i++) {
43  m_pxbMap[i] = std::make_pair(maxLadder[i], maxModule[i]);
44  }
45 
46  // build endcaps
48  std::vector<unsigned> maxBlade, maxPXFModule;
49  maxBlade.resize(ndisk);
50  maxPXFModule.resize(ndisk);
51  for (unsigned int i = 1; i <= ndisk; i++) {
52  maxBlade.push_back(0);
53  maxPXFModule.push_back(0);
54  }
55 
56  for (auto det : m_trackerGeom->detsPXF()) {
57  const PixelGeomDetUnit* pixelDet = dynamic_cast<const PixelGeomDetUnit*>(det);
58 
59  const auto& disk = m_trackerTopo->pxfDisk(pixelDet->geographicalId());
60  const auto& blade = m_trackerTopo->pxfBlade(pixelDet->geographicalId());
61  const auto& pxf_module = m_trackerTopo->pxfModule(pixelDet->geographicalId());
62 
63  if (blade > maxBlade[disk]) {
64  maxBlade[disk] = blade;
65  }
66 
67  if (pxf_module > maxPXFModule[disk]) {
68  maxPXFModule[disk] = pxf_module;
69  }
70  }
71 
72  for (unsigned int i = 1; i <= ndisk; i++) {
73  m_pxfMap[i] = std::make_pair(maxBlade[i], maxPXFModule[i]);
74  }
75 }
const TrackerGeometry * m_trackerGeom
unsigned int pxbLayer(const DetId &id) const
unsigned int pxfBlade(const DetId &id) const
const DetContainer & detsPXB() const
unsigned int numberOfLayers(int subdet) const
unsigned int pxfModule(const DetId &id) const
const DetContainer & detsPXF() const
unsigned int pxbLadder(const DetId &id) const
constexpr std::array< uint8_t, layerIndexSize< TrackerTraits > > layer
unsigned int pxfDisk(const DetId &id) const
DetId geographicalId() const
The label of this GeomDet.
Definition: GeomDet.h:64
std::map< unsigned, std::pair< unsigned, unsigned > > m_pxfMap
std::map< unsigned, std::pair< unsigned, unsigned > > m_pxbMap
unsigned int pxbModule(const DetId &id) const
const TrackerTopology * m_trackerTopo

◆ getPXBLadders()

const unsigned PixelTopologyMap::getPXBLadders ( unsigned int  lay) const
inline

Definition at line 32 of file PixelTopologyMap.h.

References m_pxbMap.

Referenced by PrimaryVertexValidation::beginRun(), and printAll().

32 { return m_pxbMap.at(lay).first; }
std::map< unsigned, std::pair< unsigned, unsigned > > m_pxbMap

◆ getPXBModules()

const unsigned PixelTopologyMap::getPXBModules ( unsigned int  lay) const
inline

Definition at line 33 of file PixelTopologyMap.h.

References m_pxbMap.

Referenced by PrimaryVertexValidation::beginRun(), and printAll().

33 { return m_pxbMap.at(lay).second; }
std::map< unsigned, std::pair< unsigned, unsigned > > m_pxbMap

◆ getPXFBlades()

const unsigned PixelTopologyMap::getPXFBlades ( int  disk) const
inline

Definition at line 34 of file PixelTopologyMap.h.

References funct::abs(), and m_pxfMap.

Referenced by printAll().

34 { return m_pxfMap.at(std::abs(disk)).first; }
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
std::map< unsigned, std::pair< unsigned, unsigned > > m_pxfMap

◆ getPXFModules()

const unsigned PixelTopologyMap::getPXFModules ( int  disk) const
inline

Definition at line 35 of file PixelTopologyMap.h.

References funct::abs(), and m_pxfMap.

Referenced by printAll().

35 { return m_pxfMap.at(std::abs(disk)).second; }
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
std::map< unsigned, std::pair< unsigned, unsigned > > m_pxfMap

◆ printAll()

void PixelTopologyMap::printAll ( std::ostream &  os) const

Definition at line 3 of file PixelTopologyMap.cc.

References getPXBLadders(), getPXBModules(), getPXFBlades(), getPXFModules(), mps_fire::i, dqmiolumiharvest::j, m_pxbMap, and m_pxfMap.

3  {
4  for (unsigned int i = 1; i <= m_pxbMap.size(); i++) {
5  os << "PXB layer " << std::setw(2) << i << " has: " << std::setw(2) << getPXBLadders(i) << " ladders and "
6  << std::setw(2) << getPXBModules(i) << " modules" << std::endl;
7  }
8 
9  for (unsigned int j = 1; j <= m_pxfMap.size(); j++) {
10  os << "PXF disk " << std::setw(2) << j << " has: " << std::setw(2) << getPXFBlades(j) << " blades and "
11  << std::setw(2) << getPXFModules(j) << " modules" << std::endl;
12  }
13 }
const unsigned getPXFBlades(int disk) const
const unsigned getPXBModules(unsigned int lay) const
const unsigned getPXFModules(int disk) const
std::map< unsigned, std::pair< unsigned, unsigned > > m_pxfMap
std::map< unsigned, std::pair< unsigned, unsigned > > m_pxbMap
const unsigned getPXBLadders(unsigned int lay) const

Member Data Documentation

◆ m_pxbMap

std::map<unsigned, std::pair<unsigned, unsigned> > PixelTopologyMap::m_pxbMap
private

Definition at line 46 of file PixelTopologyMap.h.

Referenced by buildTopologyMaps(), getPXBLadders(), getPXBModules(), and printAll().

◆ m_pxfMap

std::map<unsigned, std::pair<unsigned, unsigned> > PixelTopologyMap::m_pxfMap
private

Definition at line 47 of file PixelTopologyMap.h.

Referenced by buildTopologyMaps(), getPXFBlades(), getPXFModules(), and printAll().

◆ m_trackerGeom

const TrackerGeometry* PixelTopologyMap::m_trackerGeom
private

Definition at line 44 of file PixelTopologyMap.h.

Referenced by buildTopologyMaps().

◆ m_trackerTopo

const TrackerTopology* PixelTopologyMap::m_trackerTopo
private

Definition at line 43 of file PixelTopologyMap.h.

Referenced by buildTopologyMaps().