Belle II Software development
GeoBeamPipeCreator.h
1/**************************************************************************
2 * basf2 (Belle II Analysis Software Framework) *
3 * Author: The Belle II Collaboration *
4 * *
5 * See git log for contributors and copyright holders. *
6 * This file is licensed under LGPL-3.0, see LICENSE.md. *
7 **************************************************************************/
8
9#pragma once
10
11#include <geometry/CreatorBase.h>
12#include <framework/gearbox/GearDir.h>
13#include <framework/logging/Logger.h>
14#include <framework/database/DBObjPtr.h>
15#include <framework/database/DBImportObjPtr.h>
16#include <framework/database/IntervalOfValidity.h>
17#include <ir/dbobjects/BeamPipeGeo.h>
18#include <string>
19#include <vector>
20
21class G4LogicalVolume;
22
23namespace Belle2 {
28 namespace ir {
30
33
34 private:
37 {
38 BeamPipeGeo BeamPipeGeoConfig;
39 BeamPipeGeoConfig.initialize(param);
40 return BeamPipeGeoConfig;
41 }
42
48 void createGeometry(G4LogicalVolume& topVolume, geometry::GeometryTypes type);
49
50
51 public:
52
55
57 virtual ~GeoBeamPipeCreator();
58
67 virtual void create(const GearDir& content, G4LogicalVolume& topVolume, geometry::GeometryTypes type) override
68 {
70
71 // override geometry configuration from the DB
73
74 createGeometry(topVolume, type);
75 }
76
78 virtual void createPayloads(const GearDir& content, const IntervalOfValidity& iov) override
79 {
81 importObj.construct(createConfiguration(content));
82 importObj.import(iov);
83 }
84
86 virtual void createFromDB(const std::string& name, G4LogicalVolume& topVolume, geometry::GeometryTypes type) override
87 {
89 if (!dbObj) {
90 // Check that we found the object and if not report the problem
91 B2FATAL("No configuration for " << name << " found.");
92 }
93 m_config = *dbObj;
94 createGeometry(topVolume, type);
95 }
96
97 protected:
99 std::vector<SensitiveDetector*> m_sensitive;
100
102 };
103
104 }
106}
Geometry parameters of BeamPipe.
Definition: BeamPipeGeo.h:23
void initialize(const GearDir &content)
Initialze from the gearbox (xml file)
Definition: BeamPipeGeo.cc:15
bool import(const IntervalOfValidity &iov)
Import the object to database.
Definition: DBImportBase.cc:36
Class for importing a single object to the database.
void construct(Args &&... params)
Construct an object of type T in this DBImportObjPtr using the provided constructor arguments.
Class for accessing objects in the database.
Definition: DBObjPtr.h:21
GearDir is the basic class used for accessing the parameter store.
Definition: GearDir.h:31
A class that describes the interval of experiments/runs for which an object in the database is valid.
Pure virtual base class for all geometry creators.
Definition: CreatorBase.h:28
The creator for the BeamPipe geometry of the Belle II detector.
std::vector< SensitiveDetector * > m_sensitive
Sensitive detector.
virtual void createPayloads(const GearDir &content, const IntervalOfValidity &iov) override
creates DB payload for BeamPipeGeo class
BeamPipeGeo createConfiguration(const GearDir &param)
Reads IR geometry parameters from the xml files and createst DB class BeamPipeGeo.
virtual ~GeoBeamPipeCreator()
The destructor of the GeoBeamPipeCreator class.
GeoBeamPipeCreator()
Constructor of the GeoBeamPipeCreator class.
void createGeometry(G4LogicalVolume &topVolume, geometry::GeometryTypes type)
Create detector geometry.
BeamPipeGeo m_config
geometry parameters object
virtual void create(const GearDir &content, G4LogicalVolume &topVolume, geometry::GeometryTypes type) override
Creates the ROOT Objects for the BeamPipe geometry.
virtual void createFromDB(const std::string &name, G4LogicalVolume &topVolume, geometry::GeometryTypes type) override
Create the geometry from the Database.
static DBStore & Instance()
Instance of a singleton DBStore.
Definition: DBStore.cc:28
void addConstantOverride(const std::string &name, TObject *obj, bool oneRun=false)
Add constant override payload.
Definition: DBStore.cc:204
VXD::SensitiveDetector< PXDSimHit, PXDTrueHit > SensitiveDetector
The PXD Sensitive Detector class.
GeometryTypes
Flag indiciating the type of geometry to be used.
Abstract base class for different kinds of events.