Belle II Software  release-08-01-10
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 
30  namespace bklm {
31 
33 
37  class GeometryPar {
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  {
171  return m_SolenoidOuterRadius;
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 
289  double getMaximalZStripLength() const
290  {
291  return m_MaximalZStripLength;
292  }
293 
295  double getModuleLength(void) const
296  {
297  return m_ModuleLength;
298  }
299 
301  double getModuleLengthChimney(void) const
302  {
303  return m_ModuleLengthChimney;
304  }
305 
307  double getModuleCoverHeight(void) const
308  {
309  return m_ModuleCoverHeight;
310  }
311 
313  double getModuleCopperHeight(void) const
314  {
315  return m_ModuleCopperHeight;
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  {
357  return m_ModuleFrameThickness;
358  }
359 
361  double getModuleGasSpacerWidth(void) const
362  {
363  return m_ModuleGasSpacerWidth;
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 
385  double getChimneyHousingInnerRadius(void) const
386  {
388  }
389 
391  double getChimneyHousingOuterRadius(void) const
392  {
394  }
395 
397  double getChimneyShieldInnerRadius(void) const
398  {
400  }
401 
403  double getChimneyShieldOuterRadius(void) const
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  {
474  return m_BracketRibThickness;
475  }
476 
478  double getBracketInnerRadius(void) const
479  {
480  return m_BracketInnerRadius;
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 
535  double getReadoutConnectorsPosition(void) const
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 
618  void readDisplacedGeoFromDB();
619 
624  HepGeom::Transform3D getTransformFromRigidBodyParams(double dU, double dV, double dW, double dAlpha, double dBeta, double dGamma);
625 
628 
630  double m_Rotation;
631 
634 
636  double m_OffsetZ;
637 
639  double m_Phi;
640 
643 
646 
649 
651  double m_HalfLength;
652 
654  int m_NLayer;
655 
658 
661 
664 
667 
670 
673 
676 
679 
681  double m_GapLength;
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 
781  double m_ScintWidth;
782 
785 
788 
791 
794 
797 
800 
803 
806 
809 
812 
815 
818 
821 
824 
827 
830 
832  double m_BraceWidth;
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 
931  double m_MPPCLength;
932 
934  double m_MPPCWidth;
935 
937  double m_MPPCHeight;
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
Provides BKLM geometry parameters for simulation, reconstruction etc (from Gearbox or DataBase)
Definition: GeometryPar.h:37
double getScintBoreRadius(void) const
Get the radius of the cylindrical central bore in a scintillator strip.
Definition: GeometryPar.h:124
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.
Definition: GeometryPar.h:943
double m_GapInnerRadius
Radius of the inner tangent circle of virtual gap 0 (assuming equal-height layers)
Definition: GeometryPar.h:693
double m_BracketRibWidth
width of the innermost-module support plate's bracket's rib
Definition: GeometryPar.h:859
double m_ScintWidth
width of one scintillator strip (cm), including the TiO2 coating
Definition: GeometryPar.h:781
double m_LocalReconstructionShiftZ[2][BKLMElementNumbers::getMaximalSectorNumber()][BKLMElementNumbers::getMaximalLayerNumber()]
Reconstruction dz in local system. displacement, not alignment.
Definition: GeometryPar.h:949
int m_NZStripsChimney
number of z-measuring cathode strips in a chimney-sector RPC module
Definition: GeometryPar.h:705
double m_ReadoutConnectorsHeight
Height of the readout connectors pair.
Definition: GeometryPar.h:919
double getBracketThickness(void) const
Get the thickness of the layer-0 support plate's bracket.
Definition: GeometryPar.h:454
~GeometryPar()
Hidden destructor.
Definition: GeometryPar.cc:69
double m_SupportPlateLengthChimney
length of the innermost-module support plate in the chimney sector
Definition: GeometryPar.h:847
bool m_HasRPCs[BKLMElementNumbers::getMaximalLayerNumber()]
Flag to indicate whether layer contains RPCs (true) or scintillators (false)
Definition: GeometryPar.h:940
double getModuleFoamHeight(void) const
Get the height of the module's transmission-line foam (2 per module)
Definition: GeometryPar.h:319
double m_ChimneyPipeInnerRadius
inner radius of the chimney pipe
Definition: GeometryPar.h:820
double m_BracketLength
length of the innermost-module support plate's bracket
Definition: GeometryPar.h:856
double getGapInnerRadius(void) const
Get the radius of the inner tangent circle of gap 1 (next-to-innermost)
Definition: GeometryPar.h:259
double m_MaximalZStripLength
maximal Z strip length (for scintillators).
Definition: GeometryPar.h:730
double m_ReadoutContainerHeight
Height of the readout station's container.
Definition: GeometryPar.h:889
double m_ReadoutCarrierHeight
Height of the readout carrier card.
Definition: GeometryPar.h:898
double m_ModuleLengthChimney
length along z of the module in the chimney sector
Definition: GeometryPar.h:736
double getModuleMylarHeight(void) const
Get the height of the module's insulating mylar (2 per module)
Definition: GeometryPar.h:325
const CLHEP::Hep3Vector getReadoutContainerHalfSize(void) const
Get the size (dx,dy,dz) of the readout container.
Definition: GeometryPar.cc:682
void readDisplacedGeoFromDB()
Initialize and Updates displacements parameters from DB for geometry constructor, registers itself fo...
Definition: GeometryPar.cc:772
double m_BracketInnerRadius
inner radius of the innermost-module support plate's bracket
Definition: GeometryPar.h:868
double m_BracketWidth
width of the innermost-module support plate's bracket
Definition: GeometryPar.h:850
double m_BraceWidthChimney
width of the central brace in the middle of the cable-services channel in the chimney sector
Definition: GeometryPar.h:835
int m_NPhiStrips[BKLMElementNumbers::getMaximalLayerNumber()]
Number of phi-readout RPC strips in each layer.
Definition: GeometryPar.h:696
double m_ReadoutContainerLength
Length of the readout station's container.
Definition: GeometryPar.h:883
double m_Gap1IronWidth
Width (at the outer radius) of the adjacent structural iron on either side of innermost gap.
Definition: GeometryPar.h:678
double getModuleFrameWidth(void) const
Get the width of the module's perimeter aluminum frame.
Definition: GeometryPar.h:349
double getMPPCHousingRadius(void) const
Get the MPPC housing radius.
Definition: GeometryPar.h:541
double getLayerOuterRadius(int layer) const
Get the outer radius of specified layer.
Definition: GeometryPar.cc:500
double getModuleLength(void) const
Get the length along z of the module.
Definition: GeometryPar.h:295
double getChimneyShieldInnerRadius(void) const
Get the inner radius of the chimney radiation shield.
Definition: GeometryPar.h:397
double getGapNominalHeight(void) const
Get the nominal height of the outer gaps.
Definition: GeometryPar.h:241
double getIronNominalHeight(void) const
Get the nominal height of a layer's structural iron.
Definition: GeometryPar.h:199
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:522
double getScintHalfHeight(void) const
Get the height of the entire volume of a scintillator strip (including TiO2 coating)
Definition: GeometryPar.h:112
int getNZStrips(bool isChimney) const
Get the number of z-measuring cathode strips in an RPC module.
Definition: GeometryPar.h:265
double m_IronActualHeight
Actual height of a layer's stuctural iron.
Definition: GeometryPar.h:660
double m_ZStripWidth[BKLMElementNumbers::getMaximalLayerNumber()]
Width of the z strips on each layer.
Definition: GeometryPar.h:721
double m_ReadoutPreamplifierWidth
Width of the preamplifier card.
Definition: GeometryPar.h:904
double m_IronNominalHeight
Nominal height of a layer's structural iron.
Definition: GeometryPar.h:657
const HepGeom::Transform3D getModuleAlignment(int section, int sector, int layer) const
Get the alignment transformation of a module.
Definition: GeometryPar.cc:728
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:530
const Module * findModule(int section, int sector, int layer) const
Get the pointer to the definition of a module.
Definition: GeometryPar.cc:721
double getScintTiO2ThicknessTop(void) const
Get the thickness of the inactive TiO2-polystyrene coating on top (broad) surface of a scintillator s...
Definition: GeometryPar.h:100
double m_ScintHeight
height of one scintillator strip (cm), including the TiO2 coating
Definition: GeometryPar.h:784
int getNLayer(void) const
Get the number of modules in one sector.
Definition: GeometryPar.h:193
double m_ChimneyHousingInnerRadius
inner radius of the chimney housing
Definition: GeometryPar.h:808
double m_ModuleFoamHeight
height of a detector module's transmission-line foam
Definition: GeometryPar.h:745
std::map< int, Module * > m_Modules
map of <volumeIDs, pointers to defined modules>
Definition: GeometryPar.h:955
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:715
double m_BracketRibThickness
thickness of the innermost-module support plate's bracket's rib
Definition: GeometryPar.h:862
double m_Gap1NominalHeight
Nominal height of the innermost gap.
Definition: GeometryPar.h:666
int getNPhiScints(int layer) const
Get the number of phi-measuring scintillators in a scintillator module.
Definition: GeometryPar.cc:579
double getScintHalfWidth(void) const
Get the height of the entire volume of a scintillator strip (including TiO2 coating)
Definition: GeometryPar.h:118
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:633
bool hasRPCs(int layer) const
Determine if the sensitive detectors in a given layer are RPCs (=true) or scintillators (=false)
Definition: GeometryPar.cc:714
double getMPPCHousingHalfLength(void) const
Get the MPPC housing half-length.
Definition: GeometryPar.h:547
int getNReadoutPreamplifierPosition(void) const
Get the number of preamplifier positions along the length of the carrier card.
Definition: GeometryPar.h:520
double m_ScintFiberRadius
radius (cm) of the central WLS fiber in the scintillator strip
Definition: GeometryPar.h:790
double m_ZScintDLength[BKLMElementNumbers::getMaximalLayerNumber()][NZSCINT]
Shortening of the nominal length of the z scintillators.
Definition: GeometryPar.h:724
double m_MPPCLength
MPPC length.
Definition: GeometryPar.h:931
int getNReadoutStation(void) const
Get the number of preamplifier readout stations.
Definition: GeometryPar.h:493
double getGap1NominalHeight(void) const
Get the nominal height of the innermost gap.
Definition: GeometryPar.h:217
double getScintFiberRadius(void) const
Get the radius of the cylindrical central WLS fiber in a scintillator strip.
Definition: GeometryPar.h:130
double m_SupportPlateLength
length of the innermost-module support plate
Definition: GeometryPar.h:844
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:571
GeometryPar(GeometryPar &)
Hidden copy constructor.
double m_ModuleMylarHeight
height of a detector module's mylar insulation
Definition: GeometryPar.h:748
const CLHEP::Hep3Vector getChimneyPosition(int layer) const
Get the position of the chimney hole in the specified layer.
Definition: GeometryPar.cc:650
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:253
double m_ModuleFrameThickness
thickness of a detector module's frame ("C" shape - thickness of vertical leg)
Definition: GeometryPar.h:766
int m_NPhiScints[BKLMElementNumbers::getMaximalLayerNumber()]
Number of phi-readout scintillators in each layer.
Definition: GeometryPar.h:699
double getBracketWidth(void) const
Get the width of the layer-0 support plate's bracket.
Definition: GeometryPar.h:448
double m_ChimneyShieldInnerRadius
inner radius of the chimney shield
Definition: GeometryPar.h:814
double getGap1InnerRadius(void) const
Get the radius of the inner tangent circle of gap 0 (innermost)
Definition: GeometryPar.h:211
std::map< int, HepGeom::Transform3D > m_Displacements
map of <volumeIDs, displacement Transform3D>
Definition: GeometryPar.h:961
double getOuterRadius(void) const
Get the radius of the inscribed circle of the outer polygon.
Definition: GeometryPar.h:187
double getModuleGasHeight(void) const
Get the height of the module's gas gap (2 per module)
Definition: GeometryPar.h:337
double getOffsetZ(void) const
Get the global shift along a of the entire BKLM.
Definition: GeometryPar.h:157
double m_Rotation
Global rotation about z of the BKLM.
Definition: GeometryPar.h:630
int m_NReadoutStation
Number of preamplifier readout stations.
Definition: GeometryPar.h:874
double getBracketZPosition(int, bool) const
Get the position of a layer-0 support plate's bracket.
Definition: GeometryPar.cc:670
double m_ModulePolystyreneOuterHeight
height of the outer polystyrene-filler sheet
Definition: GeometryPar.h:778
double getReadoutConnectorsPosition(void) const
Get the position of the readout connectors pair along the length of the carrier card.
Definition: GeometryPar.h:535
double getChimneyPipeOuterRadius(void) const
Get the outer radius of the chimney pipe.
Definition: GeometryPar.h:415
bool getReadoutStationIsPhi(int station) const
Get the selector for phi (true) or z (false) readout station.
Definition: GeometryPar.h:499
const CLHEP::Hep3Vector getReadoutPreamplifierHalfSize(void) const
Get the size (dx,dy,dz) of the preamplifier card.
Definition: GeometryPar.cc:698
double getBracketLength(void) const
Get the length of the layer-0 support plate's bracket.
Definition: GeometryPar.h:460
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:274
double getGap1ActualHeight(void) const
Get the actual height of the innermost gap.
Definition: GeometryPar.h:223
double m_ChimneyLength
length along z of the chimney hole
Definition: GeometryPar.h:799
double getModuleLengthChimney(void) const
Get the length along z of the module.
Definition: GeometryPar.h:301
double getPolystyreneOffsetX(void) const
Get the radial offset of the scintillator detector module's active envelope due to difference in poly...
Definition: GeometryPar.cc:586
double m_ReadoutContainerWidth
Width of the readout station's container.
Definition: GeometryPar.h:886
double m_OffsetZ
Global offset along z of the BKLM.
Definition: GeometryPar.h:636
double getReadoutStationPosition(int station) const
Get the position of each readout station.
Definition: GeometryPar.h:505
double m_ModuleGasSpacerWidth
width of a detector module's spacer
Definition: GeometryPar.h:769
double m_PhiStripWidth[BKLMElementNumbers::getMaximalLayerNumber()]
Width of the phi strips on each layer.
Definition: GeometryPar.h:718
double getModuleCoverHeight(void) const
Get the height of the module's aluminum cover (2 per module)
Definition: GeometryPar.h:307
const CLHEP::Hep3Vector getReadoutConnectorsHalfSize(void) const
Get the size (dx,dy,dz) of the readout connectors pair.
Definition: GeometryPar.cc:706
double getRibThickness(void) const
Get the thickness of the radial rib that supports the solenoid / inner detectors.
Definition: GeometryPar.h:421
int getNSector(void) const
Get the number of sectors of the BKLM.
Definition: GeometryPar.h:175
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:145
double m_OuterRadius
Radius of the circle tangent to the sides of the outer polygon.
Definition: GeometryPar.h:648
static GeometryPar * m_Instance
static pointer to the singleton instance of this class
Definition: GeometryPar.h:964
double m_BracketThickness
thickness of the innermost-module support plate's bracket
Definition: GeometryPar.h:853
double getModuleElectrodeBorder(void) const
Get the size of the border between a detector module's perimeter and electrode.
Definition: GeometryPar.h:367
double m_ModuleGlassHeight
height of a detector module's glass electrode
Definition: GeometryPar.h:754
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:539
double getRotation(void) const
Get the global rotation angle about z of the entire BKLM.
Definition: GeometryPar.h:151
double m_MaximalPhiStripLength
Maximal phi strip length (for scintillators).
Definition: GeometryPar.h:727
GeometryPar(const GearDir &)
Hidden constructor.
Definition: GeometryPar.cc:49
double m_RibThickness
thickness of the radial rib that supports the solenoid / inner detectors
Definition: GeometryPar.h:826
double m_ScintTiO2ThicknessTop
thickness (cm) of the TiO2 coating on the top (and bottom) of the scintillator strip
Definition: GeometryPar.h:793
double getHalfLength(void) const
Get the half-length along z of the BKLM.
Definition: GeometryPar.h:181
double m_ModuleReadoutHeight
height of a detector module's readout
Definition: GeometryPar.h:751
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:505
double m_ModuleLength
length along z of the module
Definition: GeometryPar.h:733
double m_HalfLength
Half-length along z of the BKLM.
Definition: GeometryPar.h:651
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:439
double m_ReadoutPreamplifierHeight
Height of the preamplifier card.
Definition: GeometryPar.h:907
double getBracketRibThickness(void) const
Get the thickness of the layer-0 support plate's bracket's rib.
Definition: GeometryPar.h:472
double m_ChimneyWidth
width of the chimney hole
Definition: GeometryPar.h:802
double m_LayerHeight
Height of a layer: internal use only.
Definition: GeometryPar.h:675
double m_ChimneyShieldOuterRadius
outer radius of the chimney shield
Definition: GeometryPar.h:817
int m_NZScintsChimney
number of z-measuring scintillators in a chimney-sector scintillator module
Definition: GeometryPar.h:711
double getChimneyHousingInnerRadius(void) const
Get the inner radius of the chimney housing.
Definition: GeometryPar.h:385
double m_ReadoutConnectorsLength
Length of the readout connectors pair.
Definition: GeometryPar.h:913
double m_SupportPlateWidth
width of the innermost-module support plate
Definition: GeometryPar.h:838
double m_Layer1Height
Height of layer 0: internal use only.
Definition: GeometryPar.h:672
double m_MPPCHeight
MPPC height.
Definition: GeometryPar.h:937
std::map< int, HepGeom::Transform3D > m_Alignments
map of <volumeIDs, alignment Transform3D>
Definition: GeometryPar.h:958
void readAlignmentFromDB()
Initialize and Updates alignment parameters from DB for reconstruction, that is for Module constructi...
Definition: GeometryPar.cc:742
int m_NZStrips
number of z-measuring cathode strips in a standard RPC module
Definition: GeometryPar.h:702
double m_SectorRotation[2][BKLMElementNumbers::getMaximalSectorNumber()]
Global rotation angle of a sector.
Definition: GeometryPar.h:633
double m_BracketInset
distance from support plate's end of bracket
Definition: GeometryPar.h:865
double getMPPCHalfLength(void) const
Get the MPPC half-length.
Definition: GeometryPar.h:553
double getIronActualHeight(void) const
Get the actual height of a layer's structural iron.
Definition: GeometryPar.h:205
int m_NLayer
Number of layers in one sector.
Definition: GeometryPar.h:654
double getPhi(void) const
Get the starting angle of the BKLM's polygon shape.
Definition: GeometryPar.h:163
const CLHEP::Hep3Vector getSupportPlateHalfSize(bool) const
Get the size of the layer-0 support plate.
Definition: GeometryPar.cc:657
double m_GapLength
Length along z of each gap.
Definition: GeometryPar.h:681
double m_MPPCHousingRadius
MPPC housing radius.
Definition: GeometryPar.h:925
double m_MPPCHousingLength
MPPC housing length.
Definition: GeometryPar.h:928
double getMaximalZStripLength() const
Get maximal Z strip length (for scintillators).
Definition: GeometryPar.h:289
double m_CablesWidth
width of the cable-services channel at each end
Definition: GeometryPar.h:829
double getModuleGlassHeight(void) const
Get the height of the module's glass electrode (4 per module)
Definition: GeometryPar.h:331
double m_ScintBoreRadius
radius (cm) of the central bore in the scintillator strip
Definition: GeometryPar.h:787
double m_ReadoutCarrierLength
Length of the readout carrier card.
Definition: GeometryPar.h:892
double m_ReadoutConnectorsWidth
Width of the readout connectors pair.
Definition: GeometryPar.h:916
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:229
double m_GapIronWidth
Width (at the outer radius) of the adjacent structural iron on either side of a gap.
Definition: GeometryPar.h:690
double getModuleCopperHeight(void) const
Get the height of the module's readout or ground copper plane (4 per module)
Definition: GeometryPar.h:313
double m_ReadoutStationPosition[NSTATION]
Position of each readout station along its relevant axis.
Definition: GeometryPar.h:880
double m_ReadoutPreamplifierLength
Length of the preamplifier card.
Definition: GeometryPar.h:901
double m_ModuleGasHeight
height of a detector module's gas gap
Definition: GeometryPar.h:757
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:607
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:832
const CLHEP::Hep3Vector getChimneyHalfSize(int layer) const
Get the size of the chimney hole in the specified layer.
Definition: GeometryPar.cc:643
double m_ModuleFrameWidth
width of a detector module's frame ("C" shape - width of horizontal leg)
Definition: GeometryPar.h:763
double m_MPPCWidth
MPPC width.
Definition: GeometryPar.h:934
double m_ChimneyHousingOuterRadius
outer radius of the chimney housing
Definition: GeometryPar.h:811
double getCablesWidth(void) const
Get the width of the cable-services channel at each end.
Definition: GeometryPar.h:427
double getGapMiddleRadius(int layer) const
Get the radial midpoint of the gap of specified layer.
Definition: GeometryPar.cc:591
double m_GapNominalHeight
Nominal height of outer gaps.
Definition: GeometryPar.h:684
double getBracketCutoutDphi(void) const
Get the angular width of the layer-0 support plate's bracket's cutout.
Definition: GeometryPar.h:487
double m_ReadoutConnectorsPosition
Position of the readout connectors pair along the length of the carrier card.
Definition: GeometryPar.h:922
double m_ModulePolystyreneInnerHeight
height of the inner polystyrene-filler sheet
Definition: GeometryPar.h:775
double m_ChimneyCoverThickness
thickness of the chimney's iron cover plate
Definition: GeometryPar.h:805
void readFromDB(const BKLMGeometryPar &)
Get geometry parameters from Conditions Database.
Definition: GeometryPar.cc:259
double getChimneyShieldOuterRadius(void) const
Get the outer radius of the chimney radiation shield.
Definition: GeometryPar.h:403
double getChimneyCoverThickness(void) const
Get the thickness of the chimney cover plate.
Definition: GeometryPar.h:379
void clear()
Clear all geometry parameters.
Definition: GeometryPar.cc:74
double m_Phi
Starting angle of the polygon shape.
Definition: GeometryPar.h:639
double getReadoutPreamplifierPosition(int preamp) const
Get the position of a preamplifier along the length of the carrier card.
Definition: GeometryPar.h:526
double getBraceWidth(void) const
Get the width of the brace in the middle of the cable-services channel.
Definition: GeometryPar.h:433
double m_ModuleElectrodeBorder
size of the border between a detector module's perimeter and electrode
Definition: GeometryPar.h:772
double m_Gap1ActualHeight
Actual height of the innermost gap.
Definition: GeometryPar.h:669
std::vector< double > m_ReadoutPreamplifierPosition
Positions of the preamplifiers along the length of the carrier card.
Definition: GeometryPar.h:910
double m_ModuleHeight
height of a detector module
Definition: GeometryPar.h:760
const CLHEP::Hep3Vector getReadoutCarrierHalfSize(void) const
Get the size (dx,dy,dz) of the carrier card.
Definition: GeometryPar.cc:690
void read(const GearDir &)
Get geometry parameters from Gearbox.
Definition: GeometryPar.cc:84
double getModuleGasSpacerWidth(void) const
Get the width of the module's gas-gap's perimeter spacer.
Definition: GeometryPar.h:361
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:555
double m_GapActualHeight
Actual height of outer gaps.
Definition: GeometryPar.h:687
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:548
double m_LocalReconstructionShiftY[2][BKLMElementNumbers::getMaximalSectorNumber()][BKLMElementNumbers::getMaximalLayerNumber()]
Reconstruction dy in local system. displacement, not alignment.
Definition: GeometryPar.h:946
static GeometryPar * instance(void)
Static method to get a reference to the singleton GeometryPar instance.
Definition: GeometryPar.cc:27
double m_ModuleCoverHeight
height of a detector module's aluminum cover
Definition: GeometryPar.h:739
double m_Gap1InnerRadius
Radius of the inner tangent circle of the innermost gap.
Definition: GeometryPar.h:663
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.
Definition: GeometryPar.h:645
double getBracketRibWidth(void) const
Get the width of the layer-0 support plate's bracket's rib.
Definition: GeometryPar.h:466
double getModuleMiddleRadius(int layer) const
Get the radial midpoint of the detector module of specified layer.
Definition: GeometryPar.cc:599
double getMPPCHalfWidth(void) const
Get the MPPC half-width.
Definition: GeometryPar.h:559
double getMPPCHalfHeight(void) const
Get the MPPC half-height.
Definition: GeometryPar.h:565
double getGapLength(void) const
Get the length along z of the module gap.
Definition: GeometryPar.h:235
int m_NSector
Number of sectors (=8 : octagonal)
Definition: GeometryPar.h:642
bool m_DoBeamBackgroundStudy
Flag for enabling beam background study (=use bkg sensitive-detector function too)
Definition: GeometryPar.h:627
double m_ChimneyPipeOuterRadius
outer radius of the chimney pipe
Definition: GeometryPar.h:823
double getScintTiO2ThicknessSide(void) const
Get the thickness of the inactive TiO2-polystyrene coating on side (short) surface of a scintillator ...
Definition: GeometryPar.h:106
double getModuleFrameThickness(void) const
Get the thickness of the module's perimeter aluminum frame.
Definition: GeometryPar.h:355
double getSolenoidOuterRadius(void) const
Get the outer radius of the solenoid.
Definition: GeometryPar.h:169
double getChimneyPipeInnerRadius(void) const
Get the inner radius of the chimney pipe.
Definition: GeometryPar.h:409
double getModuleHeight(void) const
Get the height of the module.
Definition: GeometryPar.h:343
const HepGeom::Transform3D getModuleDisplacedGeo(int section, int sector, int layer) const
Get the displacement transformation of a module.
Definition: GeometryPar.cc:735
double getBracketInnerRadius(void) const
Get the inner radius of the layer-0 support plate's bracket.
Definition: GeometryPar.h:478
double getLayerInnerRadius(int layer) const
Get the inner radius of specified layer.
Definition: GeometryPar.cc:489
double getChimneyHousingOuterRadius(void) const
Get the outer radius of the chimney housing.
Definition: GeometryPar.h:391
bool m_ReadoutStationIsPhi[NSTATION]
Selector for phi (true) or z (false) readout station.
Definition: GeometryPar.h:877
double m_ReadoutCarrierWidth
Width of the readout carrier card.
Definition: GeometryPar.h:895
double getGapActualHeight(void) const
Get the actual height of the outer gaps.
Definition: GeometryPar.h:247
double m_SupportPlateHeight
height of the innermost-module support plate
Definition: GeometryPar.h:841
double m_ScintTiO2ThicknessSide
thickness (cm) of the TiO2 coating on the left (and right) side of the scintillator strip
Definition: GeometryPar.h:796
double m_ModuleCopperHeight
height of a detector module's copper readout or ground plane
Definition: GeometryPar.h:742
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:952
double m_BracketCutoutDphi
angular width of the innermost-module support plate's bracket's cutout
Definition: GeometryPar.h:871
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:802
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:564
void calculate()
Calculate additional geometry parameters.
Definition: GeometryPar.cc:394
double getMaximalPhiStripLength() const
Get maximal phi strip length (for scintillators).
Definition: GeometryPar.h:283
int m_NZScints
number of z-measuring scintillators in a standard scintillator module
Definition: GeometryPar.h:708
Define the geometry of a BKLM module Each sector [octant] contains Modules.
Definition: Module.h:76
Abstract base class for different kinds of events.