Belle II Software development
GeoECLCreator.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
13#include <framework/gearbox/GearDir.h>
14#include <simulation/kernel/SensitiveDetectorBase.h>
15
16class G4LogicalVolume;
17
18namespace Belle2 {
24 namespace ECL {
25
26 struct shape_t;
27
28
29
31
35
36 public:
37
40
43
50 virtual void create(const GearDir& content, G4LogicalVolume& topVolume, geometry::GeometryTypes type) override;
51
58 virtual void createFromDB(const std::string& name, G4LogicalVolume& topVolume, geometry::GeometryTypes type) override;
59
65 virtual void createPayloads(const GearDir& content, const IntervalOfValidity& iov) override;
66
67 private:
68
70 void barrel(G4LogicalVolume&);
72 void backward(G4LogicalVolume&);
74 void forward(G4LogicalVolume&);
76 G4LogicalVolume* wrapped_crystal(const shape_t* s, const std::string& endcap, double wrapthickness);
77
80
84 const G4VisAttributes* att(const std::string& n) const;
86 G4LogicalVolume* get_preamp() const ;
88 double get_pa_box_height() const {return 2;}
89
92
98 std::map<std::string, G4VisAttributes*> m_atts;
101 };
102
103 } // end of ecl namespace
105} // end of Belle2 namespace
106
void barrel(G4LogicalVolume &)
Make the ECL barrel and then place elements inside it.
Definition barrel.cc:63
void defineVisAttributes()
Define visual attributes.
Simulation::SensitiveDetectorBase * m_sensediode
Sensitive diode.
double get_pa_box_height() const
Getter for preamplifier box height (hard-coded to be 2)
const G4VisAttributes * att(const std::string &n) const
Define visual attributes.
virtual void createFromDB(const std::string &name, G4LogicalVolume &topVolume, geometry::GeometryTypes type) override
Function to create the geometry from the Database.
virtual void createPayloads(const GearDir &content, const IntervalOfValidity &iov) override
Function to create the geometry database.
void backward(G4LogicalVolume &)
Place elements inside the backward endcap.
Definition backward.cc:42
~GeoECLCreator()
The destructor of the GeoECLCreator class.
const ECLCrystalsShapeAndPosition * m_sap
pointer to a storage with crystal shapes and positions
std::map< std::string, G4VisAttributes * > m_atts
Vector of background-Sensitive detectors.
Simulation::SensitiveDetectorBase * m_sensitive
Sensitive detector.
G4LogicalVolume * get_preamp() const
Get Logical volume of preamplifier.
G4LogicalVolume * wrapped_crystal(const shape_t *s, const std::string &endcap, double wrapthickness)
Wrapped crystal.
void forward(G4LogicalVolume &)
Place elements inside the forward endcap.
Definition forward.cc:44
GeoECLCreator()
Constructor of the GeoECLCreator class.
virtual void create(const GearDir &content, G4LogicalVolume &topVolume, geometry::GeometryTypes type) override
Function to actually create the geometry, has to be overridden by derived classes.
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.
Base class for all Sensitive Detectors to create hits during simulation.
Pure virtual base class for all geometry creators.
Definition CreatorBase.h:28
GeometryTypes
Flag indicating the type of geometry to be used.
Abstract base class for different kinds of events.