5#ifndef LARG4_EC_HVHELPER_H
6#define LARG4_EC_HVHELPER_H
16#include "G4ThreeVector.hh"
45 const G4String &version
55 G4int, G4int, G4int, G4int
60 G4double
phi, G4int compartment, G4int eta_bin
65 virtual G4double
GetVoltage(
const G4ThreeVector&, G4int, G4int)
const;
67 const G4ThreeVector&,
const std::pair<G4int, G4int> &
72 const G4String &version,
98 G4int, G4int, G4int, G4int
99 )
const override final;
104 const G4String &version,
119 G4int, G4int, G4int, G4int
120 )
const override final;
125 const G4String &version,
Scalar eta() const
pseudorapidity method
Scalar phi() const
phi method
Wrapper to avoid constant divisions when using units.
AthMessaging(IMessageSvc *msgSvc, const std::string &name)
Constructor.
G4int m_StartPhi[s_NofAtlasSide *s_NofEtaSection *s_NofElectrodeSide]
G4int StartPhi(G4int side, G4int eta, G4int ele) const
const G4int m_NumberOfElectrodesInPhiSection
void SetStartPhi(G4int value, G4int side, G4int eta, G4int ele)
HVHelperV00(const LArWheelCalculator *calc, const G4String &version, G4bool fromDB)
virtual G4int GetPhiSection(G4int, G4int, G4int, G4int) const override final
void ReadMapFromFile(const G4String &version) override final
HVHelperV02(const LArWheelCalculator *calc, const G4String &version, G4bool fromDB)
virtual G4int GetPhiSection(G4int, G4int, G4int, G4int) const override final
void ReadMapFromFile(const G4String &version) override final
static constexpr G4int s_NofElectrodesOut
const G4int m_NofPhiSections
G4double m_Values[s_NofAtlasSide][s_NofEtaSection][s_NofElectrodeSide][s_NofElectrodesOut]
HVHelper(const LArWheelCalculator *calc, const G4String &version)
static constexpr G4int s_NofEtaSection
static constexpr G4int s_NofAtlasSide
const LArWheelCalculator * lwc(void) const
virtual G4double GetVoltage(const G4ThreeVector &, G4int, G4int) const
static std::unique_ptr< const HVHelper > CreateHelper(const LArWheelCalculator *calc, const G4String &version, G4bool fromDB)
static constexpr G4int s_NofElectrodeSide
virtual void ReadMapFromFile(const G4String &version)=0
G4double GetVoltage(const G4ThreeVector &p) const
static const G4double s_EtaLimit[s_NofEtaSection+1]
virtual G4double GetVoltage(const G4ThreeVector &, const std::pair< G4int, G4int > &) const
FILE * OpenFileAndCheckVersion(const G4String &version)
const G4double m_WheelShift
G4double GetVoltageBarrett(G4double phi, G4int compartment, G4int eta_bin) const
virtual G4int GetPhiSection(G4int, G4int, G4int, G4int) const =0
G4int GetEtaSection(const G4ThreeVector &p) const
void AcquireMaps(const G4String &version, G4bool from_DB)
const LArWheelCalculator * m_calculator
This class separates some of the geometry details of the LAr endcap.