|
ATLAS Offline Software
|
Go to the documentation of this file.
5 #ifndef ISF_FASTCALOSIMEVENT_TFCSSimulationState_h
6 #define ISF_FASTCALOSIMEVENT_TFCSSimulationState_h
13 #include <unordered_map>
17 #undef FCS_USE_HASH_SORTED_CELLMAP
18 #ifdef FCS_USE_HASH_SORTED_CELLMAP
19 #include "CaloDetDescr/CaloDetDescrElement.h"
26 class HepRandomEngine;
58 #ifdef FCS_USE_HASH_SORTED_CELLMAP
62 return a->calo_hash() <
b->calo_hash();
67 typedef std::map<const CaloDetDescrElement *, float, hashesCmp>
Cellmap_t;
69 typedef std::map<const CaloDetDescrElement *, float>
Cellmap_t;
76 void Print(Option_t *option =
"")
const;
81 void set_SF(
double mysf) { setAuxInfo<double>(
"SF"_FCShash, mysf); };
82 double get_SF() {
return getAuxInfo<double>(
"SF"_FCShash); }
89 void *get_gpu_rand() {
return m_gpu_rand; };
90 void set_gpu_rand(
void *
rand) { m_gpu_rand =
rand; };
91 void *get_geold() {
return m_geold; };
92 void set_geold(
void *geold) { m_geold = geold; };
131 operator bool()
const {
return b; };
132 operator char()
const {
return c; };
133 operator int()
const {
return i; };
136 operator void *()
const {
return p; };
177 std::set<const TFCSParametrizationBase *>
189 template <>
inline void TFCSSimulationState::AuxInfo_t::set<bool>(
bool val) {
192 template <>
inline void TFCSSimulationState::AuxInfo_t::set<char>(
char val) {
195 template <>
inline void TFCSSimulationState::AuxInfo_t::set<int>(
int val) {
198 template <>
inline void TFCSSimulationState::AuxInfo_t::set<float>(
float val) {
202 inline void TFCSSimulationState::AuxInfo_t::set<double>(
double val) {
205 template <>
inline void TFCSSimulationState::AuxInfo_t::set<void *>(
void *
val) {
static constexpr std::uint32_t fnv1a_32(char const *s, std::size_t count)
const T getAuxInfo(std::uint32_t index) const
double Efrac(int sample) const
This class groups all DetDescr information related to a CaloCell. Provides a generic interface for al...
CLHEP::HepRandomEngine * randomEngine()
CLHEP::HepRandomEngine * m_randomEngine
static std::uint32_t getAuxIndex(const std::string &s)
@ u
Enums for curvilinear frames.
void add_E(int sample, double Esample)
std::set< const TFCSParametrizationBase * > m_AuxInfoCleanup
Do not persistify.
void deposit(const CaloDetDescrElement *cellele, float E)
bool hasAuxInfo(std::uint32_t index) const
void Print(Option_t *option="") const
TFCSSimulationState(CLHEP::HepRandomEngine *randomEngine=nullptr)
double m_E[CaloCell_ID_FCS::MaxSample]
std::map< const CaloDetDescrElement *, float > Cellmap_t
void setAuxInfo(std::uint32_t index, const T &val)
void set_E(int sample, double Esample)
void setRandomEngine(CLHEP::HepRandomEngine *engine)
const Cellmap_t & cells() const
void AddAuxInfoCleanup(const TFCSParametrizationBase *para)
double m_Efrac[CaloCell_ID_FCS::MaxSample]
std::unordered_map< std::uint32_t, AuxInfo_t > m_AuxInfo
double E(int sample) const
setBGCode setTAP setLVL2ErrorBits bool
void set_Efrac(int sample, double Efracsample)