ATLAS Offline Software
Loading...
Searching...
No Matches
LArFCALCalibCalculatorBase.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::FCAL::LArFCALCalibCalculator
6// Prepared Oct./2004 Mohsen Khakzad
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// Forward declaractions:
14// (i.e., invokes the Process() method). Then they read off whatever
15// values are of interest.
16
17#ifndef LArFCALCalibCalculatorBase_H
18#define LArFCALCalibCalculatorBase_H
19
22
23//#include "LArG4FCAL/LArFCALCalculatorBase.h"
24
26
27#include "globals.hh"
28#include <vector>
29// Forward declaration for namespace CaloG4.
30class G4Step;
31class FCAL_ChannelMap;
32
33namespace LArG4 {
34
35 namespace FCAL {
36
38 public:
39 LArFCALCalibCalculatorBase(const std::string& name, ISvcLocator *pSvcLocator);
40 virtual StatusCode initialize() override;
41 virtual ~LArFCALCalibCalculatorBase() = default;
42
43 // The Process method returns a boolean value. If it's true, the
44 // hit can be used by Geant4; if it's false, there's something wrong
45 // with the energy deposit and it should be ignored.
46
47 // For calibration work, most of the time we want the calculator
48 // to determine both the energy and the identifier. However,
49 // sometimes we want it calculate only the identifier (for
50 // escaped energy), or only the energy (no known application
51 // yet, but you can never tell). Use the enum (defined in
52 // VCalibrationCalculator.h) to control any special processing.
53
54 virtual G4bool Process (const G4Step* step, LArG4Identifier & identifier,
55 std::vector<G4double> & energies,
56 const eCalculatorProcessing process = kEnergyAndID) const override final;
57
59 virtual G4double GetdeltaX(){return m_deltaX;} //FIXME public but not part of interface class
60 virtual G4double GetdeltaY(){return m_deltaY;} //FIXME public but not part of interface class
61
62 protected:
63 Gaudi::Property<G4double> m_deltaX{this, "FCALdeltaX", 0.};
64 Gaudi::Property<G4double> m_deltaY{this, "FCALdeltaY", 0.};
65
66 Gaudi::Property<G4int> m_FCalSampling{this, "FCALSampling", 0};
67
68 private:
69 // Energy calculator
71
72 G4float m_zShift{0.f};
73
75 };
76 } // namespace FCAL
77
78} // namespace LArG4
79
80#endif // LArG4_HEC_CalibrationCalculator_H
This class implements the calculations requires to categorize the energies deposited during the simul...
This class contains the tube and tile maps for the FCAL A tile is of a set of FCAL tubes.
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
virtual StatusCode initialize() override
LArFCALCalibCalculatorBase(const std::string &name, ISvcLocator *pSvcLocator)
const std::string process
eCalculatorProcessing
@ kEnergyAndID