ATLAS Offline Software
Loading...
Searching...
No Matches
LArFCALCalculatorBase.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// LArFCALCalculator
6// 20-Feb-2003 Bill Seligman (from Peter Loch)
7
8// A base class for the calculators required for the individual
9// modules.
10
11#ifndef LArFCALCalculatorBase_H
12#define LArFCALCalculatorBase_H
13
14//-----------------------------------------------------------------------------
15//
16// Forward Calorimeter Construction in GEANT4
17//
18//-----------------------------------------------------------------------------
22#include "LArReadoutGeometry/FCAL_ChannelMap.h"
23#include "LArHV/FCALHVManager.h"
24#include "globals.hh"
25#include <stdexcept>
26
27class LArG4BirksLaw;
28class FCALModule;
29
31{
32 public:
33 // constructor
34 LArFCALCalculatorBase(const std::string& name, ISvcLocator *pSvcLocator);
37 virtual StatusCode initialize() override;
38
40
41 virtual G4float OOTcut() const override final { return m_OOTcut; }
42
43 virtual G4bool Process(const G4Step*, std::vector<LArHitData>&) const override final;
44
45 // Check if the current hitTime is in-time
46 virtual G4bool isInTime(G4double hitTime) const override final
47 {
48 return !(hitTime > m_OOTcut); //FIXME should we be checking the absolute value of hitTime here?
49 }
50
52
53
54 protected:
55 Gaudi::Property<bool> m_doHV{this, "FCALHVEnable", false};
56 Gaudi::Property<G4int> m_FCalSampling{this, "FCALSampling", 0};
57
59 const FCALModule *m_posModule{nullptr}; // for hv access here...
60 const FCALModule *m_negModule{nullptr}; // for hv access here...
61 // sampling
62
63 std::unique_ptr<LArG4BirksLaw> m_birksLaw{};
64
66};
67
68#endif // LArFCALCalculatorBase_H
float hitTime(const AFP_SIDSimHit &hit)
This class contains the tube and tile maps for the FCAL A tile is of a set of FCAL tubes.
LArCalculatorSvcImp(const std::string &name, ISvcLocator *pSvcLocator)
Gaudi::Property< double > m_OOTcut
FCALHVManager::FCALHVData m_hvdata
virtual G4float OOTcut() const override final
LArFCALCalculatorBase(const std::string &name, ISvcLocator *pSvcLocator)
virtual G4bool Process(const G4Step *, std::vector< LArHitData > &) const override final
std::unique_ptr< LArG4BirksLaw > m_birksLaw
Gaudi::Property< G4int > m_FCalSampling
const FCALModule * m_posModule
virtual StatusCode initialize() override
LArFCALCalculatorBase(const LArFCALCalculatorBase &)=delete
const FCALModule * m_negModule
LArFCALCalculatorBase operator=(const LArFCALCalculatorBase &)=delete
virtual G4bool isInTime(G4double hitTime) const override final
FCAL_ChannelMap * m_ChannelMap
Gaudi::Property< bool > m_doHV