Belle II Software  release-05-01-25
Collaboration diagram for vxd:

Modules

 vxd data objects
 
 vxd modules
 

Namespaces

 Belle2::VXD
 Namespace to provide code needed by both Vertex Detectors, PXD and SVD, and also testbeam telescopes.
 
 Belle2::SVD
 Namespace to encapsulate code needed for simulation and reconstrucion of the SVD.
 

Classes

class  HeavyMetalShieldGeometryPar
 The Class for VXD Heavy Metal Shield. More...
 
class  VXDAlignmentPar
 The Class for VXD Alignment payload. More...
 
class  VXDEnvelopePar
 The Class for VXD Envelope parameters. More...
 
class  VXDGeoComponentPar
 The Class for VXD geometry component. More...
 
class  VXDGeoLadderPar
 The Class for VXD Ladder payload. More...
 
class  VXDGeometryPar
 The Class for VXD geometry. More...
 
class  VXDGeoPlacementPar
 The Class for VXD placement payload. More...
 
class  VXDGeoRadiationSensorsPositionPar
 The Class for VXD Radiation Sensor Position parameters. More...
 
class  VXDGeoRadiationSensorsPar
 The Class for VXD Radiation Sensor parameters. More...
 
class  VXDGeoSensorPar
 The Class for VXD Sensor payload. More...
 
class  VXDGeoSensorPlacementPar
 The Class for VXD Sensor Placement payload. More...
 
class  VXDGlobalPar
 The Class for VXD global paramter payload. More...
 
class  VXDHalfShellPar
 The Class for VXD half shell payload. More...
 
class  VXDPolyConePlanePar
 The Class for VXD Polycone Plane. More...
 
class  VXDPolyConePar
 The Class for VXD PolyCone, possibly with coutouts. More...
 
class  VXDRotationSolidPar
 The Class for VXD Envelope parameters. More...
 
class  VXDSensorInfoBasePar
 Namespace to provide code needed by both Vertex Detectors, PXD and SVD. More...
 
class  VXDBoxTypesPar
 The Class for VXD doc box. More...
 
class  VXDSlotsPar
 The Class for Slot types. More...
 
class  VXDBoxPositionsPar
 The Class for VXD doc box envelope. More...
 
class  VXDServiceGeometryPar
 The Class for VXD service geometry. More...
 
class  VXDGeoPlacement
 Class holding all parameters to place a VXD geometry subcomponent. More...
 
class  VXDGeoComponent
 Class holding all parameters for an VXD geometry component. More...
 
class  VXDGeoSensor
 Struct holding all parameters for a completeVXD Sensor. More...
 
class  VXDGeoSensorPlacement
 Struct holding the information where a sensor should be placed inside the ladder. More...
 
class  VXDGeoLadder
 Struct containing all parameters of one ladder. More...
 
class  GeoVXDRadiationSensors
 class to create the diamond radiation sensor geometry if defined More...
 
struct  StepInformation
 Simple struct to keep information about steps in the sensitive detector. More...
 
class  SensorTraversal
 Class to keep track of the traversal of the sensitive volume for one track. More...
 

Functions

 TEST (VxdID, Constructor)
 Check that both constructors yield the same result.
 
 TEST (VxdID, FromString)
 Check the string conversion of the VxdID in both directions.
 
 VXDGeoPlacement (const std::string &name="", double u=0, double v=0, std::string w="bottom", double woffset=0)
 Constructor.
 
void create (const GearDir &content, G4LogicalVolume &topVolume, G4LogicalVolume &envelopeVolume)
 create the Sensor geometry and assign the sensitive detector implementation. More...
 

Detailed Description

Function Documentation

◆ create()

void create ( const GearDir content,
G4LogicalVolume &  topVolume,
G4LogicalVolume &  envelopeVolume 
)

create the Sensor geometry and assign the sensitive detector implementation.

As the sensors are inside the SVD envelope but outside the PXD envelope we have to give both, the top volume and the envelope volume so that the appropriate volume can be chosen dependind on the parameters

Parameters
contentpointer to the parameters
topVolumetop volume of the simulation
envelopeVolumeenvelope volume of the pxd/svd

Definition at line 33 of file GeoVXDRadiationSensors.cc.

41  : content.getNodes("position")) {
42  //get the radial and z position
43  const double r = position.getLength("radius");
44  const double z = position.getLength("z");
45  const double theta = position.getAngle("theta");
46  //and loop over all phi positions
47  for (GearDir& sensor : position.getNodes("phi")) {
48  //we need angle and Id
49  const double phi = sensor.getAngle();
50  const int id = sensor.getInt("@id");
51  //then we create a nice name
52  const std::string name = m_subdetector + ".DiamondSensor." + std::to_string(id);
53  //and create the sensor volume
54  G4LogicalVolume* volume = new G4LogicalVolume(shape, material, name);
55  //add a sensitive detector implementation
56  BkgSensitiveDetector* sensitive = new BkgSensitiveDetector(m_subdetector.c_str(), id);
57  volume->SetSensitiveDetector(sensitive);
58  //and place it at the correct position
59  G4Transform3D transform = G4RotateZ3D(phi - M_PI / 2) * G4Translate3D(0, r * CLHEP::cm,
60  z * CLHEP::cm) * G4RotateX3D(-M_PI / 2 - theta);
61  new G4PVPlacement(transform, volume, name, top, false, 1);
62  }
63  }
64  }
65 
67 } //Belle2 namespace
Belle2::GeoVXDRadiationSensors::m_subdetector
std::string m_subdetector
one of "PXD" or "SVD"
Definition: GeoVXDRadiationSensors.h:53