Transient Event Store

From Daya Bay
Jump to navigation Jump to search

Basic Idea

NuWa uses the GAUDI Transient Event Store (TES) to manage data during the execution of Simulation or Analysis Algorithms. The TES is the user's medium to set the input and examine the output of a general simulation/analysis stage.

TES data is entered into the event store in association with "headers", or specific implementations of the NuWa Data Model classes. Accordingly, the Data Model describes (or should describe) the common data objects used in simulation and analysis. A single header is defined for each type or stage of data processing. A data object can be entered into the TES at runtime through a data model's associated converters, or it can be loaded into an execution cycle (ex. from a root file) via a persistency service in combination with the RootIOCnvSvc.

Johnny

Organizing the TES

Headers in the TES are organized according to Unix style paths. Most data of interest to the user is loaded under the /Event/ path. The TES location used for an execution cycle has default values (listed below), but is configurable for a single job through the use of configurables.

Here is the map of configurable elements defining TES paths for a NuWa simulation: (Defaults are listed in parenthesis)

  • Stage:DetSim
    • ConfigurableElement: DsPullEvent
      • Property: Location (/Event/Gen/GenHeader)
        • String giving TES path for output header location
  • Stage:ElecSim
    • ConfigurableElement: EsFrontEndAlg
      • Property: Location (/Event/Sim/SimHeader)
        • String giving TES path for output header location
      • Property: SimLocation
        • String giving path to input DetSim header location
  • Stage:TrigSim
    • ConfigurableElement: TsTriggerAlg
      • Property: Location (/Event/SimTrig/SimTrigHeader)
        • String giving TES path for output header location
      • Property: ElecLocation (/Event/Elec/ElecHeader)
        • String giving path to input ElecSim header location
  • Stage:ReadoutSim
    • ConfigurableElement: ROsReadoutAlg
      • Property: Location (/Event/SimReadout/SimReadoutHeader)
        • String giving TES path for output header location
      • Property: TrigLocation (/Event/SimTrig/SimTrigHeader)
        • String giving path to input TrigSim header location
      • Property: ElecLocation (/Event/Elec/ElecHeader)
        • String giving path to input ElecSim header location

You may alter the paths using the configurables above to organize data as you please, but pay special attention to the mapping of input headers to each stage of simulation:

For a minimal python module that configures the TES paths of a standard MDC09b simulation chain see: http://dayabay.ihep.ac.cn/tracs/dybsvn/browser/people/Johnny/Morphism/trunk/S/python/S/simConf/

You can view the header content of a root input/output file using the RunDataSvc: nuwa.py RunDataSvc.PrintRunData

Johnny

Working with the TES