Belle II Software  release-08-01-10
GeoTOPCreator Class Reference

Geometry creator for TOP counter. More...

#include <GeoTOPCreator.h>

Inheritance diagram for GeoTOPCreator:
Collaboration diagram for GeoTOPCreator:

Public Member Functions

 GeoTOPCreator ()
 Constructor.
 
virtual ~GeoTOPCreator ()
 Destructor.
 
virtual void create (const GearDir &content, G4LogicalVolume &topVolume, geometry::GeometryTypes type) override
 Creation of the detector geometry from Gearbox (XML). More...
 
virtual void createFromDB (const std::string &name, G4LogicalVolume &topVolume, geometry::GeometryTypes type) override
 Creation of the detector geometry from database. More...
 
virtual void createPayloads (const GearDir &content, const IntervalOfValidity &iov) override
 Creation of payloads. More...
 
 BELLE2_DEFINE_EXCEPTION (DBNotImplemented, "Cannot create geometry from Database.")
 Exception that will be thrown in createFromDB if member is not yet implemented by creator.
 

Private Types

enum  EPanelType {
  c_Inner ,
  c_Outer
}
 Honeycomb panel types.
 
enum  ESideRailType {
  c_Left ,
  c_Right
}
 Side rail types.
 

Private Member Functions

void createGeometry (const TOPGeometry &parameters, G4LogicalVolume &topVolume, geometry::GeometryTypes type)
 Create the geometry from a parameter object.
 
G4LogicalVolume * createModule (const TOPGeometry &geo, int moduleID)
 Creates single module. More...
 
G4LogicalVolume * createModuleEnvelope (const TOPGeoQBB &geo, int moduleID)
 Creates module envelope. More...
 
G4AssemblyVolume * assembleQBB (const TOPGeoQBB &geo)
 Assembles QBB. More...
 
G4LogicalVolume * createHoneycombPanel (const TOPGeoQBB &geo, EPanelType type)
 Creates honeycomb panel. More...
 
G4LogicalVolume * createSideRail (const TOPGeoQBB &geo, ESideRailType type)
 Creates side rail. More...
 
G4AssemblyVolume * assembleFrontEnd (const TOPGeoFrontEnd &geo, int N)
 Assembles front-end electronics. More...
 
G4LogicalVolume * createBoardStack (const TOPGeoFrontEnd &geo, int N)
 Creates board stack. More...
 
G4AssemblyVolume * assembleOptics (const TOPGeoModule &geo)
 Assembles optical components (PMT array, prism and bar segments) along z. More...
 
G4LogicalVolume * createBarSegment (const TOPGeoBarSegment &geo, int moduleID)
 Creates quartz bar segment. More...
 
G4LogicalVolume * createPrism (const TOPGeoPrism &geo, int moduleID)
 Creates quartz prism. More...
 
G4LogicalVolume * createMirrorSegment (const TOPGeoMirrorSegment &geo, int moduleID)
 Creates quartz segment with spherical mirror. More...
 
G4LogicalVolume * createPMTArray (const TOPGeoPMTArray &geo, int moduleID)
 Creates PMT array. More...
 
G4LogicalVolume * createPMT (const TOPGeoPMT &geo)
 Creates single PMT. More...
 
G4LogicalVolume * createBox (const std::string &name, double A, double B, double C, const std::string &materialName)
 Creates material box. More...
 
G4LogicalVolume * createBoxSphereIntersection (const std::string &name, G4Box *box, double Rmin, double Rmax, double xc, double yc, double zc, const std::string &materialName)
 Creates material volume that is intersection of box and half-sphere shell (z > 0) More...
 
G4LogicalVolume * createExtrudedSolid (const std::string &name, const Polygon &shape, double length, const std::string &materialName)
 Creates material extruded solid. More...
 
std::string addNumber (const std::string &str, unsigned number)
 Adds number to string. More...
 

Private Attributes

SensitivePMTm_sensitivePMT = 0
 Sensitive vol. More...
 
SensitiveBarm_sensitiveBar = 0
 Sensitive vol. More...
 
BkgSensitiveDetectorm_sensitivePCB1 = 0
 PCB sensitive for BG studies.
 
