8 #ifndef LMD_LMDMC_PNDLMDGEOMETRYFACTORY_H_ 9 #define LMD_LMDMC_PNDLMDGEOMETRYFACTORY_H_ 13 #include <boost/property_tree/ptree.hpp> 17 class TGeoVolumeAssembly;
24 boost::property_tree::ptree geometry_property_tree;
25 std::vector<StringBoolPair> navigation_paths;
28 void retrieveMaterial(FairGeoLoader *geoLoad);
30 TGeoVolume *generateLmdBox()
const;
31 TGeoVolume *generateBeamPipe()
const;
33 TGeoVolume *generateDetectorHalf(
bool is_bottom_half)
const;
34 TGeoVolume *generateDetectorHalfPlane(
bool is_bottom_half)
const;
35 TGeoVolume *generateAluminumCoolingStructure()
const;
36 TGeoVolume *generatePCB()
const;
37 TGeoVolume *generatePCBMountScrew()
const;
38 TGeoVolume *generatePCBCopperPlug()
const;
39 TGeoVolume *generatePCBBacksideElectronics()
const;
40 TGeoVolume *generateSensorModule()
const;
41 TGeoVolume *generateCVDCoolingDisc()
const;
42 TGeoVolume *generateSensor()
const;
44 TGeoVolume *generateBoxVacuum(
const TGeoVolume *lmd_vol)
const;
45 void recursiveNodeSubtraction(std::stringstream &ss, TGeoNode *node)
const;
47 void makeNodesAlignable()
const;
48 void makeNodesAlignable(TGeoNode *node,
unsigned int current_navigation_path_index)
const;
54 void init(FairGeoLoader *geoLoad);
virtual ~PndLmdGeometryFactory()
PndLmdGeometryFactory(const boost::property_tree::ptree &geometry_property_tree_)
void init(FairGeoLoader *geoLoad)
TGeoVolumeAssembly * generateLmdGeometry() const
std::pair< std::string, bool > StringBoolPair