Belle II Software  release-05-01-25
GeoFarBeamLineCreator.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2010 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Luka Santelj *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 
11 #pragma once
12 
13 #include <geometry/CreatorBase.h>
14 #include <framework/gearbox/GearDir.h>
15 #include <framework/logging/Logger.h>
16 #include <framework/database/DBObjPtr.h>
17 #include <framework/database/DBImportObjPtr.h>
18 #include <framework/database/IntervalOfValidity.h>
19 #include <ir/dbobjects/FarBeamLineGeo.h>
20 #include <string>
21 
22 #include <G4Transform3D.hh>
23 #include <G4VSolid.hh>
24 
25 namespace Belle2 {
30  namespace ir {
32  struct FarBeamLineElement {
34  G4Transform3D transform;
36  G4VSolid* geo;
37  };
38 
39  class SensitiveDetector;
40 
41 
44 
45  private:
48  {
49  FarBeamLineGeo FarBeamLineGeoConfig;
50  FarBeamLineGeoConfig.initialize(param);
51  return FarBeamLineGeoConfig;
52  }
53 
55  void createGeometry(G4LogicalVolume& topVolume, geometry::GeometryTypes type);
56 
57 
58  public:
59 
62 
64  virtual ~GeoFarBeamLineCreator();
65 
68 
71 
78  virtual void create(const GearDir& content, G4LogicalVolume& topVolume, geometry::GeometryTypes type) override
79  {
80  m_config = createConfiguration(content);
81 
82  // override geometry configuration from the DB
84 
85  createGeometry(topVolume, type);
86  }
87 
89  virtual void createPayloads(const GearDir& content, const IntervalOfValidity& iov) override
90  {
92  importObj.construct(createConfiguration(content));
93  importObj.import(iov);
94  }
95 
97  virtual void createFromDB(const std::string& name, G4LogicalVolume& topVolume, geometry::GeometryTypes type) override
98  {
100  if (!dbObj) {
101  // Check that we found the object and if not report the problem
102  B2FATAL("No configuration for " << name << " found.");
103  }
104  m_config = *dbObj;
105  createGeometry(topVolume, type);
106  }
107 
108 
109  protected:
113  };
114 
115  }
117 }
Belle2::IntervalOfValidity
A class that describes the interval of experiments/runs for which an object in the database is valid.
Definition: IntervalOfValidity.h:35
Belle2::DBStore::addConstantOverride
void addConstantOverride(const std::string &name, TObject *obj, bool oneRun=false)
Add constant override payload.
Definition: DBStore.cc:204
Belle2::FarBeamLineGeo
Geometry parameters of far beam line.
Definition: FarBeamLineGeo.h:33
Belle2::DBImportObjPtr::construct
void construct(Args &&... params)
Construct an object of type T in this DBImportObjPtr using the provided constructor arguments.
Definition: DBImportObjPtr.h:57
Belle2::ir::GeoFarBeamLineCreator::createPayloads
virtual void createPayloads(const GearDir &content, const IntervalOfValidity &iov) override
creates DB payload for FarBeamLineGeo class
Definition: GeoFarBeamLineCreator.h:97
Belle2::DBImportBase::import
bool import(const IntervalOfValidity &iov)
Import the object to database.
Definition: DBImportBase.cc:38
Belle2::ir::GeoFarBeamLineCreator::createGeometry
void createGeometry(G4LogicalVolume &topVolume, geometry::GeometryTypes type)
Create detector geometry.
Definition: GeoFarBeamLineCreator.cc:71
Belle2::FarBeamLineGeo::initialize
void initialize(const GearDir &content)
Initialize from gearbox (xml files)
Definition: FarBeamLineGeo.cc:17
Belle2::DBObjPtr
Class for accessing objects in the database.
Definition: DBObjPtr.h:31
Belle2::ir::GeoFarBeamLineCreator::createFromDB
virtual void createFromDB(const std::string &name, G4LogicalVolume &topVolume, geometry::GeometryTypes type) override
Create the geometry from the Database.
Definition: GeoFarBeamLineCreator.h:105
Belle2::ir::GeoFarBeamLineCreator::GeoFarBeamLineCreator
GeoFarBeamLineCreator()
Constructor of the GeoFarBeamLineCreator class.
Definition: GeoFarBeamLineCreator.cc:61
Belle2::ir::FarBeamLineElement::transform
G4Transform3D transform
Transformation.
Definition: GeoFarBeamLineCreator.h:42
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::ir::GeoFarBeamLineCreator::~GeoFarBeamLineCreator
virtual ~GeoFarBeamLineCreator()
The destructor of the GeoFarBeamLineCreator class.
Definition: GeoFarBeamLineCreator.cc:66
Belle2::GearDir
GearDir is the basic class used for accessing the parameter store.
Definition: GearDir.h:41
Belle2::DBImportObjPtr
Class for importing a single object to the database.
Definition: DBImportObjPtr.h:33
Belle2::DBStore::Instance
static DBStore & Instance()
Instance of a singleton DBStore.
Definition: DBStore.cc:36
Belle2::ir::SensitiveDetector
The IR Sensitive Detector class.
Definition: SensitiveDetector.h:54
Belle2::geometry::CreatorBase
Pure virtual base class for all geometry creators.
Definition: CreatorBase.h:31
Belle2::ir::GeoFarBeamLineCreator::m_config
FarBeamLineGeo m_config
geometry parameters object
Definition: GeoFarBeamLineCreator.h:120
Belle2::PXD::SensitiveDetector
VXD::SensitiveDetector< PXDSimHit, PXDTrueHit > SensitiveDetector
The PXD Sensitive Detector class.
Definition: SensitiveDetector.h:36
Belle2::ir::GeoFarBeamLineCreator
The creator for the FarBeamLine geometry of the Belle II detector.
Definition: GeoFarBeamLineCreator.h:51
Belle2::ir::GeoFarBeamLineCreator::createConfiguration
FarBeamLineGeo createConfiguration(const GearDir &param)
Reads IR geometry parameters from the xml files and createst DB class FarBeamLineGeo.
Definition: GeoFarBeamLineCreator.h:55
Belle2::ir::GeoFarBeamLineCreator::m_sensitive
SensitiveDetector * m_sensitive
Sensitive detector.
Definition: GeoFarBeamLineCreator.h:119
Belle2::geometry::GeometryTypes
GeometryTypes
Flag indiciating the type of geometry to be used.
Definition: GeometryManager.h:39
Belle2::ir::GeoFarBeamLineCreator::create
virtual void create(const GearDir &content, G4LogicalVolume &topVolume, geometry::GeometryTypes type) override
Creates the ROOT Objects for the FarBeamLine geometry.
Definition: GeoFarBeamLineCreator.h:86
Belle2::ir::GeoFarBeamLineCreator::operator=
GeoFarBeamLineCreator & operator=(const GeoFarBeamLineCreator &)=delete
Do not want an assignment operator.
Belle2::ir::FarBeamLineElement::geo
G4VSolid * geo
Solid volume.
Definition: GeoFarBeamLineCreator.h:44