# Global-level ParticleID: used by non-experts across multiple experiments
# - this will be linked to reconstructed particles, so users can just
#   grab the "most likely" PDG
edm4hep::ParticleID:
  Description:  "ParticleID"
  Author : "F.Gaede, DESY"
  Members:
    - int32_t   type           //userdefined type
    - int32_t   PDG            //PDG code of this id - ( 999999 ) if unknown.
    - int32_t   algorithmType  //type of the algorithm/module that created this hypothesis
    - float likelihood     //likelihood of this hypothesis - in a user defined normalization.
  VectorMembers:
    - float parameters     //parameters associated with this hypothesis. Check/set collection parameters ParameterNames_PIDAlgorithmTypeName for decoding the indices.


# Expert-level ParticleID: specific for Cherenkov detectors (dRICH, pfRICH, mRICH, DIRC)
edm4eic::CherenkovParticleID:
  Description: "Cherenkov detector PID"
  Author: "A. Kiselev, C. Chatterjee, C. Dilks"
  Members:
    - uint32_t          radiator          // Radiator number
    - float             theta             // Estimated average Cherenkov cone angle
    - float             npe               // Overall photoelectron count associated with this estimate
    - float             refractiveIndex   // Average refractive index at the Cherenkov photons' vertices
    - float             photonEnergy      // Average energy for these Cherenkov photons [GeV]
  VectorMembers:
    - edm4eic::CherenkovParticleIDHypothesis hypotheses         // Evaluated PDG hypotheses (see below)
    - edm4hep::Vector2f                      thetaPhiPhotons    // estimated (theta,phi) for each Cherenkov photon
  OneToOneRelations:
    - edm4eic::TrackSegment                  chargedParticle    // reconstructed charged particle
  OneToManyRelations:
    - edm4eic::MCRecoTrackerHitAssociation   rawHitAssociations // raw sensor hits, associated with MC hits

# PID hypothesis from Cherenkov detectors
edm4eic::CherenkovParticleIDHypothesis:
  Members:
    - int32_t           pdg             // PDG code
    - float             npe             // Overall photoelectron count
    - float             weight          // Likelihood estimate

