File indexing completed on 2025-08-06 08:10:46
0001
0002
0003
0004
0005
0006
0007
0008
0009 #pragma once
0010
0011 #include <ActsExamples/EventData/Index.hpp>
0012
0013 #include <cstdint>
0014
0015 #include <dfe/dfe_namedtuple.hpp>
0016
0017 namespace ActsExamples {
0018
0019 struct ParticleData {
0020
0021 uint64_t particle_id = 0;
0022
0023 int32_t particle_type = 0;
0024
0025 uint32_t process = 0u;
0026
0027 float vx = 0, vy = 0, vz = 0;
0028
0029 float vt = 0.0f;
0030
0031 float px = 0, py = 0, pz = 0;
0032
0033 float m = 0.0f;
0034
0035 float q = 0;
0036
0037 DFE_NAMEDTUPLE(ParticleData, particle_id, particle_type, process, vx, vy, vz,
0038 vt, px, py, pz, m, q);
0039 };
0040
0041
0042 struct SimHitData {
0043
0044 uint64_t geometry_id = 0u;
0045
0046 uint64_t particle_id = 0;
0047
0048 float tx = 0, ty = 0, tz = 0;
0049
0050 float tt = 0.0f;
0051
0052 float tpx = 0, tpy = 0, tpz = 0;
0053
0054
0055 float te = 0.0f;
0056
0057
0058 float deltapx = 0.0f;
0059 float deltapy = 0.0f;
0060 float deltapz = 0.0f;
0061 float deltae = 0.0f;
0062
0063 int32_t index = -1;
0064
0065 DFE_NAMEDTUPLE(SimHitData, particle_id, geometry_id, tx, ty, tz, tt, tpx, tpy,
0066 tpz, te, deltapx, deltapy, deltapz, deltae, index);
0067 };
0068
0069
0070 struct MuonSimHitData {
0071
0072 int pdgId = 0;
0073
0074 int StationName = 0;
0075 int StationEta = 0;
0076 int StationPhi = 0;
0077
0078 float LocalPositionExtrx = 0.0f, LocalPositionExtry = 0.0f,
0079 LocalPositionExtrz = 0.0f;
0080
0081 float LocalDirectionx = 0.0f, LocalDirectiony = 0.0f, LocalDirectionz = 0.0f;
0082 DFE_NAMEDTUPLE(MuonSimHitData, pdgId, StationName, StationEta, StationPhi,
0083 LocalPositionExtrx, LocalPositionExtry, LocalPositionExtrz,
0084 LocalDirectionx, LocalDirectiony, LocalDirectionz);
0085 };
0086
0087
0088 struct MuonDriftCircleData {
0089
0090 float driftRadius = 0.0f;
0091
0092 float tubePositionx = 0.0f, tubePositiony = 0.0f, tubePositionz = 0.0f;
0093
0094 int stationName = 0;
0095 int stationEta = 0;
0096 int stationPhi = 0;
0097
0098 int multilayer = 0;
0099 int tubelayer = 0;
0100 int tube = 0;
0101
0102 DFE_NAMEDTUPLE(MuonDriftCircleData, driftRadius, tubePositionx, tubePositiony,
0103 tubePositionz, stationName, stationEta, stationPhi, multilayer,
0104 tubelayer, tube);
0105 };
0106
0107 struct TruthHitData {
0108
0109
0110
0111 uint64_t hit_id = 0;
0112
0113 uint64_t geometry_id = 0u;
0114
0115 uint64_t particle_id = 0;
0116
0117 float tx = 0, ty = 0, tz = 0;
0118
0119 float tt = 0.0f;
0120
0121 float tpx = 0, tpy = 0, tpz = 0;
0122
0123
0124 float te = 0.0f;
0125
0126
0127 float deltapx = 0.0f;
0128 float deltapy = 0.0f;
0129 float deltapz = 0.0f;
0130 float deltae = 0.0f;
0131
0132 int32_t index = -1;
0133
0134 DFE_NAMEDTUPLE(TruthHitData, hit_id, particle_id, geometry_id, tx, ty, tz, tt,
0135 tpx, tpy, tpz, te, deltapx, deltapy, deltapz, deltae, index);
0136 };
0137
0138 struct HitData {
0139
0140 uint64_t hit_id = 0;
0141
0142 uint64_t geometry_id = 0u;
0143
0144 float x = 0, y = 0, z = 0;
0145
0146 float t = 0.0f;
0147
0148 DFE_NAMEDTUPLE(HitData, hit_id, geometry_id, x, y, z, t);
0149 };
0150
0151 struct MeasurementSimHitLink {
0152
0153 uint64_t measurement_id = 0;
0154
0155 uint64_t hit_id = 0;
0156
0157 DFE_NAMEDTUPLE(MeasurementSimHitLink, measurement_id, hit_id);
0158 };
0159
0160 struct MeasurementData {
0161
0162 uint64_t measurement_id = 0;
0163
0164 uint64_t geometry_id = 0u;
0165
0166 uint8_t local_key = 0;
0167 float local0 = 0, local1 = 0, phi = 0, theta = 0, time = 0;
0168 float var_local0 = 0, var_local1 = 0, var_phi = 0, var_theta = 0,
0169 var_time = 0;
0170
0171 DFE_NAMEDTUPLE(MeasurementData, measurement_id, geometry_id, local_key,
0172 local0, local1, phi, theta, time, var_local0, var_local1,
0173 var_phi, var_theta, var_time);
0174 };
0175
0176 struct CellData {
0177
0178 uint64_t geometry_id = 0u;
0179
0180
0181
0182 uint64_t measurement_id = 0;
0183
0184 int32_t channel0 = 0, channel1 = 0;
0185
0186 float timestamp = 0;
0187
0188 float value = 0;
0189
0190 DFE_NAMEDTUPLE(CellData, geometry_id, measurement_id, channel0, channel1,
0191 timestamp, value);
0192 };
0193
0194
0195 struct CellDataLegacy {
0196
0197 uint64_t geometry_id = 0u;
0198
0199
0200
0201 uint64_t hit_id = 0;
0202
0203 int32_t channel0 = 0, channel1 = 0;
0204
0205 float timestamp = 0;
0206
0207 float value = 0;
0208
0209 DFE_NAMEDTUPLE(CellDataLegacy, geometry_id, hit_id, channel0, channel1,
0210 timestamp, value);
0211 };
0212
0213 struct SurfaceData {
0214
0215 uint64_t geometry_id = 0;
0216
0217 uint32_t volume_id = 0, boundary_id = 0, layer_id = 0, module_id = 0;
0218
0219 float cx = 0, cy = 0, cz = 0;
0220
0221 float rot_xu = 0, rot_xv = 0, rot_xw = 0;
0222 float rot_yu = 0, rot_yv = 0, rot_yw = 0;
0223 float rot_zu = 0, rot_zv = 0, rot_zw = 0;
0224
0225 int bounds_type = 0;
0226 float bound_param0 = -1.f;
0227 float bound_param1 = -1.f;
0228 float bound_param2 = -1.f;
0229 float bound_param3 = -1.f;
0230 float bound_param4 = -1.f;
0231 float bound_param5 = -1.f;
0232 float bound_param6 = -1.f;
0233
0234 float module_t = -1.f;
0235 float pitch_u = -1.f;
0236 float pitch_v = -1.f;
0237
0238 DFE_NAMEDTUPLE(SurfaceData, geometry_id, volume_id, boundary_id, layer_id,
0239 module_id, cx, cy, cz, rot_xu, rot_xv, rot_xw, rot_yu, rot_yv,
0240 rot_yw, rot_zu, rot_zv, rot_zw, bounds_type, bound_param0,
0241 bound_param1, bound_param2, bound_param3, bound_param4,
0242 bound_param5, bound_param6, module_t, pitch_u, pitch_v);
0243 };
0244
0245 struct LayerVolumeData {
0246
0247 uint64_t geometry_id = 0;
0248
0249 uint32_t volume_id = 0, layer_id = 0;
0250
0251 int volume_type = 0;
0252 float min_v0 = -1.f;
0253 float max_v0 = -1.f;
0254 float min_v1 = -1.f;
0255 float max_v1 = -1.f;
0256 float min_v2 = -1.f;
0257 float max_v2 = -1.f;
0258
0259 DFE_NAMEDTUPLE(LayerVolumeData, geometry_id, volume_id, layer_id, min_v0,
0260 max_v0, min_v1, max_v1, min_v2, max_v2);
0261 };
0262
0263 struct SpacePointData {
0264
0265 uint64_t measurement_id = 0;
0266
0267 float sp_x = 0, sp_y = 0, sp_z = 0, sp_radius = 0;
0268 float sp_covr = 0, sp_covz = 0;
0269
0270
0271 float sp_topHalfStripLength = 0;
0272
0273 float sp_bottomHalfStripLength = 0;
0274
0275 Acts::Vector3 sp_topStripDirection;
0276
0277 Acts::Vector3 sp_bottomStripDirection;
0278
0279 Acts::Vector3 sp_stripCenterDistance;
0280
0281 Acts::Vector3 sp_topStripCenterPosition;
0282
0283 DFE_NAMEDTUPLE(SpacePointData, measurement_id, sp_x, sp_y, sp_z, sp_radius,
0284 sp_covr, sp_covz, sp_topHalfStripLength,
0285 sp_bottomHalfStripLength, sp_topStripDirection[0],
0286 sp_topStripDirection[1], sp_topStripDirection[2],
0287 sp_bottomStripDirection[0], sp_bottomStripDirection[1],
0288 sp_bottomStripDirection[2], sp_stripCenterDistance[0],
0289 sp_stripCenterDistance[1], sp_stripCenterDistance[2],
0290 sp_topStripCenterPosition[0], sp_topStripCenterPosition[1],
0291 sp_topStripCenterPosition[2]);
0292 };
0293
0294 struct SurfaceGridData {
0295
0296 uint64_t geometry_id = 0;
0297
0298 uint32_t volume_id = 0, layer_id = 0, surface_id = 0;
0299
0300 int type_loc0 = -1;
0301 int nbins_loc0 = -1;
0302 float min_loc0 = 0, max_loc0 = 0;
0303 int type_loc1 = -1;
0304 int nbins_loc1 = -1;
0305 float min_loc1 = 0, max_loc1 = 0;
0306
0307 DFE_NAMEDTUPLE(SurfaceGridData, geometry_id, volume_id, layer_id, surface_id,
0308 type_loc0, nbins_loc0, min_loc0, max_loc0, type_loc1,
0309 nbins_loc1, min_loc1, max_loc1);
0310 };
0311
0312 struct SpacepointData {
0313 uint64_t measurement_id;
0314 uint64_t geometry_id;
0315 float x, y, z;
0316 float var_r, var_z;
0317 DFE_NAMEDTUPLE(SpacepointData, measurement_id, geometry_id, x, y, z, var_r,
0318 var_z);
0319 };
0320
0321 struct TrackParameterData {
0322 double d0;
0323 double z0;
0324 double phi;
0325 double theta;
0326 double qop;
0327
0328 double var_d0, var_z0, var_phi, var_theta, var_qop;
0329
0330 double cov_d0z0, cov_d0phi, cov_d0theta, cov_d0qop;
0331 double cov_z0d0, cov_z0phi, cov_z0theta, cov_z0qop;
0332 double cov_phid0, cov_phiz0, cov_phitheta, cov_phiqop;
0333 double cov_thetad0, cov_thetaz0, cov_thetaphi, cov_thetaqop;
0334 double cov_qopd0, cov_qopz0, cov_qopphi, cov_qoptheta;
0335
0336 DFE_NAMEDTUPLE(TrackParameterData, d0, z0, phi, theta, qop, var_d0, var_z0,
0337 var_phi, var_theta, var_qop, cov_d0z0, cov_d0phi, cov_d0theta,
0338 cov_d0qop, cov_z0d0, cov_z0phi, cov_z0theta, cov_z0qop,
0339 cov_phid0, cov_phiz0, cov_phitheta, cov_phiqop, cov_thetad0,
0340 cov_thetaz0, cov_thetaphi, cov_thetaqop, cov_qopd0, cov_qopz0,
0341 cov_qopphi, cov_qoptheta);
0342 };
0343
0344 struct ProtoTrackData {
0345 std::size_t trackId;
0346 Index measurementId;
0347 double x, y, z;
0348
0349 DFE_NAMEDTUPLE(ProtoTrackData, trackId, measurementId, x, y, z);
0350 };
0351
0352 }