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