Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-06-30 08:34:31

0001 
0002 // This file automatically generated by the make_datamodel.py script
0003 #pragma once
0004 
0005 #include <stdexcept>
0006 #include <podio/CollectionBase.h>
0007 
0008 
0009 template <typename T> struct PodioTypeMap {
0010     using collection_t = typename T::collection_type;
0011     using mutable_t = typename T::mutable_type;
0012 };
0013 
0014 namespace edm4hep {
0015     class TrackerHitSimTrackerHitLink;
0016     class TrackerHitSimTrackerHitLinkCollection;
0017     class MutableTrackerHitSimTrackerHitLink;
0018 };
0019 namespace edm4hep {
0020     class TrackerHitPlane;
0021     class TrackerHitPlaneCollection;
0022     class MutableTrackerHitPlane;
0023 };
0024 namespace edm4hep {
0025     class CaloHitContribution;
0026     class CaloHitContributionCollection;
0027     class MutableCaloHitContribution;
0028 };
0029 namespace edm4hep {
0030     class TrackMCParticleLink;
0031     class TrackMCParticleLinkCollection;
0032     class MutableTrackMCParticleLink;
0033 };
0034 namespace edm4hep {
0035     class RecoMCParticleLink;
0036     class RecoMCParticleLinkCollection;
0037     class MutableRecoMCParticleLink;
0038 };
0039 namespace edm4hep {
0040     class Cluster;
0041     class ClusterCollection;
0042     class MutableCluster;
0043 };
0044 namespace edm4hep {
0045     class SimCalorimeterHit;
0046     class SimCalorimeterHitCollection;
0047     class MutableSimCalorimeterHit;
0048 };
0049 namespace edm4hep {
0050     class ParticleID;
0051     class ParticleIDCollection;
0052     class MutableParticleID;
0053 };
0054 namespace edm4hep {
0055     class Vertex;
0056     class VertexCollection;
0057     class MutableVertex;
0058 };
0059 namespace edm4hep {
0060     class RecDqdx;
0061     class RecDqdxCollection;
0062     class MutableRecDqdx;
0063 };
0064 namespace edm4hep {
0065     class RawTimeSeries;
0066     class RawTimeSeriesCollection;
0067     class MutableRawTimeSeries;
0068 };
0069 namespace edm4hep {
0070     class GeneratorEventParameters;
0071     class GeneratorEventParametersCollection;
0072     class MutableGeneratorEventParameters;
0073 };
0074 namespace edm4hep {
0075     class RawCalorimeterHit;
0076     class RawCalorimeterHitCollection;
0077     class MutableRawCalorimeterHit;
0078 };
0079 namespace edm4hep {
0080     class ClusterMCParticleLink;
0081     class ClusterMCParticleLinkCollection;
0082     class MutableClusterMCParticleLink;
0083 };
0084 namespace edm4hep {
0085     class CalorimeterHit;
0086     class CalorimeterHitCollection;
0087     class MutableCalorimeterHit;
0088 };
0089 namespace edm4hep {
0090     class Track;
0091     class TrackCollection;
0092     class MutableTrack;
0093 };
0094 namespace edm4hep {
0095     class EventHeader;
0096     class EventHeaderCollection;
0097     class MutableEventHeader;
0098 };
0099 namespace edm4hep {
0100     class GeneratorPdfInfo;
0101     class GeneratorPdfInfoCollection;
0102     class MutableGeneratorPdfInfo;
0103 };
0104 namespace edm4hep {
0105     class MCParticle;
0106     class MCParticleCollection;
0107     class MutableMCParticle;
0108 };
0109 namespace edm4hep {
0110     class ReconstructedParticle;
0111     class ReconstructedParticleCollection;
0112     class MutableReconstructedParticle;
0113 };
0114 namespace edm4hep {
0115     class CaloHitMCParticleLink;
0116     class CaloHitMCParticleLinkCollection;
0117     class MutableCaloHitMCParticleLink;
0118 };
0119 namespace edm4hep {
0120     class SimTrackerHit;
0121     class SimTrackerHitCollection;
0122     class MutableSimTrackerHit;
0123 };
0124 namespace edm4hep {
0125     class TrackerHit3D;
0126     class TrackerHit3DCollection;
0127     class MutableTrackerHit3D;
0128 };
0129 namespace edm4hep {
0130     class TimeSeries;
0131     class TimeSeriesCollection;
0132     class MutableTimeSeries;
0133 };
0134 namespace edm4hep {
0135     class VertexRecoParticleLink;
0136     class VertexRecoParticleLinkCollection;
0137     class MutableVertexRecoParticleLink;
0138 };
0139 namespace edm4hep {
0140     class CaloHitSimCaloHitLink;
0141     class CaloHitSimCaloHitLinkCollection;
0142     class MutableCaloHitSimCaloHitLink;
0143 };
0144 namespace edm4eic {
0145     class CherenkovParticleID;
0146     class CherenkovParticleIDCollection;
0147     class MutableCherenkovParticleID;
0148 };
0149 namespace edm4eic {
0150     class Tensor;
0151     class TensorCollection;
0152     class MutableTensor;
0153 };
0154 namespace edm4eic {
0155     class SimPulse;
0156     class SimPulseCollection;
0157     class MutableSimPulse;
0158 };
0159 namespace edm4eic {
0160     class MCRecoVertexParticleAssociation;
0161     class MCRecoVertexParticleAssociationCollection;
0162     class MutableMCRecoVertexParticleAssociation;
0163 };
0164 namespace edm4eic {
0165     class ProtoCluster;
0166     class ProtoClusterCollection;
0167     class MutableProtoCluster;
0168 };
0169 namespace edm4eic {
0170     class TrackSegment;
0171     class TrackSegmentCollection;
0172     class MutableTrackSegment;
0173 };
0174 namespace edm4eic {
0175     class Cluster;
0176     class ClusterCollection;
0177     class MutableCluster;
0178 };
0179 namespace edm4eic {
0180     class Measurement2D;
0181     class Measurement2DCollection;
0182     class MutableMeasurement2D;
0183 };
0184 namespace edm4eic {
0185     class Vertex;
0186     class VertexCollection;
0187     class MutableVertex;
0188 };
0189 namespace edm4eic {
0190     class MCRecoTrackParticleAssociation;
0191     class MCRecoTrackParticleAssociationCollection;
0192     class MutableMCRecoTrackParticleAssociation;
0193 };
0194 namespace edm4eic {
0195     class RawTrackerHit;
0196     class RawTrackerHitCollection;
0197     class MutableRawTrackerHit;
0198 };
0199 namespace edm4eic {
0200     class TrackParameters;
0201     class TrackParametersCollection;
0202     class MutableTrackParameters;
0203 };
0204 namespace edm4eic {
0205     class Trajectory;
0206     class TrajectoryCollection;
0207     class MutableTrajectory;
0208 };
0209 namespace edm4eic {
0210     class MCRecoCalorimeterHitAssociation;
0211     class MCRecoCalorimeterHitAssociationCollection;
0212     class MutableMCRecoCalorimeterHitAssociation;
0213 };
0214 namespace edm4eic {
0215     class PMTHit;
0216     class PMTHitCollection;
0217     class MutablePMTHit;
0218 };
0219 namespace edm4eic {
0220     class CalorimeterHit;
0221     class CalorimeterHitCollection;
0222     class MutableCalorimeterHit;
0223 };
0224 namespace edm4eic {
0225     class Track;
0226     class TrackCollection;
0227     class MutableTrack;
0228 };
0229 namespace edm4eic {
0230     class ReconstructedParticle;
0231     class ReconstructedParticleCollection;
0232     class MutableReconstructedParticle;
0233 };
0234 namespace edm4eic {
0235     class MCRecoTrackerHitAssociation;
0236     class MCRecoTrackerHitAssociationCollection;
0237     class MutableMCRecoTrackerHitAssociation;
0238 };
0239 namespace edm4eic {
0240     class HadronicFinalState;
0241     class HadronicFinalStateCollection;
0242     class MutableHadronicFinalState;
0243 };
0244 namespace edm4eic {
0245     class TrackClusterMatch;
0246     class TrackClusterMatchCollection;
0247     class MutableTrackClusterMatch;
0248 };
0249 namespace edm4eic {
0250     class MCRecoParticleAssociation;
0251     class MCRecoParticleAssociationCollection;
0252     class MutableMCRecoParticleAssociation;
0253 };
0254 namespace edm4eic {
0255     class MCRecoClusterParticleAssociation;
0256     class MCRecoClusterParticleAssociationCollection;
0257     class MutableMCRecoClusterParticleAssociation;
0258 };
0259 namespace edm4eic {
0260     class RingImage;
0261     class RingImageCollection;
0262     class MutableRingImage;
0263 };
0264 namespace edm4eic {
0265     class InclusiveKinematics;
0266     class InclusiveKinematicsCollection;
0267     class MutableInclusiveKinematics;
0268 };
0269 namespace edm4eic {
0270     class TrackSeed;
0271     class TrackSeedCollection;
0272     class MutableTrackSeed;
0273 };
0274 namespace edm4eic {
0275     class TrackerHit;
0276     class TrackerHitCollection;
0277     class MutableTrackerHit;
0278 };
0279 
0280 template <typename Visitor> struct VisitPodioCollection {
0281     void operator()(Visitor& visitor, const podio::CollectionBase& collection) {
0282         auto podio_typename = collection.getTypeName();
0283         if (podio_typename == "edm4hep::TrackerHitSimTrackerHitLinkCollection") {
0284             return visitor(*reinterpret_cast<const edm4hep::TrackerHitSimTrackerHitLinkCollection*>(&collection));
0285         }
0286         if (podio_typename == "edm4hep::TrackerHitPlaneCollection") {
0287             return visitor(*reinterpret_cast<const edm4hep::TrackerHitPlaneCollection*>(&collection));
0288         }
0289         if (podio_typename == "edm4hep::CaloHitContributionCollection") {
0290             return visitor(*reinterpret_cast<const edm4hep::CaloHitContributionCollection*>(&collection));
0291         }
0292         if (podio_typename == "edm4hep::TrackMCParticleLinkCollection") {
0293             return visitor(*reinterpret_cast<const edm4hep::TrackMCParticleLinkCollection*>(&collection));
0294         }
0295         if (podio_typename == "edm4hep::RecoMCParticleLinkCollection") {
0296             return visitor(*reinterpret_cast<const edm4hep::RecoMCParticleLinkCollection*>(&collection));
0297         }
0298         if (podio_typename == "edm4hep::ClusterCollection") {
0299             return visitor(*reinterpret_cast<const edm4hep::ClusterCollection*>(&collection));
0300         }
0301         if (podio_typename == "edm4hep::SimCalorimeterHitCollection") {
0302             return visitor(*reinterpret_cast<const edm4hep::SimCalorimeterHitCollection*>(&collection));
0303         }
0304         if (podio_typename == "edm4hep::ParticleIDCollection") {
0305             return visitor(*reinterpret_cast<const edm4hep::ParticleIDCollection*>(&collection));
0306         }
0307         if (podio_typename == "edm4hep::VertexCollection") {
0308             return visitor(*reinterpret_cast<const edm4hep::VertexCollection*>(&collection));
0309         }
0310         if (podio_typename == "edm4hep::RecDqdxCollection") {
0311             return visitor(*reinterpret_cast<const edm4hep::RecDqdxCollection*>(&collection));
0312         }
0313         if (podio_typename == "edm4hep::RawTimeSeriesCollection") {
0314             return visitor(*reinterpret_cast<const edm4hep::RawTimeSeriesCollection*>(&collection));
0315         }
0316         if (podio_typename == "edm4hep::GeneratorEventParametersCollection") {
0317             return visitor(*reinterpret_cast<const edm4hep::GeneratorEventParametersCollection*>(&collection));
0318         }
0319         if (podio_typename == "edm4hep::RawCalorimeterHitCollection") {
0320             return visitor(*reinterpret_cast<const edm4hep::RawCalorimeterHitCollection*>(&collection));
0321         }
0322         if (podio_typename == "edm4hep::ClusterMCParticleLinkCollection") {
0323             return visitor(*reinterpret_cast<const edm4hep::ClusterMCParticleLinkCollection*>(&collection));
0324         }
0325         if (podio_typename == "edm4hep::CalorimeterHitCollection") {
0326             return visitor(*reinterpret_cast<const edm4hep::CalorimeterHitCollection*>(&collection));
0327         }
0328         if (podio_typename == "edm4hep::TrackCollection") {
0329             return visitor(*reinterpret_cast<const edm4hep::TrackCollection*>(&collection));
0330         }
0331         if (podio_typename == "edm4hep::EventHeaderCollection") {
0332             return visitor(*reinterpret_cast<const edm4hep::EventHeaderCollection*>(&collection));
0333         }
0334         if (podio_typename == "edm4hep::GeneratorPdfInfoCollection") {
0335             return visitor(*reinterpret_cast<const edm4hep::GeneratorPdfInfoCollection*>(&collection));
0336         }
0337         if (podio_typename == "edm4hep::MCParticleCollection") {
0338             return visitor(*reinterpret_cast<const edm4hep::MCParticleCollection*>(&collection));
0339         }
0340         if (podio_typename == "edm4hep::ReconstructedParticleCollection") {
0341             return visitor(*reinterpret_cast<const edm4hep::ReconstructedParticleCollection*>(&collection));
0342         }
0343         if (podio_typename == "edm4hep::CaloHitMCParticleLinkCollection") {
0344             return visitor(*reinterpret_cast<const edm4hep::CaloHitMCParticleLinkCollection*>(&collection));
0345         }
0346         if (podio_typename == "edm4hep::SimTrackerHitCollection") {
0347             return visitor(*reinterpret_cast<const edm4hep::SimTrackerHitCollection*>(&collection));
0348         }
0349         if (podio_typename == "edm4hep::TrackerHit3DCollection") {
0350             return visitor(*reinterpret_cast<const edm4hep::TrackerHit3DCollection*>(&collection));
0351         }
0352         if (podio_typename == "edm4hep::TimeSeriesCollection") {
0353             return visitor(*reinterpret_cast<const edm4hep::TimeSeriesCollection*>(&collection));
0354         }
0355         if (podio_typename == "edm4hep::VertexRecoParticleLinkCollection") {
0356             return visitor(*reinterpret_cast<const edm4hep::VertexRecoParticleLinkCollection*>(&collection));
0357         }
0358         if (podio_typename == "edm4hep::CaloHitSimCaloHitLinkCollection") {
0359             return visitor(*reinterpret_cast<const edm4hep::CaloHitSimCaloHitLinkCollection*>(&collection));
0360         }
0361         if (podio_typename == "edm4eic::CherenkovParticleIDCollection") {
0362             return visitor(*reinterpret_cast<const edm4eic::CherenkovParticleIDCollection*>(&collection));
0363         }
0364         if (podio_typename == "edm4eic::TensorCollection") {
0365             return visitor(*reinterpret_cast<const edm4eic::TensorCollection*>(&collection));
0366         }
0367         if (podio_typename == "edm4eic::SimPulseCollection") {
0368             return visitor(*reinterpret_cast<const edm4eic::SimPulseCollection*>(&collection));
0369         }
0370         if (podio_typename == "edm4eic::MCRecoVertexParticleAssociationCollection") {
0371             return visitor(*reinterpret_cast<const edm4eic::MCRecoVertexParticleAssociationCollection*>(&collection));
0372         }
0373         if (podio_typename == "edm4eic::ProtoClusterCollection") {
0374             return visitor(*reinterpret_cast<const edm4eic::ProtoClusterCollection*>(&collection));
0375         }
0376         if (podio_typename == "edm4eic::TrackSegmentCollection") {
0377             return visitor(*reinterpret_cast<const edm4eic::TrackSegmentCollection*>(&collection));
0378         }
0379         if (podio_typename == "edm4eic::ClusterCollection") {
0380             return visitor(*reinterpret_cast<const edm4eic::ClusterCollection*>(&collection));
0381         }
0382         if (podio_typename == "edm4eic::Measurement2DCollection") {
0383             return visitor(*reinterpret_cast<const edm4eic::Measurement2DCollection*>(&collection));
0384         }
0385         if (podio_typename == "edm4eic::VertexCollection") {
0386             return visitor(*reinterpret_cast<const edm4eic::VertexCollection*>(&collection));
0387         }
0388         if (podio_typename == "edm4eic::MCRecoTrackParticleAssociationCollection") {
0389             return visitor(*reinterpret_cast<const edm4eic::MCRecoTrackParticleAssociationCollection*>(&collection));
0390         }
0391         if (podio_typename == "edm4eic::RawTrackerHitCollection") {
0392             return visitor(*reinterpret_cast<const edm4eic::RawTrackerHitCollection*>(&collection));
0393         }
0394         if (podio_typename == "edm4eic::TrackParametersCollection") {
0395             return visitor(*reinterpret_cast<const edm4eic::TrackParametersCollection*>(&collection));
0396         }
0397         if (podio_typename == "edm4eic::TrajectoryCollection") {
0398             return visitor(*reinterpret_cast<const edm4eic::TrajectoryCollection*>(&collection));
0399         }
0400         if (podio_typename == "edm4eic::MCRecoCalorimeterHitAssociationCollection") {
0401             return visitor(*reinterpret_cast<const edm4eic::MCRecoCalorimeterHitAssociationCollection*>(&collection));
0402         }
0403         if (podio_typename == "edm4eic::PMTHitCollection") {
0404             return visitor(*reinterpret_cast<const edm4eic::PMTHitCollection*>(&collection));
0405         }
0406         if (podio_typename == "edm4eic::CalorimeterHitCollection") {
0407             return visitor(*reinterpret_cast<const edm4eic::CalorimeterHitCollection*>(&collection));
0408         }
0409         if (podio_typename == "edm4eic::TrackCollection") {
0410             return visitor(*reinterpret_cast<const edm4eic::TrackCollection*>(&collection));
0411         }
0412         if (podio_typename == "edm4eic::ReconstructedParticleCollection") {
0413             return visitor(*reinterpret_cast<const edm4eic::ReconstructedParticleCollection*>(&collection));
0414         }
0415         if (podio_typename == "edm4eic::MCRecoTrackerHitAssociationCollection") {
0416             return visitor(*reinterpret_cast<const edm4eic::MCRecoTrackerHitAssociationCollection*>(&collection));
0417         }
0418         if (podio_typename == "edm4eic::HadronicFinalStateCollection") {
0419             return visitor(*reinterpret_cast<const edm4eic::HadronicFinalStateCollection*>(&collection));
0420         }
0421         if (podio_typename == "edm4eic::TrackClusterMatchCollection") {
0422             return visitor(*reinterpret_cast<const edm4eic::TrackClusterMatchCollection*>(&collection));
0423         }
0424         if (podio_typename == "edm4eic::MCRecoParticleAssociationCollection") {
0425             return visitor(*reinterpret_cast<const edm4eic::MCRecoParticleAssociationCollection*>(&collection));
0426         }
0427         if (podio_typename == "edm4eic::MCRecoClusterParticleAssociationCollection") {
0428             return visitor(*reinterpret_cast<const edm4eic::MCRecoClusterParticleAssociationCollection*>(&collection));
0429         }
0430         if (podio_typename == "edm4eic::RingImageCollection") {
0431             return visitor(*reinterpret_cast<const edm4eic::RingImageCollection*>(&collection));
0432         }
0433         if (podio_typename == "edm4eic::InclusiveKinematicsCollection") {
0434             return visitor(*reinterpret_cast<const edm4eic::InclusiveKinematicsCollection*>(&collection));
0435         }
0436         if (podio_typename == "edm4eic::TrackSeedCollection") {
0437             return visitor(*reinterpret_cast<const edm4eic::TrackSeedCollection*>(&collection));
0438         }
0439         if (podio_typename == "edm4eic::TrackerHitCollection") {
0440             return visitor(*reinterpret_cast<const edm4eic::TrackerHitCollection*>(&collection));
0441         }
0442         throw std::runtime_error("Unrecognized podio typename!");
0443     }
0444 };