469 views
# A side-by side comparison of PLCIO and FCC-EDM Source for plcio current master (19.07.2019, based on LCIO v02-12): https://stash.desy.de/projects/IL/repos/plcio/browse/config/lcio.yaml Source for fcc-edm: current master (19.07.2019, latest release 0.5.4) https://github.com/HEP-FCC/fcc-edm/blob/master/edm.yaml ## Overview A list of the type names in PLCIO and FCC-EDM, sorted into topics ### Components | PLCIO | FCC-EDM | | -------- | -------- | | FloatThree | Point | | DoubleThree | | | IntTwo | | | | LorentzVector | | TrackState | | | | BareHit| | | BareCluster | || BareParticle | | | BareJet | | ObjectId || ### Event / Run types | PLCIO | FCC-EDM | | -------- | -------- | | LCRunHeader | | | LCEventHeader | EventInfo| ### Generic / Catchall types | PLCIO | FCC-EDM | | -------- | -------- | | | FloatValue | | LCGenericObject | | | LCFLoatVec || | LCIntVec || | LCStrVec || ### Particles | PLCIO | FCC-EDM | | -------- | -------- | | MCParticle | MCParticle | | | ParticleMCParticleAssociation | | ReconstructedParticle | Particle | | | TaggedParticle | | Particle ID || ### Vertices | PLCIO | FCC-EDM | | -------- | -------- | |Vertex | Vertex | | | GenVertex | ### Track Detector Types | PLCIO | FCC-EDM | | -------- | -------- | | TrackerRawData || |TrackerData || | TrackerPulse || |TPCHit || |TrackerHit| TrackHit | |SimTrackerHit| PositionedTrackHit | | | DigiTrackHitAssociation | | | TrackCLuster | || TrackState | | Track| Track | | | WeightedTrack | ### Calorimeter Types | PLCIO | FCC-EDM | | -------- | -------- | | CalorimeterHit | CaloHit | | CaloHitContribution | | |SimCalorimeterHit | | |RawCalorimeterHit || |Cluster| CaloCluster | | | CaloHitMCParticleAssociation | || CaloHitAssociation | ### Jets / High level reco objects | PLCIO | FCC-EDM | | -------- | -------- | | | MET | | | Jet | | | TaggedJet | || ResolvedJet | || GenJet | || TaggedGenJet | || ResolvedGenJet | ### LCIO compatibility? | PLCIO | FCC-EDM | | -------- | -------- | | LCRelation | | |LCReference | | ## Definitions Side-by-side comparison of the data model definitions. Edited to make it comparable (deleted comments, etc.) refer to the link above for the original ### Preamble ```{.yaml} --- |--- # LCIO EDM Description |# FCC-EDM # based on LCIO v02-12 |# July 2019 # Dec 2018 | | | # specify some options for code generation | options: |options: getSyntax : True | getSyntax: False exposePODMembers : False | exposePODMembers: True | ``` ### Components ```{.yaml} ########################################## |# A component is a POD designed # |# to be embedded in another POD, # some helper components - |# see the Particle or Jet PODs. # simple data structs (PODs) |# Components cannot be stored # |# in a collection. ######################################### | | components: |components: # Vector3D with floats | plcio::FloatThree : | fcc::Point: x : float | x : float y : float | y : float z : float | z : float | # Vector3D with doubles | # VV: the fcc-edm used only plcio::DoubleThree : | # single precison up to now x : double | y : double | z : double | ExtraCode : | ... | | # Vector2D with ints | plcio::IntTwo : | a : int | b : int | ExtraCode : | .... | | | fcc::LorentzVector: | mass : float | px : float | py : float | pz : float | # #helper struct for MCP contributions | # really need to expose some function # #to the SimCalorimterHit | #f(Cellid) -> position # plcio::CaloHitCont : | fcc::BareHit: # PDG : int | cellId : unsigned long long # energy : float | energy : float # time : float | time : float # stepPosition : plcio::FloatThree | bits : unsigned # ExtraCode : | # ... | | | fcc::BareCluster: | energy : float | time : float | position : fcc::Point | bits : unsigned | | fcc::BareParticle: | pdgId: int | charge: int | status: unsigned | vertex: fcc::Point | p4: fcc::LorentzVector | bits: unsigned | | fcc::BareJet: | p4: fcc::LorentzVector | area: float | bits: unsigned | |# VV: in the fcc-edm, track-state |# is a full type and appears later. |# for readability I'll insert a copy #-------- LCIO TrackState |# : plcio::TrackState: |# fcc::TrackState: location : int |# Description: "Track state at a ..." D0 : float |# Author : "J. Hrdinka" phi : float |# Members: omega : float |# - float phi Z0 : float |# - float theta tanLambda : float |# - float qOverP referencePoint : plcio::FloatThree |# - float d0 covMatrix : std::array<float,15>|# - float z0 |# - fcc::Point referencePoint |# - std::array<float,15> cov | #------ ObjectID helper struct | # for references/relations | plcio::ObjectID: | index : int | collectionID : int | ExtraCode : | ... | ``` ### Event/Run ```{.yaml} | ########################################## | # | # the actual EDM data types | # | ######################################### | | | | datatypes : |datatypes : |# Datatypes are components |# that can be stored in a Collection | #------------- LCIO LCRunHeader | plcio::LCRunHeader: | Description: "Interface for ... " | Author : "F.Gaede, DESY" | Members: | - int runNumber | - std::string detectorName | - std::string description | VectorMembers: | - std::string activeSubdetectors | ExtraCode : | ... | | | #------------- LCIO EventHeader | plcio::EventHeader: | fcc::EventInfo : Description: "Meta information ..." | Description : "Event Info Data" Author : "F.Gaede" | Author : "C. Bernet, B. Hegner" Members: | Members : - int eventNumber | - int number // Event number - int runNumber | - int currentpileup - long timeStamp | - float weight // Event weight - std::string detectorName | VectorMembers: | - std::string collectionNames | - std::string collectionTypes | ExtraCode : | ... | | ``` ### "Generic / Catchall" types ```{.yaml} | #------------- LCIO LCGenericObject | fcc::FloatValue : # o FIXME: this implementation is | Description : "Contains float" # rather inefficicent .... | Author : "M. Selvaggi" plcio::LCGenericObject: | Members : Description: "LCIO LCGenericObject" | - float value Author : "F.Gaede, DESY" | Members: | - int isFixedSize | - std::string typeName | - std::string dataDescription | VectorMembers: | - int intVals | - float floatVals | - double doubleVals | ExtraCode : | ... | | #------------- LCIO LCFloatVec | plcio::LCFloatVec: | Description: "LCIO LCFloatVec" | Author : "F.Gaede, DESY" | VectorMembers: | - float values /// float values | ExtraCode : | ... | | #------------- LCIO LCIntVec | plcio::LCIntVec: | Description: "LCIO LCIntVec" | Author : "F.Gaede, DESY" | VectorMembers: | - int values /// int values | ExtraCode : | ... | | #------------- LCIO LCStrVec | plcio::LCStrVec: | Description: "LCIO LCStrVec" | Author : "F.Gaede, DESY" | VectorMembers: | - std::string values ///string values| ExtraCode : | ... | | ``` ### Particles ``` |# fcc::BareParticle: |# pdgId: int |# charge: int |# status: unsigned |# vertex: fcc::Point |# p4: fcc::LorentzVector |# bits: unsigned | #------------- LCIO MCParticle | plcio::MCParticle: | fcc::MCParticle: Description: "Monte Carlo particle." | Description: "Monte-Carlo Particle " Author : "F.Gaede, DESY" | Author : "C. Bernet, B. Hegner" Members: | Members: - int PDG | - fcc::BareParticle core - int generatorStatus | OneToOneRelations: - int simulatorStatus | - fcc::GenVertex startVertex - float charge | - fcc::GenVertex endVertex - float time | - double mass | - plcio::DoubleThree vertex | - plcio::DoubleThree endpoint | - plcio::FloatThree momentum | - plcio::FloatThree momentumAtEndpoint| - plcio::FloatThree spin | - plcio::IntTwo colorFlow | | OneToManyRelations: | - plcio::MCParticle parents | - plcio::MCParticle daughters | ExtraCode : | ... | | | | fcc::ParticleMCParticleAssociation: | Description : "Association ..." | Author : "C. Bernet, B. Hegner" | OneToOneRelations : | - fcc::Particle rec | - fcc::MCParticle sim #------- LCIO ReconstructedParticle | # Changes w.r.t. to original | # o ParticleIDs are now in external c| ollection | plcio::ReconstructedParticle: | fcc::Particle : Description: "LCIO Reconstructed..." | Description : "Reconstructed particle" Author : "F.Gaede, DESY" | Author : "C. Bernet, B. Hegner" Members: | Members : - int type | - fcc::BareParticle core - float energy | OneToManyRelations: - plcio::FloatThree momentum | - fcc::Track tracks - plcio::FloatThree referencePoint | - fcc::CaloCluster clusters - float charge | - float mass | - float goodnessOfPID | - std::array<float,10> covMatrix | OneToOneRelations: | - plcio::Vertex startVertex | - plcio::ParticleID particleIDUsed | OneToManyRelations: | - plcio::Cluster clusters | - plcio::Track tracks | - plcio::ReconstructedParticle particles | | - plcio::ParticleID particleIDs | ExtraCode : | ... | | fcc::TaggedParticle : | Description : "Association ..." | Author : "C. Helsens, J. Lingemann" | Members: | - float tag | OneToOneRelations : | - fcc::Particle particle | #---- LCIO ParticleID | plcio::ParticleID: | Description: "LCIO ParticleID ... " | Author : "F.Gaede, DESY" | Members: | - int type | - int pDG | - int algorythmType | - float likelihood | VectorMembers: | - float parameters | ExtraCode : | ... | ``` ### Vertices Note that in FCC-EDM, `BareParticle` has an additional `Point` representing a vertex position ``` #---------- LCIO Vertex | #FIXME: lcio interface has algorithmType | # as string but stores int ... | plcio::Vertex: | fcc::Vertex: Description: "LCIO vertex" | Description: "Vertex " Author : "F.Gaede, DESY" | Author : "C. Bernet, B. Hegner" Members: | Members: - int primary | - float chi2 - float chi2 | - unsigned ndf - float probability | - fcc::Point position - plcio::FloatThree position | - unsigned bits // Stored flags - std::array<float,6> covMatrix | OneToManyRelations: - int algorithmType | - fcc::WeightedTrack tracks VectorMembers: | - float parameters | OneToOneRelations: | - plcio::ReconstructedParticle | associatedParticle | ExtraCode : | | | fcc::GenVertex: | Description: "Generated vertex ... " | Author : "C. Bernet, B. Hegner" | Members: | - fcc::Point position | - float ctau // Time coordinate in cm | | ``` ### Track Detector types ``` |# fcc::BareHit: |# cellId : unsigned long long |# energy : float |# time : float |# bits : unsigned |# |# fcc::BareCluster: |# energy : float |# time : float |# position : fcc::Point |# bits : unsigned | #------- LCIO TrackerData | plcio::TrackerData: | fcc::TrackHit: Description: "LCIO tracker data" | Description : "A tracker hit" Author : "F.Gaede, DESY" | Author : "C. Bernet, B. Hegner" Members: | Members: - int cellID0 | - fcc::BareHit core - int cellID1 | - float time | VectorMembers: | - float chargeValues | ExtraCode : | ... | | | #------ LCIO TrackerRawData | plcio::TrackerRawData: | Description: "LCIO tracker raw data" | Author : "F.Gaede, DESY" | Members: | - int cellID0 | - int cellID1 | - int time | VectorMembers: | - short ADCValues | ExtraCode : | ... | #------ LCIO TrackerPulse | plcio::TrackerPulse: | Description : "LCIO tracker pulse" | Author : "F. Gaede, DESY" | Members: | - int cellID0 | - int cellID1 | - int quality | - float time | - float charge | - plcio::FloatThree covMatrix | OneToOneRelations: | - plcio::TrackerData trackerData | ExtraCode : | ... | #---------- LCIO TPCHit | plcio::TPCHit: | Description: "LCIO TPCHit" | Author : "F.Gaede, DESY" | Members: | - int cellID | - int quality | - float time | - float charge | VectorMembers: | - int rawDataWords | ExtraCode : | ... | | | | fcc::PositionedTrackHit: | Description: "A track hit ..." | Author: "J. Lingemann, ... " | Members: | - fcc::Point position | - fcc::BareHit core | | fcc::DigiTrackHitAssociation: | Description: "Association ..." | Author : "V.Volkl" | Members: | - fcc::Point postStepPosition | OneToOneRelations: | - fcc::PositionedTrackHit hit | | fcc::TrackCluster: | Description : "A track clu..." | Author : "C. Bernet, ..." | Members: | - fcc::BareCluster core | VectorMembers: | - unsigned trackIDs | OneToManyRelations : | - fcc::TrackHit hits | #----------- LCIO SimTrackerHit | plcio::SimTrackerHit: | Description: "LCIO simulated ... " | Author : "F.Gaede, DESY" | Members: | - int cellID0 | - int cellID1 | - float EDep | - float time | - float pathLength | - int quality | - plcio::DoubleThree position | - plcio::FloatThree momentum | OneToOneRelations: | - plcio::MCParticle MCParticle | ExtraCode : | ... | | #------------- LCIO TrackerHit | # o FIXME: no specialisation for | # the different kind of geometries: | # TrackerHitPlane, TrackerHitZCylinder | # o FIXME: should we define a | # FloatSix for the covMatrix or | # use the std::array ??? | plcio::TrackerHit: | Description : "LCIO tracker hit" | Author : "F.Gaede, DESY" | Members : | - int cellID0 | - int cellID1 | - int type | - int quality | - float time | - float eDep | - float eDepError | - float edx | - plcio::DoubleThree position | - std::array<float,6> covMatrix | VectorMembers: | - plcio::ObjectID rawHits | ExtraCode : | ... | | # VV: in plcio, this is a component | fcc::TrackState: # with almost the same content | Description: "Track state at a ..." | Author : "J. Hrdinka" | Members: | - float phi | - float theta | - float qOverP | - float d0 | - float z0 | - fcc::Point referencePoint | - std::array<float,15> cov | #-------- LCIO Track | plcio::Track: | fcc::Track: Description: "LCIO reconstructed track"| Description: "Track ..." Author : "F.Gaede, DESY" | Author : "C. Bernet, B. Hegner" Members: | Members: - int type | - float chi2 - float chi2 | - unsigned ndf - int ndf | - unsigned bits // Stores flags - float dEdx | OneToManyRelations : - float dEdxError | - fcc::PositionedTrackHit hits - float radiusOfInnermostHit | - fcc::TrackState states VectorMembers: | - int subDetectorHitNumbers | fcc::WeightedTrack: - plcio::TrackState trackStates | Description: "A track as..." OneToManyRelations: | Author: "J. Lingemann" - plcio::TrackerHit trackerHits | Members: - plcio::Track tracks | - float weight ExtraCode : | OneToOneRelations: ... | - fcc::Track track | ``` ### Calorimeter types ``` #------------- LCIO CalorimeterHit | plcio::CalorimeterHit: | fcc::CaloHit: Description: "LCIO calorimeter hit" | Description : "A calorimeter hit" Author : "F.Gaede, DESY" | Author : "C. Bernet, B. Hegner" Members: | Members: - int cellID0 | - fcc::BareHit core - int cellID1 | - float energy | fcc::PositionedCaloHit: - float energyError | Description: "A calorimeter ..." - float time | Author: "J. Lingemann, B. Hegner" - plcio::FloatThree position | Members: - int type | - fcc::Point position - plcio::ObjectID rawHit | - fcc::BareHit core // The hit ExtraCode : | ... | | #------------- LCIO CaloHitContribution | plcio::CaloHitContribution: | Description: "Monte Carlo contri..." | Author : "F.Gaede, DESY" | Members: | - int PDG | - float energy | - float time | - plcio::FloatThree stepPosition | OneToOneRelations: | - plcio::MCParticle particle | | #------------- LCIO SimCalorimeterHit | plcio::SimCalorimeterHit: | Description: "LCIO simulated cal..." | Author : "F.Gaede, DESY" | Members: | - int cellID0 | - int cellID1 | - float energy | - plcio::FloatThree position | OneToManyRelations: | - plcio::CaloHitContribution | contributions | ExtraCode : | .... | | #------------- LCIO RawCalorimeterHit | plcio::RawCalorimeterHit: | Description: "LCIO raw ..." | Author : "F.Gaede, DESY" | Members: | - int cellID0 | - int cellID1 | - int amplitude | - int timeStamp | ExtraCode : | ... | #------ LCIO cluster | # Changes w.r.t. to original | # o ParticleIDs are now in | # external collection | plcio::Cluster: | Description: "LCIO cluster" | fcc::CaloCluster: Author : "F.Gaede, DESY" | Description : "A calo cluster..." Members: | Author : "C. Bernet, B. Hegner" - int type | Members: - float energy | - fcc::BareCluster core - float energyError | OneToManyRelations : - plcio::FloatThree position | - fcc::CaloHit hits - std::array<float,6> positionError | - float iTheta | - float phi | - plcio::FloatThree directionError | VectorMembers: | - float shape | - float weight | - float hitContributions | - float subdetectorEnergies | OneToManyRelations: | - plcio::Cluster clusters | - plcio::CalorimeterHit hits | - plcio::ParticleID particleIDs | ExtraCode : | ... | | fcc::CaloHitMCParticleAssociation: | Description: "Association ..." | Author : "C. Bernet, B. Hegner" | Members: | - float fraction | OneToOneRelations: | - fcc::CaloHit hit | - fcc::MCParticle particle | | fcc::CaloHitAssociation: | Description: "Association b..." | Author : "C. Bernet, B. Hegner" | OneToOneRelations: | - fcc::CaloHit rec | - fcc::CaloHit sim | | ``` ### Jets / High level reco objects ``` | fcc::MET: | Description : "Naive MET type" | Author : "C. Bernet, B. Hegner" | Members : | # VV: "position" seems to be an error | - fcc::Point position | - float magnitude | - float phi | - float scalarSum | | fcc::Jet : | Description : "Reconstructed jet." | Author : "C. Bernet, B. Hegner" | Members : | - fcc::BareJet core | OneToManyRelations : | - fcc::Particle particles | | fcc::TaggedJet : | Description : "Association ..." | Author : "C. Bernet, Z. Drasal..." | Members : | - float tag | OneToOneRelations : | - fcc::Jet jet | | fcc::ResolvedJet : | Description : "Association ..." | Author : "M. Selvaggi" | OneToManyRelations : | - fcc::Jet subjets | OneToOneRelations : | - fcc::Jet jet | | fcc::GenJet : | Description : "Generated jet." | Author : "C. Bernet, B. Hegner" | Members : | - fcc::BareJet core | OneToManyRelations : | - fcc::MCParticle particles | | fcc::TaggedGenJet : | Description : "Association ..." | Author : "C. Bernet, Z. Drasal" | Members : | - float tag | OneToOneRelations : | - fcc::GenJet jet | | fcc::ResolvedGenJet : | Description : "Assoc..." | Author : "M. Selvaggi" | OneToManyRelations : | - fcc::GenJet subjets | OneToOneRelations : | - fcc::GenJet jet | ``` ### LCIO compatibility? ``` #----------- LCIO relations | plcio::LCRelation: | Description: "LCIO LCRelation" | Author : "F.Gaede, DESY" | Members: | - plcio::ObjectID from | - plcio::ObjectID to | - float weight | | | #----------- LCIO reference (pointer) | plcio::LCReference: | Description: "LCIO reference... " | Author : "F.Gaede, DESY" | Members: | - plcio::ObjectID object | | ```