ATLAS Offline Software
Loading...
Searching...
No Matches
PixelMaterialMap Class Reference

#include <PixelMaterialMap.h>

Collaboration diagram for PixelMaterialMap:

Classes

class  Key

Public Member Functions

 PixelMaterialMap (const IRDBRecordset_ptr &mapTable)
void addMaterial (int layerdisk, int typenum, const std::string &volumeName, const std::string &materialName)
std::string getMaterial (int layerdisk, int typenum, const std::string &volumeName) const

Private Types

typedef std::map< Key, std::string > mapType

Private Attributes

mapType m_matmap

Detailed Description

Definition at line 14 of file PixelMaterialMap.h.

Member Typedef Documentation

◆ mapType

typedef std::map<Key, std::string> PixelMaterialMap::mapType
private

Definition at line 34 of file PixelMaterialMap.h.

Constructor & Destructor Documentation

◆ PixelMaterialMap()

PixelMaterialMap::PixelMaterialMap ( const IRDBRecordset_ptr & mapTable)

Definition at line 26 of file PixelMaterialMap.cxx.

27{
28 for (const auto& rec : *mapTable) {
29 int layerdisk = rec->getInt("LAYERDISK");
30 int typenum = rec->getInt("TYPENUM");
31 std::string volumeName = rec->getString("VOLUMENAME");
32 std::string material = rec->getString("MATERIAL");
33 addMaterial(layerdisk, typenum, volumeName, material);
34 }
35}
void addMaterial(int layerdisk, int typenum, const std::string &volumeName, const std::string &materialName)

Member Function Documentation

◆ addMaterial()

void PixelMaterialMap::addMaterial ( int layerdisk,
int typenum,
const std::string & volumeName,
const std::string & materialName )

Definition at line 62 of file PixelMaterialMap.cxx.

63{
64 m_matmap[Key(layerdisk, typenum, volumeName)] = materialName;
65}

◆ getMaterial()

std::string PixelMaterialMap::getMaterial ( int layerdisk,
int typenum,
const std::string & volumeName ) const

Definition at line 38 of file PixelMaterialMap.cxx.

39{
40 // If not found try (layerdisk, 0) then (0, typenum), then (0,0)
41 mapType::const_iterator iter;
42 iter = m_matmap.find(Key(layerdisk, typenum, volumeName));
43 if (iter == m_matmap.end() && typenum) {
44 iter = m_matmap.find(Key(layerdisk, 0, volumeName));
45 }
46 if (iter == m_matmap.end() && layerdisk) {
47 iter = m_matmap.find(Key(0, typenum, volumeName));
48 }
49 if (iter == m_matmap.end() && typenum && layerdisk) {
50 iter = m_matmap.find(Key(0, 0, volumeName));
51 }
52 if (iter != m_matmap.end()) {
53 return iter->second;
54 } else {
55 std::cout << "ERROR: PixelMaterialMap::getMaterial Cannot find material for volumeName: " << volumeName << std::endl;
56 return "";
57 }
58}

Member Data Documentation

◆ m_matmap

mapType PixelMaterialMap::m_matmap
private

Definition at line 35 of file PixelMaterialMap.h.


The documentation for this class was generated from the following files: