8#include "GaudiKernel/MsgStream.h"
10#include "GeoModelKernel/GeoFullPhysVol.h"
11#include "GeoModelKernel/GeoLogVol.h"
12#include "GeoModelKernel/GeoShapeShift.h"
13#include "GeoModelKernel/GeoShapeUnion.h"
14#include "GeoModelKernel/GeoTrd.h"
20#include <GaudiKernel/IMessageSvc.h>
21#include <GeoModelKernel/GeoDefinitions.h>
22#include <GeoModelKernel/GeoShape.h>
23#include <GeoModelKernel/GeoVPhysVol.h>
44 if (std::abs(num) < 1e-10) {
50 layer = std::make_unique<CscMultiLayer>(mysql, s->name);
66 std::vector<Cutout *> vcutdef;
68 return build(matManager, mysql, minimalgeo, cutoutson, vcutdef);
73 int minimalgeo,
int cutoutson,
74 const std::vector<Cutout *>& vcutdef) {
75 GeoFullPhysVol *pcsc =
nullptr;
76 GeoLogVol *lcsc =
nullptr;
77 const GeoMaterial *mcsc = matManager.
getMaterial(
"std::Air");
92 pcsc =
new GeoFullPhysVol(lcsc);
96 GeoVPhysVol *lay =
layer->build(matManager, mysql, cutoutson, vcutdef);
105 log << MSG::INFO <<
" Csc:: Csc " <<
name <<
" : " <<
endmsg;
virtual void print() const override
GeoFullPhysVol * build(StoredMaterialManager &matManager, const MYSQL &mysql, int minimalgeo)
CscComponent * m_component
Csc(const MYSQL &mysql, Component *s)
std::unique_ptr< CscMultiLayer > layer
DetectorElement(const std::string &n)
This class holds one or more material managers and makes them storeable, under StoreGate.
virtual const GeoMaterial * getMaterial(const std::string &name)=0
singleton-like access to IMessageSvc via open function and helper
IMessageSvc * getMessageSvc(bool quiet=false)
Ensure that the Athena extensions are properly loaded.