Belle II Software development
GeometryPar.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
9#pragma once
10
11/* KLM headers. */
12#include <klm/bklm/geometry/Module.h>
13#include <klm/dbobjects/bklm/BKLMGeometryPar.h>
14
15/* CLHEP headers. */
16#include <CLHEP/Vector/ThreeVector.h>
17
18/* C++ headers. */
19#include <map>
20#include <vector>
21
22namespace Belle2 {
27
28 class GearDir;
29
30 namespace bklm {
31
33
38
39 public:
40
42 static GeometryPar* instance(void);
43
45 static GeometryPar* instance(const GearDir&);
46
48 static GeometryPar* instance(const BKLMGeometryPar&);
49
51 bool doBeamBackgroundStudy(void) const
52 {
54 }
55
57 double getLayerInnerRadius(int layer) const;
58
60 double getLayerOuterRadius(int layer) const;
61
63 const CLHEP::Hep3Vector getGapHalfSize(int layer, bool hasChimney) const;
64
66 const CLHEP::Hep3Vector getModuleHalfSize(int layer, bool hasChimney) const;
67
69 const CLHEP::Hep3Vector getModuleInteriorHalfSize1(int layer, bool hasChimney) const;
70
72 const CLHEP::Hep3Vector getModuleInteriorHalfSize2(int layer, bool hasChimney) const;
73
75 const CLHEP::Hep3Vector getElectrodeHalfSize(int layer, bool hasChimney) const;
76
78 const CLHEP::Hep3Vector getGasHalfSize(int layer, bool hasChimney) const;
79
81 const CLHEP::Hep3Vector getAirHalfSize(int layer, bool hasChimney) const;
82
84 const CLHEP::Hep3Vector getScintEnvelopeHalfSize(int layer, bool hasChimney) const;
85
87 const CLHEP::Hep3Vector getScintEnvelopeOffset(int layer, bool hasChimney) const;
88
91 int getScintEnvelopeOffsetSign(int layer) const
92 {
93 return m_ScintEnvelopeOffsetSign[layer - 1];
94 }
95
97 double getPolystyreneOffsetX(void) const;
98
100 double getScintTiO2ThicknessTop(void) const
101 {
103 }
104
106 double getScintTiO2ThicknessSide(void) const
107 {
109 }
110
112 double getScintHalfHeight(void) const
113 {
114 return 0.5 * m_ScintHeight;
115 }
116
118 double getScintHalfWidth(void) const
119 {
120 return 0.5 * m_ScintWidth;
121 }
122
124 double getScintBoreRadius(void) const
125 {
126 return m_ScintBoreRadius;
127 }
128
130 double getScintFiberRadius(void) const
131 {
132 return m_ScintFiberRadius;
133 }
134
136 double getGapMiddleRadius(int layer) const;
137
139 double getModuleMiddleRadius(int layer) const;
140
142 double getActiveMiddleRadius(int section, int sector, int layer) const;
143
145 bool getModuleFlip(int section, int sector, int layer) const
146 {
147 return m_IsFlipped[section][sector - 1][layer - 1];
148 }
149
151 double getRotation(void) const
152 {
153 return m_Rotation;
154 }
155
157 double getOffsetZ(void) const
158 {
159 return m_OffsetZ;
160 }
161
163 double getPhi(void) const
164 {
165 return m_Phi;
166 }
167
169 double getSolenoidOuterRadius(void) const
170 {
172 }
173
175 int getNSector(void) const
176 {
177 return m_NSector;
178 }
179
181 double getHalfLength(void) const
182 {
183 return m_HalfLength;
184 }
185
187 double getOuterRadius(void) const
188 {
189 return m_OuterRadius;
190 }
191
193 int getNLayer(void) const
194 {
195 return m_NLayer;
196 }
197
199 double getIronNominalHeight(void) const
200 {
201 return m_IronNominalHeight;
202 }
203
205 double getIronActualHeight(void) const
206 {
207 return m_IronActualHeight;
208 }
209
211 double getGap1InnerRadius(void) const
212 {
213 return m_Gap1InnerRadius;
214 }
215
217 double getGap1NominalHeight(void) const
218 {
219 return m_Gap1NominalHeight;
220 }
221
223 double getGap1ActualHeight(void) const
224 {
225 return m_Gap1ActualHeight;
226 }
227
229 double getGap1IronWidth(void) const
230 {
231 return m_Gap1IronWidth;
232 }
233
235 double getGapLength(void) const
236 {
237 return m_GapLength;
238 }
239
241 double getGapNominalHeight(void) const
242 {
243 return m_GapNominalHeight;
244 }
245
247 double getGapActualHeight(void) const
248 {
249 return m_GapActualHeight;
250 }
251
253 double getGapIronWidth(void) const
254 {
255 return m_GapIronWidth;
256 }
257
259 double getGapInnerRadius(void) const
260 {
261 return m_GapInnerRadius;
262 }
263
265 int getNZStrips(bool isChimney) const
266 {
267 return (isChimney ? m_NZStripsChimney : m_NZStrips);
268 }
269
271 int getNPhiStrips(int layer) const;
272
274 int getNZScints(bool isChimney) const
275 {
276 return (isChimney ? m_NZScintsChimney : m_NZScints);
277 }
278
280 int getNPhiScints(int layer) const;
281
284 {
286 }
287
290 {
292 }
293
295 double getModuleLength(void) const
296 {
297 return m_ModuleLength;
298 }
299
301 double getModuleLengthChimney(void) const
302 {
304 }
305
307 double getModuleCoverHeight(void) const
308 {
309 return m_ModuleCoverHeight;
310 }
311
313 double getModuleCopperHeight(void) const
314 {
316 }
317
319 double getModuleFoamHeight(void) const
320 {
321 return m_ModuleFoamHeight;
322 }
323
325 double getModuleMylarHeight(void) const
326 {
327 return m_ModuleMylarHeight;
328 }
329
331 double getModuleGlassHeight(void) const
332 {
333 return m_ModuleGlassHeight;
334 }
335
337 double getModuleGasHeight(void) const
338 {
339 return m_ModuleGasHeight;
340 }
341
343 double getModuleHeight(void) const
344 {
345 return m_ModuleHeight;
346 }
347
349 double getModuleFrameWidth(void) const
350 {
351 return m_ModuleFrameWidth;
352 }
353
355 double getModuleFrameThickness(void) const
356 {
358 }
359
361 double getModuleGasSpacerWidth(void) const
362 {
364 }
365
367 double getModuleElectrodeBorder(void) const
368 {
370 }
371
373 const CLHEP::Hep3Vector getChimneyHalfSize(int layer) const;
374
376 const CLHEP::Hep3Vector getChimneyPosition(int layer) const;
377
379 double getChimneyCoverThickness(void) const
380 {
382 }
383
386 {
388 }
389
392 {
394 }
395
398 {
400 }
401
404 {
406 }
407
409 double getChimneyPipeInnerRadius(void) const
410 {
412 }
413
415 double getChimneyPipeOuterRadius(void) const
416 {
418 }
419
421 double getRibThickness(void) const
422 {
423 return m_RibThickness;
424 }
425
427 double getCablesWidth(void) const
428 {
429 return m_CablesWidth;
430 }
431
433 double getBraceWidth(void) const
434 {
435 return m_BraceWidth;
436 }
437
439 double getBraceWidthChimney(void) const
440 {
441 return m_BraceWidthChimney;
442 }
443
445 const CLHEP::Hep3Vector getSupportPlateHalfSize(bool) const;
446
448 double getBracketWidth(void) const
449 {
450 return m_BracketWidth;
451 }
452
454 double getBracketThickness(void) const
455 {
456 return m_BracketThickness;
457 }
458
460 double getBracketLength(void) const
461 {
462 return m_BracketLength;
463 }
464
466 double getBracketRibWidth(void) const
467 {
468 return m_BracketRibWidth;
469 }
470
472 double getBracketRibThickness(void) const
473 {
475 }
476
478 double getBracketInnerRadius(void) const
479 {
481 }
482
484 double getBracketZPosition(int, bool) const;
485
487 double getBracketCutoutDphi(void) const
488 {
489 return m_BracketCutoutDphi;
490 }
491
493 int getNReadoutStation(void) const
494 {
495 return m_NReadoutStation;
496 }
497
499 bool getReadoutStationIsPhi(int station) const
500 {
501 return m_ReadoutStationIsPhi[station - 1];
502 }
503
505 double getReadoutStationPosition(int station) const
506 {
507 return m_ReadoutStationPosition[station - 1];
508 }
509
511 const CLHEP::Hep3Vector getReadoutContainerHalfSize(void) const;
512
514 const CLHEP::Hep3Vector getReadoutCarrierHalfSize(void) const;
515
517 const CLHEP::Hep3Vector getReadoutPreamplifierHalfSize(void) const;
518
521 {
522 return m_ReadoutPreamplifierPosition.size();
523 }
524
526 double getReadoutPreamplifierPosition(int preamp) const
527 {
528 return m_ReadoutPreamplifierPosition[preamp - 1];
529 }
530
532 const CLHEP::Hep3Vector getReadoutConnectorsHalfSize(void) const;
533
536 {
538 }
539
541 double getMPPCHousingRadius(void) const
542 {
543 return m_MPPCHousingRadius;
544 }
545
547 double getMPPCHousingHalfLength(void) const
548 {
549 return 0.5 * m_MPPCHousingLength;
550 }
551
553 double getMPPCHalfLength(void) const
554 {
555 return 0.5 * m_MPPCLength;
556 }
557
559 double getMPPCHalfWidth(void) const
560 {
561 return 0.5 * m_MPPCWidth;
562 }
563
565 double getMPPCHalfHeight(void) const
566 {
567 return 0.5 * m_MPPCHeight;
568 }
569
571 bool hasRPCs(int layer) const;
572
574 const Module* findModule(int section, int sector, int layer) const;
575
577 const HepGeom::Transform3D getModuleAlignment(int section, int sector, int layer) const;
578
580 const HepGeom::Transform3D getModuleDisplacedGeo(int section, int sector, int layer) const;
581
582 private:
583
585 explicit GeometryPar(const GearDir&);
586
588 explicit GeometryPar(const Belle2::BKLMGeometryPar&);
589
592
595
597 ~GeometryPar();
598
600 void clear();
601
603 void read(const GearDir&);
604
606 void readFromDB(const BKLMGeometryPar&);
607
609 void calculate();
610
614 void readAlignmentFromDB();
615
619
624 HepGeom::Transform3D getTransformFromRigidBodyParams(double dU, double dV, double dW, double dAlpha, double dBeta, double dGamma);
625
628
631
634
636 double m_OffsetZ;
637
639 double m_Phi;
640
643
646
649
652
655
658
661
664
667
670
673
676
679
682
685
688
691
694
697
700
703
706
709
712
716
719
722
725
728
731
734
737
740
743
746
749
752
755
758
761
764
767
770
773
776
779
782
785
788
791
794
797
800
803
806
809
812
815
818
821
824
827
830
833
836
839
842
845
848
851
854
857
860
863
866
869
872
875
877 bool m_ReadoutStationIsPhi[NSTATION];
878
880 double m_ReadoutStationPosition[NSTATION];
881
884
887
890
893
896
899
902
905
908
910 std::vector<double> m_ReadoutPreamplifierPosition;
911
914
917
920
923
926
929
932
935
938
941
944
947
950
953
955 std::map<int, Module*> m_Modules;
956
958 std::map<int, HepGeom::Transform3D> m_Alignments;
959
961 std::map<int, HepGeom::Transform3D> m_Displacements;
962
965
966 };
967
968 } // end of namespace bklm
969
971} // end of namespace Belle2
static constexpr int getMaximalLayerNumber()
Get maximal layer number (1-based).
static constexpr int getMaximalSectorNumber()
Get maximal sector number (1-based).
The Class for BKLM geometry.
GearDir is the basic class used for accessing the parameter store.
Definition GearDir.h:31
double getScintBoreRadius(void) const
Get the radius of the cylindrical central bore in a scintillator strip.
bool doBeamBackgroundStudy(void) const
Get the beam background study flag.
Definition GeometryPar.h:51
double m_LocalReconstructionShiftX[2][BKLMElementNumbers::getMaximalSectorNumber()][BKLMElementNumbers::getMaximalLayerNumber()]
Reconstruction dx in local system. displacement, not alignment.
double m_GapInnerRadius
Radius of the inner tangent circle of virtual gap 0 (assuming equal-height layers)
double m_BracketRibWidth
width of the innermost-module support plate's bracket's rib
double m_ScintWidth
width of one scintillator strip (cm), including the TiO2 coating
double m_LocalReconstructionShiftZ[2][BKLMElementNumbers::getMaximalSectorNumber()][BKLMElementNumbers::getMaximalLayerNumber()]
Reconstruction dz in local system. displacement, not alignment.
int m_NZStripsChimney
number of z-measuring cathode strips in a chimney-sector RPC module
double m_ReadoutConnectorsHeight
Height of the readout connectors pair.
double getBracketThickness(void) const
Get the thickness of the layer-0 support plate's bracket.
~GeometryPar()
Hidden destructor.
double m_SupportPlateLengthChimney
length of the innermost-module support plate in the chimney sector
bool m_HasRPCs[BKLMElementNumbers::getMaximalLayerNumber()]
Flag to indicate whether layer contains RPCs (true) or scintillators (false)
double getModuleFoamHeight(void) const
Get the height of the module's transmission-line foam (2 per module)
double m_ChimneyPipeInnerRadius
inner radius of the chimney pipe
double m_BracketLength
length of the innermost-module support plate's bracket
double getGapInnerRadius(void) const
Get the radius of the inner tangent circle of gap 1 (next-to-innermost)
double m_MaximalZStripLength
maximal Z strip length (for scintillators).
double m_ReadoutContainerHeight
Height of the readout station's container.
double m_ReadoutCarrierHeight
Height of the readout carrier card.
double m_ModuleLengthChimney
length along z of the module in the chimney sector
double getModuleMylarHeight(void) const
Get the height of the module's insulating mylar (2 per module)
const CLHEP::Hep3Vector getReadoutContainerHalfSize(void) const
Get the size (dx,dy,dz) of the readout container.
void readDisplacedGeoFromDB()
Initialize and Updates displacements parameters from DB for geometry constructor, registers itself fo...
double m_BracketInnerRadius
inner radius of the innermost-module support plate's bracket
double m_BracketWidth
width of the innermost-module support plate's bracket
double m_BraceWidthChimney
width of the central brace in the middle of the cable-services channel in the chimney sector
int m_NPhiStrips[BKLMElementNumbers::getMaximalLayerNumber()]
Number of phi-readout RPC strips in each layer.
double m_ReadoutContainerLength
Length of the readout station's container.
double m_Gap1IronWidth
Width (at the outer radius) of the adjacent structural iron on either side of innermost gap.
double getModuleFrameWidth(void) const
Get the width of the module's perimeter aluminum frame.
double getMPPCHousingRadius(void) const
Get the MPPC housing radius.
double getLayerOuterRadius(int layer) const
Get the outer radius of specified layer.
double getModuleLength(void) const
Get the length along z of the module.
double getChimneyShieldInnerRadius(void) const
Get the inner radius of the chimney radiation shield.
double getGapNominalHeight(void) const
Get the nominal height of the outer gaps.
double getIronNominalHeight(void) const
Get the nominal height of a layer's structural iron.
const CLHEP::Hep3Vector getModuleHalfSize(int layer, bool hasChimney) const
Get the size (dx,dy,dz) of the detector module of specified layer.
double getScintHalfHeight(void) const
Get the height of the entire volume of a scintillator strip (including TiO2 coating)
int getNZStrips(bool isChimney) const
Get the number of z-measuring cathode strips in an RPC module.
double m_IronActualHeight
Actual height of a layer's structural iron.
double m_ZStripWidth[BKLMElementNumbers::getMaximalLayerNumber()]
Width of the z strips on each layer.
double m_ReadoutPreamplifierWidth
Width of the preamplifier card.
double m_IronNominalHeight
Nominal height of a layer's structural iron.
const HepGeom::Transform3D getModuleAlignment(int section, int sector, int layer) const
Get the alignment transformation of a module.
const CLHEP::Hep3Vector getModuleInteriorHalfSize1(int layer, bool hasChimney) const
Get the size (dx,dy,dz) of the detector module's interior volume 1.
const Module * findModule(int section, int sector, int layer) const
Get the pointer to the definition of a module.
double getScintTiO2ThicknessTop(void) const
Get the thickness of the inactive TiO2-polystyrene coating on top (broad) surface of a scintillator s...
double m_ScintHeight
height of one scintillator strip (cm), including the TiO2 coating
int getNLayer(void) const
Get the number of modules in one sector.
double m_ChimneyHousingInnerRadius
inner radius of the chimney housing
double m_ModuleFoamHeight
height of a detector module's transmission-line foam
std::map< int, Module * > m_Modules
map of <volumeIDs, pointers to defined modules>
int m_ScintEnvelopeOffsetSign[BKLMElementNumbers::getMaximalLayerNumber()]
Sign (+/-1) of scintillator-envelope's shift along y axis within its enclosing module for MPPC placem...
double m_BracketRibThickness
thickness of the innermost-module support plate's bracket's rib
double m_Gap1NominalHeight
Nominal height of the innermost gap.
int getNPhiScints(int layer) const
Get the number of phi-measuring scintillators in a scintillator module.
double getScintHalfWidth(void) const
Get the height of the entire volume of a scintillator strip (including TiO2 coating)
const CLHEP::Hep3Vector getScintEnvelopeOffset(int layer, bool hasChimney) const
Get the shift (dx,dy,dz) of the scintillator detector module's scintillator envelope within its enclo...
bool hasRPCs(int layer) const
Determine if the sensitive detectors in a given layer are RPCs (=true) or scintillators (=false)
double getMPPCHousingHalfLength(void) const
Get the MPPC housing half-length.
int getNReadoutPreamplifierPosition(void) const
Get the number of preamplifier positions along the length of the carrier card.
double m_ScintFiberRadius
radius (cm) of the central WLS fiber in the scintillator strip
double m_ZScintDLength[BKLMElementNumbers::getMaximalLayerNumber()][NZSCINT]
Shortening of the nominal length of the z scintillators.
double m_MPPCLength
MPPC length.
int getNReadoutStation(void) const
Get the number of preamplifier readout stations.
double getGap1NominalHeight(void) const
Get the nominal height of the innermost gap.
double getScintFiberRadius(void) const
Get the radius of the cylindrical central WLS fiber in a scintillator strip.
double m_SupportPlateLength
length of the innermost-module support plate
const CLHEP::Hep3Vector getScintEnvelopeHalfSize(int layer, bool hasChimney) const
Get the size (dx,dy,dz) of the scintillator detector module's scintillator envelope.
GeometryPar(GeometryPar &)
Hidden copy constructor.
double m_ModuleMylarHeight
height of a detector module's mylar insulation
const CLHEP::Hep3Vector getChimneyPosition(int layer) const
Get the position of the chimney hole in the specified layer.
double getGapIronWidth(void) const
Get the width (at the outer radius) of the adjacent structural iron on either side of a gap.
double m_ModuleFrameThickness
thickness of a detector module's frame ("C" shape - thickness of vertical leg)
int m_NPhiScints[BKLMElementNumbers::getMaximalLayerNumber()]
Number of phi-readout scintillators in each layer.
GeometryPar & operator=(const GeometryPar &)
Hidden copy assignment.
double getBracketWidth(void) const
Get the width of the layer-0 support plate's bracket.
double m_ChimneyShieldInnerRadius
inner radius of the chimney shield
double getGap1InnerRadius(void) const
Get the radius of the inner tangent circle of gap 0 (innermost)
std::map< int, HepGeom::Transform3D > m_Displacements
map of <volumeIDs, displacement Transform3D>
double getOuterRadius(void) const
Get the radius of the inscribed circle of the outer polygon.
double getModuleGasHeight(void) const
Get the height of the module's gas gap (2 per module)
double getOffsetZ(void) const
Get the global shift along a of the entire BKLM.
double m_Rotation
Global rotation about z of the BKLM.
int m_NReadoutStation
Number of preamplifier readout stations.
double getBracketZPosition(int, bool) const
Get the position of a layer-0 support plate's bracket.
double m_ModulePolystyreneOuterHeight
height of the outer polystyrene-filler sheet
double getReadoutConnectorsPosition(void) const
Get the position of the readout connectors pair along the length of the carrier card.
double getChimneyPipeOuterRadius(void) const
Get the outer radius of the chimney pipe.
bool getReadoutStationIsPhi(int station) const
Get the selector for phi (true) or z (false) readout station.
const CLHEP::Hep3Vector getReadoutPreamplifierHalfSize(void) const
Get the size (dx,dy,dz) of the preamplifier card.
double getBracketLength(void) const
Get the length of the layer-0 support plate's bracket.
int getNPhiStrips(int layer) const
Get the number of phi-measuring cathode strips in an RPC module.
int getNZScints(bool isChimney) const
Get the number of z-measuring scintillators in a scintillator module.
double getGap1ActualHeight(void) const
Get the actual height of the innermost gap.
double m_ChimneyLength
length along z of the chimney hole
double getModuleLengthChimney(void) const
Get the length along z of the module.
double getPolystyreneOffsetX(void) const
Get the radial offset of the scintillator detector module's active envelope due to difference in poly...
double m_ReadoutContainerWidth
Width of the readout station's container.
double m_OffsetZ
Global offset along z of the BKLM.
double getReadoutStationPosition(int station) const
Get the position of each readout station.
double m_ModuleGasSpacerWidth
width of a detector module's spacer
double m_PhiStripWidth[BKLMElementNumbers::getMaximalLayerNumber()]
Width of the phi strips on each layer.
double getModuleCoverHeight(void) const
Get the height of the module's aluminum cover (2 per module)
const CLHEP::Hep3Vector getReadoutConnectorsHalfSize(void) const
Get the size (dx,dy,dz) of the readout connectors pair.
double getRibThickness(void) const
Get the thickness of the radial rib that supports the solenoid / inner detectors.
int getNSector(void) const
Get the number of sectors of the BKLM.
bool getModuleFlip(int section, int sector, int layer) const
Get the flip (180-degrees about z axis) of a particular BKLM module.
double m_OuterRadius
Radius of the circle tangent to the sides of the outer polygon.
static GeometryPar * m_Instance
static pointer to the singleton instance of this class
double m_BracketThickness
thickness of the innermost-module support plate's bracket
double getModuleElectrodeBorder(void) const
Get the size of the border between a detector module's perimeter and electrode.
double m_ModuleGlassHeight
height of a detector module's glass electrode
const CLHEP::Hep3Vector getModuleInteriorHalfSize2(int layer, bool hasChimney) const
Get the size (dx,dy,dz) of the scintillator detector module's polystyrene filler.
double getRotation(void) const
Get the global rotation angle about z of the entire BKLM.
double m_MaximalPhiStripLength
Maximal phi strip length (for scintillators).
GeometryPar(const GearDir &)
Hidden constructor.
double m_RibThickness
thickness of the radial rib that supports the solenoid / inner detectors
double m_ScintTiO2ThicknessTop
thickness (cm) of the TiO2 coating on the top (and bottom) of the scintillator strip
double getHalfLength(void) const
Get the half-length along z of the BKLM.
double m_ModuleReadoutHeight
height of a detector module's readout
const CLHEP::Hep3Vector getGapHalfSize(int layer, bool hasChimney) const
Get the size (dx,dy,dz) of the gap [=slot] of specified layer.
double m_ModuleLength
length along z of the module
double m_HalfLength
Half-length along z of the BKLM.
double getBraceWidthChimney(void) const
Get the width of the brace in the middle of the cable-services channel in the chimney sector.
double m_ReadoutPreamplifierHeight
Height of the preamplifier card.
double getBracketRibThickness(void) const
Get the thickness of the layer-0 support plate's bracket's rib.
double m_ChimneyWidth
width of the chimney hole
double m_LayerHeight
Height of a layer: internal use only.
double m_ChimneyShieldOuterRadius
outer radius of the chimney shield
int m_NZScintsChimney
number of z-measuring scintillators in a chimney-sector scintillator module
double getChimneyHousingInnerRadius(void) const
Get the inner radius of the chimney housing.
double m_ReadoutConnectorsLength
Length of the readout connectors pair.
double m_SupportPlateWidth
width of the innermost-module support plate
double m_Layer1Height
Height of layer 0: internal use only.
double m_MPPCHeight
MPPC height.
std::map< int, HepGeom::Transform3D > m_Alignments
map of <volumeIDs, alignment Transform3D>
void readAlignmentFromDB()
Initialize and Updates alignment parameters from DB for reconstruction, that is for Module constructi...
int m_NZStrips
number of z-measuring cathode strips in a standard RPC module
double m_SectorRotation[2][BKLMElementNumbers::getMaximalSectorNumber()]
Global rotation angle of a sector.
double m_BracketInset
distance from support plate's end of bracket
double getMPPCHalfLength(void) const
Get the MPPC half-length.
double getIronActualHeight(void) const
Get the actual height of a layer's structural iron.
int m_NLayer
Number of layers in one sector.
double getPhi(void) const
Get the starting angle of the BKLM's polygon shape.
const CLHEP::Hep3Vector getSupportPlateHalfSize(bool) const
Get the size of the layer-0 support plate.
double m_GapLength
Length along z of each gap.
double m_MPPCHousingRadius
MPPC housing radius.
double m_MPPCHousingLength
MPPC housing length.
double getMaximalZStripLength() const
Get maximal Z strip length (for scintillators).
double m_CablesWidth
width of the cable-services channel at each end
double getModuleGlassHeight(void) const
Get the height of the module's glass electrode (4 per module)
double m_ScintBoreRadius
radius (cm) of the central bore in the scintillator strip
double m_ReadoutCarrierLength
Length of the readout carrier card.
double m_ReadoutConnectorsWidth
Width of the readout connectors pair.
double getGap1IronWidth(void) const
Get the width (at the outer radius) of the adjacent structural iron on either side of innermost gap.
double m_GapIronWidth
Width (at the outer radius) of the adjacent structural iron on either side of a gap.
double getModuleCopperHeight(void) const
Get the height of the module's readout or ground copper plane (4 per module)
double m_ReadoutStationPosition[NSTATION]
Position of each readout station along its relevant axis.
double m_ReadoutPreamplifierLength
Length of the preamplifier card.
double m_ModuleGasHeight
height of a detector module's gas gap
double getActiveMiddleRadius(int section, int sector, int layer) const
Get the radial midpoint of the detector module's active volume of specified layer.
double m_BraceWidth
width of the central brace in the middle of the cable-services channel
const CLHEP::Hep3Vector getChimneyHalfSize(int layer) const
Get the size of the chimney hole in the specified layer.
double m_ModuleFrameWidth
width of a detector module's frame ("C" shape - width of horizontal leg)
double m_MPPCWidth
MPPC width.
double m_ChimneyHousingOuterRadius
outer radius of the chimney housing
double getCablesWidth(void) const
Get the width of the cable-services channel at each end.
double getGapMiddleRadius(int layer) const
Get the radial midpoint of the gap of specified layer.
double m_GapNominalHeight
Nominal height of outer gaps.
double getBracketCutoutDphi(void) const
Get the angular width of the layer-0 support plate's bracket's cutout.
double m_ReadoutConnectorsPosition
Position of the readout connectors pair along the length of the carrier card.
double m_ModulePolystyreneInnerHeight
height of the inner polystyrene-filler sheet
double m_ChimneyCoverThickness
thickness of the chimney's iron cover plate
void readFromDB(const BKLMGeometryPar &)
Get geometry parameters from Conditions Database.
double getChimneyShieldOuterRadius(void) const
Get the outer radius of the chimney radiation shield.
double getChimneyCoverThickness(void) const
Get the thickness of the chimney cover plate.
void clear()
Clear all geometry parameters.
double m_Phi
Starting angle of the polygon shape.
double getReadoutPreamplifierPosition(int preamp) const
Get the position of a preamplifier along the length of the carrier card.
double getBraceWidth(void) const
Get the width of the brace in the middle of the cable-services channel.
double m_ModuleElectrodeBorder
size of the border between a detector module's perimeter and electrode
double m_Gap1ActualHeight
Actual height of the innermost gap.
std::vector< double > m_ReadoutPreamplifierPosition
Positions of the preamplifiers along the length of the carrier card.
double m_ModuleHeight
height of a detector module
const CLHEP::Hep3Vector getReadoutCarrierHalfSize(void) const
Get the size (dx,dy,dz) of the carrier card.
void read(const GearDir &)
Get geometry parameters from Gearbox.
double getModuleGasSpacerWidth(void) const
Get the width of the module's gas-gap's perimeter spacer.
const CLHEP::Hep3Vector getGasHalfSize(int layer, bool hasChimney) const
Get the size (dx,dy,dz) of the detector module's gas gaps of specified layer.
double m_GapActualHeight
Actual height of outer gaps.
const CLHEP::Hep3Vector getElectrodeHalfSize(int layer, bool hasChimney) const
Get the size (dx,dy,dz) of the detector module's electrode of specified layer.
double m_LocalReconstructionShiftY[2][BKLMElementNumbers::getMaximalSectorNumber()][BKLMElementNumbers::getMaximalLayerNumber()]
Reconstruction dy in local system. displacement, not alignment.
static GeometryPar * instance(void)
Static method to get a reference to the singleton GeometryPar instance.
double m_ModuleCoverHeight
height of a detector module's aluminum cover
double m_Gap1InnerRadius
Radius of the inner tangent circle of the innermost gap.
int getScintEnvelopeOffsetSign(int layer) const
Get the sign (+/-1) of scintillator-envelope's shift along y axis within its enclosing module for MPP...
Definition GeometryPar.h:91
double m_SolenoidOuterRadius
Outer radius of the solenoid.
double getBracketRibWidth(void) const
Get the width of the layer-0 support plate's bracket's rib.
double getModuleMiddleRadius(int layer) const
Get the radial midpoint of the detector module of specified layer.
double getMPPCHalfWidth(void) const
Get the MPPC half-width.
double getMPPCHalfHeight(void) const
Get the MPPC half-height.
double getGapLength(void) const
Get the length along z of the module gap.
int m_NSector
Number of sectors (=8 : octagonal)
bool m_DoBeamBackgroundStudy
Flag for enabling beam background study (=use bkg sensitive-detector function too)
double m_ChimneyPipeOuterRadius
outer radius of the chimney pipe
double getScintTiO2ThicknessSide(void) const
Get the thickness of the inactive TiO2-polystyrene coating on side (short) surface of a scintillator ...
double getModuleFrameThickness(void) const
Get the thickness of the module's perimeter aluminum frame.
double getSolenoidOuterRadius(void) const
Get the outer radius of the solenoid.
double getChimneyPipeInnerRadius(void) const
Get the inner radius of the chimney pipe.
double getModuleHeight(void) const
Get the height of the module.
const HepGeom::Transform3D getModuleDisplacedGeo(int section, int sector, int layer) const
Get the displacement transformation of a module.
double getBracketInnerRadius(void) const
Get the inner radius of the layer-0 support plate's bracket.
double getLayerInnerRadius(int layer) const
Get the inner radius of specified layer.
double getChimneyHousingOuterRadius(void) const
Get the outer radius of the chimney housing.
bool m_ReadoutStationIsPhi[NSTATION]
Selector for phi (true) or z (false) readout station.
double m_ReadoutCarrierWidth
Width of the readout carrier card.
double getGapActualHeight(void) const
Get the actual height of the outer gaps.
double m_SupportPlateHeight
height of the innermost-module support plate
double m_ScintTiO2ThicknessSide
thickness (cm) of the TiO2 coating on the left (and right) side of the scintillator strip
double m_ModuleCopperHeight
height of a detector module's copper readout or ground plane
bool m_IsFlipped[2][BKLMElementNumbers::getMaximalSectorNumber()][BKLMElementNumbers::getMaximalLayerNumber()]
Flag to indicate whether a module is flipped (true) or not (false) by 180 degrees about the z axis.
double m_BracketCutoutDphi
angular width of the innermost-module support plate's bracket's cutout
HepGeom::Transform3D getTransformFromRigidBodyParams(double dU, double dV, double dW, double dAlpha, double dBeta, double dGamma)
Convert 6 rigid body params (alignment/displacement) to corresponding Transform3D Angles in radians,...
const CLHEP::Hep3Vector getAirHalfSize(int layer, bool hasChimney) const
Get the size (dx,dy,dz) of the scintillator detector module's air filler.
void calculate()
Calculate additional geometry parameters.
double getMaximalPhiStripLength() const
Get maximal phi strip length (for scintillators).
int m_NZScints
number of z-measuring scintillators in a standard scintillator module
Define the geometry of a BKLM module Each sector [octant] contains Modules.
Definition Module.h:76
Abstract base class for different kinds of events.