FCCSchema#

class coffea.nanoevents.FCCSchema(base_form, version='latest')[source]#

Bases: BaseSchema

Schema-builder for Future Circular Collider pregenerated samples. https://fcc-physics-events.web.cern.ch/

This version is tested on the Spring2021 p8_ee_ZH_ecm240 sample https://fcc-physics-events.web.cern.ch/FCCee/delphes/spring2021/idea/ /eos/experiment/fcc/ee/generation/DelphesEvents/spring2021/IDEA/p8_ee_ZH_ecm240/events_082532938.root The FCC samples follow the edm4hep structure. https://edm4hep.web.cern.ch/index.html

FCCSchema inherits from the BaseSchema and returns all the collections as a base.Nanoevents record.

  • Branches with vector components like “ReconstructedParticles/ReconstructedParticles.referencePoint.x”, “ReconstructedParticles/ReconstructedParticles.referencePoint.y” and “ReconstructedParticles/ReconstructedParticles.referencePoint.z” are zipped together to form the “ReconstructedParticles/ReconstructedParticles.referencePoint” subcollection (see FCCSchema._create_subcollections). This is done for all the branches except the momentum.[x,y,z] branches.

  • Branches like “ReconstructedParticles/ReconstructedParticles.energy”, “ReconstructedParticles/ReconstructedParticles.charge”, “ReconstructedParticles/ReconstructedParticles.mass”, “ReconstructedParticles/ReconstructedParticles.referencePoint”(subcollection containing x,y,z), etc. are zipped together to form the “ReconstructedParticles” collection (see FCCSchema._main_collections). The momentum.[x,y,z] branches along with the energy branch (if available) are used to provide the vector.LorentzVector behavior to the collection.

  • Branches with ObjectIDs (indices to another collection), example “ReconstructedParticles#0/ReconstructedParticles#0.index” and “ReconstructedParticles#0/ReconstructedParticles#0.collectionID” are zipped together to form the “ReconstructedParticlesidx0” collection (see FCCSchema._idx_collections).

  • Branches with a trailing underscore followed by an integer, example “EFlowTrack_1/EFlowTrack_1.location”, “EFlowTrack_1/EFlowTrack_1.D0”, “EFlowTrack_1/EFlowTrack_1.phi”, etc. are zipped together to form the “EFlowTrack_1” collection (see FCCSchema._trailing_underscore_collections).

  • Other Unknown, empty, or faulty branches are dealt by FCCSchema._unknown_collections on a case by case basis.

Attributes Summary

Methods Summary

behavior()

Behaviors necessary to implement this schema

uproot_writeable(events)

Converting BaseSchema events into something that is uproot writeable.

Attributes Documentation

all_cross_references = {'Electron#0.index': 'ReconstructedParticles', 'MCRecoAssociations#0.index': 'ReconstructedParticles', 'MCRecoAssociations#1.index': 'Particle', 'Muon#0.index': 'ReconstructedParticles'}#
extra_mixins = {'*idx': 'ObjectID'}#
mc_relations = {'daughters': 'Particle#1.index', 'parents': 'Particle#0.index'}#

Methods Documentation

classmethod behavior()[source]#

Behaviors necessary to implement this schema

classmethod uproot_writeable(events)[source]#

Converting BaseSchema events into something that is uproot writeable. BaseSchema leaves every original branch as a top-level field, so this just packs each uproot-compatible field into a dict ready for uproot.WritableDirectory.mktree.

Subclasses that apply non-trivial zipping during construction should override this with a schema-specific inverse.

Parameters:

events (NanoEvents) – The BaseSchema events to be turned into something uproot-writeable

Returns:

out – An uproot-writeable dictionary representing the same information as the input events

Return type:

dict