ATLAS Offline Software
LArG4Barrel/src/CryostatCalibrationLArCalculator.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2021 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:
35 class 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 
42 namespace 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();
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 
75 
76  };
77 
78  } // namespace BarrelCryostat
79 
80 } // namespace LArG4
81 
82 #endif // LArG4_BarrelCryostat_CalibrationLArCalculator_H
LArG4Identifier
Definition: LArG4Identifier.h:121
LArCalibCalculatorSvcImp
Definition: LArCalibCalculatorSvcImp.h:12
LArGeo::VDetectorParameters
Definition: VDetectorParameters.h:29
CaloG4::SimulationEnergies
Definition: SimulationEnergies.h:47
LArVG4DetectorParameters.h
LArG4::BarrelCryostat::CalibrationLArCalculator::Process
virtual G4bool Process(const G4Step *step, LArG4Identifier &identifier, std::vector< G4double > &energies, const eCalculatorProcessing process=kEnergyAndID) const override final
Definition: CryostatCalibrationLArCalculator.cxx:65
xAOD::identifier
identifier
Definition: UncalibratedMeasurement_v1.cxx:15
LArG4
Definition: LArWheelCalculatorEnums.h:8
SUSY_SimplifiedModel_PostInclude.process
string process
Definition: SUSY_SimplifiedModel_PostInclude.py:42
LArG4::BarrelCryostat::CalibrationLArCalculator::~CalibrationLArCalculator
virtual ~CalibrationLArCalculator()
Definition: CryostatCalibrationLArCalculator.cxx:58
LArCalibCalculatorSvcImp.h
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
LArG4::BarrelCryostat::CalibrationLArCalculator
Definition: LArG4Barrel/src/CryostatCalibrationLArCalculator.h:46
LArG4::BarrelCryostat::CalibrationLArCalculator::initialize
StatusCode initialize() override final
Definition: CryostatCalibrationLArCalculator.cxx:48
LArG4Identifier.h
LArG4::BarrelCryostat::CalibrationLArCalculator::m_energyCalculator
CaloG4::SimulationEnergies m_energyCalculator
Definition: LArG4Barrel/src/CryostatCalibrationLArCalculator.h:69
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
LArG4::BarrelCryostat::CalibrationLArCalculator::m_parameters
const LArVG4DetectorParameters * m_parameters
Definition: LArG4Barrel/src/CryostatCalibrationLArCalculator.h:72
LArG4::BarrelCryostat::CalibrationLArCalculator::m_defaultCalculator
ServiceHandle< ILArCalibCalculatorSvc > m_defaultCalculator
Definition: LArG4Barrel/src/CryostatCalibrationLArCalculator.h:74
LArG4::BarrelCryostat::CalibrationLArCalculator::CalibrationLArCalculator
CalibrationLArCalculator(const std::string &name, ISvcLocator *pSvcLocator)
Definition: CryostatCalibrationLArCalculator.cxx:40
LArCellBinning.step
step
Definition: LArCellBinning.py:158
LArG4::kEnergyAndID
@ kEnergyAndID
Definition: LArG4EnumDefs.h:10
SimulationEnergies.h
LArG4::eCalculatorProcessing
eCalculatorProcessing
Definition: LArG4EnumDefs.h:10
ServiceHandle< ILArCalibCalculatorSvc >