9#ifndef GEOVXDCOMPONENTS_H
10#define GEOVXDCOMPONENTS_H
12#include <vxd/geometry/SensorInfoBase.h>
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
double & getHeight()
get the height of the component
void setLength(double length)
set the length of the component
const std::string & getColor() const
get the name of the color for the component
double getWidth2() const
get the forward width of the component, 0 for rectangular
std::string m_color
Name of the color of the component.
void setWidth(double width)
set the width of the component.
const std::string & getMaterial() const
get the name of the Material for the component
double m_length
length of 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
G4LogicalVolume * getVolume() const
get the pointer to the logical volume, NULL if not yet created
double getLength() const
get the length of the component
Struct containing all parameters of one ladder.
const std::vector< VXDGeoSensorPlacement > & getSensors() const
get list of sensors
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
const std::string & getGlueMaterial() const
get the glue material
int m_layerID
ID of the ladder inside the layer.
double getSlantedAngle() const
get the slant angle for slanted sensors
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
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
const std::string & getName() const
get Name of 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.
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
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
const std::string & getSensorTypeID() const
get the sensor type id, internal id only needed for construction
Struct holding all parameters for a completeVXD Sensor.
const VXDGeoPlacement & getActivePlacement()
get the placement description for the active area
VXDGeoPlacement m_activePlacement
Position of the active area.
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.
const std::vector< VXDGeoPlacement > & getComponents() const
get the list of sub components
const VXD::SensorInfoBase * getSensorInfo() const
get the pointer to the SensorInfo class
bool m_slanted
Indication wether this is a slanted sensor.
std::vector< VXDGeoPlacement > m_components
List of all components to be placed.
void setComponents(const std::vector< VXDGeoPlacement > &component)
set the list of sub components to be placed
VXDGeoComponent & getActiveArea()
get the component description for the active area
Base class to provide Sensor Information for PXD and SVD.
Abstract base class for different kinds of events.