 |
Belle II Software
release-05-01-25
|
12 #ifndef GEOVXDCREATOR_H
13 #define GEOVXDCREATOR_H
15 #include <vxd/geometry/GeoVXDComponents.h>
16 #include <vxd/geometry/GeoVXDAssembly.h>
17 #include <vxd/geometry/SensorInfoBase.h>
18 #include <vxd/geometry/GeoVXDRadiationSensors.h>
19 #include <vxd/simulation/SensitiveDetectorBase.h>
20 #include <geometry/CreatorBase.h>
21 #include <framework/gearbox/GearDir.h>
22 #include <framework/logging/Logger.h>
28 #include <framework/database/DBObjPtr.h>
29 #include <framework/database/DBImportObjPtr.h>
30 #include <framework/database/IntervalOfValidity.h>
31 #include <vxd/dbobjects/VXDGeometryPar.h>
34 #include <G4Transform3D.hh>
35 #include <G4Polycone.hh>
36 class G4LogicalVolume;
37 class G4AssemblyVolume;
83 G4Transform3D
placeLadder(
int ladderID,
double phi, G4LogicalVolume* volume,
const G4Transform3D& placement,
122 component, std::vector<VXDGeoPlacement> placements,
123 bool originCenter =
true,
bool allowOutside =
false);
139 width2,
double length,
double& height,
double angle = 0);
G4Transform3D getAlignment(const VXDAlignmentPar ¶ms)
Get Alignment from paylead object.
The Class for VXD geometry.
Struct holding the information where a sensor should be placed inside the ladder.
G4Transform3D getPosition(const VXDGeoComponent &mother, const VXDGeoComponent &daughter, const VXDGeoPlacement &placement, bool originCenter)
Return the position where a daughter component is to be placed.
G4Transform3D placeLadder(int ladderID, double phi, G4LogicalVolume *volume, const G4Transform3D &placement, const VXDGeometryPar ¶meters)
Place ladder corresponding to the given ladder id into volume setLayer has to be called first to set ...
Class to uniquely identify a any structure of the PXD and SVD.
The Class for VXD Alignment payload.
GeoVXDAssembly createSubComponents(const std::string &name, VXDGeoComponent &component, std::vector< VXDGeoPlacement > placements, bool originCenter=true, bool allowOutside=false)
Place a list of subcomponents into an component.
std::vector< VXDGeoPlacementPar > getSubComponents(const GearDir &path)
Return vector of VXDGeoPlacements with all the components defined inside a given path.
Class holding all parameters to place a VXD geometry subcomponent.
virtual SensorInfoBase * createSensorInfo(const VXDGeoSensorPar &sensor)=0
Read the sensor definitions from the database.
void readComponent(const std::string &name, GearDir components, VXDGeometryPar &vxdGeometryPar)
Read parameters for component name from Gearbox into geometry payload.
The Class for VXD Sensor payload.
Base class for Sensitive Detector implementation of PXD and SVD.
Base class to provide Sensor Information for PXD and SVD.
std::map< std::string, VXDGeoComponent > m_componentCache
Cache of all previously created components.
bool m_onlyActiveMaterial
If this is true, only active Materials will be placed for tracking studies.
std::map< std::string, VXDGeoSensor > m_sensorMap
Map containing Information about all defined sensor types.
void createDiamonds(const VXDGeoRadiationSensorsPar ¶ms, G4LogicalVolume &topVolume, G4LogicalVolume &envelopeVolume)
Create diamond radiation sensors.
Class to group some Geant4 volumes and place them all at once with a given transformation matrix.
GeoVXDCreator(const std::string &prefix)
Constructor of the GeoVXDCreator class.
The Class for VXD Radiation Sensor parameters.
float m_minimumElectrons
minimum number of electrons to be deposited by a particle to be saved
VXDGeoLadder m_ladder
Parameters of the currently active ladder.
std::vector< Simulation::SensitiveDetectorBase * > m_sensitive
List to all created sensitive detector instances.
float m_electronTolerance
tolerance for the energy deposition in electrons to be merged in a single step
virtual void readLadder(int layer, GearDir components, VXDGeometryPar &geoparameters)
Read parameters for a ladder in layer with given ID from gearbox and layer store them in payload.
bool m_onlyPrimaryTrueHits
If true only create TrueHits from primary particles and ignore secondaries.
bool m_seeNeutrons
Make sensitive detectors also see neutrons.
Abstract base class for different kinds of events.
virtual SensitiveDetectorBase * createSensitiveDetector(VxdID sensorID, const VXDGeoSensor &sensor, const VXDGeoSensorPlacement &placement)=0
Return a SensitiveDetector implementation for a given sensor.
GearDir is the basic class used for accessing the parameter store.
float m_distanceTolerance
tolerance for Geant4 steps to be merged to a single step
std::string m_defaultMaterial
Name of the Material to be used for Air.
Struct containing all parameters of one ladder.
std::string m_prefix
Prefix to prepend to all volume names.
double m_activeStepSize
Stepsize to be used inside active volumes.
Struct holding all parameters for a completeVXD Sensor.
GearDir m_components
GearDir pointing to the toplevel of the components.
std::vector< G4UserLimits * > m_UserLimits
Vector of G4UserLimit pointers.
Pure virtual base class for all geometry creators.
G4VSolid * createTrapezoidal(const std::string &name, double width, double width2, double length, double &height, double angle=0)
Create a trapezoidal solid.
bool m_activeChips
Make also chips sensitive.
virtual void setCurrentLayer(int layer, const VXDGeometryPar ¶meters)
Read parameters for given layer and store in m_ladder.
std::map< std::string, Belle2::VxdID > m_halfShellVxdIDs
Used for translation of half-shell name into a VxdID to consitently handle it in hierarchy.
virtual ~GeoVXDCreator()
The destructor of the GeoVXDCreator class.
void readSubComponents(const std::vector< VXDGeoPlacementPar > &placements, const GearDir &componentsDir, VXDGeometryPar &vxdGeometryPar)
Read parameters for all components in placement container from Gearbox into payload.
GeoVXDRadiationSensors m_radiationsensors
Diamond radiation sensor "sub creator".
The creator for the VXD geometry of the Belle II detector.
Class holding all parameters for an VXD geometry component.
std::string m_currentHalfShell
Current half-shell being processed (need to know ladder parent for hierarchy)
virtual void readLadderComponents(int layerID, int ladderID, GearDir content, VXDGeometryPar &vxdGeometryPar)
Read parameters for ladder components and their alignment corresponding to the given ladder id.
class to create the diamond radiation sensor geometry if defined
static const double um
[micrometers]
GearDir m_alignment
GearDir pointing to the alignment parameters.