-
Notifications
You must be signed in to change notification settings - Fork 16
LDMX File Structure
All analyses will involve manipulating the information we have stored for simulated events and the ROOT files containing this information can be difficult to navigate. This is an overview of how the (current) files are structured to help get people started. Opening a ROOT file in a TBrowser can also be very helpful to visually see the structure.
The name of the file should give information about the conditions simulated.
example: 4gev_1e_tskim_pn_ldmx-det-v13_run2967.root
- 4gev = beam electron energy is 4 GeV
- 1e = 1 electron on target at a time (no pileup)
- tskim = trigger skimmed, events only saved if it passes the trigger (energy in first 20 layers of ECal < 1.5 GeV)
- pn = photonuclear, background events with a photonuclear interaction
- ldmx-det-v13 = version 13 of the detector geometry
- run 2967 = run number (which is used for seeding) is 2967
Typically there are two trees in every file, LDMX_Run and LDMX_Events. You will almost certainly only need to access LDMX_Events for informative variables.
The different collections are stored as separate branches, roughly corresponding to different subdetectors. EcalVeto is the most relevant for our work on the ECal, containing the variables that the can be measured to use in vetoing. Note that the exact collection name often has the software version and detector version appended.
Within the collections are the actual variables. These can be ints, vectors, or custom objects (SimParticle, SimCalorimeterHit, etc) defined in ldmx-sw. Some of the collections and their variables are defined below.
Note: The default energy scale for most variables is currently MeV. If the variable only has values of 0 or 1, it's a "flag" or "tag" type variable. 0 means "no" or "false" and 1 means "yes" or "true" for variables like isNoise and passesVeto.
-
EcalVeto: A collection of EcalVetoResult objects (defined inldmx-sw/Ecal/[src/include]/Ecal/Event) with variables filled by the EcalVetoProcessor (found inldmx-sw/Ecal/[src/include]/Ecal/). -
SimParticles: A map connecting SimParticle objects (defined inldmx-sw/SimCore/[src/include]/SimCore/Event) to an integer track ID. When reading in the leaves,SimParticles.firstrepresents the track ID andsimParticles.secondrepresents the SimParticle object. -
_____SimHits: A collection of SimCalorimeterHit objects (defined inldmx-sw/SimCore/[src/include]/SimCore/Event) that represent a simulated hit in the subdetector. These are "truth" level variables and contain information we would not have when actually running, such as the PDG ID for the particles that contribute to the hit. -
_____RecHits: A processed version of the SimHit collection that replicates what would be seen in the experiment. For the ECal, this collection contains EcalHit objects (defined inldmx-sw/Ecal/[src/include]/Ecal/Event). -
_____ScoringPlaneHits: Hits from the scoring planes around each subdetector. The scoring planes are not real physical objects and will not be in the actual experiment. They were implemented to provide truth information about particles moving from one subdetector region to another.