11#include <top/dbobjects/TOPGeometry.h>
12#include <top/geometry/TOPGeometryPar.h>
13#include <geometry/CreatorBase.h>
14#include <framework/gearbox/GearDir.h>
15#include <framework/database/IntervalOfValidity.h>
18class G4AssemblyVolume;
35 typedef std::vector<std::pair<double, double> > Polygon;
70 virtual void create(
const GearDir& content, G4LogicalVolume& topVolume,
79 virtual void createFromDB(
const std::string& name, G4LogicalVolume& topVolume,
107 G4LogicalVolume& topVolume,
220 static G4LogicalVolume*
createBox(
const std::string& name,
221 double A,
double B,
double C,
222 const std::string& materialName);
238 double Rmin,
double Rmax,
239 double xc,
double yc,
double zc,
240 const std::string& materialName);
251 const Polygon& shape,
253 const std::string& materialName);
261 static std::string
addNumber(
const std::string& str,
unsigned number);
The Class for BeamBackground Sensitive Detector.
GearDir is the basic class used for accessing the parameter store.
A class that describes the interval of experiments/runs for which an object in the database is valid.
Geometry parameters of a quartz bar segment.
Geometry parameters of board stack (front-end electronic module)
Geometry parameters of a mirror segment.
Geometry parameters of a module (optical components + positioning)
Geometry parameters of MCP-PMT array.
Geometry parameters of MCP-PMT.
Geometry parameters of prism.
Geometry parameters of Quartz Bar Box (mother class)
Geometry parameters of TOP.
int m_numPeelOffRegions
number of peel-off regions
int m_numBrokenGlues
number of broken glues
void createGeometry(const TOPGeometry ¶meters, G4LogicalVolume &topVolume, geometry::GeometryTypes type)
Create the geometry from a parameter object.
G4UnionSolid * m_moduleEnvelope
module envelope solid
G4AssemblyVolume * assembleFrontEnd(const TOPGeoFrontEnd &geo, int N)
Assembles front-end electronics.
int m_numDecoupledPMTs
number of optically decoupled PMT's
G4LogicalVolume * createPMTArray(const TOPGeoPMTArray &geo, int moduleID)
Creates PMT array.
GeoTOPCreator(const GeoTOPCreator &)=delete
Copy constructor (disabled)
static G4AssemblyVolume * assembleQBB(const TOPGeoQBB &geo)
Assembles QBB.
G4AssemblyVolume * m_frontEnd
front-end electronics assembly volume
G4LogicalVolume * createMirrorSegment(const TOPGeoMirrorSegment &geo, int moduleID)
Creates quartz segment with spherical mirror.
virtual void createFromDB(const std::string &name, G4LogicalVolume &topVolume, geometry::GeometryTypes type) override
Creation of the detector geometry from database.
static G4LogicalVolume * createSideRail(const TOPGeoQBB &geo, ESideRailType type)
Creates side rail.
G4AssemblyVolume * m_qbb
QBB assembly volume.
static G4LogicalVolume * createHoneycombPanel(const TOPGeoQBB &geo, EPanelType type)
Creates honeycomb panel.
static std::string addNumber(const std::string &str, unsigned number)
Adds number to string.
SensitiveBar * m_sensitiveBar
Sensitive vol.
virtual void createPayloads(const GearDir &content, const IntervalOfValidity &iov) override
Creation of payloads.
static G4LogicalVolume * createBoardStack(const TOPGeoFrontEnd &geo, int N)
Creates board stack.
BkgSensitiveDetector * m_sensitivePCB2
PCB sensitive for BG studies.
virtual ~GeoTOPCreator() override
Destructor.
TOPGeometryPar * m_topgp
singleton class
static G4LogicalVolume * createExtrudedSolid(const std::string &name, const Polygon &shape, double length, const std::string &materialName)
Creates material extruded solid.
G4LogicalVolume * createPMT(const TOPGeoPMT &geo)
Creates single PMT.
G4LogicalVolume * createModule(const TOPGeometry &geo, int moduleID)
Creates single module.
G4LogicalVolume * createBarSegment(const TOPGeoBarSegment &geo, int moduleID)
Creates quartz bar segment.
G4LogicalVolume * createPrism(const TOPGeoPrism &geo, int moduleID)
Creates quartz prism.
GeoTOPCreator()
Constructor.
BkgSensitiveDetector * m_sensitivePCB1
PCB sensitive for BG studies.
ESideRailType
Side rail types.
G4AssemblyVolume * assembleOptics(const TOPGeoModule &geo)
Assembles optical components (PMT array, prism and bar segments) along z.
static G4LogicalVolume * createBox(const std::string &name, double A, double B, double C, const std::string &materialName)
Creates material box.
int m_isBeamBkgStudy
flag for beam background simulation
SensitivePMT * m_sensitivePMT
Sensitive vol.
static 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)
GeoTOPCreator & operator=(const GeoTOPCreator &)=delete
Assignment operator (disabled)
virtual void create(const GearDir &content, G4LogicalVolume &topVolume, geometry::GeometryTypes type) override
Creation of the detector geometry from Gearbox (XML).
G4LogicalVolume * createModuleEnvelope(const TOPGeoQBB &geo, int moduleID)
Creates module envelope.
EPanelType
Honeycomb panel types.
Class providing information on MCParticles hitting the bars.
Singleton class for TOP Geometry Parameters.
static TOPGeometryPar * Instance()
Static method to obtain the pointer to its instance.
Pure virtual base class for all geometry creators.
GeometryTypes
Flag indicating the type of geometry to be used.
Abstract base class for different kinds of events.