ATLAS Offline Software
LArFCALCalibCalculatorBase.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 // LArG4::FCAL::LArFCALCalibCalculator
6 // Prepared Oct./2004 Mohsen Khakzad
7 
8 // This class calculates the values needed for calibration hits in the
9 // simulation.
10 
11 // A "calculator" is used in much the same way as a hand-held
12 // calculator might be. The user supplies a value and hits 'Enter'
13 // Forward declaractions:
14 // (i.e., invokes the Process() method). Then they read off whatever
15 // values are of interest.
16 
17 #ifndef LArFCALCalibCalculatorBase_H
18 #define LArFCALCalibCalculatorBase_H
19 
22 
23 //#include "LArG4FCAL/LArFCALCalculatorBase.h"
24 
26 
27 #include "globals.hh"
28 #include <vector>
29 // Forward declaration for namespace CaloG4.
30 class G4Step;
31 class FCAL_ChannelMap;
32 
33 namespace LArG4 {
34 
35  namespace FCAL {
36 
38  public:
39  LArFCALCalibCalculatorBase(const std::string& name, ISvcLocator *pSvcLocator);
40  virtual StatusCode initialize() override;
41  virtual ~LArFCALCalibCalculatorBase() = default;
42 
43  // The Process method returns a boolean value. If it's true, the
44  // hit can be used by Geant4; if it's false, there's something wrong
45  // with the energy deposit and it should be ignored.
46 
47  // For calibration work, most of the time we want the calculator
48  // to determine both the energy and the identifier. However,
49  // sometimes we want it calculate only the identifier (for
50  // escaped energy), or only the energy (no known application
51  // yet, but you can never tell). Use the enum (defined in
52  // VCalibrationCalculator.h) to control any special processing.
53 
54  virtual G4bool Process (const G4Step* step, LArG4Identifier & identifier,
55  std::vector<G4double> & energies,
56  const eCalculatorProcessing process = kEnergyAndID) const override final;
57 
59  virtual G4double GetdeltaX(){return m_deltaX;} //FIXME public but not part of interface class
60  virtual G4double GetdeltaY(){return m_deltaY;} //FIXME public but not part of interface class
61 
62  protected:
63  Gaudi::Property<G4double> m_deltaX{this, "FCALdeltaX", 0.};
64  Gaudi::Property<G4double> m_deltaY{this, "FCALdeltaY", 0.};
65 
66  Gaudi::Property<G4int> m_FCalSampling{this, "FCALSampling", 0};
67 
68  private:
69  // Energy calculator
71 
72  G4float m_zShift{0.f};
73 
75  };
76  } // namespace FCAL
77 
78 } // namespace LArG4
79 
80 #endif // LArG4_HEC_CalibrationCalculator_H
LArG4Identifier
Definition: LArG4Identifier.h:121
LArCalibCalculatorSvcImp
Definition: LArCalibCalculatorSvcImp.h:12
FCAL_ChannelMap
This class contains the tube and tile maps for the FCAL A tile is of a set of FCAL tubes.
Definition: LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/FCAL_ChannelMap.h:34
CaloG4::SimulationEnergies
Definition: SimulationEnergies.h:47
LArG4::FCAL::LArFCALCalibCalculatorBase::initialize
virtual StatusCode initialize() override
xAOD::identifier
identifier
Definition: UncalibratedMeasurement_v1.cxx:15
LArG4::FCAL::LArFCALCalibCalculatorBase::m_zShift
G4float m_zShift
Definition: LArFCALCalibCalculatorBase.h:72
LArG4
Definition: LArWheelCalculatorEnums.h:8
SUSY_SimplifiedModel_PostInclude.process
string process
Definition: SUSY_SimplifiedModel_PostInclude.py:43
LArG4::FCAL::LArFCALCalibCalculatorBase::GetdeltaY
virtual G4double GetdeltaY()
Definition: LArFCALCalibCalculatorBase.h:60
LArCalibCalculatorSvcImp.h
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
LArG4::FCAL::LArFCALCalibCalculatorBase::GetdeltaX
virtual G4double GetdeltaX()
Definition: LArFCALCalibCalculatorBase.h:59
LArG4::FCAL::LArFCALCalibCalculatorBase::m_FCalSampling
Gaudi::Property< G4int > m_FCalSampling
Definition: LArFCALCalibCalculatorBase.h:66
LArG4::FCAL::LArFCALCalibCalculatorBase::~LArFCALCalibCalculatorBase
virtual ~LArFCALCalibCalculatorBase()=default
LArG4Identifier.h
LArG4::FCAL::LArFCALCalibCalculatorBase::Process
virtual G4bool Process(const G4Step *step, LArG4Identifier &identifier, std::vector< G4double > &energies, const eCalculatorProcessing process=kEnergyAndID) const override final
LArG4::FCAL::LArFCALCalibCalculatorBase::m_ChannelMap
FCAL_ChannelMap * m_ChannelMap
Definition: LArFCALCalibCalculatorBase.h:74
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
LArG4::FCAL::LArFCALCalibCalculatorBase
Definition: LArFCALCalibCalculatorBase.h:37
LArG4::FCAL::LArFCALCalibCalculatorBase::m_deltaY
Gaudi::Property< G4double > m_deltaY
Definition: LArFCALCalibCalculatorBase.h:64
LArSamples::FCAL
@ FCAL
Definition: CaloId.h:26
LArG4::FCAL::LArFCALCalibCalculatorBase::m_energyCalculator
CaloG4::SimulationEnergies m_energyCalculator
Definition: LArFCALCalibCalculatorBase.h:70
LArG4::FCAL::LArFCALCalibCalculatorBase::LArFCALCalibCalculatorBase
LArFCALCalibCalculatorBase(const std::string &name, ISvcLocator *pSvcLocator)
LArCellBinning.step
step
Definition: LArCellBinning.py:158
LArG4::kEnergyAndID
@ kEnergyAndID
Definition: LArG4EnumDefs.h:10
SimulationEnergies.h
LArG4::eCalculatorProcessing
eCalculatorProcessing
Definition: LArG4EnumDefs.h:10
LArG4::FCAL::LArFCALCalibCalculatorBase::m_deltaX
Gaudi::Property< G4double > m_deltaX
Definition: LArFCALCalibCalculatorBase.h:63