ATLAS Offline Software
Loading...
Searching...
No Matches
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:
29class 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
34namespace 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
LArCalibCalculatorSvcImp(const std::string &name, ISvcLocator *pSvcLocator)
virtual G4bool Process(const G4Step *step, LArG4Identifier &identifier, std::vector< G4double > &energies, const eCalculatorProcessing p=kEnergyAndID) const override final
EMECSupportCalibrationCalculator(const std::string &name, ISvcLocator *pSvcLocator)
EMECSupportCalibrationCalculator(const EMECSupportCalibrationCalculator &)=delete
StatusCode initialize() override final
EMECSupportCalibrationCalculator & operator=(const EMECSupportCalibrationCalculator &)=delete
ServiceHandle< ILArCalibCalculatorSvc > m_backupCalculator
eCalculatorProcessing
@ kEnergyAndID
STL namespace.
#define private