12 #include <G4VSolid.hh>
13 #include <G4Transform3D.hh>
14 #include "ecl/dbobjects/ECLCrystalsShapeAndPosition.h"
26 #define UNUSED __attribute__((unused))
33 G4VSolid* get_solid(
const std::string& prefix,
double wrapthick, G4Translate3D& shift)
const;
34 virtual G4VSolid* get_tesselatedsolid(
const std::string& prefix,
double wrapthick, G4Translate3D& shift)
const = 0;
35 virtual G4VSolid* get_trapezoid(
const std::string& prefix,
double wrapthick, G4Translate3D& shift)
const = 0;
36 virtual G4VSolid* get_extrudedsolid(
const std::string& prefix,
double wrapthick, G4Translate3D& shift)
const = 0;
37 virtual G4VSolid* get_bellecrystal(
const std::string& prefix,
double wrapthick, G4Translate3D& shift)
const = 0;
38 virtual bool istrap()
const = 0;
43 double Rphi1, Rtheta, Rphi2;
44 double Pr, Ptheta, Pphi;
47 std::vector<shape_t*> load_shapes(
const std::string& fname);
48 std::vector<cplacement_t> load_placements(
const std::string& fname);
54 inline std::string suf(
const std::string& s,
int indx)
57 r +=
"_" + std::to_string(indx);
61 enum ECLParts { forward, barrel, backward };
Crystal shapes and positions.
Abstract base class for different kinds of events.