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;
28 class BkgSensitiveDetector;
35 typedef std::vector<std::pair<double, double> > Polygon;
60 virtual void create(
const GearDir& content, G4LogicalVolume& topVolume,
69 virtual void createFromDB(
const std::string& name, G4LogicalVolume& topVolume,
97 G4LogicalVolume& topVolume,
210 G4LogicalVolume*
createBox(
const std::string& name,
211 double A,
double B,
double C,
212 const std::string& materialName);
228 double Rmin,
double Rmax,
229 double xc,
double yc,
double zc,
230 const std::string& materialName);
241 const Polygon& shape,
243 const std::string& materialName);
251 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.
Geometry creator for TOP counter.
int m_numPeelOffRegions
number of peel-off regions
virtual ~GeoTOPCreator()
Destructor.
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.
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.
G4LogicalVolume * createSideRail(const TOPGeoQBB &geo, ESideRailType type)
Creates side rail.
G4AssemblyVolume * m_qbb
QBB assembly volume.
G4LogicalVolume * createHoneycombPanel(const TOPGeoQBB &geo, EPanelType type)
Creates honeycomb panel.
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.
G4LogicalVolume * createBoardStack(const TOPGeoFrontEnd &geo, int N)
Creates board stack.
BkgSensitiveDetector * m_sensitivePCB2
PCB sensitive for BG studies.
TOPGeometryPar * m_topgp
singleton class
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.
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 backgound simulation
SensitivePMT * m_sensitivePMT
Sensitive vol.
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)
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 indiciating the type of geometry to be used.
Abstract base class for different kinds of events.