ATLAS Offline Software
HECGeometry.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
14 #ifndef LArG4_HEC_HECGeometry_H
15 #define LArG4_HEC_HECGeometry_H
16 
17 #include "LArG4HEC/IHECGeometry.h"
19 
21 #include "globals.hh"
22 
23 // Forward declarations.
24 class LArG4Identifier;
25 class G4Step;
26 class G4LogicalVolume;
27 class G4VPhysicalVolume;
28 
29 namespace LArG4 {
30 
31  namespace HEC {
32 
33  class HECGeometry: public extends<AthService, IHECGeometry> {
34 
35  public:
36 
37  HECGeometry(const std::string& name, ISvcLocator * pSvcLocator);
38  StatusCode initialize() override final;
39  virtual ~HECGeometry() = default;
40 
41  void initializeForSDCreation() override final;
42  LArG4Identifier CalculateIdentifier( const G4Step* a_step, const eHECGeometryType type = kWheelActive, int *subgap=NULL) const override final;
43 
44  private:
45  bool checkDaughters(const G4LogicalVolume *possibleParent, const G4VPhysicalVolume *thePhysicalVolume, int& level) const;
46 
48 
49  bool m_depthHist{false};
50  bool m_withMother{false};
51 
53  double m_depthSize[7]{};
54  double m_depthSum[7]{};
55  double m_minval[7][2][10]{};
56  double m_maxval[7][2][10]{};
57 
58  // Some essential numbers we'll need over and over again:
59  double m_firstAbsThickness[2]{};
60  double m_wheel1{};
61  double m_wheel2{};
62  double m_betweenWheels{40.5}; // FIXME HACK!! -- can't find this through LArReadoutGeometry, so hard-code it here
63  double m_hecLength{};
64  double m_startHec2{};
65  double m_rOuter{};
66  double m_rInner1{};
67  double m_rInner2{};
68 
69  };
70 
71  } // namespace HEC
72 
73 } // namespace LArG4
74 
75 #endif // LArG4_HEC_HECGeometry_H
LArG4Identifier
Definition: LArG4Identifier.h:121
LArSamples::HEC
@ HEC
Definition: CaloId.h:26
LArG4::HEC::HECGeometry::m_startHec2
double m_startHec2
Definition: HECGeometry.h:64
IHECGeometry.h
LArG4::HEC::HECGeometry::m_withMother
bool m_withMother
Definition: HECGeometry.h:50
LArG4::HEC::HECGeometry::checkDaughters
bool checkDaughters(const G4LogicalVolume *possibleParent, const G4VPhysicalVolume *thePhysicalVolume, int &level) const
LArG4::HEC::HECGeometry::initialize
StatusCode initialize() override final
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:560
LArG4::HEC::HECGeometry::m_wheel1
double m_wheel1
Definition: HECGeometry.h:60
LArG4
Definition: LArWheelCalculatorEnums.h:8
python.CaloAddPedShiftConfig.type
type
Definition: CaloAddPedShiftConfig.py:42
LArG4::HEC::HECGeometry::CalculateIdentifier
LArG4Identifier CalculateIdentifier(const G4Step *a_step, const eHECGeometryType type=kWheelActive, int *subgap=NULL) const override final
python.iconfTool.models.loaders.level
level
Definition: loaders.py:20
LArG4::HEC::HECGeometry::m_depthSum
double m_depthSum[7]
Definition: HECGeometry.h:54
LArG4::HEC::HECGeometry::m_depthSize
double m_depthSize[7]
Definition: HECGeometry.h:53
LArG4::HEC::HECGeometry::m_wheel2
double m_wheel2
Definition: HECGeometry.h:61
LArG4::HEC::HECGeometry::m_g4historyDepth
int m_g4historyDepth
Definition: HECGeometry.h:52
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
LArG4::HEC::kWheelActive
@ kWheelActive
Definition: IHECGeometry.h:23
LArG4::HEC::HECGeometry::m_hecManager
const HECDetectorManager * m_hecManager
Definition: HECGeometry.h:47
LArG4::HEC::HECGeometry::m_rInner2
double m_rInner2
Definition: HECGeometry.h:67
LArG4::HEC::HECGeometry::m_rOuter
double m_rOuter
Definition: HECGeometry.h:65
HECDetectorManager
A manager class providing access to readout geometry information for the hadronic endcap calorimeter.
Definition: HECDetectorManager.h:28
LArG4::HEC::HECGeometry::HECGeometry
HECGeometry(const std::string &name, ISvcLocator *pSvcLocator)
LArG4::HEC::HECGeometry::initializeForSDCreation
void initializeForSDCreation() override final
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
LArG4::HEC::HECGeometry::m_minval
double m_minval[7][2][10]
Definition: HECGeometry.h:55
LArG4::HEC::HECGeometry::m_depthHist
bool m_depthHist
Definition: HECGeometry.h:49
LArG4::HEC::HECGeometry::m_rInner1
double m_rInner1
Definition: HECGeometry.h:66
python.CaloAddPedShiftConfig.default
default
Definition: CaloAddPedShiftConfig.py:43
LArG4::HEC::HECGeometry::m_maxval
double m_maxval[7][2][10]
Definition: HECGeometry.h:56
AthService.h
LArG4::HEC::HECGeometry::m_hecLength
double m_hecLength
Definition: HECGeometry.h:63
private
#define private
Definition: xAODTruthCnvAlg.h:20
LArG4::HEC::HECGeometry::m_firstAbsThickness
double m_firstAbsThickness[2]
Definition: HECGeometry.h:59
LArG4::HEC::HECGeometry::m_betweenWheels
double m_betweenWheels
Definition: HECGeometry.h:62
LArG4::HEC::HECGeometry
This class contains the geometry calculations needed to calculate an identifier for a given G4Step in...
Definition: HECGeometry.h:33
HECDetectorManager.h
LArG4::HEC::eHECGeometryType
eHECGeometryType
Definition: IHECGeometry.h:23