ATLAS Offline Software
Loading...
Searching...
No Matches
LArG4Barrel/src/CryostatCalibrationLArCalculator.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::BarrelCryostat::CalibrationLArCalculator
6// Prepared 13-Aug-2004 Bill Seligman
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// (i.e., invokes the Process() method). Then they read off whatever
14// values are of interest.
15
16// This particular class is meant to be be used for general LAr
17// regions within the barrel cryostat. The liquid-argon volumes
18// typically "fill in the cracks" between all other volumes; this
19// calculator determines the identifiers for such "cracks".
20
21#ifndef LArG4_BarrelCryostat_CalibrationLArCalculator_H
22#define LArG4_BarrelCryostat_CalibrationLArCalculator_H
23
27
29
30#include "globals.hh"
31
32#include <vector>
33
34// Forward declaractions:
35class G4Step;
36
37
38// Note the use of nested namespaces (mainly to prevent long names
39// like LArG4HECCalibrationCalculator). This class is contained in
40// the namespace LArG4::BarrelCryostat.
41
42namespace LArG4 {
43
44 namespace BarrelCryostat {
45
47 public:
48
49 CalibrationLArCalculator(const std::string& name, ISvcLocator *pSvcLocator);
50 StatusCode initialize() override final;
51 virtual ~CalibrationLArCalculator() = default;
52
53 // The Process method returns a boolean value. If it's true, the
54 // hit can be used by Geant4; if it's false, there's something wrong
55 // with the energy deposit and it should be ignored.
56
57 // For calibration work, most of the time we want the calculator
58 // to determine both the energy and the identifier. However,
59 // sometimes we want it calculate only the identifier (for
60 // escaped energy), or only the energy (no known application
61 // yet, but you can never tell). Use the enum (defined in
62 // VCalibrationCalculator.h) to control any special processing.
63 virtual G4bool Process (const G4Step* step, LArG4Identifier & identifier,
64 std::vector<G4double> & energies,
65 const eCalculatorProcessing process = kEnergyAndID) const override final;
66
67 private:
68 // Energy calculator
70
71 // Access to parameters.
73
74 ServiceHandle<ILArCalibCalculatorSvc> m_defaultCalculator{this, "DefaultCalculator", "CalibrationDefaultCalculator"};
75 };
76
77 } // namespace BarrelCryostat
78
79} // namespace LArG4
80
81#endif // LArG4_BarrelCryostat_CalibrationLArCalculator_H
LArGeo::VDetectorParameters LArVG4DetectorParameters
This class implements the calculations requires to categorize the energies deposited during the simul...
LArCalibCalculatorSvcImp(const std::string &name, ISvcLocator *pSvcLocator)
virtual G4bool Process(const G4Step *step, LArG4Identifier &identifier, std::vector< G4double > &energies, const eCalculatorProcessing process=kEnergyAndID) const override final
CalibrationLArCalculator(const std::string &name, ISvcLocator *pSvcLocator)
const std::string process
eCalculatorProcessing
@ kEnergyAndID