ATLAS Offline Software
LocalGeometry.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 // LArG4::HEC::LocalGeometry
6 
7 // This class contains the geometry calculations needed to calculate
8 // an identifier for a given G4Step.
9 
10 // 05-Apr-2006: Pavol Strizenec, adaptation from TB LocalCalculator to Atlas
11 
12 // Note: This class is intended for use in calculating identifiers in
13 // both active and inactive regions of the detector. For calibration
14 // studies, it must work properly whether the energy is deposited in
15 // the liquid argon or the absorber.
16 
17 #ifndef LArG4_HEC_LocalGeometry_H
18 #define LArG4_HEC_LocalGeometry_H
19 
22 
25 
26 class LArG4Identifier;
27 class G4Step;
28 
29 namespace LArG4 {
30 
31  namespace HEC {
32 
33  class LocalGeometry: public extends<AthService, ILocalGeometry> {
34 
35  public:
36 
37  LocalGeometry(const std::string& name, ISvcLocator * pSvcLocator);
38  StatusCode initialize() override final;
39  virtual ~LocalGeometry(){;}
40 
42  int depthadd = 0, double deadzone = 4.*CLHEP::mm, double locyadd = 0.*CLHEP::mm) const override final;
43 
44  //bool isX() const { return m_isX; } //UNUSED
45  //void SetX(G4bool x) { m_isX = x; }
46 
47  private:
48  int binSearch(double ly, int depth, int reg) const;
49  int binSearchAll(double ly, int depth, bool regular=false) const;
50  double deadZone(double locx, double locy) const;
53 
54  bool m_isX;
55  double m_depthSize[7] = {0.0};
56  double m_firstAbsorber[7] = {0.0};
57  double m_pads[7][15] = {}; // 15 is the number of bins in eta.
58  double m_betweenWheel = 0.0;
59  };
60 
61  } // namespace HEC
62 
63 } // namespace LArG4
64 
65 #endif // LArG4_HEC_LocalGeometry_H
LArG4::HEC::LocalGeometry::deadZone
double deadZone(double locx, double locy) const
LArG4Identifier
Definition: LArG4Identifier.h:121
LArSamples::HEC
@ HEC
Definition: CaloId.h:26
egammaParameters::depth
@ depth
pointing depth of the shower as calculated in egammaqgcld
Definition: egammaParamDefs.h:276
LArG4::HEC::eLocalGeometryType
eLocalGeometryType
Definition: ILocalGeometry.h:23
pool_uuid.regular
bool regular
Definition: pool_uuid.py:103
LArG4::HEC::LocalGeometry::LocalGeometry
LocalGeometry(const std::string &name, ISvcLocator *pSvcLocator)
LArG4::HEC::kLocActive
@ kLocActive
Definition: ILocalGeometry.h:23
LArG4::HEC::LocalGeometry::CalculateIdentifier
LArG4Identifier CalculateIdentifier(const G4Step *a_step, const eLocalGeometryType type=kLocActive, int depthadd=0, double deadzone=4.*CLHEP::mm, double locyadd=0.*CLHEP::mm) const override final
LArG4::HEC::LocalGeometry::binSearch
int binSearch(double ly, int depth, int reg) const
LArG4
Definition: LArWheelCalculatorEnums.h:8
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
LArG4::HEC::LocalGeometry::binSearchAll
int binSearchAll(double ly, int depth, bool regular=false) const
ILocalGeometry.h
LArG4::HEC::LocalGeometry::m_geoDbTagSvc
ServiceHandle< IGeoDbTagSvc > m_geoDbTagSvc
Definition: LocalGeometry.h:52
LArG4::HEC::LocalGeometry::m_firstAbsorber
double m_firstAbsorber[7]
Definition: LocalGeometry.h:56
LArG4::HEC::LocalGeometry::m_pads
double m_pads[7][15]
Definition: LocalGeometry.h:57
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:228
python.SystemOfUnits.mm
int mm
Definition: SystemOfUnits.py:83
LArG4::HEC::LocalGeometry::m_geoModel
ServiceHandle< IGeoModelSvc > m_geoModel
Definition: LocalGeometry.h:51
LArG4::HEC::LocalGeometry
Definition: LocalGeometry.h:33
LArG4::HEC::LocalGeometry::m_depthSize
double m_depthSize[7]
Definition: LocalGeometry.h:55
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
LArG4::HEC::LocalGeometry::m_isX
bool m_isX
Definition: LocalGeometry.h:54
AthService.h
IGeoModelSvc.h
LArG4::HEC::LocalGeometry::initialize
StatusCode initialize() override final
LArG4::HEC::LocalGeometry::m_betweenWheel
double m_betweenWheel
Definition: LocalGeometry.h:58
IGeoDbTagSvc.h
ServiceHandle< IGeoModelSvc >