|
fire v0.19.0
Framework for sImulation and Reconstruction of Events
|
Geant4 does a GLOBAL definition of the keyword TRUE. More...
Namespaces | |
| namespace | class_version_impl |
| hide the SFINAE confusing nonsense from the rest of the world | |
| namespace | root |
| Reading of ROOT TTree files generated by ROOT-based Framework. | |
Classes | |
| class | AbstractData |
| Type-specific base class to hold common data methods. More... | |
| struct | access |
| empty struct for connecting a instance of Data and the type it wraps More... | |
| class | BaseData |
| Empty data base allowing recursion. More... | |
| struct | constants |
| Structure constants vital to serialization method. More... | |
| class | Data |
| General data set. More... | |
| class | Data< AtomicType, std::enable_if_t< is_atomic_v< AtomicType > > > |
| Data wrapper for atomic types. More... | |
| class | Data< ParameterStorage > |
| io::Data specialization for ParameterStorage More... | |
| class | Data< std::map< KeyType, ValType > > |
| Our wrapper around std::map. More... | |
| class | Data< std::vector< ContentType > > |
| Our wrapper around std::vector. More... | |
| class | ParameterStorage |
| Provides dynamic parameter storage by interfacing between a map to variants storing parameters and a h5::Data secialization. More... | |
| class | Reader |
| Prototype for reading files within fire. More... | |
| class | Writer |
| Write the fire DataSets into a deterministic structure in the output HDF5 data file. More... | |
Typedefs | |
| template<typename AtomicType > | |
| using | is_atomic = std::integral_constant< bool, std::is_arithmetic< AtomicType >::value||std::is_same< AtomicType, std::string >::value > |
| HighFive supports many C++ "atomic" types that are used regularly. More... | |
Enumerations | |
| enum class | Bool : bool { TRUE = true , FALSE = false } |
| Boolean enum aligned with h5py. More... | |
Functions | |
| HighFive::EnumType< Bool > | create_enum_bool () |
| HighFive method for creating the enum data type. | |
| std::unique_ptr< io::Reader > | open (const std::string &fp) |
| open an input file for reading More... | |
Variables | |
| template<typename AtomicType > | |
| constexpr bool | is_atomic_v = is_atomic<AtomicType>::value |
| shorthand for easier use | |
| template<typename T > | |
| constexpr int | class_version = class_version_impl::deducer<T>::version::value |
| Helper const expression to pull out class version number. More... | |
Geant4 does a GLOBAL definition of the keyword TRUE.
Disk input/output namespace.
serialization to and from HDF5 files
Isolation of lower-level interaction with HDF5 files is done here. These classes should never be used directly by the end user except for the attaching-method of defining new serializable types as described in Getting Started.
Below is a sketch of how the various fire::io::Data template classes interact with each other and the broader fire ecosystem.
| using fire::io::is_atomic = typedef std::integral_constant<bool, std::is_arithmetic<AtomicType>::value || std::is_same<AtomicType, std::string>::value> |
HighFive supports many C++ "atomic" types that are used regularly.
In order to conform to our more flexible structure, I have isolated their deduction into this (currently small) header file.
This will make it easier to fold in future atomic types if we see fit.
|
strong |
Boolean enum aligned with h5py.
We serialize bools in the same method as h5py so that Python-based analyses are easier.
| std::unique_ptr< io::Reader > fire::io::open | ( | const std::string & | fp | ) |
open an input file for reading
| fire::Exception | if the file does not have a recognized extension. |
root : use fire::io::root::Readerh5 or hdf5 : use fire::io::h5::Reader| [in] | fp | file path to file to open |
|
inlineconstexpr |
Helper const expression to pull out class version number.
Assuming T::version is an std::integral_constant (same as the default template struct), we simply pull out that integral_constant value from class_version_impl::deducer.
in] T class to deduce version for