18#include <TGeoVolume.h>
53 double mZ,
int layerNumber,
int direction,
double Rin,
54 double Rout,
double overlap,
const std::string&
face,
55 const std::string& layout_type, TGeoVolume* motherVolume);
58 double mZ,
int layerNumber,
int direction,
double Rin,
60 TGeoVolume* motherVolume);
63 static void create_layout(
64 double mZ,
int layerNumber,
int direction,
double Rin,
65 double Rout,
double overlap,
const std::string&
face,
66 const std::string& layout_type, TGeoVolume* motherVolume);
68 void create_layout_staveGeo(
69 double mZ,
int layerNumber,
int direction,
double Rin,
71 TGeoVolume* motherVolume);
76 std::pair<double, double>& absAllowedYRange);
78 TGeoVolume* motherVolume, std::string volumeName,
int direction,
79 unsigned* volume_count,
double staveLength,
80 std::array<std::array<double, 3>, 4> staveTriangles,
81 std::pair<double, double>& absAllowedYRange,
82 double x_mid,
double y_mid,
double z_stave_shift_forward);
83 void addDetectorVolume(
84 TGeoVolume* motherVolume, std::string volumeName,
int color,
unsigned* volume_count,
85 double x_mid,
double y_mid,
double z_mid,
86 double x_half_length,
double y_half_length,
double z_half_length);
88 void add2x1GlueVolume(
89 TGeoVolume* motherVolume,
int layerNumber,
int direction,
unsigned stave_idx,
90 unsigned* volume_count,
double x_mid,
double y_mid,
double z_mid,
91 std::string element_glued_to);
93 void add2x1CopperVolume(
94 TGeoVolume* motherVolume,
int layerNumber,
int direction,
unsigned stave_idx,
95 unsigned* volume_count,
double x_mid,
double y_mid,
double z_mid);
97 void add2x1KaptonVolume(
98 TGeoVolume* motherVolume,
int layerNumber,
int direction,
unsigned stave_idx,
99 unsigned* volume_count,
double x_mid,
double y_mid,
double z_mid);
101 void addSingleSensorVolume(
102 TGeoVolume* motherVolume,
int layerNumber,
int direction,
unsigned stave_idx,
103 unsigned* volume_count,
double active_x_mid,
double y_mid,
double z_mid,
bool isLeft);
Definition of various constants for tiling the modules of sensors.
std::pair< std::pair< double, double >, std::pair< double, double > > PositionRangeType
std::vector< PositionType > PositionTypes
std::pair< double, unsigned > PositionType
std::pair< PositionTypes, PositionTypes > PosNegPositionTypes
void createModule_staveGeo(double mZ, int layerNumber, int direction, double Rin, double Rout, double z_offset_local, const Constants::StaveConfig &staveConfig, TGeoVolume *motherVolume)
static TGeoMedium * carbonFiberMed
static TGeoMedium * epoxyMed
static TGeoMaterial * epoxyMat
static TGeoMaterial * carbonFiberMat
static TGeoMedium * siliconMed
static void createModule(double mZ, int layerNumber, int direction, double Rin, double Rout, double overlap, const std::string &face, const std::string &layout_type, TGeoVolume *motherVolume)
static TGeoMedium * copperMed
static TGeoMaterial * kaptonMat
static TGeoMaterial * copperMat
static TGeoMaterial * siliconMat
static TGeoMedium * AluminumMed
static TGeoMedium * kaptonMed
static TGeoMaterial * AluminumMat
static void initialize_materials()
GLenum GLuint GLint GLenum face