Date post: | 17-Jan-2018 |
Category: |
Documents |
Upload: | melinda-cole |
View: | 232 times |
Download: | 0 times |
April 6, 2000
LHCb Event Data Model
Pavel Binko , Gloria Corti LHCb / CERN 1
LHCb Software week
LHCb Event Data Model
Pavel BinkoGloria Corti
LHCb / CERN
April 6, 2000
LHCb Event Data Model
Pavel Binko , Gloria Corti LHCb / CERN 2
LHCb Software week
Outline
A mix of what is designed and/or implemented both in Gaudi and in private detectors’ code. It is expected to evolve (of course) …
Tree Structure in Stores LHCb Containers and Contained Object Top Level Event Structures Monte Carlo Event Structures Raw and Reconstructed Event Structures Physics Analysis Event Structure Detectors Event Structures: Velo, Tracking, RICH, Calorimeters, Muon Conclusions
April 6, 2000
LHCb Event Data Model
Pavel Binko , Gloria Corti LHCb / CERN 3
LHCb Software week
Tree Structure in Stores
Objects in stores are arranged in a tree. – Event Root branching sub-trees
/Event/Event/MCEvent /Event/FE (used by L1) /Event/RawEvent /Event/RecEvent/Event/AnalEvent
– Defined in LHCbEvent/TopLevel/EventModel.h and .cpp
Retrieving (storing) an identifiable object from the store is based on the knowledge (definition) of its logical path
SmartDataPtr<MCParticleVector> particles ( eventSvc(), "/Event/MC/MCParticles" );
April 6, 2000
LHCb Event Data Model
Pavel Binko , Gloria Corti LHCb / CERN 4
LHCb Software week
LHCb Containers Containers are the elementary unit of identification
– Have to inherit from class DataObject It is assumed that algorithms do not identify individual hits or tracks, but always containers
of hits, containers of tracks, etc.– Are based on STL containers - implement the same interface– Provide containment of pointers to the physics object
MCParticleVector ( equal to ObjectVector<MCParticle> )
Requirements on LHCb containers– Physics objects must not be contained in more than one container
Therefore all classes of objects, they are allowed to be contained in LHCb containers, have to inherit from the base class ContainedObject
– Memory management of contained objects– Navigability in both directions
From the container to its object, and from the object to its container
April 6, 2000
LHCb Event Data Model
Pavel Binko , Gloria Corti LHCb / CERN 6
LHCb Software week
Top Level Event Structures
Classes with global run and event information – Run, Event, EventTag, MCEvent, SubMCEvent, RawEvent, RecEvent, AnalEvent
(runType, runNumber, triggerType, luminosity, fillNumber, eventNumber, timeStamp, generatorType, highVoltageMask, etc.)
Most of the these classes have to be identifiable, therefore they have to inherit from the class DataObject
In the directory /LHCbEvent/TopLevels there are also the LHCb container classes ObjectContainerBase, ObjectVector, ObjectList and the base class ContainedObject
April 6, 2000
LHCb Event Data Model
Pavel Binko , Gloria Corti LHCb / CERN 7
LHCb Software week
Top Level Event Diagram
RecEvent
RawEventfromMC : bool = falseerrorStatus : long = 0highVoltageMask : long = 0
AnalEventEventTag
Eventevent : long = 0run : long = 0
1..1
+event
1..1
DataObject(f rom Kernel)
RunrunType : long = 0triggerType : long = 0enabledTriggerMask : long = 0enabledDetectorMask : long = 0luminosity : double = 0.fillNumber : long = 0generatorType : long = 0
MCEventpileUp : long = 0
SubMCEventdetectorCharacteristics : longprimaryVertex : Point3Dweight : double
1..*
+subMCEvent
1..*
April 6, 2000
LHCb Event Data Model
Pavel Binko , Gloria Corti LHCb / CERN 8
LHCb Software week
Monte Carlo Event Structures
The MonteCarlo event sub-tree contains output from the event generators and MonteCarlo tracking
MCParticle, particles “seen” by the spectrometer (GEANT3)– contains the data members: fourMomentum, particleId, and references to its origin
vertex (SmartRef to MCVertex) and its “decay” vertices (SmartRefVector to MCVertex)
– Path = “/Event/MC/MCParticles” MCVertex, production and “decay” (end) vertices of MCParticles (GEANT3)
– contains the data members: position, timeOfFlight, and references to its mother track (SmartRef to MCParticle) and its daughter tracks (SmartRefVector to MCParticle).
– Path = “/Event/MC/MCVertices”
April 6, 2000
LHCb Event Data Model
Pavel Binko , Gloria Corti LHCb / CERN 9
LHCb Software week
Monte Carlo Event Structures: Detectors’ MC hits
MCHitBase is a base class for many concrete hit classes – contains data members entry (the entry point), depositedEnergy and timeOfFlight,
and the reference to MCParticle, which are common to many concrete hits, which inherit from it.
– It is not allowed to instantiate MCHitBase, as it has no physical meaning (only the inherited classes correspond to real hits).
MCTrackingHit is used in 2 contexts: tracker and muon detector– inherits from MCHitBase, in addition it contains the data member exit (the exit
point).
– Path = “/Event/MC/MCTrackerHits”, “/Event/MC/MCMuonHits” For other detectors see details later
April 6, 2000
LHCb Event Data Model
Pavel Binko , Gloria Corti LHCb / CERN 10
LHCb Software week
Monte Carlo Event Diagram
MCTrackingHit
exit : Point3D
CellId
id : long(from Utilities)
MCVertexposition : Point3DtimeOfFlight : double = 0.
MCHitBaseentry : Point3DdepositedEnerg y : double = 0.timeOfFlight : double = 0.
MCCalorimeterHit
energy : double = 0.
1..1+cellId
1..1
MCPartic lefourMomentum : LorentzVectoroscillationFlag : bool = false
virtualMass()
0..*+daughterTrack
0..*
1..1+originVertex
1..1
1..1+decay Vertex
1..1
0..1
+motherTrack
0..1
1..1+track
1..1
1..*
+track
1..*
Partic leId
id : long
ParticleId()
(from Utilities)
1..1
+particleId
1..11..1
+flavourHistory
1..1
ContainedObject
parent()setParent()
(from TopLevel)
MCVeloHitwaferNumber : long = 0
April 6, 2000
LHCb Event Data Model
Pavel Binko , Gloria Corti LHCb / CERN 11
LHCb Software week
Raw & Reconstructed Event Structures
The RAW event sub-tree contains raw data collected by DAQ and produced by simulation in same format (i.e. detector and electronics response).
Reconstructed event sub-tree contains the output of the reconstruction
See details later for the different sub-detectors
Necessary to combine information from different sub-detectors in the reconstruction
April 6, 2000
LHCb Event Data Model
Pavel Binko , Gloria Corti LHCb / CERN 12
LHCb Software week
Reconstructed Event Diagram
RecRichRingRecCalorimeterClus terRecTrackingSegment
RecMuonSegmentRecTrackerSegmentRecVertexSegment
RecRichHit RecCalorimeterCell RecTrackingHit
RecVertexCluster RecInnerTrackerHit RecOuterTrackerHit RecMuonH it
RecConstituentRecTrack
0..*
+consti tuent
0..*
RecHit
0..*
+hit
0..*
RecVertexRecPaticleID
ContainedObject
parent()setParent()
(f rom TopLev el)
April 6, 2000
LHCb Event Data Model
Pavel Binko , Gloria Corti LHCb / CERN 13
LHCb Software week
Analysis Event Structures
Contains objects created and used during physics analysis. In the Gaudi release only the AxPartCandidate class, derived from the SICb
AXTK bank is implemented. Design, partial implementation exists in private code:
– ParticleCandidate base class with pointers to some reconstruction classes, three-momentum, measured mass for composite particles and specialized classes for different particle types ( TrkParticle, NeutParticle, CompParticle), as well as reference to decay vertex
– VtxCandidate contains position,error matrix, and reference to particles (pointers to ParticleCandidate class) that were used to “make” the vertex
– ChosenParticle class with pID chosen for a specific analysis, and hence four-momentum
– DecayTree where the full decay is described with references to ChosenParticles
April 6, 2000
LHCb Event Data Model
Pavel Binko , Gloria Corti LHCb / CERN 14
LHCb Software week
Analysis Event DiagramContainedObject
parent()setParent()
(from T opLevel)
TrkParticle NeutParticle CompParticle
DecayTreeChosenParticle
* 1*
+composedOf
1
VtxCandidate
RecPaticleID(f rom Reconstructed)
RecTrack(f rom Reconstructed)
ParticleCandidate
1
*
1
+originatesFrom*
* 1*
+produces
1
11 1+decays Into
1
April 6, 2000
LHCb Event Data Model
Pavel Binko , Gloria Corti LHCb / CERN 15
LHCb Software week
Velo / L1 Event Model
Currently Velo/L1 SICb banks mapped to classes Two separate world: pure MC world, MC/real data world (Raw, Rec, FE),
connected trough reference tables MCVeloHit (Geant3 hits)
– inherits from MCTracking hits, in addition contains wafer method– Path = “/Event/MC/Velo/Hits”
RawVeloHit (digitized hits)– sector, type (R,, stripNumber, charge, adcCount, waferNumber– Path = “/Event/Raw/Velo/Hits”
VeloClusters (reconstructed R, clusters)– coordinate,station,pulseHeight,width, etc, + references to RawVeloHit– Path = “/Event/Rec/Velo/RClusters”, “/Event/Rec/Velo/PhiClusters”
April 6, 2000
LHCb Event Data Model
Pavel Binko , Gloria Corti LHCb / CERN 16
LHCb Software week
Velo / L1 Event Model
Level12dTrack ( Level1 vertex trigger 2-d tracks)– status, slope,radius, etc + references to VeloCluster – Path = “/Event/FE/L1/2dTracks”
Level13dTrack (Level1 vertex trigger 2-d tracks)– coordStart, uvecStart, ip, etc + 2 vectors of pointers to VeloClusters and a vector of
pointers to Level12dTrack – Path = “/Event/FE/L1/3dTracks”
Level1Vertex (Level1 trigger primary and secondary vertices)– Path = “/Event/FE/L1/PriVertices”, “/Event/FE/L1/SecVertices”
Level1Summary ( trigger decision, like event trigger tag)– decision, pileup, numLargeIPtracks, singleVtxProb, etc.– Path = “/Event/FE/L1/Summary”
April 6, 2000
LHCb Event Data Model
Pavel Binko , Gloria Corti LHCb / CERN 17
LHCb Software week
Velo / L1 Event Model Diagram
Level1Summary
ContainedObject
parent()setParent()
(from T opLevel) DataObject(f rom Kernel)
Level1VertexLevel13dTrack
* 1* 1
Level12dTrack
*
1
*
1
RawVeloHit VeloClus ter
* 1* 1
*
1
*
1
* 1* 1
April 6, 2000
LHCb Event Data Model
Pavel Binko , Gloria Corti LHCb / CERN 18
LHCb Software week
Tracking Event Model
Data Model used by Tracking Algorithms– OT stands for outer tracker, IT for inner tracker
OTDigi, ITDigi, classes with digitized raw data (i.e. TDC counts)– currently they are produced starting from the Gaudi Classes
RawInner(Outer)TrackerMeas (copies from SICb banks)
OTHits, ITHits, hits produced by the subdetectors reconstruction, input for tracking
OTHitsOnTrack, ITHitsOnTrack, measurements assigned to tracks – inherits from base abstract class TrMeasurement
April 6, 2000
LHCb Event Data Model
Pavel Binko , Gloria Corti LHCb / CERN 19
LHCb Software week
Tracking Event Model (2)
TrState, a snapshot of a track– track parameters and covariance matrix at a given z position on its trajectory
TrTrack, contains information about the track accumulated during tracking– list of pointers to TrMeasurements and to TrState– charge, , particleType
Connections with the MC world are done through inheritance for hits (ex. ITMCHit, ITMCDigi), inheritance with pointer or associators for tracks
April 6, 2000
LHCb Event Data Model
Pavel Binko , Gloria Corti LHCb / CERN 20
LHCb Software week
Tracking Data Model for Tracks
OTHitOnTrack
OTHit ITHit
ITHitOnTrack
Espetially in case of outer tracker measurem ent depends on which track the hit is on
TrMCTrack
Pointer or associater
Z-pos ition s tate, covariance matrix
TrMeasurem ent
TrState
TrTrack
2..*
0..*
2..*
0..*
1..*
1
1..*
1
TrStateQPt TrStateL
x, y, tx, ty, Q/Pt x, y, tx, ty
April 6, 2000
LHCb Event Data Model
Pavel Binko , Gloria Corti LHCb / CERN 21
LHCb Software week
Tracking Data Model for Hits
MCHitBase
entry : Point3DdepositedEnergy : double = 0.tim eOf F light : double = 0.
(f rom MonteCarlo)
MCParticle
f ourMomentum : LorentzVec toroscillat ionFlag : bool = f alse
v irtualMass ()
(f rom MonteCarlo)1..1
+track
1..1
DetectionCell
TrOTLay er
OTDigi
OTDetectionCell
OTHit(from Tracking Rec)
Also needs to know about true resolution of drif t am biguity
TrITLayer
IT DigiITDetectionCell
IT Hit(from TrackingRec)
OTMCHitOTMCDigiIT MCHit
MC Track ingH it
ex it : Point3D(from MonteCarlo)
IT MCDigi
April 6, 2000
LHCb Event Data Model
Pavel Binko , Gloria Corti LHCb / CERN 22
LHCb Software week
RICH Event Model
At the moment the RICH Algorithms have their own private event and communicates with the LHCbEvent via an Event Adapter.
Different adapters for the different purposes: simulation, reconstruction with simulation tracks, reconstruction
RecPaticleID(f rom Reconstructed)
RICHParticleID
contributi on from RICH
The Event adapter creates RICH input objects (Track and TrackSegment) from objects in the LHCbEvent transient store (i.e. MCParticle, TrTrack) and deposit its result in the store with a pointer to the original object so that it can then be used by other algorithms (ex. of RICHParticleID in RecEvent)
April 6, 2000
LHCb Event Data Model
Pavel Binko , Gloria Corti LHCb / CERN 23
LHCb Software week
Calorimeters Event Model Simulation, Digitization, Calibration and Clusterization Algorithm for the
Calorimeters “communicate” through the data flow from one algorithm to the other
MCCaloDeposit, energy deposited by a MC particle MCCaloSummedDeposit, energy deposited in the Calorimeter active material CaloDigit, energy deposition in a given Calorimeter cell MCCaloDigit, inherits from CaloDigit + references to MC true info
(MCCaloSummedDeposit and MCCaloDeposit) CaloCluster, reconstructed clusters (x,y,E, etc.)
– Same class holds MC and real Data ( references to CaloDigit) Simulation produces a sequence of MCCaloDigit, that the Digitization either
updates or uses to create a new sequence. The Calibration and Clusterization treat the sequence of MCCaloDigits as a CaloDigit sequence (dynamic casting is necessary when checking against MC truth)
April 6, 2000
LHCb Event Data Model
Pavel Binko , Gloria Corti LHCb / CERN 24
LHCb Software week
Calorimeters MC and Raw Data Model
ContainedObject
parent()setParent()
(from T opLevel)
CaloCellIDCaloDigit
energy : double = 0.11
MCCaloDigit
CaloSum medDepositactiveE : double = 0.totalE : double = 0.
MCParticle
fourMomentum : LorentzVectorosci l lationFlag : bool = fa lse
virtualMass()
(from M onteCarlo)
MCCaloDepos itactiveE : double = 0.totalE : double = 0.
April 6, 2000
LHCb Event Data Model
Pavel Binko , Gloria Corti LHCb / CERN 25
LHCb Software week
Muon Event Model
A simple digitization algorithm is designed and implemented within the Gaudi framework. Simple Event Model related to digitization algorithm (input/output data)
MCTrackingHit are used as input(/Event/MC/MCMuonHits)
ContainedObject
parent()setParent()
(from T opLevel)
MCTrackingHit
exi t : Point3D
(f rom MonteCarlo) RawMuonHit
* 1* 1
RawMuonHit are produced (stored in /Event/Raw)– full PadID (station, chamber, pad)
and time stamp + vector of pointers to MCTrackingHit
April 6, 2000
LHCb Event Data Model
Pavel Binko , Gloria Corti LHCb / CERN 26
LHCb Software week
Conclusions The Event Model in the sub-detectors mostly specialized to their algorithms.
But data objects in the event store are how the sub-detector algorithms exchange information.
How can we have a coherent global Event Model?
The Data Model from the sub-detectors should be integrated in the LHCbEvent Model (after testing, of course...). Maybe some sub-detector data classes could be common base classes or be specialized in other sub-detectors...
Need for concrete (specialized) containers. What are the common requirements. Necessary to collect information: workshop?