BkgSensitiveDetectorm_sensitivePCB2 = 0
 PCB sensitive for BG studies.
 
TOPGeometryParm_topgp = TOPGeometryPar::Instance()
 singleton class
 
int m_isBeamBkgStudy = 0
 flag for beam backgound simulation
 
G4UnionSolid * m_moduleEnvelope = 0
 module envelope solid
 
G4AssemblyVolume * m_qbb = 0
 QBB assembly volume.
 
G4AssemblyVolume * m_frontEnd = 0
 front-end electronics assembly volume
 
int m_numDecoupledPMTs = 0
 number of optically decoupled PMT's
 
int m_numBrokenGlues = 0
 number of broken glues
 
int m_numPeelOffRegions = 0
 number of peel-off regions
 

Detailed Description

Geometry creator for TOP counter.

Definition at line 40 of file GeoTOPCreator.h.

Member Function Documentation

◆ addNumber()

std::string addNumber ( const std::string &  str,
unsigned  number 
)
private

Adds number to string.

Parameters
strstring
numbernumber to be added
Returns
string with a number

Definition at line 1039 of file GeoTOPCreator.cc.

1040  {
1041  stringstream ss;
1042  if (number < 10) {
1043  ss << "0" << number;
1044  } else {
1045  ss << number;
1046  }
1047  string out;
1048  ss >> out;
1049  return str + out;
1050  }

◆ assembleFrontEnd()

G4AssemblyVolume * assembleFrontEnd ( const TOPGeoFrontEnd geo,
int  N 
)
private

Assembles front-end electronics.

Parameters
geogeometry description
Nnumber of board stacks per module
Returns
assembly volume

Definition at line 277 of file GeoTOPCreator.cc.

◆ assembleOptics()

G4AssemblyVolume * assembleOptics ( const TOPGeoModule geo)
private

Assembles optical components (PMT array, prism and bar segments) along z.

Parameters
geogeometry description
Returns
assembly volume

Definition at line 592 of file GeoTOPCreator.cc.

◆ assembleQBB()

G4AssemblyVolume * assembleQBB ( const TOPGeoQBB geo)
private

Assembles QBB.

Parameters
geogeometry description
Returns
assembly volume

Definition at line 372 of file GeoTOPCreator.cc.

◆ create()

void create ( const GearDir content,
G4LogicalVolume &  topVolume,
geometry::GeometryTypes  type 
)
overridevirtual

Creation of the detector geometry from Gearbox (XML).

Parameters
[in]contentXML data directory.
[in]topVolumeGeant world volume.
[in]typeGeometry type.

Implements CreatorBase.

Definition at line 80 of file GeoTOPCreator.cc.

◆ createBarSegment()

G4LogicalVolume * createBarSegment ( const TOPGeoBarSegment geo,
int  moduleID 
)
private

Creates quartz bar segment.

Parameters
geogeometry description
moduleIDmodule ID (e.g. slot number)
Returns
logical volume of bar segment

Definition at line 657 of file GeoTOPCreator.cc.

◆ createBoardStack()

G4LogicalVolume * createBoardStack ( const TOPGeoFrontEnd geo,
int  N 
)
private

Creates board stack.

Parameters
geogeometry description
Nnumber of board stacks per module
Returns
logical volume

Definition at line 330 of file GeoTOPCreator.cc.

◆ createBox()

G4LogicalVolume * createBox ( const std::string &  name,
double  A,
double  B,
double  C,
const std::string &  materialName 
)
private

Creates material box.

Parameters
namevolume name
Abox x size
Bbox y size
Cbox z size
materialNamematerial name
Returns
logical volume

Definition at line 981 of file GeoTOPCreator.cc.

◆ createBoxSphereIntersection()

G4LogicalVolume * createBoxSphereIntersection ( const std::string &  name,
G4Box *  box,
double  Rmin,
double  Rmax,
double  xc,
double  yc,
double  zc,
const std::string &  materialName 
)
private

Creates material volume that is intersection of box and half-sphere shell (z > 0)

Parameters
namevolume name
boxbox shape
Rminminimal radius of sphere shell
Rmaxmaximal radius of sphere shell
xccenter of a sphere in x
yccenter of a sphere in y
zccenter of a sphere in z
materialNamematerial name
Returns
logical volume

