Belle II Software  release-05-01-25
VXDServiceGeometryPar.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2010 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Benjamin Schwenker *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 #pragma once
11 
12 #include <TObject.h>
13 #include <string>
14 #include <vector>
15 
16 
17 namespace Belle2 {
26  class VXDBoxTypesPar: public TObject {
27  public:
28 
30  VXDBoxTypesPar(const std::string& name = "", const std::string& material = "", int identifier = 0,
31  double width = 0, double length = 0, double height = 0) :
32  m_name(name), m_material(material), m_identifier(identifier), m_width(width), m_length(length), m_height(height)
33  {}
35  double getWidth(void) const { return m_width; }
37  double getLength(void) const { return m_length; }
39  double getHeight(void) const { return m_height; }
41  std::string getMaterial(void) const { return m_material; }
43  std::string getName(void) const { return m_name; }
45  int getIdentifier(void) const { return m_identifier; }
46 
47  private:
49  std::string m_name;
51  std::string m_material;
55  double m_width;
57  double m_length;
59  double m_height;
60 
62  };
63 
67  class VXDSlotsPar: public TObject {
68  public:
69 
71  explicit VXDSlotsPar(const std::string& type = ""): m_type(type) {}
73  const std::string& getType(void) const { return m_type; }
75  const std::vector<double>& getSlotNumbers(void) const { return m_slotNumbers; }
77  std::vector<double>& getSlotNumbers(void) { return m_slotNumbers; }
78 
79  private:
81  std::vector<double> m_slotNumbers;
83  std::string m_type;
84 
86  };
87 
91  class VXDBoxPositionsPar: public TObject {
92  public:
93 
95  VXDBoxPositionsPar(const std::string& name = "", double minZ = 0, double maxZ = 0, double minR = 0, double maxR = 0,
96  int divisions = 0) :
97  m_name(name), m_minZ(minZ), m_maxZ(maxZ), m_minR(minR), m_maxR(maxR), m_divisions(divisions)
98  {}
100  double getMinZ(void) const { return m_minZ; }
102  double getMaxZ(void) const { return m_maxZ; }
104  double getMinR(void) const { return m_minR; }
106  double getMaxR(void) const { return m_maxR; }
108  int getDivisions(void) const { return m_divisions; }
110  const std::vector<VXDSlotsPar>& getSlots(void) const { return m_slots; }
112  std::vector<VXDSlotsPar>& getSlots(void) { return m_slots; }
114  const std::string& getName(void) const { return m_name; }
115 
116  private:
118  std::string m_name;
120  double m_minZ;
122  double m_maxZ;
124  double m_minR;
126  double m_maxR;
130  std::vector<VXDSlotsPar> m_slots;
131 
133  };
134 
138  class VXDServiceGeometryPar: public TObject {
139 
140  public:
142  explicit VXDServiceGeometryPar(bool recordBackground = false): m_recordBackground(recordBackground) {}
144  bool getRecordBackground(void) const { return m_recordBackground; }
146  const std::vector<VXDBoxTypesPar>& getBoxTypes(void) const { return m_vxdBoxTypes; }
148  std::vector<VXDBoxTypesPar>& getBoxTypes(void) { return m_vxdBoxTypes; }
150  const std::vector<VXDBoxPositionsPar>& getPositions(void) const { return m_vxdBoxPositions; }
152  std::vector<VXDBoxPositionsPar>& getPositions(void) { return m_vxdBoxPositions; }
153 
154  private:
158  std::vector<VXDBoxTypesPar> m_vxdBoxTypes;
160  std::vector<VXDBoxPositionsPar> m_vxdBoxPositions;
161 
164  };
166 } // end of namespace Belle2
167 
Belle2::VXDServiceGeometryPar::m_vxdBoxTypes
std::vector< VXDBoxTypesPar > m_vxdBoxTypes
Vector with types of dock boxes.
Definition: VXDServiceGeometryPar.h:166
Belle2::VXDBoxTypesPar
The Class for VXD doc box.
Definition: VXDServiceGeometryPar.h:34
Belle2::VXDBoxTypesPar::getHeight
double getHeight(void) const
Get height in mm.
Definition: VXDServiceGeometryPar.h:47
Belle2::VXDBoxPositionsPar::getMinZ
double getMinZ(void) const
Get minZ in mm.
Definition: VXDServiceGeometryPar.h:108
Belle2::VXDServiceGeometryPar::ClassDef
ClassDef(VXDServiceGeometryPar, 5)
ClassDef, must be the last term before the closing {}.
Belle2::VXDServiceGeometryPar::getPositions
const std::vector< VXDBoxPositionsPar > & getPositions(void) const
Get positions.
Definition: VXDServiceGeometryPar.h:158
Belle2::VXDBoxPositionsPar::m_slots
std::vector< VXDSlotsPar > m_slots
Slots for doc boxes.
Definition: VXDServiceGeometryPar.h:138
Belle2::VXDBoxPositionsPar::getName
const std::string & getName(void) const
Get name.
Definition: VXDServiceGeometryPar.h:122
Belle2::VXDBoxTypesPar::getMaterial
std::string getMaterial(void) const
Get material.
Definition: VXDServiceGeometryPar.h:49
Belle2::VXDBoxPositionsPar::ClassDef
ClassDef(VXDBoxPositionsPar, 5)
ClassDef, must be the last term before the closing {}.
Belle2::VXDBoxTypesPar::m_height
double m_height
Height in mm.
Definition: VXDServiceGeometryPar.h:67
Belle2::VXDBoxPositionsPar::getMaxZ
double getMaxZ(void) const
Get maxZ in mm.
Definition: VXDServiceGeometryPar.h:110
Belle2::VXDBoxPositionsPar::getMaxR
double getMaxR(void) const
Get maxR in mm.
Definition: VXDServiceGeometryPar.h:114
Belle2::VXDSlotsPar
The Class for Slot types.
Definition: VXDServiceGeometryPar.h:75
Belle2::VXDBoxPositionsPar::m_maxZ
double m_maxZ
MaxZ in mm.
Definition: VXDServiceGeometryPar.h:130
Belle2::VXDBoxTypesPar::VXDBoxTypesPar
VXDBoxTypesPar(const std::string &name="", const std::string &material="", int identifier=0, double width=0, double length=0, double height=0)
Constructor.
Definition: VXDServiceGeometryPar.h:38
Belle2::VXDBoxPositionsPar::m_divisions
int m_divisions
Divisions.
Definition: VXDServiceGeometryPar.h:136
Belle2::VXDBoxTypesPar::getLength
double getLength(void) const
Get length in mm.
Definition: VXDServiceGeometryPar.h:45
Belle2::VXDSlotsPar::m_slotNumbers
std::vector< double > m_slotNumbers
Slots numbers.
Definition: VXDServiceGeometryPar.h:89
Belle2::VXDBoxPositionsPar::m_maxR
double m_maxR
MaxR in mm.
Definition: VXDServiceGeometryPar.h:134
Belle2::VXDBoxPositionsPar::getMinR
double getMinR(void) const
Get minR in mm.
Definition: VXDServiceGeometryPar.h:112
Belle2::VXDServiceGeometryPar::getRecordBackground
bool getRecordBackground(void) const
Record background.
Definition: VXDServiceGeometryPar.h:152
Belle2::VXDBoxTypesPar::getIdentifier
int getIdentifier(void) const
Get identifier.
Definition: VXDServiceGeometryPar.h:53
Belle2::VXDServiceGeometryPar::VXDServiceGeometryPar
VXDServiceGeometryPar(bool recordBackground=false)
Constructor.
Definition: VXDServiceGeometryPar.h:150
Belle2::VXDSlotsPar::getSlotNumbers
const std::vector< double > & getSlotNumbers(void) const
Get slot numbers.
Definition: VXDServiceGeometryPar.h:83
Belle2::VXDBoxTypesPar::m_material
std::string m_material
Material.
Definition: VXDServiceGeometryPar.h:59
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::VXDBoxTypesPar::m_width
double m_width
Width in mm.
Definition: VXDServiceGeometryPar.h:63
Belle2::VXDServiceGeometryPar::m_recordBackground
bool m_recordBackground
Record background.
Definition: VXDServiceGeometryPar.h:164
Belle2::VXDBoxPositionsPar::m_minR
double m_minR
MinR in mm.
Definition: VXDServiceGeometryPar.h:132
Belle2::VXDBoxTypesPar::getWidth
double getWidth(void) const
Get width in mm.
Definition: VXDServiceGeometryPar.h:43
Belle2::VXDBoxPositionsPar
The Class for VXD doc box envelope.
Definition: VXDServiceGeometryPar.h:99
Belle2::VXDBoxPositionsPar::VXDBoxPositionsPar
VXDBoxPositionsPar(const std::string &name="", double minZ=0, double maxZ=0, double minR=0, double maxR=0, int divisions=0)
Constructor.
Definition: VXDServiceGeometryPar.h:103
Belle2::VXDSlotsPar::getType
const std::string & getType(void) const
Get type.
Definition: VXDServiceGeometryPar.h:81
Belle2::VXDBoxTypesPar::m_identifier
int m_identifier
Identifier.
Definition: VXDServiceGeometryPar.h:61
Belle2::VXDSlotsPar::m_type
std::string m_type
Type.
Definition: VXDServiceGeometryPar.h:91
Belle2::VXDBoxPositionsPar::m_name
std::string m_name
Name.
Definition: VXDServiceGeometryPar.h:126
Belle2::VXDServiceGeometryPar
The Class for VXD service geometry.
Definition: VXDServiceGeometryPar.h:146
Belle2::VXDBoxTypesPar::ClassDef
ClassDef(VXDBoxTypesPar, 5)
ClassDef, must be the last term before the closing {}.
Belle2::VXDBoxTypesPar::m_length
double m_length
Lenght in mm.
Definition: VXDServiceGeometryPar.h:65
Belle2::VXDBoxPositionsPar::m_minZ
double m_minZ
MinZ in mm.
Definition: VXDServiceGeometryPar.h:128
Belle2::VXDSlotsPar::VXDSlotsPar
VXDSlotsPar(const std::string &type="")
Constructor.
Definition: VXDServiceGeometryPar.h:79
Belle2::VXDBoxPositionsPar::getSlots
const std::vector< VXDSlotsPar > & getSlots(void) const
Get slots.
Definition: VXDServiceGeometryPar.h:118
Belle2::VXDBoxTypesPar::m_name
std::string m_name
Name.
Definition: VXDServiceGeometryPar.h:57
Belle2::VXDSlotsPar::ClassDef
ClassDef(VXDSlotsPar, 5)
ClassDef, must be the last term before the closing {}.
Belle2::VXDServiceGeometryPar::getBoxTypes
const std::vector< VXDBoxTypesPar > & getBoxTypes(void) const
Get boxes.
Definition: VXDServiceGeometryPar.h:154
Belle2::VXDServiceGeometryPar::m_vxdBoxPositions
std::vector< VXDBoxPositionsPar > m_vxdBoxPositions
Vector with positions of dock boxes.
Definition: VXDServiceGeometryPar.h:168
Belle2::VXDBoxPositionsPar::getDivisions
int getDivisions(void) const
Get divisions.
Definition: VXDServiceGeometryPar.h:116
Belle2::VXDBoxTypesPar::getName
std::string getName(void) const
Get name.
Definition: VXDServiceGeometryPar.h:51