Belle II Software  release-06-02-00
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 
22 namespace Belle2 {
28  class GearDir;
29  class BkgSensitiveDetector;
30 
31  namespace bklm {
32 
34 
38  class GeometryPar {
39 
40  public:
41 
43  static GeometryPar* instance(void);
44 
46  static GeometryPar* instance(const GearDir&);
47 
49  static GeometryPar* instance(const BKLMGeometryPar&);
50 
52  bool doBeamBackgroundStudy(void) const
53  {
55  }
56 
59  {
61  }
62 
64  double getLayerInnerRadius(int layer) const;
65 
67  double getLayerOuterRadius(int layer) const;
68 
70  const CLHEP::Hep3Vector getGapHalfSize(int layer, bool hasChimney) const;
71 
73  const CLHEP::Hep3Vector getModuleHalfSize(int layer, bool hasChimney) const;
74 
76  const CLHEP::Hep3Vector getModuleInteriorHalfSize1(int layer, bool hasChimney) const;
77 
79  const CLHEP::Hep3Vector getModuleInteriorHalfSize2(int layer, bool hasChimney) const;
80 
82  const CLHEP::Hep3Vector getElectrodeHalfSize(int layer, bool hasChimney) const;
83 
85  const CLHEP::Hep3Vector getGasHalfSize(int layer, bool hasChimney) const;
86 
88  const CLHEP::Hep3Vector getAirHalfSize(int layer, bool hasChimney) const;
89 
91  const CLHEP::Hep3Vector getScintEnvelopeHalfSize(int layer, bool hasChimney) const;
92 
94  const CLHEP::Hep3Vector getScintEnvelopeOffset(int layer, bool hasChimney) const;
95 
98  int getScintEnvelopeOffsetSign(int layer) const
99  {
100  return m_ScintEnvelopeOffsetSign[layer - 1];
101  }
102 
104  double getPolystyreneOffsetX(void) const;
105 
107  double getScintTiO2ThicknessTop(void) const
108  {
110  }
111 
113  double getScintTiO2ThicknessSide(void) const
114  {
116  }
117 
119  double getScintHalfHeight(void) const
120  {
121  return 0.5 * m_ScintHeight;
122  }
123 
125  double getScintHalfWidth(void) const
126  {
127  return 0.5 * m_ScintWidth;
128  }
129 
131  double getScintBoreRadius(void) const
132  {
133  return m_ScintBoreRadius;
134  }
135 
137  double getScintFiberRadius(void) const
138  {
139  return m_ScintFiberRadius;
140  }
141 
143  double getGapMiddleRadius(int layer) const;
144 
146  double getModuleMiddleRadius(int layer) const;
147 
149  double getActiveMiddleRadius(int section, int sector, int layer) const;
150 
152  bool getModuleFlip(int section, int sector, int layer) const
153  {
154  return m_IsFlipped[section][sector - 1][layer - 1];
155  }
156 
158  double getRotation(void) const
159  {
160  return m_Rotation;
161  }
162 
164  double getOffsetZ(void) const
165  {
166  return m_OffsetZ;
167  }
168 
170  double getPhi(void) const
171  {
172  return m_Phi;
173  }
174 
176  double getSolenoidOuterRadius(void) const
177  {
178  return m_SolenoidOuterRadius;
179  }
180 
182  int getNSector(void) const
183  {
184  return m_NSector;
185  }
186 
188  double getHalfLength(void) const
189  {
190  return m_HalfLength;
191  }
192 
194  double getOuterRadius(void) const
195  {
196  return m_OuterRadius;
197  }
198 
200  int getNLayer(void) const
201  {
202  return m_NLayer;
203  }
204 
206  double getIronNominalHeight(void) const
207  {
208  return m_IronNominalHeight;
209  }
210 
212  double getIronActualHeight(void) const
213  {
214  return m_IronActualHeight;
215  }
216 
218  double getGap1InnerRadius(void) const
219  {
220  return m_Gap1InnerRadius;
221  }
222 
224  double getGap1NominalHeight(void) const
225  {
226  return m_Gap1NominalHeight;
227  }
228 
230  double getGap1ActualHeight(void) const
231  {
232  return m_Gap1ActualHeight;
233  }
234 
236  double getGap1IronWidth(void) const
237  {
238  return m_Gap1IronWidth;
239  }
240 
242  double getGapLength(void) const
243  {
244  return m_GapLength;
245  }
246 
248  double getGapNominalHeight(void) const
249  {
250  return m_GapNominalHeight;
251  }
252 
254  double getGapActualHeight(void) const
255  {
256  return m_GapActualHeight;
257  }
258 
260  double getGapIronWidth(void) const
261  {
262  return m_GapIronWidth;
263  }
264 
266  double getGapInnerRadius(void) const
267  {
268  return m_GapInnerRadius;
269  }
270 
272  int getNZStrips(bool isChimney) const
273  {
274  return (isChimney ? m_NZStripsChimney : m_NZStrips);
275  }
276 
278  int getNPhiStrips(int layer) const;
279 
281  int getNZScints(bool isChimney) const
282  {
283  return (isChimney ? m_NZScintsChimney : m_NZScints);
284  }
285 
287  int getNPhiScints(int layer) const;
288 
291  {
293  }
294 
296  double getMaximalZStripLength() const
297  {
298  return m_MaximalZStripLength;
299  }
300 
302  double getModuleLength(void) const
303  {
304  return m_ModuleLength;
305  }
306 
308  double getModuleLengthChimney(void) const
309  {
310  return m_ModuleLengthChimney;
311  }
312 
314  double getModuleCoverHeight(void) const
315  {
316  return m_ModuleCoverHeight;
317  }
318 
320  double getModuleCopperHeight(void) const
321  {
322  return m_ModuleCopperHeight;
323  }
324 
326  double getModuleFoamHeight(void) const
327  {
328  return m_ModuleFoamHeight;
329  }
330 
332  double getModuleMylarHeight(void) const
333  {
334  return m_ModuleMylarHeight;
335  }
336 
338  double getModuleGlassHeight(void) const
339  {
340  return m_ModuleGlassHeight;
341  }
342 
344  double getModuleGasHeight(void) const
345  {
346  return m_ModuleGasHeight;
347  }
348 
350  double getModuleHeight(void) const
351  {
352  return m_ModuleHeight;
353  }
354 
356  double getModuleFrameWidth(void) const
357  {
358  return m_ModuleFrameWidth;
359  }
360 
362  double getModuleFrameThickness(void) const
363  {
364  return m_ModuleFrameThickness;
365  }
366 
368  double getModuleGasSpacerWidth(void) const
369  {
370  return m_ModuleGasSpacerWidth;
371  }
372 
374  double getModuleElectrodeBorder(void) const
375  {
377  }
378 
380  const CLHEP::Hep3Vector getChimneyHalfSize(int layer) const;
381 
383  const CLHEP::Hep3Vector getChimneyPosition(int layer) const;
384 
386  double getChimneyCoverThickness(void) const
387  {
389  }
390 
392  double getChimneyHousingInnerRadius(void) const
393  {
395  }
396 
398  double getChimneyHousingOuterRadius(void) const
399  {
401  }
402 
404  double getChimneyShieldInnerRadius(void) const
405  {
407  }
408 
410  double getChimneyShieldOuterRadius(void) const
411  {
413  }
414 
416  double getChimneyPipeInnerRadius(void) const
417  {
419  }
420 
422  double getChimneyPipeOuterRadius(void) const
423  {
425  }
426 
428  double getRibThickness(void) const
429  {
430  return m_RibThickness;
431  }
432 
434  double getCablesWidth(void) const
435  {
436  return m_CablesWidth;
437  }
438 
440  double getBraceWidth(void) const
441  {
442  return m_BraceWidth;
443  }
444 
446  double getBraceWidthChimney(void) const
447  {
448  return m_BraceWidthChimney;
449  }
450 
452  const CLHEP::Hep3Vector getSupportPlateHalfSize(bool) const;
453 
455  double getBracketWidth(void) const
456  {
457  return m_BracketWidth;
458  }
459 
461  double getBracketThickness(void) const
462  {
463  return m_BracketThickness;
464  }
465 
467  double getBracketLength(void) const
468  {
469  return m_BracketLength;
470  }
471 
473  double getBracketRibWidth(void) const
474  {
475  return m_BracketRibWidth;
476  }
477 
479  double getBracketRibThickness(void) const
480  {
481  return m_BracketRibThickness;
482  }
483 
485  double getBracketInnerRadius(void) const
486  {
487  return m_BracketInnerRadius;
488  }
489 
491  double getBracketZPosition(int, bool) const;
492 
494  double getBracketCutoutDphi(void) const
495  {
496  return m_BracketCutoutDphi;
497  }
498 
500  int getNReadoutStation(void) const
501  {
502  return m_NReadoutStation;
503  }
504 
506  bool getReadoutStationIsPhi(int station) const
507  {
508  return m_ReadoutStationIsPhi[station - 1];
509  }
510 
512  double getReadoutStationPosition(int station) const
513  {
514  return m_ReadoutStationPosition[station - 1];
515  }
516 
518  const CLHEP::Hep3Vector getReadoutContainerHalfSize(void) const;
519 
521  const CLHEP::Hep3Vector getReadoutCarrierHalfSize(void) const;
522 
524  const CLHEP::Hep3Vector getReadoutPreamplifierHalfSize(void) const;
525 
528  {
529  return m_ReadoutPreamplifierPosition.size();
530  }
531 
533  double getReadoutPreamplifierPosition(int preamp) const
534  {
535  return m_ReadoutPreamplifierPosition[preamp - 1];
536  }
537 
539  const CLHEP::Hep3Vector getReadoutConnectorsHalfSize(void) const;
540 
542  double getReadoutConnectorsPosition(void) const
543  {
545  }
546 
548  double getMPPCHousingRadius(void) const
549  {
550  return m_MPPCHousingRadius;
551  }
552 
554  double getMPPCHousingHalfLength(void) const
555  {
556  return 0.5 * m_MPPCHousingLength;
557  }
558 
560  double getMPPCHalfLength(void) const
561  {
562  return 0.5 * m_MPPCLength;
563  }
564 
566  double getMPPCHalfWidth(void) const
567  {
568  return 0.5 * m_MPPCWidth;
569  }
570 
572  double getMPPCHalfHeight(void) const
573  {
574  return 0.5 * m_MPPCHeight;
575  }
576 
578  bool hasRPCs(int layer) const;
579 
581  const Module* findModule(int section, int sector, int layer) const;
582 
584  const HepGeom::Transform3D getModuleAlignment(int section, int sector, int layer) const;
585 
587  const HepGeom::Transform3D getModuleDisplacedGeo(int section, int sector, int layer) const;
588 
589  private:
590 
592  explicit GeometryPar(const GearDir&);
593 
595  explicit GeometryPar(const Belle2::BKLMGeometryPar&);
596 
599 
602 
604  ~GeometryPar();
605 
607  void clear();
608 
610  void read(const GearDir&);
611 
613  void readFromDB(const BKLMGeometryPar&);
614 
616  void calculate();
617 
621  void readAlignmentFromDB();
622 
625  void readDisplacedGeoFromDB();
626 
631  HepGeom::Transform3D getTransformFromRigidBodyParams(double dU, double dV, double dW, double dAlpha, double dBeta, double dGamma);
632 
635 
638 
640  double m_Rotation;
641 
644 
646  double m_OffsetZ;
647 
649  double m_Phi;
650 
653 
656 
659 
661  double m_HalfLength;
662 
664  int m_NLayer;
665 
668 
671 
674 
677 
680 
683 
686 
689 
691  double m_GapLength;
692 
695 
698 
701 
704 
707 
710 
713 
716 
719 
722 
726 
729 
732 
735 
738 
741 
744 
747 
750 
753 
756 
759 
762 
765 
768 
771 
774 
777 
780 
783 
786 
789 
791  double m_ScintWidth;
792 
795 
798 
801 
804 
807 
810 
813 
816 
819 
822 
825 
828 
831 
834 
837 
840 
842  double m_BraceWidth;
843 
846 
849 
852 
855 
858 
861 
864 
867 
870 
873 
876 
879 
882 
885 
887  bool m_ReadoutStationIsPhi[NSTATION];
888 
890  double m_ReadoutStationPosition[NSTATION];
891 
894 
897 
900 
903 
906 
909 
912 
915 
918 
920  std::vector<double> m_ReadoutPreamplifierPosition;
921 
924 
927 
930 
933 
936 
939 
941  double m_MPPCLength;
942 
944  double m_MPPCWidth;
945 
947  double m_MPPCHeight;
948 
951 
954 
957 
960 
963 
965  std::map<int, Module*> m_Modules;
966 
968  std::map<int, HepGeom::Transform3D> m_Alignments;
969 
971  std::map<int, HepGeom::Transform3D> m_Displacements;
972 
975 
976  };
977 
978  } // end of namespace bklm
979 
981 } // 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.
The Class for BeamBackground Sensitive Detector.
GearDir is the basic class used for accessing the parameter store.
Definition: GearDir.h:31
Provides BKLM geometry parameters for simulation, reconstruction etc (from Gearbox or DataBase)
Definition: GeometryPar.h:38
double getScintBoreRadius(void) const
Get the radius of the cylindrical central bore in a scintillator strip.
Definition: GeometryPar.h:131
bool doBeamBackgroundStudy(void) const
Get the beam background study flag.
Definition: GeometryPar.h:52
double m_LocalReconstructionShiftX[2][BKLMElementNumbers::getMaximalSectorNumber()][BKLMElementNumbers::getMaximalLayerNumber()]
Reconstruction dx in local system. displacement, not alignment.
Definition: GeometryPar.h:953
double m_GapInnerRadius
Radius of the inner tangent circle of virtual gap 0 (assuming equal-height layers)
Definition: GeometryPar.h:703
double m_BracketRibWidth
width of the innermost-module support plate's bracket's rib
Definition: GeometryPar.h:869
double m_ScintWidth
width of one scintillator strip (cm), including the TiO2 coating
Definition: GeometryPar.h:791
double m_LocalReconstructionShiftZ[2][BKLMElementNumbers::getMaximalSectorNumber()][BKLMElementNumbers::getMaximalLayerNumber()]
Reconstruction dz in local system. displacement, not alignment.
Definition: GeometryPar.h:959
int m_NZStripsChimney
number of z-measuring cathode strips in a chimney-sector RPC module
Definition: GeometryPar.h:715
double m_ReadoutConnectorsHeight
Height of the readout connectors pair.
Definition: GeometryPar.h:929
double getBracketThickness(void) const
Get the thickness of the layer-0 support plate's bracket.
Definition: GeometryPar.h:461
~GeometryPar()
Hidden destructor.
Definition: GeometryPar.cc:72
double m_SupportPlateLengthChimney
length of the innermost-module support plate in the chimney sector
Definition: GeometryPar.h:857
bool m_HasRPCs[BKLMElementNumbers::getMaximalLayerNumber()]
Flag to indicate whether layer contains RPCs (true) or scintillators (false)
Definition: GeometryPar.h:950
double getModuleFoamHeight(void) const
Get the height of the module's transmission-line foam (2 per module)
Definition: GeometryPar.h:326
double m_ChimneyPipeInnerRadius
inner radius of the chimney pipe
Definition: GeometryPar.h:830
double m_BracketLength
length of the innermost-module support plate's bracket
Definition: GeometryPar.h:866
double getGapInnerRadius(void) const
Get the radius of the inner tangent circle of gap 1 (next-to-innermost)
Definition: GeometryPar.h:266
double m_MaximalZStripLength
maximal Z strip length (for scintillators).
Definition: GeometryPar.h:740
double m_ReadoutContainerHeight
Height of the readout station's container.
Definition: GeometryPar.h:899
double m_ReadoutCarrierHeight
Height of the readout carrier card.
Definition: GeometryPar.h:908
double m_ModuleLengthChimney
length along z of the module in the chimney sector
Definition: GeometryPar.h:746
double getModuleMylarHeight(void) const
Get the height of the module's insulating mylar (2 per module)
Definition: GeometryPar.h:332
const CLHEP::Hep3Vector getReadoutContainerHalfSize(void) const
Get the size (dx,dy,dz) of the readout container.
Definition: GeometryPar.cc:688
void readDisplacedGeoFromDB()
Initialize and Updates displacements parameters from DB for geometry constructor, registers itself fo...
Definition: GeometryPar.cc:778
double m_BracketInnerRadius
inner radius of the innermost-module support plate's bracket
Definition: GeometryPar.h:878
double m_BracketWidth
width of the innermost-module support plate's bracket
Definition: GeometryPar.h:860
double m_BraceWidthChimney
width of the central brace in the middle of the cable-services channel in the chimney sector
Definition: GeometryPar.h:845
int m_NPhiStrips[BKLMElementNumbers::getMaximalLayerNumber()]
Number of phi-readout RPC strips in each layer.
Definition: GeometryPar.h:706
double m_ReadoutContainerLength
Length of the readout station's container.
Definition: GeometryPar.h:893
double m_Gap1IronWidth
Width (at the outer radius) of the adjacent structural iron on either side of innermost gap.
Definition: GeometryPar.h:688
double getModuleFrameWidth(void) const
Get the width of the module's perimeter aluminum frame.
Definition: GeometryPar.h:356
double getMPPCHousingRadius(void) const
Get the MPPC housing radius.
Definition: GeometryPar.h:548
double getLayerOuterRadius(int layer) const
Get the outer radius of specified layer.
Definition: GeometryPar.cc:509
double getModuleLength(void) const
Get the length along z of the module.
Definition: GeometryPar.h:302
double getChimneyShieldInnerRadius(void) const
Get the inner radius of the chimney radiation shield.
Definition: GeometryPar.h:404
double getGapNominalHeight(void) const
Get the nominal height of the outer gaps.
Definition: GeometryPar.h:248
double getIronNominalHeight(void) const
Get the nominal height of a layer's structural iron.
Definition: GeometryPar.h:206
const CLHEP::Hep3Vector getModuleHalfSize(int layer, bool hasChimney) const
Get the size (dx,dy,dz) of the detector module of specified layer.
Definition: GeometryPar.cc:531
double getScintHalfHeight(void) const
Get the height of the entire volume of a scintillator strip (including TiO2 coating)
Definition: GeometryPar.h:119
int getNZStrips(bool isChimney) const
Get the number of z-measuring cathode strips in an RPC module.
Definition: GeometryPar.h:272
double m_IronActualHeight
Actual height of a layer's stuctural iron.
Definition: GeometryPar.h:670
double m_ZStripWidth[BKLMElementNumbers::getMaximalLayerNumber()]
Width of the z strips on each layer.
Definition: GeometryPar.h:731
double m_ReadoutPreamplifierWidth
Width of the preamplifier card.
Definition: GeometryPar.h:914
double m_IronNominalHeight
Nominal height of a layer's structural iron.
Definition: GeometryPar.h:667
const HepGeom::Transform3D getModuleAlignment(int section, int sector, int layer) const
Get the alignment transformation of a module.
Definition: GeometryPar.cc:734
const CLHEP::Hep3Vector getModuleInteriorHalfSize1(int layer, bool hasChimney) const
Get the size (dx,dy,dz) of the detector module's interior volume 1.
Definition: GeometryPar.cc:539
const Module * findModule(int section, int sector, int layer) const
Get the pointer to the definition of a module.
Definition: GeometryPar.cc:727
double getScintTiO2ThicknessTop(void) const
Get the thickness of the inactive TiO2-polystyrene coating on top (broad) surface of a scintillator s...
Definition: GeometryPar.h:107
double m_ScintHeight
height of one scintillator strip (cm), including the TiO2 coating
Definition: GeometryPar.h:794
int getNLayer(void) const
Get the number of modules in one sector.
Definition: GeometryPar.h:200
double m_ChimneyHousingInnerRadius
inner radius of the chimney housing
Definition: GeometryPar.h:818
double m_ModuleFoamHeight
height of a detector module's transmission-line foam
Definition: GeometryPar.h:755
std::map< int, Module * > m_Modules
map of <volumeIDs, pointers to defined modules>
Definition: GeometryPar.h:965
int m_ScintEnvelopeOffsetSign[BKLMElementNumbers::getMaximalLayerNumber()]
Sign (+/-1) of scintillator-envelope's shift along y axis within its enclosing module for MPPC placem...
Definition: GeometryPar.h:725
double m_BracketRibThickness
thickness of the innermost-module support plate's bracket's rib
Definition: GeometryPar.h:872
double m_Gap1NominalHeight
Nominal height of the innermost gap.
Definition: GeometryPar.h:676
int getNPhiScints(int layer) const
Get the number of phi-measuring scintillators in a scintillator module.
Definition: GeometryPar.cc:588
double getScintHalfWidth(void) const
Get the height of the entire volume of a scintillator strip (including TiO2 coating)
Definition: GeometryPar.h:125
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...
Definition: GeometryPar.cc:639
bool hasRPCs(int layer) const
Determine if the sensitive detectors in a given layer are RPCs (=true) or scintillators (=false)
Definition: GeometryPar.cc:720
double getMPPCHousingHalfLength(void) const
Get the MPPC housing half-length.
Definition: GeometryPar.h:554
int getNReadoutPreamplifierPosition(void) const
Get the number of preamplifier positions along the length of the carrier card.
Definition: GeometryPar.h:527
double m_ScintFiberRadius
radius (cm) of the central WLS fiber in the scintillator strip
Definition: GeometryPar.h:800
double m_ZScintDLength[BKLMElementNumbers::getMaximalLayerNumber()][NZSCINT]
Shortening of the nominal length of the z scintillators.
Definition: GeometryPar.h:734
double m_MPPCLength
MPPC length.
Definition: GeometryPar.h:941
int getNReadoutStation(void) const
Get the number of preamplifier readout stations.
Definition: GeometryPar.h:500
double getGap1NominalHeight(void) const
Get the nominal height of the innermost gap.
Definition: GeometryPar.h:224
double getScintFiberRadius(void) const
Get the radius of the cylindrical central WLS fiber in a scintillator strip.
Definition: GeometryPar.h:137
double m_SupportPlateLength
length of the innermost-module support plate
Definition: GeometryPar.h:854
const CLHEP::Hep3Vector getScintEnvelopeHalfSize(int layer, bool hasChimney) const
Get the size (dx,dy,dz) of the scintillator detector module's scintillator envelope.
Definition: GeometryPar.cc:580
GeometryPar(GeometryPar &)
Hidden copy constructor.
double m_ModuleMylarHeight
height of a detector module's mylar insulation
Definition: GeometryPar.h:758
const CLHEP::Hep3Vector getChimneyPosition(int layer) const
Get the position of the chimney hole in the specified layer.
Definition: GeometryPar.cc:656
double getGapIronWidth(void) const
Get the width (at the outer radius) of the adjacent structural iron on either side of a gap.
Definition: GeometryPar.h:260
double m_ModuleFrameThickness
thickness of a detector module's frame ("C" shape - thickness of vertical leg)
Definition: GeometryPar.h:776
int m_NPhiScints[BKLMElementNumbers::getMaximalLayerNumber()]
Number of phi-readout scintillators in each layer.
Definition: GeometryPar.h:709
double getBracketWidth(void) const
Get the width of the layer-0 support plate's bracket.
Definition: GeometryPar.h:455
double m_ChimneyShieldInnerRadius
inner radius of the chimney shield
Definition: GeometryPar.h:824
double getGap1InnerRadius(void) const
Get the radius of the inner tangent circle of gap 0 (innermost)
Definition: GeometryPar.h:218
std::map< int, HepGeom::Transform3D > m_Displacements
map of <volumeIDs, displacement Transform3D>
Definition: GeometryPar.h:971
double getOuterRadius(void) const
Get the radius of the inscribed circle of the outer polygon.
Definition: GeometryPar.h:194
double getModuleGasHeight(void) const
Get the height of the module's gas gap (2 per module)
Definition: GeometryPar.h:344
double getOffsetZ(void) const
Get the global shift along a of the entire BKLM.
Definition: GeometryPar.h:164
double m_Rotation
Global rotation about z of the BKLM.
Definition: GeometryPar.h:640
int m_NReadoutStation
Number of preamplifier readout stations.
Definition: GeometryPar.h:884
double getBracketZPosition(int, bool) const
Get the position of a layer-0 support plate's bracket.
Definition: GeometryPar.cc:676
double m_ModulePolystyreneOuterHeight
height of the outer polystyrene-filler sheet
Definition: GeometryPar.h:788
double getReadoutConnectorsPosition(void) const
Get the position of the readout connectors pair along the length of the carrier card.
Definition: GeometryPar.h:542
double getChimneyPipeOuterRadius(void) const
Get the outer radius of the chimney pipe.
Definition: GeometryPar.h:422
bool getReadoutStationIsPhi(int station) const
Get the selector for phi (true) or z (false) readout station.
Definition: GeometryPar.h:506
const CLHEP::Hep3Vector getReadoutPreamplifierHalfSize(void) const
Get the size (dx,dy,dz) of the preamplifier card.
Definition: GeometryPar.cc:704
double getBracketLength(void) const
Get the length of the layer-0 support plate's bracket.
Definition: GeometryPar.h:467
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.
Definition: GeometryPar.h:281
double getGap1ActualHeight(void) const
Get the actual height of the innermost gap.
Definition: GeometryPar.h:230
double m_ChimneyLength
length along z of the chimney hole
Definition: GeometryPar.h:809
double getModuleLengthChimney(void) const
Get the length along z of the module.
Definition: GeometryPar.h:308
double getPolystyreneOffsetX(void) const
Get the radial offset of the scintillator detector module's active envelope due to difference in poly...
Definition: GeometryPar.cc:595
double m_ReadoutContainerWidth
Width of the readout station's container.
Definition: GeometryPar.h:896
double m_OffsetZ
Global offset along z of the BKLM.
Definition: GeometryPar.h:646
double getReadoutStationPosition(int station) const
Get the position of each readout station.
Definition: GeometryPar.h:512
double m_ModuleGasSpacerWidth
width of a detector module's spacer
Definition: GeometryPar.h:779
double m_PhiStripWidth[BKLMElementNumbers::getMaximalLayerNumber()]
Width of the phi strips on each layer.
Definition: GeometryPar.h:728
double getModuleCoverHeight(void) const
Get the height of the module's aluminum cover (2 per module)
Definition: GeometryPar.h:314
const CLHEP::Hep3Vector getReadoutConnectorsHalfSize(void) const
Get the size (dx,dy,dz) of the readout connectors pair.
Definition: GeometryPar.cc:712
double getRibThickness(void) const
Get the thickness of the radial rib that supports the solenoid / inner detectors.
Definition: GeometryPar.h:428
int getNSector(void) const
Get the number of sectors of the BKLM.
Definition: GeometryPar.h:182
bool getModuleFlip(int section, int sector, int layer) const
Get the flip (180-degrees about z axis) of a particular BKLM module.
Definition: GeometryPar.h:152
double m_OuterRadius
Radius of the circle tangent to the sides of the outer polygon.
Definition: GeometryPar.h:658
static GeometryPar * m_Instance
static pointer to the singleton instance of this class
Definition: GeometryPar.h:974
double m_BracketThickness
thickness of the innermost-module support plate's bracket
Definition: GeometryPar.h:863
double getModuleElectrodeBorder(void) const
Get the size of the border between a detector module's perimeter and electrode.
Definition: GeometryPar.h:374
double m_ModuleGlassHeight
height of a detector module's glass electrode
Definition: GeometryPar.h:764
const CLHEP::Hep3Vector getModuleInteriorHalfSize2(int layer, bool hasChimney) const
Get the size (dx,dy,dz) of the scintillator detector module's polystyrene filler.
Definition: GeometryPar.cc:548
double getRotation(void) const
Get the global rotation angle about z of the entire BKLM.
Definition: GeometryPar.h:158
double m_MaximalPhiStripLength
Maximal phi strip length (for scintillators).
Definition: GeometryPar.h:737
GeometryPar(const GearDir &)
Hidden constructor.
Definition: GeometryPar.cc:50
double m_RibThickness
thickness of the radial rib that supports the solenoid / inner detectors
Definition: GeometryPar.h:836
double m_ScintTiO2ThicknessTop
thickness (cm) of the TiO2 coating on the top (and bottom) of the scintillator strip
Definition: GeometryPar.h:803
double getHalfLength(void) const
Get the half-length along z of the BKLM.
Definition: GeometryPar.h:188
double m_ModuleReadoutHeight
height of a detector module's readout
Definition: GeometryPar.h:761
const CLHEP::Hep3Vector getGapHalfSize(int layer, bool hasChimney) const
Get the size (dx,dy,dz) of the gap [=slot] of specified layer.
Definition: GeometryPar.cc:514
double m_ModuleLength
length along z of the module
Definition: GeometryPar.h:743
double m_HalfLength
Half-length along z of the BKLM.
Definition: GeometryPar.h:661
double getBraceWidthChimney(void) const
Get the width of the brace in the middle of the cable-services channel in the chimney sector.
Definition: GeometryPar.h:446
double m_ReadoutPreamplifierHeight
Height of the preamplifier card.
Definition: GeometryPar.h:917
double getBracketRibThickness(void) const
Get the thickness of the layer-0 support plate's bracket's rib.
Definition: GeometryPar.h:479
double m_ChimneyWidth
width of the chimney hole
Definition: GeometryPar.h:812
double m_LayerHeight
Height of a layer: internal use only.
Definition: GeometryPar.h:685
double m_ChimneyShieldOuterRadius
outer radius of the chimney shield
Definition: GeometryPar.h:827
int m_NZScintsChimney
number of z-measuring scintillators in a chimney-sector scintillator module
Definition: GeometryPar.h:721
double getChimneyHousingInnerRadius(void) const
Get the inner radius of the chimney housing.
Definition: GeometryPar.h:392
double m_ReadoutConnectorsLength
Length of the readout connectors pair.
Definition: GeometryPar.h:923
double m_SupportPlateWidth
width of the innermost-module support plate
Definition: GeometryPar.h:848
double m_Layer1Height
Height of layer 0: internal use only.
Definition: GeometryPar.h:682
double m_MPPCHeight
MPPC height.
Definition: GeometryPar.h:947
std::map< int, HepGeom::Transform3D > m_Alignments
map of <volumeIDs, alignment Transform3D>
Definition: GeometryPar.h:968
void readAlignmentFromDB()
Initialize and Updates alignment parameters from DB for reconstruction, that is for Module constructi...
Definition: GeometryPar.cc:748
int m_NZStrips
number of z-measuring cathode strips in a standard RPC module
Definition: GeometryPar.h:712
double m_SectorRotation[2][BKLMElementNumbers::getMaximalSectorNumber()]
Global rotation angle of a sector.
Definition: GeometryPar.h:643
double m_BracketInset
distance from support plate's end of bracket
Definition: GeometryPar.h:875
double getMPPCHalfLength(void) const
Get the MPPC half-length.
Definition: GeometryPar.h:560
double getIronActualHeight(void) const
Get the actual height of a layer's structural iron.
Definition: GeometryPar.h:212
int m_NLayer
Number of layers in one sector.
Definition: GeometryPar.h:664
double getPhi(void) const
Get the starting angle of the BKLM's polygon shape.
Definition: GeometryPar.h:170
const CLHEP::Hep3Vector getSupportPlateHalfSize(bool) const
Get the size of the layer-0 support plate.
Definition: GeometryPar.cc:663
double m_GapLength
Length along z of each gap.
Definition: GeometryPar.h:691
double m_MPPCHousingRadius
MPPC housing radius.
Definition: GeometryPar.h:935
double m_MPPCHousingLength
MPPC housing length.
Definition: GeometryPar.h:938
double getMaximalZStripLength() const
Get maximal Z strip length (for scintillators).
Definition: GeometryPar.h:296
double m_CablesWidth
width of the cable-services channel at each end
Definition: GeometryPar.h:839
double getModuleGlassHeight(void) const
Get the height of the module's glass electrode (4 per module)
Definition: GeometryPar.h:338
double m_ScintBoreRadius
radius (cm) of the central bore in the scintillator strip
Definition: GeometryPar.h:797
double m_ReadoutCarrierLength
Length of the readout carrier card.
Definition: GeometryPar.h:902
double m_ReadoutConnectorsWidth
Width of the readout connectors pair.
Definition: GeometryPar.h:926
double getGap1IronWidth(void) const
Get the width (at the outer radius) of the adjacent structural iron on either side of innermost gap.
Definition: GeometryPar.h:236
double m_GapIronWidth
Width (at the outer radius) of the adjacent structural iron on either side of a gap.
Definition: GeometryPar.h:700
double getModuleCopperHeight(void) const
Get the height of the module's readout or ground copper plane (4 per module)
Definition: GeometryPar.h:320
double m_ReadoutStationPosition[NSTATION]
Position of each readout station along its relevant axis.
Definition: GeometryPar.h:890
double m_ReadoutPreamplifierLength
Length of the preamplifier card.
Definition: GeometryPar.h:911
double m_ModuleGasHeight
height of a detector module's gas gap
Definition: GeometryPar.h:767
double getActiveMiddleRadius(int section, int sector, int layer) const
Get the radial midpoint of the detector module's active volume of specified layer.
Definition: GeometryPar.cc:616
GeometryPar & operator=(const GeometryPar &)
Hidden copy assignment.
double m_BraceWidth
width of the central brace in the middle of the cable-services channel
Definition: GeometryPar.h:842
const CLHEP::Hep3Vector getChimneyHalfSize(int layer) const
Get the size of the chimney hole in the specified layer.
Definition: GeometryPar.cc:649
BkgSensitiveDetector * m_BkgSensitiveDetector
Pointer to object that creates BeamBkgHits for BKLM.
Definition: GeometryPar.h:637
BkgSensitiveDetector * getBkgSensitiveDetector(void) const
Get the beam background study flag.
Definition: GeometryPar.h:58
double m_ModuleFrameWidth
width of a detector module's frame ("C" shape - width of horizontal leg)
Definition: GeometryPar.h:773
double m_MPPCWidth
MPPC width.
Definition: GeometryPar.h:944
double m_ChimneyHousingOuterRadius
outer radius of the chimney housing
Definition: GeometryPar.h:821
double getCablesWidth(void) const
Get the width of the cable-services channel at each end.
Definition: GeometryPar.h:434
double getGapMiddleRadius(int layer) const
Get the radial midpoint of the gap of specified layer.
Definition: GeometryPar.cc:600
double m_GapNominalHeight
Nominal height of outer gaps.
Definition: GeometryPar.h:694
double getBracketCutoutDphi(void) const
Get the angular width of the layer-0 support plate's bracket's cutout.
Definition: GeometryPar.h:494
double m_ReadoutConnectorsPosition
Position of the readout connectors pair along the length of the carrier card.
Definition: GeometryPar.h:932
double m_ModulePolystyreneInnerHeight
height of the inner polystyrene-filler sheet
Definition: GeometryPar.h:785
double m_ChimneyCoverThickness
thickness of the chimney's iron cover plate
Definition: GeometryPar.h:815
void readFromDB(const BKLMGeometryPar &)
Get geometry parameters from Conditions Database.
Definition: GeometryPar.cc:262
double getChimneyShieldOuterRadius(void) const
Get the outer radius of the chimney radiation shield.
Definition: GeometryPar.h:410
double getChimneyCoverThickness(void) const
Get the thickness of the chimney cover plate.
Definition: GeometryPar.h:386
void clear()
Clear all geometry parameters.
Definition: GeometryPar.cc:77
double m_Phi
Starting angle of the polygon shape.
Definition: GeometryPar.h:649
double getReadoutPreamplifierPosition(int preamp) const
Get the position of a preamplifier along the length of the carrier card.
Definition: GeometryPar.h:533
double getBraceWidth(void) const
Get the width of the brace in the middle of the cable-services channel.
Definition: GeometryPar.h:440
double m_ModuleElectrodeBorder
size of the border between a detector module's perimeter and electrode
Definition: GeometryPar.h:782
double m_Gap1ActualHeight
Actual height of the innermost gap.
Definition: GeometryPar.h:679
std::vector< double > m_ReadoutPreamplifierPosition
Positions of the preamplifiers along the length of the carrier card.
Definition: GeometryPar.h:920
double m_ModuleHeight
height of a detector module
Definition: GeometryPar.h:770
const CLHEP::Hep3Vector getReadoutCarrierHalfSize(void) const
Get the size (dx,dy,dz) of the carrier card.
Definition: GeometryPar.cc:696
void read(const GearDir &)
Get geometry parameters from Gearbox.
Definition: GeometryPar.cc:87
double getModuleGasSpacerWidth(void) const
Get the width of the module's gas-gap's perimeter spacer.
Definition: GeometryPar.h:368
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.
Definition: GeometryPar.cc:564
double m_GapActualHeight
Actual height of outer gaps.
Definition: GeometryPar.h:697
const CLHEP::Hep3Vector getElectrodeHalfSize(int layer, bool hasChimney) const
Get the size (dx,dy,dz) of the detector module's electrode of specified layer.
Definition: GeometryPar.cc:557
double m_LocalReconstructionShiftY[2][BKLMElementNumbers::getMaximalSectorNumber()][BKLMElementNumbers::getMaximalLayerNumber()]
Reconstruction dy in local system. displacement, not alignment.
Definition: GeometryPar.h:956
static GeometryPar * instance(void)
Static method to get a reference to the singleton GeometryPar instance.
Definition: GeometryPar.cc:28
double m_ModuleCoverHeight
height of a detector module's aluminum cover
Definition: GeometryPar.h:749
double m_Gap1InnerRadius
Radius of the inner tangent circle of the innermost gap.
Definition: GeometryPar.h:673
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:98
double m_SolenoidOuterRadius
Outer radius of the solenoid.
Definition: GeometryPar.h:655
double getBracketRibWidth(void) const
Get the width of the layer-0 support plate's bracket's rib.
Definition: GeometryPar.h:473
double getModuleMiddleRadius(int layer) const
Get the radial midpoint of the detector module of specified layer.
Definition: GeometryPar.cc:608
double getMPPCHalfWidth(void) const
Get the MPPC half-width.
Definition: GeometryPar.h:566
double getMPPCHalfHeight(void) const
Get the MPPC half-height.
Definition: GeometryPar.h:572
double getGapLength(void) const
Get the length along z of the module gap.
Definition: GeometryPar.h:242
int m_NSector
Number of sectors (=8 : octagonal)
Definition: GeometryPar.h:652
bool m_DoBeamBackgroundStudy
Flag for enabling beam background study (=use bkg sensitive-detector function too)
Definition: GeometryPar.h:634
double m_ChimneyPipeOuterRadius
outer radius of the chimney pipe
Definition: GeometryPar.h:833
double getScintTiO2ThicknessSide(void) const
Get the thickness of the inactive TiO2-polystyrene coating on side (short) surface of a scintillator ...
Definition: GeometryPar.h:113
double getModuleFrameThickness(void) const
Get the thickness of the module's perimeter aluminum frame.
Definition: GeometryPar.h:362
double getSolenoidOuterRadius(void) const
Get the outer radius of the solenoid.
Definition: GeometryPar.h:176
double getChimneyPipeInnerRadius(void) const
Get the inner radius of the chimney pipe.
Definition: GeometryPar.h:416
double getModuleHeight(void) const
Get the height of the module.
Definition: GeometryPar.h:350
const HepGeom::Transform3D getModuleDisplacedGeo(int section, int sector, int layer) const
Get the displacement transformation of a module.
Definition: GeometryPar.cc:741
double getBracketInnerRadius(void) const
Get the inner radius of the layer-0 support plate's bracket.
Definition: GeometryPar.h:485
double getLayerInnerRadius(int layer) const
Get the inner radius of specified layer.
Definition: GeometryPar.cc:498
double getChimneyHousingOuterRadius(void) const
Get the outer radius of the chimney housing.
Definition: GeometryPar.h:398
bool m_ReadoutStationIsPhi[NSTATION]
Selector for phi (true) or z (false) readout station.
Definition: GeometryPar.h:887
double m_ReadoutCarrierWidth
Width of the readout carrier card.
Definition: GeometryPar.h:905
double getGapActualHeight(void) const
Get the actual height of the outer gaps.
Definition: GeometryPar.h:254
double m_SupportPlateHeight
height of the innermost-module support plate
Definition: GeometryPar.h:851
double m_ScintTiO2ThicknessSide
thickness (cm) of the TiO2 coating on the left (and right) side of the scintillator strip
Definition: GeometryPar.h:806
double m_ModuleCopperHeight
height of a detector module's copper readout or ground plane
Definition: GeometryPar.h:752
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.
Definition: GeometryPar.h:962
double m_BracketCutoutDphi
angular width of the innermost-module support plate's bracket's cutout
Definition: GeometryPar.h:881
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,...
Definition: GeometryPar.cc:808
const CLHEP::Hep3Vector getAirHalfSize(int layer, bool hasChimney) const
Get the size (dx,dy,dz) of the scintillator detector module's air filler.
Definition: GeometryPar.cc:573
void calculate()
Calculate additional geometry parameters.
Definition: GeometryPar.cc:397
double getMaximalPhiStripLength() const
Get maximal phi strip length (for scintillators).
Definition: GeometryPar.h:290
int m_NZScints
number of z-measuring scintillators in a standard scintillator module
Definition: GeometryPar.h:718
Define the geometry of a BKLM module Each sector [octant] contains Modules.
Definition: Module.h:76
Abstract base class for different kinds of events.