ATLAS Offline Software
PresamplerGeometry.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 // LArG4::EC::PresamplerGeometry
6 
7 // This class contains the geometry calculations needed to calculate
8 // an identifier for a given G4Step.
9 
10 // 17-Aug-2004: Mikhail Leltchouk wrote the original code, Bill
11 // Seligman revised it for current use.
12 
13 // Note: This class is intended for use in calculating identifiers in
14 // both active and inactive regions of the detector. For calibration
15 // studies, it must work properly whether the energy is deposited in
16 // the liquid argon or the absorber.
17 
18 #ifndef LArG4_EC_PresamplerGeometry_H
19 #define LArG4_EC_PresamplerGeometry_H
22 
23 // Forward declarations.
24 class LArG4Identifier;
25 class G4Step;
26 
27 // Note the use of nested namespaces (mainly to prevent long names
28 // like LArG4HECGeometry). This class is contained in the namespace
29 // LArG4::EC.
30 
31 namespace LArG4 {
32 
33  namespace EC {
34 
35  class PresamplerGeometry: public extends<AthService, IECPresamplerGeometry> {
36 
37  public:
38  // Constructor
39  PresamplerGeometry(const std::string& name, ISvcLocator * pSvcLocator);
40  StatusCode initialize() override final;
41  virtual ~PresamplerGeometry();
42 
43  // 15-Jan-2002 WGS: A "lookup" function for detector measurements,
44  // sizes, and other values.
45  enum kValue {
52  };
53  // This is the "meat" of this class: calculate the identifier
54  // given a G4Step.
55  LArG4Identifier CalculateIdentifier( const G4Step* ) const override final;
56 
57  private:
58 
59  double GetValue(const kValue) const;
60 
61  struct Clockwork;
62  Clockwork *m_c; //FIXME is it really worth creating this struct on the heap?
63 
66  };
67 
68  } // namespace EC
69 
70 } // namespace LArG4
71 
72 #endif // LArG4_EC_PresamplerGeometry_H
LArG4Identifier
Definition: LArG4Identifier.h:121
LArG4::EC::PresamplerGeometry::zEndcapPresamplerFrontFace
@ zEndcapPresamplerFrontFace
Definition: PresamplerGeometry.h:48
LArG4::EC::PresamplerGeometry::operator=
PresamplerGeometry & operator=(const PresamplerGeometry &)
IECPresamplerGeometry.h
LArG4::EC::PresamplerGeometry::m_c
Clockwork * m_c
Definition: PresamplerGeometry.h:61
LArG4::EC::PresamplerGeometry::rMaxEndcapPresampler
@ rMaxEndcapPresampler
Definition: PresamplerGeometry.h:47
LArG4::EC::PresamplerGeometry::zEndcapPresamplerBackFace
@ zEndcapPresamplerBackFace
Definition: PresamplerGeometry.h:49
LArG4::EC::PresamplerGeometry::PresamplerGeometry
PresamplerGeometry(const std::string &name, ISvcLocator *pSvcLocator)
LArG4
Definition: LArWheelCalculatorEnums.h:8
LArG4::EC::PresamplerGeometry::initialize
StatusCode initialize() override final
LArG4::EC::PresamplerGeometry::GetValue
double GetValue(const kValue) const
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
LArG4::EC::PresamplerGeometry
Definition: PresamplerGeometry.h:35
LArG4::EC::PresamplerGeometry::rMinEndcapPresampler
@ rMinEndcapPresampler
Definition: PresamplerGeometry.h:46
LArG4::EC::PresamplerGeometry::EndcapPresamplerHalfThickness
@ EndcapPresamplerHalfThickness
Definition: PresamplerGeometry.h:50
LArG4::EC::PresamplerGeometry::PresamplerGeometry
PresamplerGeometry(const PresamplerGeometry &)
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
LArG4::EC::PresamplerGeometry::kValue
kValue
Definition: PresamplerGeometry.h:45
LArG4::EC::PresamplerGeometry::CalculateIdentifier
LArG4Identifier CalculateIdentifier(const G4Step *) const override final
LArG4::EC::PresamplerGeometry::EndcapPresamplerZpositionInMother
@ EndcapPresamplerZpositionInMother
Definition: PresamplerGeometry.h:51
AthService.h
TRT_PAI_gasdata::EC
const float EC[NC]
Energy levels for Carbon.
Definition: TRT_PAI_gasdata.h:241