Belle II Software  release-08-01-10
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 
15 namespace 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;
60  double m_backwardZ;
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;
113  double m_backwardZ;
115  double m_forwardZ;
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:
225  int m_IRCDCB;
229  int m_IRCDCF;
233  int m_IRECLB;
235  int m_IZECLB;
239  int m_IRECLF;
241  int m_IZECLF;
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.
std::vector< double > getRmin() const
Get the list of the Rmin corrdinates.
ServiceGapsMomVolPar m_momvoltopback
Backward Top mother volume for Service Materials.
const ServiceGapsMomVolPar & getMomVolBack(void) const
Get Backward Gap MomVolume.
std::vector< ServiceGapsMaterialsCdcArichTopPar > & getServiceGapsMaterials(void)
Get Service Materials.
ThicknessDensityPar & getthick(void)
Get Gap element cell Thickness.
std::vector< double > getZ() const
Get the list of the z corrdinates.
std::vector< double > m_z
Z-cordinates list of the mother volume.
const ServiceGapsMomVolPar & getMomVolFor(void) const
Get Forward Gap MomVolume.
std::vector< ServiceGapsMaterialsEclPar > & getServiceGapsEclMaterials(void)
Get Service Materials at ECL.
ServiceGapsMomVolPar & getMomVolFor(void)
Get Forward Gap MomVolume.
const std::vector< ServiceGapsMaterialsEclPar > & getServiceGapsEclMaterials(void) const
Get Service Materials at ECL.
ServiceGapsMomVolPar & getMomVolEclCoilBarrel(void)
Get Barrel ECL and Coil Gap MomVolume.
ServiceGapsMomVolPar & getMomVolTopBack(void)
Get Backward Top Gap MomVolume.
const std::vector< ServiceGapsMaterialsCdcArichTopPar > & getServiceGapsMaterials(void) const
Get Service Materials.
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< double > getRmax() const
Get the list of the Rmax corrdinates.
ServiceGapsMomVolPar m_momvolfor
Backward mother volume for Service Materials.
const ServiceGapsMomVolPar & getMomVolEclCoilBarrel(void) const
Get Barrel ECL and Coil Gap MomVolume.
std::vector< double > m_rmin
Rmin list of the mother volume.
const ServiceGapsMomVolPar & getMomVolTopBack(void) const
Get Backward Top Gap MomVolume.
const ThicknessDensityPar & getthick(void) const
Get Gap element cell Thickness.
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.
ServiceGapsMomVolPar & getMomVolBack(void)
Get Backward Gap MomVolume.
std::vector< ServiceGapsMaterialsCdcArichTopPar > m_ServiceGapsMaterials
Vector with Service Materials between CDC and ECL.
The class for the mother volume of the Service Materials.
std::vector< double > getRmin() const
Get the list of the Rmin corrdinates.
std::vector< double > getZ() const
Get the list of the z corrdinates.
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 > getRmax() const
Get the list of the Rmax 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.
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.
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.
std::vector< double > getthickness() const
Get the list of the thicknesses.
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.