 |
Belle II Software
release-05-01-25
|
12 #ifndef GEOVXDCOMPONENTS_H
13 #define GEOVXDCOMPONENTS_H
15 #include <vxd/geometry/SensorInfoBase.h>
20 class G4LogicalVolume;
39 VXDGeoPlacement(
const std::string& name =
"",
double u = 0,
double v = 0,
40 std::string w =
"bottom",
double woffset = 0);
69 double width = 0,
double width2 = 0,
double length = 0,
double height = 0):
115 VXDGeoSensor(
const std::string& material =
"",
const std::string& color =
"",
116 double width = 0,
double width2 = 0,
double length = 0,
double height = 0,
bool slanted =
false):
158 bool flipU =
false,
bool flipV =
false,
bool flipW =
false):
192 double slantedAngle = 0,
double slantedRadius = 0,
193 double glueSize = -1,
const std::string& glueMaterial =
""):
VXDGeoComponent m_activeArea
Paramerers of the active area.
int m_sensorID
ID of the sensor inside the ladder.
double getLength() const
get the length of the component
double getSlantedAngle() const
get the slant angle for slanted sensors
Struct holding the information where a sensor should be placed inside the ladder.
std::string m_glueMaterial
name of the Material used as glue
double getU() const
get local u coordinate where to place the component
bool m_flipV
flip sensor along v?
void setComponents(const std::vector< VXDGeoPlacement > &component)
set the list of sub components to be placed
bool getFlipU() const
check whether or not the sensor should be flipped around the U coordinate
double m_width
width of the component
@ c_center
Place the component at the center of the mother.
Class holding all parameters to place a VXD geometry subcomponent.
double m_radius
Radius where to place the ladder.
const std::vector< VXDGeoSensorPlacement > & getSensors() const
get list of sensors
double getZ() const
get the z position of the sensor
const std::string & getName() const
get Name of the component
@ c_below
Place the component below the mother.
double m_shift
Shift of the ladder along local u.
Base class to provide Sensor Information for PXD and SVD.
const std::string & getMaterial() const
get the name of the Material for the component
double m_z
global z position of the center of the sensor
double getWOffset() const
get offset to local w position where to place the component
EPosW
Enum describing where to place the component vertically.
const std::string & getGlueMaterial() const
get the glue material
std::string m_sensorTypeID
Type of the sensor to be used.
VXDGeoSensor(const std::string &material="", const std::string &color="", double width=0, double width2=0, double length=0, double height=0, bool slanted=false)
Constructor.
double getGlueSize() const
get the additional glue size, e.g.
@ c_bottom
Place the component at the bottom of the mother.
G4LogicalVolume * getVolume() const
get the pointer to the logical volume, NULL if not yet created
@ c_top
Place the component at the top of the mother.
const VXD::SensorInfoBase * getSensorInfo() const
get the pointer to the SensorInfo class
void setWidth(double width)
set the width of the component.
double getRadius() const
get the radius of all sensors except slanted ones
std::string m_color
Name of the color of the component.
double m_width2
forward width of the component, 0 for recangular
Abstract base class for different kinds of events.
double m_u
u coordinate where to place the component
double m_v
v coordinate where to place the component
int m_layerID
ID of the ladder inside the layer.
double m_slantedAngle
Angle of the module with respect to the global z-axis for slanted sensors.
VXDGeoComponent & getActiveArea()
get the component description for the active area
bool m_slanted
Indication wether this is a slanted sensor.
int getSensorID() const
get the sensor id inside the ladder
EPosW m_w
w coordinate where to place the component
Struct containing all parameters of one ladder.
double getWidth() const
get the width of the component
VXDGeoComponent(const std::string &material="", const std::string &color="", double width=0, double width2=0, double length=0, double height=0)
Constructor.
std::string m_name
Name of the component.
bool m_flipW
flip sensor along w?
VXDGeoLadder(int layerID=0, double shift=0, double radius=0, double slantedAngle=0, double slantedRadius=0, double glueSize=-1, const std::string &glueMaterial="")
Constructor.
G4LogicalVolume * m_volume
Pointer to the Logical volume if already created
const std::vector< VXDGeoPlacement > & getComponents() const
get the list of sub components
double m_woffset
Offset to the w placement of the component.
bool getFlipV() const
check whether or not the sensor should be flipped around the V coordinate
VXD::SensorInfoBase * m_info
Sensor Information instance.
void setSensorInfo(VXD::SensorInfoBase *info)
set the pointer to the SensorInfo class
const std::string & getColor() const
get the name of the color for the component
@ c_above
Place the component above the mother.
double m_slantedRadius
Radius of the center of the active area for slanted sensors.
Struct holding all parameters for a completeVXD Sensor.
void setVolume(G4LogicalVolume *volume)
set the pointer to the logical volume
std::string m_material
transient member, owned by Geant4
bool getSlanted() const
return wether or not the sensor is slanted (usually only the first sensor in layers 4-6)
EPosW getW() const
get local w position where to place the component
double getShift() const
get the shift along the u coordinate for all sensors in the ladder
std::vector< VXDGeoSensorPlacement > m_sensors
list of all sensors to be placed in the ladder
const std::string & getSensorTypeID() const
get the sensor type id, internal id only needed for construction
VXDGeoPlacement(const std::string &name="", double u=0, double v=0, std::string w="bottom", double woffset=0)
Constructor.
void setActive(const VXDGeoComponent &area, const VXDGeoPlacement &placement)
set the active area
int getLayerID() const
get the layer id
double m_height
height of the component
void addSensor(const VXDGeoSensorPlacement &sensor)
add a sensor to the list of sensors in the ladder
double getHeight() const
get the height of the component
double & getHeight()
get the height of the component
double m_length
length of the component
Class holding all parameters for an VXD geometry component.
bool m_flipU
flip sensor along u?
double getWidth2() const
get the forward width of the component, 0 for rectangular
std::vector< VXDGeoPlacement > m_components
List of all components to be placed.
VXDGeoPlacement m_activePlacement
Position of the active area.
double getV() const
get local v coordinate where to place the component
const VXDGeoPlacement & getActivePlacement()
get the placement description for the active area
double getSlantedRadius() const
get the radius for slanted sensors
bool getFlipW() const
check whether or not the sensor should be flipped around the W coordinate
void setLength(double length)
set the length of the component
VXDGeoSensorPlacement(int sensorID=0, const std::string &sensorTypeID="", double z=0, bool flipU=false, bool flipV=false, bool flipW=false)
Constructor.
double m_glueSize
Oversize of the glue between the ladders, <0 means no glue.