forked from AIDASoft/podio
-
Notifications
You must be signed in to change notification settings - Fork 0
/
datalayout.yaml
executable file
·193 lines (167 loc) · 6.22 KB
/
datalayout.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
---
schema_version : 1
options :
# should getters / setters be prefixed with get / set?
getSyntax: False
# should POD members be exposed with getters/setters in classes that have them as members?
exposePODMembers: True
includeSubfolder: True
components :
SimpleStruct:
Members:
- int x
- int y
- int z
- std::array<int, 4> p
# can also add c'tors:
ExtraCode :
declaration: "
SimpleStruct() : x(0),y(0),z(0) {}\n
SimpleStruct( const int* v) : x(v[0]),y(v[1]),z(v[2]) {}
"
NotSoSimpleStruct:
Members:
- SimpleStruct data // component members can have descriptions
ex2::NamespaceStruct:
Members:
- int x
- int y
ex2::NamespaceInNamespaceStruct:
Members:
- ex2::NamespaceStruct data
StructWithFixedWithTypes:
Members:
- uint16_t fixedUnsigned16 // unsigned int with exactly 16 bits
- std::int64_t fixedInteger64 // int with exactly 64 bits
- int32_t fixedInteger32 // int with exactly 32 bits
CompWithInit:
Members:
- int i{42} // is there even another value to initialize ints to?
- std::array<double, 10> arr {1.2, 3.4} // half initialized double array
datatypes :
EventInfo:
Description : "Event info"
Author : "B. Hegner"
Members :
- int Number // event number
MutableExtraCode :
declaration: "void setNumber(int n) { Number( n ) ; } "
ExtraCode:
declaration: "int getNumber() const;"
implementation: "int {name}::getNumber() const { return Number(); }"
ExampleHit :
Description : "Example Hit"
Author : "B. Hegner"
Members:
- unsigned long long cellID // cellID
- double x // x-coordinate
- double y // y-coordinate
- double z // z-coordinate
- double energy // measured energy deposit
ExampleMC :
Description : "Example MC-particle"
Author: "F.Gaede"
Members:
- double energy // energy
- int PDG // PDG code
OneToManyRelations:
- ExampleMC parents // parents
- ExampleMC daughters // daughters
ExampleCluster :
Description : "Cluster"
Author : "B. Hegner"
Members:
- double energy // cluster energy
OneToManyRelations:
- ExampleHit Hits // hits contained in the cluster
- ExampleCluster Clusters // sub clusters used to create this cluster
ExampleReferencingType :
Description : "Referencing Type"
Author : "B. Hegner"
OneToManyRelations:
- ExampleCluster Clusters // some refs to Clusters
- ExampleReferencingType Refs // refs into same type
ExampleWithVectorMember :
Description : "Type with a vector member"
Author : "B. Hegner"
VectorMembers:
- int count // various ADC counts
ExampleWithOneRelation :
Description : "Type with one relation member"
Author : "Benedikt Hegner"
OneToOneRelations:
- ExampleCluster cluster // a particular cluster
ExampleWithArrayComponent:
Description: "A type that has a component with an array"
Author: "Thomas Madlener"
Members:
- SimpleStruct s // a component that has an array
ExampleWithComponent :
Description : "Type with one component"
Author : "Benedikt Hegner"
Members :
- NotSoSimpleStruct component // a component
ExampleForCyclicDependency1 :
Description : "Type for cyclic dependency"
Author : "Benedikt Hegner"
OneToOneRelations :
- ExampleForCyclicDependency2 ref // a ref
ExampleForCyclicDependency2 :
Description : "Type for cyclic dependency"
Author : "Benedikt Hegner"
OneToOneRelations :
- ExampleForCyclicDependency1 ref // a ref
# ExampleWithArray :
# Description : "Type with an array"
# Author : "Benedikt Hegner"
# Members:
# - std::array<int,33> array // the array
ex42::ExampleWithNamespace :
Description : "Type with namespace and namespaced member"
Author : "Joschka Lingemann"
Members:
- ex2::NamespaceStruct component // a component
ex42::ExampleWithARelation :
Description : "Type with namespace and namespaced relation"
Author : "Joschka Lingemann"
Members:
- float number // just a number
OneToOneRelations :
- ex42::ExampleWithNamespace ref // a ref in a namespace
OneToManyRelations :
- ex42::ExampleWithNamespace refs // multiple refs in a namespace
ExampleWithDifferentNamespaceRelations:
Description: "Datatype using a namespaced relation without being in the same namespace"
Author: "Thomas Madlener"
OneToOneRelations:
- ex42::ExampleWithNamespace rel // a relation in a different namespace
OneToManyRelations:
- ex42::ExampleWithNamespace rels // relations in a different namespace
ExampleWithArray:
Description: "Datatype with an array member"
Author: "Joschka Lingemann"
Members:
- NotSoSimpleStruct arrayStruct // component that contains an array
- std::array<int,4> myArray // array-member without space to test regex
- std::array<int, 4> anotherArray2 // array-member with space to test regex
- std::array<int, 4> snail_case_array // snail case to test regex
- std::array<int, 4> snail_case_Array3 // mixing things up for regex
- std::array<ex2::NamespaceStruct, 4> structArray // an array containing structs
ExampleWithFixedWidthIntegers:
Description: "Datatype using fixed width integer types as members"
Author: "Thomas Madlener"
Members:
- std::int16_t fixedI16 // some integer with exactly 16 bits
- uint64_t fixedU64 // unsigned int with exactly 64 bits
- uint32_t fixedU32 // unsigned int with exactly 32 bits
- StructWithFixedWithTypes fixedWidthStruct // struct with more fixed width types
- std::array<int16_t, 2> fixedWidthArray // 32 bits split into two times 16 bits
ExampleWithUserInit:
Description: "Datatype with user defined initialization values"
Author: "Thomas Madlener"
Members:
- std::int16_t i16Val{42} // some int16 value
- std::array<float, 2> floats {3.14f, 1.23f} // some float values
- ex2::NamespaceStruct s{10, 11} // one that we happen to know works
- double d{9.876e5} // double val
- CompWithInit comp // To make sure that the default initializer of the component does what it should