Warning, file /include/JANA/examples/PodioDatamodel/DatamodelDefinition.h was not indexed
or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001
0002
0003 #ifndef PodioDatamodelDATAMODEL_DEFINITION_H
0004 #define PodioDatamodelDATAMODEL_DEFINITION_H
0005
0006 #include "podio/DatamodelRegistry.h"
0007 #include "podio/SchemaEvolution.h"
0008
0009 namespace PodioDatamodel::meta {
0010
0011
0012
0013 static constexpr auto PodioDatamodel__JSONDefinition = R"DATAMODELDEF({"options": {"getSyntax": false, "exposePODMembers": true, "includeSubfolder": "PodioDatamodel/"}, "schema_version": 1, "components": {}, "datatypes": {"EventInfo": {"Description": "Event info", "Author": "N. Brei", "Members": ["int EventNumber
0014
0015
0016
0017
0018
0019 inline podio::RelationNameMapping PodioDatamodel__getRelationNames() {
0020 using namespace std::string_view_literals;
0021 return {
0022 {"EventInfo"sv,
0023 { },
0024 { },
0025 },
0026 {"TimesliceInfo"sv,
0027 { },
0028 { },
0029 },
0030 {"ExampleHit"sv,
0031 { },
0032 { },
0033 },
0034 {"ExampleCluster"sv,
0035 { "Hits"sv, "Clusters"sv },
0036 { },
0037 },
0038 };
0039 }
0040
0041
0042
0043
0044 static constexpr podio::SchemaVersionT schemaVersion = 1;
0045
0046
0047
0048
0049
0050
0051
0052
0053 class DatamodelRegistryIndex {
0054 public:
0055 static size_t value() {
0056 static const auto relationNames = PodioDatamodel__getRelationNames();
0057 static auto index =
0058 DatamodelRegistryIndex(podio::DatamodelRegistry::mutInstance().registerDatamodel(
0059 "PodioDatamodel",
0060 PodioDatamodel__JSONDefinition,
0061 relationNames
0062 ));
0063 return index.m_value;
0064 }
0065 private:
0066 DatamodelRegistryIndex(size_t v) : m_value(v) {}
0067 size_t m_value{podio::DatamodelRegistry::NoDefinitionAvailable};
0068 };
0069
0070
0071 namespace static_registration {
0072
0073
0074 inline bool ensureRegistration() {
0075 const static auto reg = []() {
0076 return PodioDatamodel::meta::DatamodelRegistryIndex::value() != podio::DatamodelRegistry::NoDefinitionAvailable;
0077 }();
0078 return reg;
0079 }
0080
0081 const auto registrationEnsured = ensureRegistration();
0082 }
0083
0084 }
0085
0086 #endif