Belle II Software  release-08-01-10
PXDGeometryPar.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 <pxd/dbobjects/PXDSensorInfoPar.h>
11 #include <vxd/dbobjects/VXDGeometryPar.h>
12 #include <vxd/dbobjects/VXDPolyConePar.h>
13 
14 namespace Belle2 {
26  public:
31  {
32  for (PXDSensorInfoPar* pxdSensor : geo.getSensorInfos()) {
33  m_SensorInfo.push_back(new PXDSensorInfoPar(*pxdSensor));
34  }
36  m_nCutouts = geo.getNCutOuts();
42  m_nTubes = geo.getNTubes();
43  m_tubesMinZ = geo.getTubesMinZ();
44  m_tubesMaxZ = geo.getTubesMaxZ();
45  m_tubesMinR = geo.getTubesMinR();
46  m_tubesMaxR = geo.getTubesMaxR();
47  m_tubesRPhi = geo.getTubesRPhi();
51  }
54  {
55  for (PXDSensorInfoPar* pxdSensor : geo.getSensorInfos()) {
56  m_SensorInfo.push_back(new PXDSensorInfoPar(*pxdSensor));
57  }
59  m_nCutouts = geo.getNCutOuts();
65  m_nTubes = geo.getNTubes();
66  m_tubesMinZ = geo.getTubesMinZ();
67  m_tubesMaxZ = geo.getTubesMaxZ();
68  m_tubesMinR = geo.getTubesMinR();
69  m_tubesMaxR = geo.getTubesMaxR();
70  m_tubesRPhi = geo.getTubesRPhi();
74  return *this;
75  }
78  {
79  for (PXDSensorInfoPar* pxdSensor : m_SensorInfo) {
80  delete pxdSensor;
81  }
82  m_SensorInfo.clear();
83  }
85  bool getBuildSupport() const { return (m_nCutouts > 0); }
87  int getNCutOuts() const { return m_nCutouts; }
89  void setNCutOuts(int nCutouts) { m_nCutouts = nCutouts; }
91  double getCutOutWidth() const { return m_cutOutWidth; }
93  void setCutOutWidth(double width) { m_cutOutWidth = width; }
95  double getCutOutHeight() const { return m_cutOutHeight; }
97  void setCutOutHeight(double height) { m_cutOutHeight = height; }
99  double getCutOutShift() const { return m_cutOutShift; }
101  void setCutOutShift(double shift) { m_cutOutShift = shift; }
103  double getCutOutRPhi() const { return m_cutOutRphi; }
105  void setCutOutRPhi(double rphi) { m_cutOutRphi = rphi; }
107  double getCutOutStartPhi() const { return m_cutOutStartPhi; }
109  void setCutOutStartPhi(double start) { m_cutOutStartPhi = start; }
111  double getCutOutDeltaPhi() const { return m_cutOutDeltaPhi; }
113  void setCutOutDeltaPhi(double delta) { m_cutOutDeltaPhi = delta; }
115  int getNTubes() const { return m_nTubes; }
117  void setNTubes(int nTubes) { m_nTubes = nTubes; }
119  double getTubesMinZ() const { return m_tubesMinZ; }
121  void setTubesMinZ(double minZ) { m_tubesMinZ = minZ; }
123  double getTubesMaxZ() const { return m_tubesMaxZ; }
125  void setTubesMaxZ(double maxZ) { m_tubesMaxZ = maxZ; }
127  double getTubesMinR() const { return m_tubesMinR; }
129  void setTubesMinR(double minR) { m_tubesMinR = minR; }
131  double getTubesMaxR() const { return m_tubesMaxR; }
133  void setTubesMaxR(double maxR) { m_tubesMaxR = maxR; }
135  double getTubesRPhi() const { return m_tubesRPhi; }
137  void setTubesRPhi(double rphi) { m_tubesRPhi = rphi; }
139  double getTubesStartPhi() const { return m_tubesStartPhi; }
141  void setTubesStartPhi(double start) { m_tubesStartPhi = start; }
143  double getTubesDeltaPhi() const { return m_tubesDeltaPhi; }
145  void setTubesDeltaPhi(double delta) { m_tubesDeltaPhi = delta; }
147  const std::string& getTubesMaterial() const { return m_tubesMaterial; }
149  void setTubesMaterial(const std::string& material) { m_tubesMaterial = material; }
151  const std::vector<VXDPolyConePar>& getEndflanges() const {return m_endflanges;}
153  std::vector<VXDPolyConePar>& getEndflanges() {return m_endflanges;}
155  std::vector<PXDSensorInfoPar*>& getSensorInfos() {return m_SensorInfo;}
156 
157  private:
158 
160  std::vector<PXDSensorInfoPar*> m_SensorInfo;
161 
163  std::vector<VXDPolyConePar> m_endflanges;
164 
166  int m_nCutouts {0};
168  double m_cutOutWidth {0};
170  double m_cutOutHeight {0};
172  double m_cutOutShift {0};
174  double m_cutOutRphi {0};
176  double m_cutOutStartPhi {0};
178  double m_cutOutDeltaPhi {0};
180  int m_nTubes {0};
182  double m_tubesMinZ {0};
184  double m_tubesMaxZ {0};
186  double m_tubesMinR {0};
188  double m_tubesMaxR {0};
190  double m_tubesRPhi {0};
192  double m_tubesStartPhi {0};
194  double m_tubesDeltaPhi {0};
196  std::string m_tubesMaterial {"Carbon"};
197 
199  };
201 } // end of namespace Belle2
202 
The Class for VXD geometry.
void setNTubes(int nTubes)
set number of tubes
double getTubesMaxZ() const
get tubes maxZ
double getCutOutShift() const
get shift of cutouts
std::vector< VXDPolyConePar > & getEndflanges()
get Endflanges
PXDGeometryPar(PXDGeometryPar &geo)
Copy constructor.
double m_cutOutStartPhi
Start Rphi of PXD endflange coutOuts.
PXDGeometryPar()
Default constructor.
void setTubesRPhi(double rphi)
set tubes tubes RPhi
double getTubesMinZ() const
get tubes minZ
void setTubesMaxR(double maxR)
set tubes maxR
PXDGeometryPar & operator=(PXDGeometryPar &geo)
Assignemnt operator.
ClassDef(PXDGeometryPar, 5)
ClassDef, must be the last term before the closing {}.
double getTubesStartPhi() const
get tubes tubes StartPhi
void setNCutOuts(int nCutouts)
set number of cutouts
double m_cutOutWidth
Width of PXD endflange coutOuts.
double m_tubesMaxR
MaxZ of PXD carbon tubes.
~PXDGeometryPar()
Destructor.
double getCutOutDeltaPhi() const
get deltaphi of cutouts
const std::vector< VXDPolyConePar > & getEndflanges() const
get Endflanges
void setCutOutShift(double shift)
set shift of cutouts
int m_nCutouts
Number of PXD endflange coutOuts.
double getTubesMaxR() const
get tubes maxR
std::vector< VXDPolyConePar > m_endflanges
PXD Endflanges.
int m_nTubes
Number of PXD carbon tubes.
double getTubesRPhi() const
get tubes tubes RPhi
double getCutOutWidth() const
get width of cutouts
std::vector< PXDSensorInfoPar * > & getSensorInfos()
get sensorInfos
double m_cutOutRphi
Rphi of PXD endflange coutOuts.
double getCutOutRPhi() const
get rphi of cutouts
void setCutOutWidth(double width)
set width of cutouts
void setTubesMinZ(double minZ)
set tubes minZ
double m_tubesStartPhi
Start Rphi of PXD carbon tubes.
double getCutOutStartPhi() const
get start phi of cutouts
void setCutOutHeight(double height)
set height of cutouts
double m_tubesMinZ
MinZ of PXD carbon tubes.
double m_cutOutDeltaPhi
Delta Rphi of PXD endflange coutOuts.
double m_tubesMaxZ
MaxZ of PXD carbon tubes.
void setCutOutDeltaPhi(double delta)
set deltaphi of cutouts
double getTubesDeltaPhi() const
get tubes tubes DeltaPhi
void setTubesDeltaPhi(double delta)
set tubes tubes DeltaPhi
double m_tubesDeltaPhi
Delta Phi of PXD carbon tubes.
double m_cutOutShift
Shift of PXD endflange coutOuts.
std::string m_tubesMaterial
Material of PXD carbon tubes.
double m_tubesMinR
MinR of PXD carbon tubes.
void setTubesMaxZ(double maxZ)
set tubes maxZ
bool getBuildSupport() const
build support
std::vector< PXDSensorInfoPar * > m_SensorInfo
Vector of points to SensorInfo objects.
const std::string & getTubesMaterial() const
get tubes tubes material
int getNTubes() const
get number of tubes
double m_cutOutHeight
Height of PXD endflange coutOuts.
void setTubesMinR(double minR)
set tubes minR
void setCutOutStartPhi(double start)
set start phi of cutouts
void setCutOutRPhi(double rphi)
set rphi of cutouts
void setTubesStartPhi(double start)
set tubes tubes StartPhi
double m_tubesRPhi
Rphi of PXD carbon tubes.
int getNCutOuts() const
get number of cutouts
double getTubesMinR() const
get tubes minR
void setTubesMaterial(const std::string &material)
set tubes tubes material
double getCutOutHeight() const
get height of cutouts
The Class for VXD geometry.
The Class for VXD geometry.
Abstract base class for different kinds of events.