Belle II Software development
VXDServiceGeometryPar.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#pragma once
9
10#include <TObject.h>
11#include <string>
12#include <vector>
13
14
15namespace Belle2 {
24 class VXDBoxTypesPar: public TObject {
25 public:
26
28 VXDBoxTypesPar(const std::string& name = "", const std::string& material = "", int identifier = 0,
29 double width = 0, double length = 0, double height = 0) :
30 m_name(name), m_material(material), m_identifier(identifier), m_width(width), m_length(length), m_height(height)
31 {}
33 double getWidth(void) const { return m_width; }
35 double getLength(void) const { return m_length; }
37 double getHeight(void) const { return m_height; }
39 std::string getMaterial(void) const { return m_material; }
41 std::string getName(void) const { return m_name; }
43 int getIdentifier(void) const { return m_identifier; }
44
45 private:
47 std::string m_name;
49 std::string m_material;
53 double m_width;
55 double m_length;
57 double m_height;
58
60 };
61
65 class VXDSlotsPar: public TObject {
66 public:
67
69 explicit VXDSlotsPar(const std::string& type = ""): m_type(type) {}
71 const std::string& getType(void) const { return m_type; }
73 const std::vector<double>& getSlotNumbers(void) const { return m_slotNumbers; }
75 std::vector<double>& getSlotNumbers(void) { return m_slotNumbers; }
76
77 private:
79 std::vector<double> m_slotNumbers;
81 std::string m_type;
82
84 };
85
89 class VXDBoxPositionsPar: public TObject {
90 public:
91
93 VXDBoxPositionsPar(const std::string& name = "", double minZ = 0, double maxZ = 0, double minR = 0, double maxR = 0,
94 int divisions = 0) :
95 m_name(name), m_minZ(minZ), m_maxZ(maxZ), m_minR(minR), m_maxR(maxR), m_divisions(divisions)
96 {}
98 double getMinZ(void) const { return m_minZ; }
100 double getMaxZ(void) const { return m_maxZ; }
102 double getMinR(void) const { return m_minR; }
104 double getMaxR(void) const { return m_maxR; }
106 int getDivisions(void) const { return m_divisions; }
108 const std::vector<VXDSlotsPar>& getSlots(void) const { return m_slots; }
110 std::vector<VXDSlotsPar>& getSlots(void) { return m_slots; }
112 const std::string& getName(void) const { return m_name; }
113
114 private:
116 std::string m_name;
118 double m_minZ;
120 double m_maxZ;
122 double m_minR;
124 double m_maxR;
128 std::vector<VXDSlotsPar> m_slots;
129
131 };
132
136 class VXDServiceGeometryPar: public TObject {
137
138 public:
140 explicit VXDServiceGeometryPar(bool recordBackground = false): m_recordBackground(recordBackground) {}
142 bool getRecordBackground(void) const { return m_recordBackground; }
144 const std::vector<VXDBoxTypesPar>& getBoxTypes(void) const { return m_vxdBoxTypes; }
146 std::vector<VXDBoxTypesPar>& getBoxTypes(void) { return m_vxdBoxTypes; }
148 const std::vector<VXDBoxPositionsPar>& getPositions(void) const { return m_vxdBoxPositions; }
150 std::vector<VXDBoxPositionsPar>& getPositions(void) { return m_vxdBoxPositions; }
151
152 private:
156 std::vector<VXDBoxTypesPar> m_vxdBoxTypes;
158 std::vector<VXDBoxPositionsPar> m_vxdBoxPositions;
159
162 };
164} // end of namespace Belle2
165
The Class for VXD doc box envelope.
std::vector< VXDSlotsPar > m_slots
Slots for doc boxes.
const std::vector< VXDSlotsPar > & getSlots(void) const
Get slots.
std::vector< VXDSlotsPar > & getSlots(void)
Get slots.
double getMaxZ(void) const
Get maxZ in mm.
ClassDef(VXDBoxPositionsPar, 5)
ClassDef, must be the last term before the closing {}.
double getMinR(void) const
Get minR in mm.
int getDivisions(void) const
Get divisions.
double getMinZ(void) const
Get minZ in mm.
const std::string & getName(void) const
Get name.
double getMaxR(void) const
Get maxR in mm.
VXDBoxPositionsPar(const std::string &name="", double minZ=0, double maxZ=0, double minR=0, double maxR=0, int divisions=0)
Constructor.
The Class for VXD doc box.
std::string getMaterial(void) const
Get material.
ClassDef(VXDBoxTypesPar, 5)
ClassDef, must be the last term before the closing {}.
std::string m_material
Material.
int getIdentifier(void) const
Get identifier.
double m_width
Width in mm.
std::string getName(void) const
Get name.
double getHeight(void) const
Get height in mm.
double getWidth(void) const
Get width in mm.
double m_length
Lenght in mm.
VXDBoxTypesPar(const std::string &name="", const std::string &material="", int identifier=0, double width=0, double length=0, double height=0)
Constructor.
double m_height
Height in mm.
double getLength(void) const
Get length in mm.
The Class for VXD service geometry.
ClassDef(VXDServiceGeometryPar, 5)
ClassDef, must be the last term before the closing {}.
const std::vector< VXDBoxPositionsPar > & getPositions(void) const
Get positions.
std::vector< VXDBoxTypesPar > & getBoxTypes(void)
Get boxes.
bool m_recordBackground
Record background.
bool getRecordBackground(void) const
Record background.
std::vector< VXDBoxPositionsPar > & getPositions(void)
Get positions.
std::vector< VXDBoxTypesPar > m_vxdBoxTypes
Vector with types of dock boxes.
const std::vector< VXDBoxTypesPar > & getBoxTypes(void) const
Get boxes.
std::vector< VXDBoxPositionsPar > m_vxdBoxPositions
Vector with positions of dock boxes.
VXDServiceGeometryPar(bool recordBackground=false)
Constructor.
The Class for Slot types.
ClassDef(VXDSlotsPar, 5)
ClassDef, must be the last term before the closing {}.
std::vector< double > & getSlotNumbers(void)
Get slot numbers.
VXDSlotsPar(const std::string &type="")
Constructor.
std::vector< double > m_slotNumbers
Slots numbers.
const std::vector< double > & getSlotNumbers(void) const
Get slot numbers.
const std::string & getType(void) const
Get type.
Abstract base class for different kinds of events.