ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
LArCalorimeter
LArG4
LArG4EC
src
CalibrationCalculator.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::EC::CalibrationCalculator
6
7
// based on:
10
11
// This class calculates the values needed for calibration hits in the
12
// simulation.
13
14
// A "calculator" is used in much the same way as a hand-held
15
// calculator might be. The user supplies a value and hits 'Enter'
16
// (i.e., invokes the Process() method). Then they read off whatever
17
// values are of interest.
18
19
#ifndef LArG4_EC_CalibrationCalculator_H
20
#define LArG4_EC_CalibrationCalculator_H
21
22
#include "
LArG4Code/LArCalibCalculatorSvcImp.h
"
23
#include "
LArG4Code/LArG4Identifier.h
"
24
25
#include "
CaloG4Sim/SimulationEnergies.h
"
26
27
#include "
GeoSpecialShapes/LArWheelCalculator.h
"
28
29
#include "globals.hh"
30
31
#include <vector>
32
33
// Forward declaractions:
34
class
G4Step;
35
class
ILArCalculatorSvc
;
36
37
// Note the use of nested namespaces (mainly to prevent long names
38
// like LArG4HECCalibrationCalculator). This class is contained in
39
// the namespace LArG4::EC.
40
41
namespace
LArG4
{
42
43
namespace
EC
{
44
45
// Forward declaration
46
class
Geometry
;
47
48
class
CalibrationCalculator
:
public
LArCalibCalculatorSvcImp
{
49
public
:
50
51
//CalibrationCalculator(LArWheelCalculator::LArWheelCalculator_t, int);
52
CalibrationCalculator
(
const
std::string& name, ISvcLocator *pSvcLocator);
53
virtual
~CalibrationCalculator
();
54
// Update handler
55
void
WheelTypeHandler
(Gaudi::Details::PropertyBase&);
56
StatusCode
initialize
() override final;
57
58
// The Process method returns a boolean value. If it's true, the
59
// hit can be used by Geant4; if it's false, there's something wrong
60
// with the energy deposit and it should be ignored.
61
62
// For calibration work, most of the time we want the calculator
63
// to determine both the energy and the identifier. However,
64
// sometimes we want it calculate only the identifier (for
65
// escaped energy), or only the energy (no known application
66
// yet, but you can never tell). Use the enum (defined in
67
// VCalibrationCalculator.h) to control any special processing.
68
69
virtual G4bool
Process
(
const
G4Step* step,
LArG4Identifier
& identifier,
LArG4Identifier
& identifier_sr,
70
std
::
vector
<G4double> & energies,
71
const
eCalculatorProcessing
p =
kEnergyAndID
)
const
override final;
72
73
private
:
74
75
IntegerProperty
m_zside
{
this
,
"zSide"
, 0};
76
UnsignedShortProperty
m_wcalc_tProp
{
this
,
"WheelType"
, 0, &
CalibrationCalculator::WheelTypeHandler
};
77
LArG4::LArWheelCalculator_t
m_wcalc_t
;
78
79
// Geometry calculator
80
ServiceHandle<ILArCalculatorSvc>
m_geometryCalculator
{
this
,
"GeometryCalculator"
,
""
};
81
82
// Energy calculator
83
CaloG4::SimulationEnergies
m_energyCalculator
;
84
85
};
86
87
}
// namespace EC
88
89
}
// namespace LArG4
90
91
#endif
// LArG4_EC_CalibrationCalculator_H
LArCalibCalculatorSvcImp.h
LArG4Identifier.h
LArWheelCalculator.h
SimulationEnergies.h
CaloG4::SimulationEnergies
This class implements the calculations requires to categorize the energies deposited during the simul...
Definition
SimulationEnergies.h:47
ILArCalculatorSvc
Definition
ILArCalculatorSvc.h:25
LArCalibCalculatorSvcImp::LArCalibCalculatorSvcImp
LArCalibCalculatorSvcImp(const std::string &name, ISvcLocator *pSvcLocator)
Definition
LArCalibCalculatorSvcImp.cxx:7
LArG4Identifier
Definition
LArG4Identifier.h:121
LArG4::EC::CalibrationCalculator::m_energyCalculator
CaloG4::SimulationEnergies m_energyCalculator
Definition
CalibrationCalculator.h:83
LArG4::EC::CalibrationCalculator::Process
virtual G4bool Process(const G4Step *step, LArG4Identifier &identifier, LArG4Identifier &identifier_sr, std::vector< G4double > &energies, const eCalculatorProcessing p=kEnergyAndID) const override final
LArG4::EC::CalibrationCalculator::m_geometryCalculator
ServiceHandle< ILArCalculatorSvc > m_geometryCalculator
Definition
CalibrationCalculator.h:80
LArG4::EC::CalibrationCalculator::WheelTypeHandler
void WheelTypeHandler(Gaudi::Details::PropertyBase &)
LArG4::EC::CalibrationCalculator::m_zside
IntegerProperty m_zside
Definition
CalibrationCalculator.h:75
LArG4::EC::CalibrationCalculator::m_wcalc_t
LArG4::LArWheelCalculator_t m_wcalc_t
Definition
CalibrationCalculator.h:77
LArG4::EC::CalibrationCalculator::initialize
StatusCode initialize() override final
LArG4::EC::CalibrationCalculator::m_wcalc_tProp
UnsignedShortProperty m_wcalc_tProp
Definition
CalibrationCalculator.h:76
LArG4::EC::CalibrationCalculator::~CalibrationCalculator
virtual ~CalibrationCalculator()
LArG4::EC::CalibrationCalculator::CalibrationCalculator
CalibrationCalculator(const std::string &name, ISvcLocator *pSvcLocator)
ServiceHandle
Definition
ClusterMakerTool.h:36
vector
Definition
MultiHisto.h:13
const
LArG4::EC
Definition
PresamplerGeometry.h:33
LArG4
Definition
LArWheelCalculatorEnums.h:8
LArG4::eCalculatorProcessing
eCalculatorProcessing
Definition
LArG4EnumDefs.h:10
LArG4::kEnergyAndID
@ kEnergyAndID
Definition
LArG4EnumDefs.h:10
LArG4::LArWheelCalculator_t
LArWheelCalculator_t
Definition
LArWheelCalculatorEnums.h:10
egEnergyCorr::Geometry
Geometry
Definition
egammaEnergyCorrectionTool.h:351
std
STL namespace.
private
#define private
Definition
testRead.cxx:27
Generated on
for ATLAS Offline Software by
1.17.0