ATLAS Offline Software
HECGeometry.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 // This class contains the geometry calculations needed to calculate
6 // an identifier for a given G4Step in the HEC.
7 
8 // Jan-2008: (M.Fincke) To be used for new Module-Geometry
9 
10 #ifndef LArG4_HEC_HECGeometry_H
11 #define LArG4_HEC_HECGeometry_H
12 
13 #include "LArG4HEC/IHECGeometry.h"
15 
17 //#include "LArReadoutGeometry/HECDetectorRegion.h"
18 #include "globals.hh"
19 
20 // Forward declarations.
21 class LArG4Identifier;
22 class G4Step;
23 class G4LogicalVolume;
24 class G4VPhysicalVolume;
25 
26 namespace LArG4 {
27 
28  namespace HEC {
29 
30  class HECGeometry: public extends<AthService, IHECGeometry> {
31 
32  public:
33 
34  HECGeometry(const std::string& name, ISvcLocator * pSvcLocator);
35  StatusCode initialize() override final;
36  virtual ~HECGeometry(){;}
37 
38  void initializeForSDCreation() override final;
39  LArG4Identifier CalculateIdentifier( const G4Step* a_step, const eHECGeometryType type = kWheelActive, int *subgap=NULL) const override final;
40 
41  private:
42  bool checkDaughters(const G4LogicalVolume *possibleParent, const G4VPhysicalVolume *thePhysicalVolume, int& level) const;
43 
45 
46  bool m_depthHist{false};
47  bool m_withMother{false};
48 
50  double m_depthSize[7]{};
51  double m_depthSum[7]{};
52  double m_minval[7][2][10]{};
53  double m_maxval[7][2][10]{};
54 
55  // Some essential numbers we'll need over and over again:
56  double m_firstAbsThickness[2]{};
57  double m_wheel1{};
58  double m_wheel2{};
59  double m_betweenWheels{40.5}; // FIXME HACK!! -- can't find this through LArReadoutGeometry, so hard-code it here
60  double m_hecLength{};
61  double m_startHec2{};
62  double m_rOuter{};
63  double m_rInner1{};
64  double m_rInner2{};
65 
66  };
67 
68  } // namespace HEC
69 
70 } // namespace LArG4
71 
72 #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:61
IHECGeometry.h
LArG4::HEC::HECGeometry::m_withMother
bool m_withMother
Definition: HECGeometry.h:47
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:57
LArG4
Definition: LArWheelCalculatorEnums.h:8
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:51
LArG4::HEC::HECGeometry::m_depthSize
double m_depthSize[7]
Definition: HECGeometry.h:50
LArG4::HEC::HECGeometry::m_wheel2
double m_wheel2
Definition: HECGeometry.h:58
LArG4::HEC::HECGeometry::m_g4historyDepth
int m_g4historyDepth
Definition: HECGeometry.h:49
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:44
LArG4::HEC::HECGeometry::m_rInner2
double m_rInner2
Definition: HECGeometry.h:64
LArG4::HEC::HECGeometry::m_rOuter
double m_rOuter
Definition: HECGeometry.h:62
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
private
#define private
Definition: DetDescrConditionsDict_dict_fixes.cxx:13
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:221
LArG4::HEC::HECGeometry::m_minval
double m_minval[7][2][10]
Definition: HECGeometry.h:52
LArG4::HEC::HECGeometry::m_depthHist
bool m_depthHist
Definition: HECGeometry.h:46
LArG4::HEC::HECGeometry::m_rInner1
double m_rInner1
Definition: HECGeometry.h:63
LArG4::HEC::HECGeometry::m_maxval
double m_maxval[7][2][10]
Definition: HECGeometry.h:53
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
AthService.h
LArG4::HEC::HECGeometry::m_hecLength
double m_hecLength
Definition: HECGeometry.h:60
LArG4::HEC::HECGeometry::m_firstAbsThickness
double m_firstAbsThickness[2]
Definition: HECGeometry.h:56
LArG4::HEC::HECGeometry::m_betweenWheels
double m_betweenWheels
Definition: HECGeometry.h:59
LArG4::HEC::HECGeometry
Definition: HECGeometry.h:30
HECDetectorManager.h
LArG4::HEC::eHECGeometryType
eHECGeometryType
Definition: IHECGeometry.h:23