CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
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 ( 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 ( )
default

Member Function Documentation

void PixelTopologyMap::buildTopologyMaps ( )
private

Definition at line 15 of file PixelTopologyMap.cc.

References TrackerGeometry::detsPXB(), TrackerGeometry::detsPXF(), GeomDet::geographicalId(), mps_fire::i, PVValHelper::ladder, phase1PixelTopology::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 pxfDisk(const DetId &id) const
unsigned int pxbLadder(const DetId &id) const
unsigned int pxbModule(const DetId &id) const
unsigned int numberOfLayers(int subdet) const
constexpr std::array< uint8_t, layerIndexSize > layer
const DetContainer & detsPXB() const
DetId geographicalId() const
The label of this GeomDet.
Definition: GeomDet.h:64
unsigned int pxfModule(const DetId &id) const
unsigned int pxbLayer(const DetId &id) const
std::map< unsigned, std::pair< unsigned, unsigned > > m_pxfMap
std::map< unsigned, std::pair< unsigned, unsigned > > m_pxbMap
const DetContainer & detsPXF() const
const TrackerTopology * m_trackerTopo
unsigned int pxfBlade(const DetId &id) const
tuple module
Definition: callgraph.py:69
const unsigned PixelTopologyMap::getPXBLadders ( unsigned int  lay) const
inline

Definition at line 32 of file PixelTopologyMap.h.

References m_pxbMap.

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

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

Definition at line 33 of file PixelTopologyMap.h.

References m_pxbMap.

Referenced by PrimaryVertexValidation::beginRun(), SiPixelLorentzAnglePCLHarvester::beginRun(), SiPixelLorentzAnglePCLWorker::dqmBeginRun(), and printAll().

33 { return m_pxbMap.at(lay).second; }
std::map< unsigned, std::pair< unsigned, unsigned > > m_pxbMap
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
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
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.

Referenced by operator<<().

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 getPXBModules(unsigned int lay) const
const unsigned getPXFBlades(int disk) const
std::map< unsigned, std::pair< unsigned, unsigned > > m_pxfMap
std::map< unsigned, std::pair< unsigned, unsigned > > m_pxbMap
const unsigned getPXFModules(int disk) const
const unsigned getPXBLadders(unsigned int lay) const

Member Data Documentation

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().

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().

const TrackerGeometry* PixelTopologyMap::m_trackerGeom
private

Definition at line 44 of file PixelTopologyMap.h.

Referenced by buildTopologyMaps().

const TrackerTopology* PixelTopologyMap::m_trackerTopo
private

Definition at line 43 of file PixelTopologyMap.h.

Referenced by buildTopologyMaps().