Belle II Software development
CDCGeometry.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 <vector>
11#include <string>
12
13#include <TObject.h>
14
15namespace Belle2 {
20
21 class GearDir;
22
26
27 class CDCGeometry: public TObject {
28
29 public:
30
31
35 class Rib : public TObject {
36
37 public:
38
42 Rib() {}
43
47 Rib(int id, double length, double width, double thick,
48 double rotx, double roty, double rotz,
49 double x, double y, double z,
50 int offset, int ndiv):
51 m_id(id), m_length(length), m_width(width), m_thick(thick),
52 m_rotx(rotx), m_roty(roty), m_rotz(rotz), m_x(x), m_y(y), m_z(z),
53 m_offset(offset), m_ndiv(ndiv)
54 {}
55
56
60 ~Rib() {}
61
65 int getId() const {return m_id;}
66
67
71 double getLength() const { return m_length;}
72
76 double getWidth() const { return m_width;}
77
81 double getThick() const { return m_thick;}
82
86 double getRotX() const { return m_rotx;}
90 double getRotY() const { return m_roty;}
94 double getRotZ() const { return m_rotz;}
95
99 double getX() const { return m_x;}
103 double getY() const { return m_y;}
107 double getZ() const { return m_z;}
108
112 int getOffset() const { return m_offset;}
116 int getNDiv() const { return m_ndiv;}
117
118
119 private:
120 int m_id;
121 double m_length;
122 double m_width;
123 double m_thick;
124 double m_rotx;
125 double m_roty;
126 double m_rotz;
127 double m_x;
128 double m_y;
129 double m_z;
131 int m_ndiv;
132
133
136 };
137
141 class Rib2 : public TObject {
142
143 public:
144
148 Rib2() {}
149
153 Rib2(int id, double length, double width, double thick,
154 double width2, double thick2, double rotx, double roty, double rotz,
155 double x, double y, double z,
156 int ndiv):
157 m_id(id), m_length(length), m_width(width), m_thick(thick),
158 m_width2(width2), m_thick2(thick2),
159 m_rotx(rotx), m_roty(roty), m_rotz(rotz),
160 m_x(x), m_y(y), m_z(z), m_ndiv(ndiv)
161 {}
162
163
167 ~Rib2() {}
168
172 int getId() const {return m_id;}
173
174
178 double getLength() const { return m_length;}
179
183 double getWidth() const { return m_width;}
184
188 double getThick() const { return m_thick;}
189
193 double getWidth2() const { return m_width2;}
194
198 double getThick2() const { return m_thick2;}
199
203 double getRotX() const { return m_rotx;}
204
208 double getRotY() const { return m_roty;}
209
213 double getRotZ() const { return m_rotz;}
214
218 double getX() const { return m_x;}
222 double getY() const { return m_y;}
226 double getZ() const { return m_z;}
227
231 int getNDiv() const { return m_ndiv;}
232
233
234 private:
235 int m_id;
236 double m_length;
237 double m_width;
238 double m_thick;
239 double m_width2;
240 double m_thick2;
241 double m_rotx;
242 double m_roty;
243 double m_rotz;
244 double m_x;
245 double m_y;
246 double m_z;
247 int m_ndiv;
248
249
252 };
253
257 class Rib3 : public TObject {
258
259 public:
260
264 Rib3() {}
265
269 Rib3(int id, double length, double width, double thick,
270 double r, double x, double y, double z,
271 double rx, double ry, double rz, int offset,
272 int ndiv):
273 m_id(id), m_length(length), m_width(width), m_thick(thick),
274 m_r(r), m_x(x), m_y(y), m_z(z),
275 m_rx(rx), m_ry(ry), m_rz(rz), m_offset(offset), m_ndiv(ndiv)
276 {}
277
278
282 ~Rib3() {}
283
287 int getId() const {return m_id;}
288
289
293 double getLength() const { return m_length;}
294
298 double getWidth() const { return m_width;}
299
303 double getThick() const { return m_thick;}
304
308 double getR() const { return m_r;}
309
313 double getX() const { return m_x;}
317 double getY() const { return m_y;}
321 double getZ() const { return m_z;}
322
326 double getRx() const { return m_rx;}
330 double getRy() const { return m_ry;}
334 double getRz() const { return m_rz;}
335
339 int getOffset() const { return m_offset;}
340
344 int getNDiv() const { return m_ndiv;}
345
346
347 private:
348 int m_id;
349 double m_length;
350 double m_width;
351 double m_thick;
352 double m_r;
353 double m_x;
354 double m_y;
355 double m_z;
356 double m_rx;
357 double m_ry;
358 double m_rz;
360 int m_ndiv;
361
362
365 };
366
370 class Rib4 : public TObject {
371
372 public:
373
377 Rib4() {}
378
382 Rib4(int id, double length, double width, double thick,
383 double length2, double width2, double thick2,
384 double x, double y, double z,
385 double x2, double y2, double z2, int offset,
386 int ndiv):
387 m_id(id), m_length(length), m_width(width), m_thick(thick),
388 m_length2(length2), m_width2(width2), m_thick2(thick2),
389 m_x(x), m_y(y), m_z(z),
390 m_x2(x2), m_y2(y2), m_z2(z2), m_offset(offset), m_ndiv(ndiv)
391 {}
392
393
397 ~Rib4() {}
398
402 int getId() const {return m_id;}
403
404
408 double getLength() const { return m_length;}
409
413 double getWidth() const { return m_width;}
414
418 double getThick() const { return m_thick;}
419
423 double getLength2() const { return m_length2;}
424
428 double getWidth2() const { return m_width2;}
429
433 double getThick2() const { return m_thick2;}
434
438 double getX() const { return m_x;}
442 double getY() const { return m_y;}
446 double getZ() const { return m_z;}
447
451 double getX2() const { return m_x2;}
455 double getY2() const { return m_y2;}
459 double getZ2() const { return m_z2;}
460
464 int getOffset() const { return m_offset;}
465
469 int getNDiv() const { return m_ndiv;}
470
471
472 private:
473 int m_id;
474 double m_length;
475 double m_width;
476 double m_thick;
477 double m_length2;
478 double m_width2;
479 double m_thick2;
480 double m_x;
481 double m_y;
482 double m_z;
483 double m_x2;
484 double m_y2;
485 double m_z2;
487 int m_ndiv;
488
489
492 };
493
497 class Rib5 : public TObject {
498
499 public:
500
504 Rib5() {}
505
509 Rib5(int id, double dr, double dz, double width, double thick, double rin,
510 double x, double y, double z,
511 double rotx, double roty, double rotz, int offset,
512 int ndiv):
513 m_id(id), m_dr(dr), m_dz(dz), m_width(width), m_thick(thick),
514 m_rin(rin), m_x(x), m_y(y), m_z(z),
515 m_rotx(rotx), m_roty(roty), m_rotz(rotz), m_offset(offset), m_ndiv(ndiv)
516 {}
517
518
522 ~Rib5() {}
523
527 int getId() const {return m_id;}
528
529
533 double getDr() const { return m_dr;}
534
538 double getDz() const { return m_dz;}
539
543 double getWidth() const { return m_width;}
544
548 double getThick() const { return m_thick;}
549
553 double getRin() const { return m_rin;}
554
558 double getX() const { return m_x;}
562 double getY() const { return m_y;}
566 double getZ() const { return m_z;}
567
571 double getRotx() const { return m_rotx;}
575 double getRoty() const { return m_roty;}
579 double getRotz() const { return m_rotz;}
580
584 int getOffset() const { return m_offset;}
585
589 int getNDiv() const { return m_ndiv;}
590
591
592 private:
593 int m_id;
594 double m_dr;
595 double m_dz;
596 double m_width;
597 double m_thick;
598 double m_rin;
599 double m_x;
600 double m_y;
601 double m_z;
602 double m_rotx;
603 double m_roty;
604 double m_rotz;
606 int m_ndiv;
607
608
611 };
612
616 class Cover : public TObject {
617
618 public:
619
623 Cover() {}
624
628 Cover(int id, double rmin1, double rmin2,
629 double rmax1, double rmax2,
630 double thick, double z):
631 m_id(id), m_rmin1(rmin1), m_rmin2(rmin2), m_rmax1(rmax1),
632 m_rmax2(rmax2), m_thick(thick), m_z(z)
633 {}
634
635
640
644 int getId() const {return m_id;}
648 double getRmin1() const { return m_rmin1;}
649
653 double getRmin2() const { return m_rmin2;}
654
658 double getRmax1() const { return m_rmax1;}
659
663 double getRmax2() const { return m_rmax2;}
664
668 double getThick() const { return m_thick;}
669
673 double getZ() const { return m_z;}
674
675
676
677 private:
678 int m_id;
679 double m_rmin1;
680 double m_rmin2;
681 double m_rmax1;
682 double m_rmax2;
683 double m_thick;
684 double m_z;
685
686
689 };
690
694 class Cover2 : public TObject {
695
696 public:
697
702
706 Cover2(int id, double rmin, double rmax,
707 double phis, double dphi,
708 double thick, double z):
709 m_id(id), m_rmin(rmin), m_rmax(rmax), m_phis(phis),
710 m_dphi(dphi), m_thick(thick), m_z(z)
711 {}
712
713
718
722 int getId() const {return m_id;}
726 double getRmin() const { return m_rmin;}
727
731 double getRmax() const { return m_rmax;}
732
736 double getPhis() const { return m_phis;}
737
741 double getDphi() const { return m_dphi;}
742
746 double getThick() const { return m_thick;}
747
751 double getZ() const { return m_z;}
752
753
754
755 private:
756 int m_id;
757 double m_rmin;
758 double m_rmax;
759 double m_phis;
760 double m_dphi;
761 double m_thick;
762 double m_z;
763
764
767 };
768
772 class NeutronShield : public TObject {
773
774 public:
775
780
784 NeutronShield(int id, double rmin1, double rmin2,
785 double rmax1, double rmax2,
786 double thick, double z, int ena):
787 m_id(id), m_rmin1(rmin1), m_rmin2(rmin2), m_rmax1(rmax1),
788 m_rmax2(rmax2), m_thick(thick), m_z(z), m_ena(ena)
789 {}
790
791
796
800 int getId() const {return m_id;}
804 double getRmin1() const { return m_rmin1;}
805
809 double getRmin2() const { return m_rmin2;}
810
814 double getRmax1() const { return m_rmax1;}
815
819 double getRmax2() const { return m_rmax2;}
820
824 double getThick() const { return m_thick;}
825
829 double getZ() const { return m_z;}
830
834 int getEna() const { return m_ena;}
835
836
837 private:
838 int m_id;
839 double m_rmin1;
840 double m_rmin2;
841 double m_rmax1;
842 double m_rmax2;
843 double m_thick;
844 double m_z;
845 int m_ena;
846
847
850 };
851
855 class Frontend : public TObject {
856
857 public:
858
863
867 Frontend(int id, double rmin, double rmax, double zfwd, double zbwd):
868 m_id(id), m_rmin(rmin), m_rmax(rmax), m_zfwd(zfwd), m_zbwd(zbwd)
869 {}
870
871
879 int getId() const {return m_id;}
883 double getRmin() const { return m_rmin;}
887 double getRmax() const { return m_rmax;}
888
892 double getZfwd() const { return m_zfwd;}
893
897 double getZbwd() const { return m_zbwd;}
898
899
900 private:
901 int m_id;
902 double m_rmin;
903 double m_rmax;
904 double m_zfwd;
905 double m_zbwd;
906
909 };
910
911
915 class MotherVolume : public TObject {
916
917 public:
918
923
928
932 void appendNode(double rmin, double rmax, double z);
933
937 int getNNodes() const { return m_rmin.size();}
941 std::vector<double> getRmin() const { return m_rmin;}
945 std::vector<double> getRmax() const { return m_rmax;}
949 std::vector<double> getZ() const { return m_z;}
950
951
952 private:
953 std::vector<double> m_rmin;
954 std::vector<double> m_rmax;
955 std::vector<double> m_z;
956
959 };
960
964 class SenseLayer : public TObject {
965
966 public:
967
972 {}
973
978 double r, double zfwd, double zbwd,
979 double dZfwd, double dZbwd,
980 double offset, int nWires, double nShifts) :
981 m_id(id), m_r(r),
982 m_zfwd(zfwd), m_zbwd(zbwd),
983 m_dZfwd(dZfwd), m_dZbwd(dZbwd),
984 m_offset(offset),
985 m_nWires(nWires),
986 m_nShifts(nShifts)
987 {
988 }
989
994
998 int getId() const { return m_id;}
999
1003 double getR() const {return m_r;}
1004
1008 double getZfwd() const { return m_zfwd;}
1009
1013 double getZbwd() const { return m_zbwd;}
1014
1018 void setDZfwd(double dz) {m_dZfwd = dz;}
1019
1023 double getDZfwd() const {return m_dZfwd;}
1024
1028 void setDZbwd(double dz) {m_dZbwd = dz;}
1029
1033 double getDZbwd() const {return m_dZbwd;}
1034
1038 void setOffset(double offset) {m_offset = offset;}
1039
1043 double getOffset() const {return m_offset;}
1044
1048 void setNShifts(int n) {m_nShifts = n;}
1049
1053 int getNShifts() const {return m_nShifts;}
1054
1058 void setNWires(int n) {m_nWires = n;}
1059
1063 int getNWires() const { return m_nWires;}
1064
1065
1066 private:
1067
1068 int m_id;
1069 double m_r;
1070 double m_zfwd;
1071 double m_zbwd;
1072 double m_dZfwd;
1073 double m_dZbwd;
1074 double m_offset;
1076 double m_nShifts;
1077
1080 };
1081
1085 class FieldLayer : public TObject {
1086
1087 public:
1088
1093
1098 double r, double zfwd, double zbwd):
1099 m_id(id), m_r(r),
1100 m_zfwd(zfwd), m_zbwd(zbwd)
1101 {
1102 }
1103
1108
1112 int getId() const { return m_id;}
1113
1117 double getR() const {return m_r;}
1118
1122 double getZfwd() const { return m_zfwd;}
1123
1127 double getZbwd() const { return m_zbwd;}
1128
1129 private:
1130
1131 int m_id;
1132 double m_r;
1133 double m_zfwd;
1134 double m_zbwd;
1135
1138 };
1139
1143 class OuterWall : public TObject {
1144
1145 public:
1146
1151
1155 OuterWall(const std::string& name, int id,
1156 double rmin, double rmax, double zfwd, double zbwd):
1157 m_name(name), m_id(id), m_rmin(rmin),
1158 m_rmax(rmax), m_zfwd(zfwd), m_zbwd(zbwd)
1159 {
1160 }
1161
1166
1170 std::string getName() const { return m_name;}
1171
1175 int getId() const { return m_id;}
1176
1180 double getRmin() const { return m_rmin;}
1181
1185 double getRmax() const {return m_rmax;}
1186
1190 double getZfwd() const { return m_zfwd;}
1191
1195 double getZbwd() const { return m_zbwd;}
1196
1197 private:
1198
1199 std::string m_name;
1200 int m_id;
1201 double m_rmin;
1202 double m_rmax;
1203 double m_zfwd;
1204 double m_zbwd;
1205
1206
1209 };
1210
1214 class InnerWall : public TObject {
1215
1216 public:
1217
1222
1226 InnerWall(const std::string& name, int id,
1227 double rmin, double rmax, double zfwd, double zbwd):
1228 m_name(name), m_id(id), m_rmin(rmin),
1229 m_rmax(rmax), m_zfwd(zfwd), m_zbwd(zbwd)
1230 {
1231 }
1232
1237
1241 std::string getName() const { return m_name;}
1242
1246 int getId() const { return m_id;}
1247
1251 double getRmin() const { return m_rmin;}
1252
1256 double getRmax() const {return m_rmax;}
1257
1261 double getZfwd() const { return m_zfwd;}
1262
1266 double getZbwd() const { return m_zbwd;}
1267
1268 private:
1269
1270 std::string m_name;
1271 int m_id;
1272 double m_rmin;
1273 double m_rmax;
1274
1275 double m_zfwd;
1276 double m_zbwd;
1277
1278
1281 };
1282
1286 class EndPlateLayer : public TObject {
1287
1288 public:
1289
1294
1298 EndPlateLayer(const std::string& name, int ilay,
1299 double rmin, double rmax, double zfwd, double zbwd):
1300 m_name(name), m_layer(ilay), m_rmin(rmin),
1301 m_rmax(rmax), m_zfwd(zfwd), m_zbwd(zbwd)
1302 {
1303 }
1304
1309
1313 std::string getName() const { return m_name;}
1314
1318 int getILayer() const { return m_layer;}
1319
1323 double getRmin() const { return m_rmin;}
1324
1328 double getRmax() const {return m_rmax;}
1329
1333 double getZfwd() const { return m_zfwd;}
1334
1338 double getZbwd() const { return m_zbwd;}
1339
1340 private:
1341
1342 std::string m_name;
1344 double m_rmin;
1345 double m_rmax;
1346 double m_zfwd;
1347 double m_zbwd;
1348
1351 };
1352
1356 class EndPlate : public TObject {
1357
1358 public:
1363
1367 explicit EndPlate(int i) : m_id(i) {};
1368
1373
1377 void appendNew(const std::string& name, int ilay,
1378 double rmin, double rmax, double zfwd, double zbwd)
1379 {
1380 EndPlateLayer eplayer(name, ilay, rmin, rmax, zfwd, zbwd);
1381 m_endPlateLayers.push_back(eplayer);
1382 }
1383
1387 int getNEndPlateLayers() const {return m_endPlateLayers.size();}
1388
1392 int getId() const {return m_id;}
1393
1401 std::vector<EndPlateLayer> getEndPlateLayers() const {return m_endPlateLayers;}
1402 private:
1403 int m_id;
1404 std::vector<EndPlateLayer> m_endPlateLayers;
1405
1408 };
1409
1414
1418 explicit CDCGeometry(const GearDir&);
1419
1423 ~CDCGeometry();
1424
1428 void read(const GearDir&);
1429
1434
1438 double getGlobalOffsetX() const { return m_globalOffsetX;}
1439
1443 double getGlobalOffsetY() const { return m_globalOffsetY;}
1444
1448 double getGlobalOffsetZ() const { return m_globalOffsetZ;}
1449
1453 double getGlobalOffsetA() const { return m_globalOffsetA;}
1454
1458 double getGlobalOffsetB() const { return m_globalOffsetB;}
1459
1463 double getGlobalOffsetC() const { return m_globalOffsetC;}
1464
1468 double getFiducialRmin() const { return m_fiducialRmin;}
1469
1473 double getFiducialRmax() const { return m_fiducialRmax;}
1474
1479
1483 std::vector<OuterWall> getOuterWalls() const { return m_outerWalls;}
1484
1488 OuterWall getOuterWall(int i) const { return m_outerWalls.at(i);}
1489
1493 std::vector<InnerWall> getInnerWalls() const { return m_innerWalls;}
1494
1498 InnerWall getInnerWall(int i) const { return m_innerWalls.at(i);}
1499
1503 int getNEndplates() const { return m_endplates.size();}
1504
1508 EndPlate getEndPlate(int i) const {return m_endplates.at(i);};
1509
1513 std::vector<EndPlate> getEndPlates() const { return m_endplates;}
1514
1518 int getNFrontends() const {return m_frontends.size();}
1519
1523 std::vector<Frontend> getFrontends() const {return m_frontends;}
1524
1528 SenseLayer getSenseLayer(int i) const { return m_senseLayers.at(i);}
1529
1533 std::vector<SenseLayer> getSenseLayers() const { return m_senseLayers;}
1534
1538 int getNSenseLayers() const { return m_senseLayers.size();}
1539
1543 double getSenseDiameter() const { return m_senseWireDiameter;}
1544
1548 double getSenseTension() const { return m_senseWireTension;}
1549
1553 int getNSenseWires() const { return m_senseWireNumbers;}
1554
1558 FieldLayer getFieldLayer(int i) const { return m_fieldLayers.at(i);}
1559
1563 std::vector<FieldLayer> getFieldLayers() const { return m_fieldLayers;}
1564
1568 int getNFieldLayers() const { return m_fieldLayers.size();}
1569
1570
1574 std::vector<NeutronShield> getNeutronShields() const { return m_neutronShields;}
1575
1579 std::vector<Cover> getCovers() const { return m_covers;}
1580
1584 std::vector<Cover2> getCover2s() const { return m_cover2s;}
1585
1589 std::vector<Rib> getRibs() const { return m_ribs;}
1590
1594 std::vector<Rib2> getRib2s() const { return m_rib2s;}
1595
1599 std::vector<Rib3> getRib3s() const { return m_rib3s;}
1600
1604 std::vector<Rib4> getRib4s() const { return m_rib4s;}
1605
1609 std::vector<Rib5> getRib5s() const { return m_rib5s;}
1610
1611
1615 double getFieldDiameter() const { return m_fieldWireDiameter;}
1616
1620 int getNFieldWires() const { return m_fieldWireNumbers;}
1621
1626
1630 double getClockFrequency() const { return m_clockFrequency;}
1631
1636
1637
1642
1647
1652
1657
1662
1667
1668
1669 private:
1670
1671 double m_globalPhiRotation = 0.0;
1672 double m_globalOffsetX = 0.0;
1673 double m_globalOffsetY = 0.0;
1674 double m_globalOffsetZ = 0.0;
1675 double m_globalOffsetA = 0.0;
1676 double m_globalOffsetB = 0.0;
1677 double m_globalOffsetC = 0.0;
1681 std::vector<SenseLayer> m_senseLayers;
1682 std::vector<FieldLayer> m_fieldLayers;
1683 std::vector<InnerWall> m_innerWalls;
1684 std::vector<OuterWall> m_outerWalls;
1685 std::vector<EndPlate> m_endplates;
1686 std::vector<Frontend> m_frontends;
1687 std::vector<NeutronShield> m_neutronShields;
1688 std::vector<Cover> m_covers;
1689 std::vector<Cover2> m_cover2s;
1690 std::vector<Rib> m_ribs;
1691 std::vector<Rib2> m_rib2s;
1692 std::vector<Rib3> m_rib3s;
1693 std::vector<Rib4> m_rib4s;
1694 std::vector<Rib5> m_rib5s;
1695
1696 double m_senseWireDiameter = 0.003;
1698 double m_senseWireTension = 50.0;
1699 double m_fieldWireDiameter = 0.0126;
1701 double m_feedThroughLength = 1.5;
1704
1705 ushort m_maxNSenseLayers = 56;
1706 ushort m_maxNFieldLayers = 55;
1710 ushort m_maxNCellsPerLayer = 384;
1711
1713
1714 };
1715
1716} // end of namespace Belle2
1717
double getDphi() const
Get the maximum radius 2 of the cover2.
double m_phis
the maximum radius 1 of the cover2.
int getId() const
Get the cover2 Id.
double getPhis() const
Get the maximum radius 1 of the cover2.
double m_thick
the z-position of the cover2.
double getZ() const
Get the z-position of the cover2.
double m_dphi
the maximum radius 2 of the cover2.
double getThick() const
Get the thickness of the cover2.
double getRmax() const
Get the minimum radius 2 of the cover2.
double m_rmax
the mimnum radius 2 of the cover2.
Cover2(int id, double rmin, double rmax, double phis, double dphi, double thick, double z)
Constructor.
double m_z
the thickness of the cover2.
double getRmin() const
Get the minimum radius 1 of the cover2.
ClassDef(Cover2, 1)
Makes objects storable.
double m_rmin
the mimnum radius 1 of the cover2.
double getRmin1() const
Get the minimum radius 1 of the cover.
double m_rmin1
the mimnum radius 1 of the cover.
double getRmax1() const
Get the maximum radius 1 of the cover.
int getId() const
Get the cover Id.
double m_rmin2
the mimnum radius 2 of the cover.
double m_thick
the z-position of the cover.
ClassDef(Cover, 1)
Makes objects storable.
Cover(int id, double rmin1, double rmin2, double rmax1, double rmax2, double thick, double z)
Constructor.
double getZ() const
Get the z-position of the cover.
double getRmin2() const
Get the minimum radius 2 of the cover.
double m_rmax2
the maximum radius 2 of the cover.
double getThick() const
Get the thickness of the cover.
double m_rmax1
the maximum radius 1 of the cover.
double m_z
the thickness of the cover.
double getRmax2() const
Get the maximum radius 2 of the cover.
Endplate layer geometry parameters.
int getILayer() const
Get ILayer.
EndPlateLayer(const std::string &name, int ilay, double rmin, double rmax, double zfwd, double zbwd)
Constructor.
ClassDef(EndPlateLayer, 1)
Makes objects storable.
double getZbwd() const
Get bwd z-position.
std::string getName() const
Get name.
double getRmax() const
Get Rmax.
double getRmin() const
Get Rmin.
double getZfwd() const
Get fwd z-position.
Endplate geometry parameters.
void appendNew(const std::string &name, int ilay, double rmin, double rmax, double zfwd, double zbwd)
Add new endplate layer.
int getNEndPlateLayers() const
Get the number of endplate layers.
std::vector< EndPlateLayer > m_endPlateLayers
Endplate layers.
std::vector< EndPlateLayer > getEndPlateLayers() const
Get the list of endplate layers.
EndPlate(int i)
Constructor.
EndPlateLayer getEndPlateLayer(int i) const
Get i-th endplate layer.
ClassDef(EndPlate, 1)
Makes objects storable.
Field layer geometry parameters.
double getR() const
Get Radius.
double getZbwd() const
Get bwd z-position.
ClassDef(FieldLayer, 1)
Makes objects storable.
FieldLayer(int id, double r, double zfwd, double zbwd)
Constructor.
double getZfwd() const
Get fwd z-position.
Frontend(int id, double rmin, double rmax, double zfwd, double zbwd)
Constructor.
int getId() const
Get the frontend layer Id.
double getZbwd() const
Get the backward z-position of the frontend layer.
int m_id
Frontend layer id.
double getRmax() const
Get the maximum radius of the frontend layer.
double m_rmax
the maximum radius of the frontend layer.
ClassDef(Frontend, 1)
Makes objects storable.
double m_zfwd
the forawrd z-position of the frontend layer.
double getRmin() const
Get the minimum radius of the frontend layer.
double m_rmin
the mimnum radius of the frontend layer.
double getZfwd() const
Get the forward z-position of the frontend layer.
double m_zbwd
the forawrd z-position of the frontend layer.
Inner wall geometry parameters.
ClassDef(InnerWall, 1)
Makes objects storable.
double getZbwd() const
Get bwd z-position.
std::string getName() const
Get name.
InnerWall(const std::string &name, int id, double rmin, double rmax, double zfwd, double zbwd)
Constructor.
double getRmax() const
Get Rmax.
double getRmin() const
Get Rmin.
double getZfwd() const
Get fwd z-position.
Mother volume geometry parameters.
std::vector< double > m_z
Z-cordinates list of the mother volume.
std::vector< double > getZ() const
Get the list of the z coordinates.
std::vector< double > getRmin() const
Get the list of the Rmin coordinates.
std::vector< double > m_rmin
Rmin list of the mother volume.
ClassDef(MotherVolume, 1)
Makes objects storable.
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 coordinates.
double getRmin1() const
Get the minimum radius 1 of the shield.
double m_rmin1
the mimnum radius 1 of the shield.
double getRmax1() const
Get the maximum radius 1 of the shield.
int m_ena
the enable status of the shield.
int getId() const
Get the shield Id.
NeutronShield(int id, double rmin1, double rmin2, double rmax1, double rmax2, double thick, double z, int ena)
Constructor.
double m_rmin2
the mimnum radius 2 of the shield.
double m_thick
the z-position of the shield.
int getEna() const
Get the enable status of the shield.
double getZ() const
Get the z-position of the shield.
double getRmin2() const
Get the minimum radius 2 of the shield.
double m_rmax2
the maximum radius 2 of the shield.
double getThick() const
Get the thickness of the shield.
double m_rmax1
the maximum radius 1 of the shield.
double m_z
the thickness of the shield.
double getRmax2() const
Get the maximum radius 2 of the shield.
ClassDef(NeutronShield, 1)
Makes objects storable.
Outer wall geometry parameters.
ClassDef(OuterWall, 1)
Makes objects storable.
OuterWall(const std::string &name, int id, double rmin, double rmax, double zfwd, double zbwd)
Constructor.
double getZbwd() const
Get bwd z-position.
std::string getName() const
Get name.
double getRmax() const
Get Rmax.
double getRmin() const
Get Rmin.
double getZfwd() const
Get fwd z-position.
double getWidth() const
Get the width of the rib2.
double getThick2() const
Get the thickness of the rib2.
ClassDef(Rib2, 1)
Makes objects storable.
double m_rotx
rotation angle w.r.t.
double getX() const
Get the x-position of the rib2.
double m_roty
rotation angle w.r.t.
int m_ndiv
Number of division.
double getRotX() const
Get the rotation angle w.r.t x-axis of the rib2.
int getId() const
Get the rib2 Id.
double m_width2
width of the rib2.
double m_width
width of the rib2.
double m_thick2
thickness of the rib2.
double m_x
the y-position of the rib2.
double m_thick
thickness of the rib2.
Rib2(int id, double length, double width, double thick, double width2, double thick2, double rotx, double roty, double rotz, double x, double y, double z, int ndiv)
Constructor.
double getWidth2() const
Get the width of the rib2.
double getZ() const
Get the z-position of the rib2.
double getRotY() const
Get the rotation angle w.r.t y-axis of the rib2.
double getY() const
Get the y-position of the rib2.
double getThick() const
Get the thickness of the rib2.
double m_length
length of the rib2.
double m_z
the z-position of the rib2.
double m_rotz
rotation angle w.r.t.
double getRotZ() const
Get the rotation angle w.r.t z-axis of the rib2.
double m_y
the y-position of the rib2.
int getNDiv() const
Get number of division of the rib2.
double getLength() const
Get the length of the rib2.
int getOffset() const
Get number of division of the rib3.
double getWidth() const
Get the width of the rib3.
double getRy() const
Get the y-position of the rib3.
Rib3(int id, double length, double width, double thick, double r, double x, double y, double z, double rx, double ry, double rz, int offset, int ndiv)
Constructor.
double getX() const
Get the x-position of the rib3.
int m_ndiv
Number of division.
int getId() const
Get the rib3 Id.
double m_ry
the y-position of the rib3.
double m_width
width of the rib3.
double getR() const
Get the width of the rib3.
double getRx() const
Get the x-position of the rib3.
double m_x
the y-position of the rib3.
double m_thick
thickness of the rib3.
double getRz() const
Get the z-position of the rib3.
double getZ() const
Get the z-position of the rib3.
int m_offset
Number of division.
double getY() const
Get the y-position of the rib3.
double getThick() const
Get the thickness of the rib3.
double m_length
length of the rib3.
double m_z
the z-position of the rib3.
double m_rz
the z-position of the rib3.
double m_y
the y-position of the rib3.
double m_r
width of the rib3.
int getNDiv() const
Get number of division of the rib3.
double m_rx
the y-position of the rib3.
double getLength() const
Get the length of the rib3.
ClassDef(Rib3, 1)
Makes objects storable.
int getOffset() const
Get number of division of the rib4.
double getWidth() const
Get the width of the rib4.
double getLength2() const
Get the length of the rib4.
double getThick2() const
Get the thickness of the rib4.
double getY2() const
Get the y-position of the rib4.
double m_x2
the y-position of the rib4.
double getX() const
Get the x-position of the rib4.
int m_ndiv
Number of division.
int getId() const
Get the rib4 Id.
double m_width2
width of the rib4.
double m_width
width of the rib4.
double m_thick2
thickness of the rib4.
double m_x
the y-position of the rib4.
double m_thick
thickness of the rib4.
double getX2() const
Get the x-position of the rib4.
double m_y2
the y-position of the rib4.
Rib4(int id, double length, double width, double thick, double length2, double width2, double thick2, double x, double y, double z, double x2, double y2, double z2, int offset, int ndiv)
Constructor.
double getWidth2() const
Get the width of the rib4.
double getZ() const
Get the z-position of the rib4.
int m_offset
Number of division.
double getY() const
Get the y-position of the rib4.
double getThick() const
Get the thickness of the rib4.
double m_length
length of the rib4.
double m_z2
the z-position of the rib4.
double getZ2() const
Get the z-position of the rib4.
double m_z
the z-position of the rib4.
double m_y
the y-position of the rib4.
double m_length2
length of the rib4.
int getNDiv() const
Get number of division of the rib4.
double getLength() const
Get the length of the rib4.
ClassDef(Rib4, 1)
Makes objects storable.
int getOffset() const
Get number of division of the rib5.
double getWidth() const
Get the width of the rib5.
Rib5(int id, double dr, double dz, double width, double thick, double rin, double x, double y, double z, double rotx, double roty, double rotz, int offset, int ndiv)
Constructor.
double m_rotx
the y-position of the rib5.
double m_rin
length of the rib5.
double getX() const
Get the x-position of the rib5.
double m_roty
the y-position of the rib5.
int m_ndiv
Number of division.
int getId() const
Get the rib5 Id.
double m_dz
length of the rib5.
double m_width
width of the rib5.
double m_x
the y-position of the rib5.
double m_thick
thickness of the rib5.
double m_dr
length of the rib5.
double getZ() const
Get the z-position of the rib5.
int m_offset
Number of division.
double getRotz() const
Get the z-position of the rib5.
double getY() const
Get the y-position of the rib5.
double getThick() const
Get the thickness of the rib5.
double getRin() const
Get the length of the rib5.
double getDz() const
Get the length of the rib5.
double m_z
the z-position of the rib5.
double getRotx() const
Get the x-position of the rib5.
double m_rotz
the z-position of the rib5.
double m_y
the y-position of the rib5.
ClassDef(Rib5, 1)
Makes objects storable.
double getRoty() const
Get the y-position of the rib5.
int getNDiv() const
Get number of division of the rib5.
double getDr() const
Get the length of the rib5.
int getOffset() const
Get number of division of the rib.
double getWidth() const
Get the width of the rib.
Definition CDCGeometry.h:76
double m_rotx
the y-position of the rib.
double getX() const
Get the x-position of the rib.
Definition CDCGeometry.h:99
double m_roty
the y-position of the rib.
int m_ndiv
Number of division.
double getRotX() const
Get the x-position of the rib.
Definition CDCGeometry.h:86
int getId() const
Get the rib Id.
Definition CDCGeometry.h:65
double m_width
width of the rib.
Rib(int id, double length, double width, double thick, double rotx, double roty, double rotz, double x, double y, double z, int offset, int ndiv)
Constructor.
Definition CDCGeometry.h:47
double m_x
the y-position of the rib.
double m_thick
thickness of the rib.
ClassDef(Rib, 2)
Makes objects storable.
double getZ() const
Get the z-position of the rib.
int m_offset
Number of division.
double getRotY() const
Get the y-position of the rib.
Definition CDCGeometry.h:90
double getY() const
Get the y-position of the rib.
double getThick() const
Get the thickness of the rib.
Definition CDCGeometry.h:81
double m_length
length of the rib.
double m_z
the z-position of the rib.
double m_rotz
the z-position of the rib.
double getRotZ() const
Get the z-position of the rib.
Definition CDCGeometry.h:94
double m_y
the y-position of the rib.
int getNDiv() const
Get number of division of the rib.
double getLength() const
Get the length of the rib.
Definition CDCGeometry.h:71
Sense layer geometry parameters.
int getNShifts() const
Get Nshifts.
void setOffset(double offset)
Set offset.
double getDZfwd() const
Get fwd dz.
void setDZfwd(double dz)
Set fwd dz.
void setNWires(int n)
Set number of wires.
double getDZbwd() const
Get bwd dz.
SenseLayer()
Default constructor.
SenseLayer(int id, double r, double zfwd, double zbwd, double dZfwd, double dZbwd, double offset, int nWires, double nShifts)
Constructor.
void setDZbwd(double dz)
Set bwd dz.
int getNWires() const
Get number of wires.
void setNShifts(int n)
Set Nshifts.
double getR() const
Get Radius.
double getZbwd() const
Get bwd z-position.
double getOffset() const
Get offset.
ClassDef(SenseLayer, 1)
Makes objects storable.
double getZfwd() const
Get fwd z-position.
double getGlobalOffsetY() const
Get the global y offset of CDC wrt Belle2 coord.
FieldLayer getFieldLayer(int i) const
Get the i-th field layer.
double m_globalOffsetB
Offset angle b of the whole cdc wrt B2 coord system (rad).
OuterWall getOuterWall(int i) const
Get the i-th outer wall.
ushort m_maxNSuperLayers
Maximum number of Super Layers.
std::vector< Rib2 > getRib2s() const
Get the list of rib2s.
double getFiducialRmin() const
Get the fiducial Rmin of CDC sensitive volume.
MotherVolume m_mother
CDC mother volume.
double m_globalPhiRotation
Global rotation in phi (rad).
std::vector< Rib > getRibs() const
Get the list of ribs.
int m_senseWireNumbers
Number of sense wires.
std::vector< Rib5 > m_rib5s
Rib5s.
double getGlobalOffsetX() const
Get the global x offset of CDC wrt Belle2 coord.
double m_globalOffsetZ
Offset z of the whole cdc wrt B2 coord system (cm).
int m_fieldWireNumbers
Number of field wires.
std::vector< InnerWall > getInnerWalls() const
Get the list of inner walls.
ushort getOffsetOfFirstLayer() const
Get the offset of the first layer.
~CDCGeometry()
Destructor.
std::vector< Rib5 > getRib5s() const
Get the list of rib5s.
std::vector< FieldLayer > getFieldLayers() const
Get the list of field layers.
double getFiducialRmax() const
Get the fiducial Rmax of CDC sensitive volume.
std::vector< NeutronShield > m_neutronShields
Neutron shields.
double getClockFrequency() const
Get the clock frequency.
ushort getMaxNumberOfSuperLayers() const
Get the maximum number of super layers.
ClassDef(CDCGeometry, 5)
ClassDef, must be the last term before the closing {}.
double m_globalOffsetX
Offset x of the whole cdc wrt B2 coord system (cm).
int getNFieldWires() const
Get the number of field wires.
std::vector< Rib3 > getRib3s() const
Get the list of rib3s.
std::vector< Cover2 > getCover2s() const
Get the list of covers.
int getNFrontends() const
Get the number of frontend layers.
CDCGeometry()
Default constructor.
MotherVolume getMotherVolume() const
Get the mother volume geometry of CDC.
double m_feedThroughLength
Feedthrough length (cm).
int getNSenseWires() const
Get the number of sense wires.
double getSenseDiameter() const
Get the diameter of sense wire.
ushort m_maxNSenseLayers
Maximum number of Sense Wire Layers.
std::vector< Cover2 > m_cover2s
Cover2s.
double m_senseWireDiameter
Sense wire diameter (cm).
double getGlobalOffsetB() const
Get the global offset angle b of CDC wrt Belle2 coord.
std::vector< Frontend > getFrontends() const
Get the list of frontend layers.
double getGlobalOffsetA() const
Get the global offset angle a of CDC wrt Belle2 coord.
double m_clockFrequency
Clock frequency.
InnerWall getInnerWall(int i) const
Get the i-th inner wall.
double getFieldDiameter() const
Get the diameter of field wire.
std::vector< Cover > m_covers
Covers.
ushort getMaxNumberOfCellsPerLayer() const
Get the maximum number of cells in one layer.
EndPlate getEndPlate(int i) const
Get the i-th endplate.
double m_globalOffsetY
Offset y of the whole cdc wrt B2 coord system (cm).
std::vector< EndPlate > m_endplates
Endplate.
ushort m_firstSuperLayerOffset
Offset of the first super layer (for reduced CDC studies)
ushort getNumberOfSenseLayers() const
Get the number of sense layers.
std::vector< InnerWall > m_innerWalls
Inner wall.
int getNFieldLayers() const
Get the number of field layers.
double getGlobalPhiRotation() const
Get the global phi rotation of CDC.
double getGlobalOffsetC() const
Get the global offset angle c of CDC wrt Belle2 coord.
std::vector< Rib4 > getRib4s() const
Get the list of rib4s.
double m_fiducialRmin
Minimum radius of the CDC fiducial volume.
double m_fieldWireDiameter
Field wire diameter (cm).
std::vector< OuterWall > m_outerWalls
Outer wall.
std::vector< NeutronShield > getNeutronShields() const
Get the list of neutron shields.
std::vector< Frontend > m_frontends
Electronics board.
double m_globalOffsetC
Offset angle c of the whole cdc wrt B2 coord system (rad).
std::vector< SenseLayer > m_senseLayers
Sense layer.
int getNSenseLayers() const
Get the number of sense layers.
std::vector< EndPlate > getEndPlates() const
Get the list of endplates.
double getFeedthroughLength() const
Get the length of feedthrough.
double m_fiducialRmax
Maximum radius of the CDC fiducial volume.
double getSenseTension() const
Get the tension applied to sense wire.
std::vector< SenseLayer > getSenseLayers() const
Get the list of sense layers.
std::vector< FieldLayer > m_fieldLayers
Field layer.
ushort m_maxNCellsPerLayer
Maximum number wires within a layer.
std::vector< Rib > m_ribs
Ribs.
ushort getNumberOfFieldLayers() const
Get the number of field layers.
ushort m_maxNFieldLayers
Maximum number of Field Wire Layers.
void read(const GearDir &)
Get geometry parameters from Gearbox.
int getNEndplates() const
Get the number of endplates.
std::vector< Rib4 > m_rib4s
Rib4s.
double getGlobalOffsetZ() const
Get the global z offset of CDC wrt Belle2 coord.
double m_globalOffsetA
Offset angle a of the whole cdc wrt B2 coord system (rad).
ushort m_firstLayerOffset
Offset of the first layer (for reduced CDC studies)
ushort getOffsetOfFirstSuperLayer() const
Get the offset of the first super layer.
std::vector< OuterWall > getOuterWalls() const
Get the list of outer walls.
std::vector< Cover > getCovers() const
Get the list of covers.
SenseLayer getSenseLayer(int i) const
Get i-th sense layer.
double m_nominalSpaceResolution
Nominal space resolution.
double getNominalSpaceResolution() const
Get the nominal space resolution.
double m_senseWireTension
Sense wire tension (gW).
std::vector< Rib2 > m_rib2s
Rib2s.
std::vector< Rib3 > m_rib3s
Rib3s.
GearDir is the basic class used for accessing the parameter store.
Definition GearDir.h:31
Abstract base class for different kinds of events.