ATLAS Offline Software
EMECSupportCalibrationCalculator.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::EMECSupport::CalibrationCalculator
6 // Prepared 9-Sep-2004 Mikhail Leltchouk
7 
8 // This class calculates the values needed for calibration hits in the
9 // simulation.
10 
11 // This particular class is meant to be be used for particular volumes
12 // in the endcap. Some volumes have identifiers that change
13 // significantly (mixed samplings, types, subdets) within that single
14 // volume. This calculator handles those special cases.
15 
16 #ifndef LArG4_EMECSupport_CalibrationCalculator_H
17 #define LArG4_EMECSupport_CalibrationCalculator_H
18 
24 #include "globals.hh"
25 
26 #include <vector>
27 
28 // Forward declaractions:
29 class G4Step;
30 
31 // Note the use of nested namespaces (mainly to prevent long names).
32 // This class is contained in the namespace LArG4::EMECSupport.
33 
34 namespace LArG4 {
35 
36  // namespace EMECSupport {
37 
39  public:
40 
41  EMECSupportCalibrationCalculator(const std::string& name, ISvcLocator *pSvcLocator);
44  StatusCode initialize() override final;
46 
47  // The Process method returns a boolean value. If it's true, the
48  // hit can be used by Geant4; if it's false, there's something wrong
49  // with the energy deposit and it should be ignored.
50 
51  // For calibration work, most of the time we want the calculator
52  // to determine both the energy and the identifier. However,
53  // sometimes we want it calculate only the identifier (for
54  // escaped energy), or only the energy (no known application
55  // yet, but you can never tell). Use the enum (defined in
56  // VCalibrationCalculator.h) to control any special processing.
57 
58  virtual G4bool Process (const G4Step* step, LArG4Identifier & identifier,
59  std::vector<G4double> & energies,
61 
62  private:
63 
64  // Energy calculator
65  CaloG4::SimulationEnergies m_energyCalculator{};
66 
67  class Parameters;
68  const Parameters *m_par{nullptr};
69 
70  // Access to parameters.
71  //LArGeo::VDetectorParameters* m_parameters;
72 
73  // Define a "backup" calculator.
74  ServiceHandle<ILArCalibCalculatorSvc> m_backupCalculator{this, "BackupCalculator", "EndcapCryostatCalibrationLArCalculator"};
75  };
76 
77  // } // namespace EMECSupport
78 
79 } // namespace LArG4
80 
81 #endif // LArG4_EMECSupport_CalibrationCalculator_H
LArG4Identifier
Definition: LArG4Identifier.h:121
LArCalibCalculatorSvcImp
Definition: LArCalibCalculatorSvcImp.h:12
LArG4::EMECSupportCalibrationCalculator
Definition: EMECSupportCalibrationCalculator.h:38
MuonR4::SegmentFit::Parameters
AmgVector(toInt(ParamDefs::nPars)) Parameters
Definition: MuonHoughDefs.h:48
LArG4::EMECSupportCalibrationCalculator::m_par
const Parameters * m_par
Definition: EMECSupportCalibrationCalculator.h:68
LArG4::EMECSupportCalibrationCalculator::operator=
EMECSupportCalibrationCalculator & operator=(const EMECSupportCalibrationCalculator &)=delete
CryostatCalibrationLArCalculator.h
xAOD::identifier
identifier
Definition: UncalibratedMeasurement_v1.cxx:15
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:560
LArG4
Definition: LArWheelCalculatorEnums.h:8
LArG4::EMECSupportCalibrationCalculator::Process
virtual G4bool Process(const G4Step *step, LArG4Identifier &identifier, std::vector< G4double > &energies, const eCalculatorProcessing p=kEnergyAndID) const override final
LArG4::EMECSupportCalibrationCalculator::initialize
StatusCode initialize() override final
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:209
LArCalibCalculatorSvcImp.h
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
vector
Definition: MultiHisto.h:13
LArG4Identifier.h
CaloG4
Definition: EscapedEnergyRegistry.h:21
LArG4::EMECSupportCalibrationCalculator::m_energyCalculator
CaloG4::SimulationEnergies m_energyCalculator
Definition: EMECSupportCalibrationCalculator.h:65
VDetectorParameters.h
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
LArG4::EMECSupportCalibrationCalculator::EMECSupportCalibrationCalculator
EMECSupportCalibrationCalculator(const EMECSupportCalibrationCalculator &)=delete
LArG4::EMECSupportCalibrationCalculator::m_backupCalculator
ServiceHandle< ILArCalibCalculatorSvc > m_backupCalculator
Definition: EMECSupportCalibrationCalculator.h:74
LArG4::EMECSupportCalibrationCalculator::EMECSupportCalibrationCalculator
EMECSupportCalibrationCalculator(const std::string &name, ISvcLocator *pSvcLocator)
LArCellBinning.step
step
Definition: LArCellBinning.py:158
private
#define private
Definition: xAODTruthCnvAlg.h:20
LArG4::kEnergyAndID
@ kEnergyAndID
Definition: LArG4EnumDefs.h:10
SimulationEnergies.h
LArG4::eCalculatorProcessing
eCalculatorProcessing
Definition: LArG4EnumDefs.h:10
ServiceHandle< ILArCalibCalculatorSvc >