Belle II Software development
ServiceGapsMaterialsPar.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 ServiceGapsMaterialsCdcArichTopPar: public TObject {
25 public:
26
28 ServiceGapsMaterialsCdcArichTopPar(const std::string& name = "", const std::string& material = "", int identifier = 0,
29 double innerR = 0, double outerR = 0, double backwardZ = 0, double forwardZ = 0) :
30 m_name(name), m_material(material), m_identifier(identifier), m_innerR(innerR), m_outerR(outerR), m_backwardZ(backwardZ),
31 m_forwardZ(forwardZ)
32 {}
34 double getInnerR(void) const { return m_innerR; }
36 double getOuterR(void) const { return m_outerR; }
38 double getBackwardZ(void) const { return m_backwardZ; }
40 double getForwardZ(void) const { return m_forwardZ; }
42 std::string getMaterial(void) const { return m_material; }
44 std::string getName(void) const { return m_name; }
46 int getIdentifier(void) const { return m_identifier; }
47
48 private:
50 std::string m_name;
52 std::string m_material;
56 double m_innerR;
58 double m_outerR;
62 double m_forwardZ;
63
65 };
66
68 class ServiceGapsMaterialsEclPar: public TObject {
69 public:
70
72 ServiceGapsMaterialsEclPar(const std::string& name = "", const std::string& material = "", int identifier = 0,
73 double innerR1 = 0, double outerR1 = 0, double innerR2 = 0, double outerR2 = 0,
74 double backwardZ = 0, double forwardZ = 0) :
75 m_name(name), m_material(material), m_identifier(identifier), m_innerR1(innerR1), m_outerR1(outerR1), m_innerR2(innerR2),
76 m_outerR2(outerR2), m_backwardZ(backwardZ), m_forwardZ(forwardZ)
77 {}
79 double getInnerR1(void) const { return m_innerR1; }
81 double getOuterR1(void) const { return m_outerR1; }
83 double getInnerR2(void) const { return m_innerR2; }
85 double getOuterR2(void) const { return m_outerR2; }
87 double getBackwardZ(void) const { return m_backwardZ; }
89 double getForwardZ(void) const { return m_forwardZ; }
91 std::string getMaterial(void) const { return m_material; }
93 std::string getName(void) const { return m_name; }
95 int getIdentifier(void) const { return m_identifier; }
96
97 private:
99 std::string m_name;
101 std::string m_material;
105 double m_innerR1;
107 double m_outerR1;
109 double m_innerR2;
111 double m_outerR2;
116
118 };
119
120
122 class ServiceGapsMomVolPar: public TObject {
123
124 public:
127
130
132 void appendNode(double rmin, double rmax , double z)
133 {
134 m_rmin.push_back(rmin);
135 m_rmax.push_back(rmax);
136 m_z.push_back(z);
137 }
138
140 int getNNodes() const { return m_rmin.size();}
142 std::vector<double> getRmin() const { return m_rmin;}
144 std::vector<double> getRmax() const { return m_rmax;}
146 std::vector<double> getZ() const { return m_z;}
147
148
149 private:
151 std::vector<double> m_rmin;
153 std::vector<double> m_rmax;
155 std::vector<double> m_z;
156
159 };
160
162 class ThicknessDensityPar: public TObject {
163
164 public:
166 ThicknessDensityPar(int IRCDCB = 0, int IPhiCDCB = 0, int IRCDCF = 0, int IPhiCDCF = 0, int IRECLB = 0,
167 int IZECLB = 0, int IPhiECLB = 0, int IRECLF = 0, int IZECLF = 0, int IPhiECLF = 0,
168 int IZARICHF = 0, int IPhiARICHF = 0, int IPhiTOPB = 0, int IPhiTOPF = 0,
169 int IPhiECLCOILB = 0, int IZECLCOILB = 0,
170 const std::vector<double>& thicknesses = std::vector<double>()):
171 m_IRCDCB(IRCDCB), m_IPhiCDCB(IPhiCDCB), m_IRCDCF(IRCDCF), m_IPhiCDCF(IPhiCDCF), m_IRECLB(IRECLB),
172 m_IZECLB(IZECLB), m_IPhiECLB(IPhiECLB), m_IRECLF(IRECLF), m_IZECLF(IZECLF), m_IPhiECLF(IPhiECLF),
173 m_IZARICHF(IZARICHF), m_IPhiARICHF(IPhiARICHF), m_IPhiTOPB(IPhiTOPB), m_IPhiTOPF(IPhiTOPF),
174 m_IPhiECLCOILB(IPhiECLCOILB), m_IZECLCOILB(IZECLCOILB), m_thick(thicknesses) {}
175
178
180 void appendNode(double thick)
181 {
182 m_thick.push_back(thick);
183 }
184
186 int getNNodes() const { return m_thick.size();}
188 int getIRCDCB() const { return m_IRCDCB;}
190 int getIPhiCDCB() const { return m_IPhiCDCB;}
192 int getIRCDCF() const { return m_IRCDCF;}
194 int getIPhiCDCF() const { return m_IPhiCDCF;}
196 int getIRECLB() const { return m_IRECLB;}
198 int getIZECLB() const { return m_IZECLB;}
200 int getIPhiECLB() const { return m_IPhiECLB;}
202 int getIRECLF() const { return m_IRECLF;}
204 int getIZECLF() const { return m_IZECLF;}
206 int getIPhiECLF() const { return m_IPhiECLF;}
208 int getIZARICHF() const { return m_IZARICHF;}
210 int getIPhiARICHF() const { return m_IPhiARICHF;}
212 int getIPhiTOPB() const { return m_IPhiTOPB;}
214 int getIPhiTOPF() const { return m_IPhiTOPF;}
216 int getIPhiECLCOILB() const { return m_IPhiECLCOILB;}
218 int getIZECLCOILB() const { return m_IZECLCOILB;}
220 std::vector<double> getthickness() const { return m_thick;}
221
222
223 private:
257 std::vector<double> m_thick;
258
263 };
264
265
266
267
269 class ServiceGapsMaterialsPar: public TObject {
270
271 public:
273 explicit ServiceGapsMaterialsPar(bool recordBackground = false): m_recordBackground(recordBackground) {}
274
277
279 void appendNode(double rmin, double rmax , double z)
280 {
281 m_rmin.push_back(rmin);
282 m_rmax.push_back(rmax);
283 m_z.push_back(z);
284 }
285
287 int getNNodes() const { return m_rmin.size();}
289 std::vector<double> getRmin() const { return m_rmin;}
291 std::vector<double> getRmax() const { return m_rmax;}
293 std::vector<double> getZ() const { return m_z;}
299 const ServiceGapsMomVolPar& getMomVolBack(void) const { return m_momvolback; }
303 const ServiceGapsMomVolPar& getMomVolFor(void) const { return m_momvolfor; }
311 const std::vector<ServiceGapsMaterialsCdcArichTopPar>& getServiceGapsMaterials(void) const { return m_ServiceGapsMaterials; }
313 std::vector<ServiceGapsMaterialsCdcArichTopPar>& getServiceGapsMaterials(void) { return m_ServiceGapsMaterials; }
315 const std::vector<ServiceGapsMaterialsEclPar>& getServiceGapsEclMaterials(void) const { return m_ServiceGapsEclMaterials; }
317 std::vector<ServiceGapsMaterialsEclPar>& getServiceGapsEclMaterials(void) { return m_ServiceGapsEclMaterials; }
319 const ThicknessDensityPar& getthick(void) const { return m_thick; }
322
323
324 private:
328 std::vector<double> m_rmin;
330 std::vector<double> m_rmax;
332 std::vector<double> m_z;
334 std::vector<ServiceGapsMaterialsCdcArichTopPar> m_ServiceGapsMaterials;
336 std::vector<ServiceGapsMaterialsEclPar> m_ServiceGapsEclMaterials;
347
351 };
353} // end of namespace Belle2
354
The Class for Service Materials between CDC and ECL, ARICH and TOP, TOP and ECL.
std::string getMaterial(void) const
Get material.
double getOuterR(void) const
Get OuterR in mm.
double getInnerR(void) const
Get InnerR in mm.
ClassDef(ServiceGapsMaterialsCdcArichTopPar, 1)
ClassDef, must be the last term before the closing {}.
ServiceGapsMaterialsCdcArichTopPar(const std::string &name="", const std::string &material="", int identifier=0, double innerR=0, double outerR=0, double backwardZ=0, double forwardZ=0)
Constructor.
double getBackwardZ(void) const
Get BackwardZ in mm.
double getForwardZ(void) const
Get ForwardZ in mm.
The Class for Service Materials between barrel and endcap of ECL.
std::string getMaterial(void) const
Get material.
double getOuterR2(void) const
Get OuterR2 in mm.
int getIdentifier(void) const
Get identifier.
double getInnerR2(void) const
Get InnerR2 in mm.
double getInnerR1(void) const
Get InnerR1 in mm.
std::string getName(void) const
Get name.
ServiceGapsMaterialsEclPar(const std::string &name="", const std::string &material="", int identifier=0, double innerR1=0, double outerR1=0, double innerR2=0, double outerR2=0, double backwardZ=0, double forwardZ=0)
Constructor.
double getOuterR1(void) const
Get OuterR1 in mm.
ClassDef(ServiceGapsMaterialsEclPar, 1)
ClassDef, must be the last term before the closing {}.
double getBackwardZ(void) const
Get BackwardZ in mm.
double getForwardZ(void) const
Get ForwardZ in mm.
The Class for services materials geometry.
const std::vector< ServiceGapsMaterialsEclPar > & getServiceGapsEclMaterials(void) const
Get Service Materials at ECL.
ServiceGapsMomVolPar m_momvoltopback
Backward Top mother volume for Service Materials.
const ServiceGapsMomVolPar & getMomVolBack(void) const
Get Backward Gap MomVolume.
const ThicknessDensityPar & getthick(void) const
Get Gap element cell Thickness.
std::vector< double > m_z
Z-cordinates list of the mother volume.
ThicknessDensityPar & getthick(void)
Get Gap element cell Thickness.
std::vector< double > getZ() const
Get the list of the z corrdinates.
ServiceGapsMomVolPar & getMomVolBack(void)
Get Backward Gap MomVolume.
ClassDef(ServiceGapsMaterialsPar, 2)
ServiceGapsMomVolPar m_momvolback
Backward mother volume for Service Materials.
ServiceGapsMaterialsPar(bool recordBackground=false)
Constructor.
std::vector< ServiceGapsMaterialsEclPar > m_ServiceGapsEclMaterials
Vector with Service Materials between barrel and end cap of ECL.
ServiceGapsMomVolPar m_momvoleclcoilbarrel
Barrel ECL and COIL gap mother volume for Service Materials.
std::vector< ServiceGapsMaterialsEclPar > & getServiceGapsEclMaterials(void)
Get Service Materials at ECL.
ServiceGapsMomVolPar m_momvolfor
Backward mother volume for Service Materials.
std::vector< double > getRmin() const
Get the list of the Rmin corrdinates.
const ServiceGapsMomVolPar & getMomVolFor(void) const
Get Forward Gap MomVolume.
std::vector< double > m_rmin
Rmin list of the mother volume.
ServiceGapsMomVolPar & getMomVolFor(void)
Get Forward Gap MomVolume.
const std::vector< ServiceGapsMaterialsCdcArichTopPar > & getServiceGapsMaterials(void) const
Get Service Materials.
const ServiceGapsMomVolPar & getMomVolEclCoilBarrel(void) const
Get Barrel ECL and Coil Gap MomVolume.
int getNNodes() const
Get the number of the mother volume nodes.
std::vector< double > m_rmax
Rmax list of the mother volume.
void appendNode(double rmin, double rmax, double z)
Append a new node.
ThicknessDensityPar m_thick
Gap element cell Thickness for Service Materials.
std::vector< double > getRmax() const
Get the list of the Rmax corrdinates.
const ServiceGapsMomVolPar & getMomVolTopBack(void) const
Get Backward Top Gap MomVolume.
ServiceGapsMomVolPar & getMomVolTopBack(void)
Get Backward Top Gap MomVolume.
ServiceGapsMomVolPar & getMomVolEclCoilBarrel(void)
Get Barrel ECL and Coil Gap MomVolume.
std::vector< ServiceGapsMaterialsCdcArichTopPar > m_ServiceGapsMaterials
Vector with Service Materials between CDC and ECL.
std::vector< ServiceGapsMaterialsCdcArichTopPar > & getServiceGapsMaterials(void)
Get Service Materials.
The class for the mother volume of the Service Materials.
std::vector< double > m_z
Z-cordinates list of the mother volume.
ClassDef(ServiceGapsMomVolPar, 1)
ClassDef, must be the last term before the closing {}.
std::vector< double > getZ() const
Get the list of the z corrdinates.
std::vector< double > getRmin() const
Get the list of the Rmin corrdinates.
std::vector< double > m_rmin
Rmin list of the mother volume.
int getNNodes() const
Get the number of the mother volume nodes.
std::vector< double > m_rmax
Rmax list of the mother volume.
void appendNode(double rmin, double rmax, double z)
Append a new node.
std::vector< double > getRmax() const
Get the list of the Rmax corrdinates.
The class for the thicknesses and the density of gap element cell.
int m_IPhiECLCOILB
segmentation in Phi of gap between ECL and COIL barrel
int m_IRECLF
segmentation in R of ECL forward
int m_IRECLB
segmentation in R of ECL backward
int m_IRCDCB
segmentation in R of CDC backward
int m_IZECLF
segmentation in Z of ECL forward
int getIPhiTOPB() const
Get the segmentation in Phi of TOP gap backward.
int m_IZECLB
segmentation in Z of ECL backward
ThicknessDensityPar(int IRCDCB=0, int IPhiCDCB=0, int IRCDCF=0, int IPhiCDCF=0, int IRECLB=0, int IZECLB=0, int IPhiECLB=0, int IRECLF=0, int IZECLF=0, int IPhiECLF=0, int IZARICHF=0, int IPhiARICHF=0, int IPhiTOPB=0, int IPhiTOPF=0, int IPhiECLCOILB=0, int IZECLCOILB=0, const std::vector< double > &thicknesses=std::vector< double >())
Constructor.
int m_IZARICHF
segmentation in Z of ARICH forward
int m_IPhiCDCF
segmentation in Phi of CDC forward
int m_IPhiECLB
segmentation in Phi of ECL backward
int getIRCDCB() const
Get the segmentation in R of CDC backward.
int getIPhiECLF() const
Get the segmentation in Phi of ECL gap forward.
int getIZECLF() const
Get the segmentation in Z of ECL gap forward.
int m_IPhiARICHF
segmentation in Phi of ARICH forward
int getIRECLB() const
Get the segmentation in R of ECL gap backward.
ClassDef(ThicknessDensityPar, 3)
int getIZECLCOILB() const
Get the segmentation in Z of gap between ECL and COIL barrel.
int getIPhiTOPF() const
Get the segmentation in Phi of TOP gap forward.
int getIZARICHF() const
Get the segmentation in Z of ARICH gap forward.
int getIPhiECLCOILB() const
Get the segmentation in Phi of gap between ECL and COIL barrel.
int getIRECLF() const
Get the segmentation in R of ECL gap forward.
std::vector< double > getthickness() const
Get the list of the thicknesses.
int m_IPhiTOPB
segmentation in Phi of TOP backward
std::vector< double > m_thick
Thickness list of CDC gap element cell.
int getIZECLB() const
Get the segmentation in Z of ECL gap backward.
int m_IPhiCDCB
segmentation in Phi of CDC backward
int getIPhiECLB() const
Get the segmentation in Phi of ECL gap backward.
int getIRCDCF() const
Get the segmentation in R of CDC forward.
void appendNode(double thick)
Append a new node.
int getIPhiARICHF() const
Get the segmentation in Phi of ARICH gap forward.
int m_IZECLCOILB
segmentation in Z of gap between ECL and COIL barrel
int getNNodes() const
Get the number of the mother volume nodes.
int getIPhiCDCF() const
Get the segmentation in Phi of CDC forward.
int getIPhiCDCB() const
Get the segmentation in Phi of CDC backward.
int m_IRCDCF
segmentation in R of CDC forward
int m_IPhiECLF
segmentation in Phi of ECL forward
int m_IPhiTOPF
segmentation in Phi of TOP forward
Abstract base class for different kinds of events.