Belle II Software  release-08-01-10
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 
15 namespace 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.
double getMaxZ(void) const
Get maxZ in mm.
const std::string & getName(void) const
Get name.
std::vector< VXDSlotsPar > & getSlots(void)
Get slots.
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.
double getMaxR(void) const
Get maxR in mm.
const std::vector< VXDSlotsPar > & getSlots(void) const
Get slots.
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.
const std::vector< VXDBoxPositionsPar > & getPositions(void) const
Get positions.
ClassDef(VXDServiceGeometryPar, 5)
ClassDef, must be the last term before the closing {}.
bool m_recordBackground
Record background.
bool getRecordBackground(void) const
Record background.
std::vector< VXDBoxPositionsPar > & getPositions(void)
Get positions.
const std::vector< VXDBoxTypesPar > & getBoxTypes(void) const
Get boxes.
std::vector< VXDBoxTypesPar > m_vxdBoxTypes
Vector with types of dock boxes.
std::vector< VXDBoxPositionsPar > m_vxdBoxPositions
Vector with positions of dock boxes.
VXDServiceGeometryPar(bool recordBackground=false)
Constructor.
std::vector< VXDBoxTypesPar > & getBoxTypes(void)
Get boxes.
The Class for Slot types.
ClassDef(VXDSlotsPar, 5)
ClassDef, must be the last term before the closing {}.
const std::vector< double > & getSlotNumbers(void) const
Get slot numbers.
VXDSlotsPar(const std::string &type="")
Constructor.
std::vector< double > m_slotNumbers
Slots numbers.
std::vector< double > & getSlotNumbers(void)
Get slot numbers.
const std::string & getType(void) const
Get type.
Abstract base class for different kinds of events.