Definition at line 993 of file GeoTOPCreator.cc.

◆ createExtrudedSolid()

G4LogicalVolume * createExtrudedSolid ( const std::string &  name,
const Polygon &  shape,
double  length,
const std::string &  materialName 
)
private

Creates material extruded solid.

Parameters
namevolume name
shapex-y shape of extruded solid
lengthlength in z
materialNamematerial name
Returns
logical volume

Definition at line 1022 of file GeoTOPCreator.cc.

◆ createFromDB()

void createFromDB ( const std::string &  name,
G4LogicalVolume &  topVolume,
geometry::GeometryTypes  type 
)
overridevirtual

Creation of the detector geometry from database.

Parameters
[in]nameName of the component in the database.
[in]topVolumeGeant world volume.
[in]typeGeometry type.

Reimplemented from CreatorBase.

Definition at line 120 of file GeoTOPCreator.cc.

◆ createHoneycombPanel()

G4LogicalVolume * createHoneycombPanel ( const TOPGeoQBB geo,
EPanelType  type 
)
private

Creates honeycomb panel.

Parameters
geogeometry description
typepanel type
Returns
logical volume

Definition at line 492 of file GeoTOPCreator.cc.

◆ createMirrorSegment()

G4LogicalVolume * createMirrorSegment ( const TOPGeoMirrorSegment geo,
int  moduleID 
)
private

Creates quartz segment with spherical mirror.

Parameters
geogeometry description
moduleIDmodule ID (e.g. slot number)
Returns
logical volume of mirror segment

Definition at line 699 of file GeoTOPCreator.cc.

◆ createModule()

G4LogicalVolume * createModule ( const TOPGeometry geo,
int  moduleID 
)
private

Creates single module.

Parameters
geogeometry description
moduleIDmodule ID (slot number)
Returns
logical volume

Definition at line 201 of file GeoTOPCreator.cc.

◆ createModuleEnvelope()

G4LogicalVolume * createModuleEnvelope ( const TOPGeoQBB geo,
int  moduleID 
)
private

Creates module envelope.

Parameters
geogeometry description
moduleIDmodule ID (slot number)
Returns
logical volume

Definition at line 241 of file GeoTOPCreator.cc.

◆ createPayloads()

void createPayloads ( const GearDir content,
const IntervalOfValidity iov 
)
overridevirtual

Creation of payloads.

Parameters
contentXML data directory.
iovInterval of validity.

Reimplemented from CreatorBase.

Definition at line 98 of file GeoTOPCreator.cc.

◆ createPMT()

G4LogicalVolume * createPMT ( const TOPGeoPMT geo)
private

Creates single PMT.

Parameters
geogeometry description
Returns
logical volume of one PMT

Definition at line 904 of file GeoTOPCreator.cc.

◆ createPMTArray()

G4LogicalVolume * createPMTArray ( const TOPGeoPMTArray geo,
int  moduleID 
)
private

Creates PMT array.

Parameters
geogeometry description
moduleIDmodule ID (e.g. slot number)
Returns
logical volume of PMT array

Definition at line 848 of file GeoTOPCreator.cc.

◆ createPrism()

G4LogicalVolume * createPrism ( const TOPGeoPrism geo,
int  moduleID 
)
private

Creates quartz prism.

Parameters
geogeometry description
moduleIDmodule ID (e.g. slot number)
Returns
logical volume of prism

Definition at line 764 of file GeoTOPCreator.cc.

◆ createSideRail()

G4LogicalVolume * createSideRail ( const TOPGeoQBB geo,
ESideRailType  type 
)
private

Creates side rail.

Parameters
geogeometry description
typeside rail type
Returns
logical volume

Definition at line 555 of file GeoTOPCreator.cc.

Member Data Documentation

◆ m_sensitiveBar

SensitiveBar* m_sensitiveBar = 0
private

Sensitive vol.

to register particles

Definition at line 255 of file GeoTOPCreator.h.

◆ m_sensitivePMT

SensitivePMT* m_sensitivePMT = 0
private

Sensitive vol.

to register PMT hits

Definition at line 254 of file GeoTOPCreator.h.


The documentation for this class was generated from the following files: