|  | 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
decltype(auto) operator()(ObjectId< CI, CM > id) const noexcept
setBGCode setTAP setLVL2ErrorBits bool
void set_Efrac(int sample, double Efracsample)