15 #include <G4VSolid.hh>
16 #include <G4Transform3D.hh>
17 #include "ecl/dbobjects/ECLCrystalsShapeAndPosition.h"
29 #define UNUSED __attribute__((unused))
33 shape_t(): nshape(0) {}
36 G4VSolid* get_solid(
const std::string& prefix,
double wrapthick, G4Translate3D& shift)
const;
37 virtual G4VSolid* get_tesselatedsolid(
const std::string& prefix,
double wrapthick, G4Translate3D& shift)
const = 0;
38 virtual G4VSolid* get_trapezoid(
const std::string& prefix,
double wrapthick, G4Translate3D& shift)
const = 0;
39 virtual G4VSolid* get_extrudedsolid(
const std::string& prefix,
double wrapthick, G4Translate3D& shift)
const = 0;
40 virtual G4VSolid* get_bellecrystal(
const std::string& prefix,
double wrapthick, G4Translate3D& shift)
const = 0;
41 virtual bool istrap()
const = 0;
46 double Rphi1, Rtheta, Rphi2;
47 double Pr, Ptheta, Pphi;
50 std::vector<shape_t*> load_shapes(
const std::string& fname);
51 std::vector<cplacement_t> load_placements(
const std::string& fname);
57 inline std::string suf(
const std::string& s,
int indx)
60 r +=
"_" + std::to_string(indx);
64 enum ECLParts { forward, barrel, backward };