28 for (std::vector<ServiceVolume *>::iterator iter =
m_volumes.begin(); iter !=
m_volumes.end(); ++iter)
delete *iter;
38 int nstaves,
const std::string& suffix,
39 int nModulesPerStave,
int nChipsPerModule)
43 nModulesPerStave, nChipsPerModule);
52 int nstaves,
const std::string& suffix,
53 int nModulesPerStave,
int nChipsPerModule)
58 nModulesPerStave, nChipsPerModule);
73 msg(MSG::INFO) <<
"ServicesTracker::finaliseServices called for " <<
m_volumes.size() <<
" volumes" <<
endmsg;
78 std::map<const ServicesLayer*, ServiceMaterial> layerMaterial;
80 using VolumeIter = std::vector<ServiceVolume *>::iterator;
82 std::vector<ServiceMaterial>
result;
86 for (ServiceVolume::LayerContainer::const_iterator il=layers.begin(); il!=layers.end(); ++il) {
90 std::map<const ServicesLayer*, ServiceMaterial>::iterator iMat = layerMaterial.find(*il);
91 if (iMat != layerMaterial.end()) layerMat = iMat->second;
94 layer.modulesPerStave(), layer.chipsPerModule(),
msg());
100 staveConverter.
addCooling( layer.type(), layer.part(), layer.number(), layer.nStaves(), layerMat);
103 msg(MSG::DEBUG) <<
"Dumping services for layer " << layer.number()<<
endmsg;
106 layerMaterial[*il] = layerMat;
108 result.push_back( std::move(layerMat));
111 (**iv).setMaterials(
result);
118 if (vol.
name().find(
"Pixel") != string::npos) {
119 name =
"pix::PixelEOS";
122 name =
"pix::StripEOS";
MsgStream & msg() const
The standard message stream.
bool msgLvl(const MSG::Level lvl) const
Test the output level.
AthMessaging(IMessageSvc *msgSvc, const std::string &name)
Constructor.
StaveServices compute(DetType::Type, DetType::Part, int layerNumber, int nModulesPerStave, int nChipsPerModule, MsgStream &msg) const
ServiceMaterial convertStaveServices(const StaveServices &stServ) const
void addCooling(DetType::Type type, DetType::Part part, int layerNumber, int nStaves, ServiceMaterial &mat)
void createRoutingVolumes(ServicesTracker &tracker)
void dump(std::ostream &os) const
void multiply(int factor)
std::vector< Entry > EntryContainer
std::vector< const ServicesLayer * > LayerContainer
const LayerContainer & layers() const
const std::string & name() const
void constructEndcapLayer(double zpos, double rmin, double rmax, DetType::Type type, int num, int nstaves, const std::string &suffix, int nModulesPerStave, int nChipsPerModule)
LayerContainer m_barrelStripLayers
LayerContainer m_barrelLayers
LayerContainer m_endcapPixelLayers
std::vector< ServiceVolume * > m_volumes
void computeServicesPerLayer()
LayerContainer m_barrelPixelLayers
ServicesTracker()
Construct an empty tracker, to be filled by Builder.
const InDetServMatGeometryManager * m_geoMgr
void addEosMaterial(const ServiceVolume &vol, std::vector< ServiceMaterial > &result)
LayerContainer m_endcapStripLayers
void constructBarrelLayer(double radius, double zHalfLength, DetType::Type type, int num, int nstaves, const std::string &suffix, int nModulesPerStave, int nChipsPerModule)
Class storing all the services of a stave (or a petal, etc...) classifying them by function and by nu...
Structure holding one service material.