A LArSoft service is a class, with a single instance managed by the framework, that performs an operation. A service is used by LArSoft algorithms and art modules. Source*
Most of LArSoft services are factorized into two parts:
- service provider actually providing services that can be used stand-alone (without art framework) ⇒ e.g. for a minimalist test environment
- art service interfacing the provider with the art framework
This factorization model allows service providers to be tested without pulling in the art framework, and to be used in art-unaware environments.
By using service providers, most of the user code should interact only with the provider interface.
- Obtain the service provider such as geometry, detector-properties, timing, etc.
- Use it, move it around, pass it to algorithms.
This is a simple scheme of LArSoft services in factorization model:
- the service creates and owns an instance of the provider
- the provider is a free class that knows only about its own job
Services are provided in the areas of geometry, physical properties, physics simulation and miscellaneous.
Geometry services provide a description of the physical and readout aspects of the detector such as:
- TPC structure – physical characteristics of cryostats, TPCs, wire planes and wires and their relations
- optical detector structure
- readout channel mappings
- TPCs (e.g. readout channels to physical wires)
- optical readout channels with photodetectors
- auxiliary detectors
Physical properties services such as:
- Detector Properties
- pertaining mostly to readout sampling rates and readout window size
- conversion between readout ticks and times
- drift velocity, dQ/dx → dE/dx
- electron lifetime
- LArProperties about the liquid argon environment
- radiation length, argon temperature, etc.
Physics simulation services such as:
- Voxel Calculator helps with computations in the virtual grid. GEANT splits the detector volume into voxels hence the name.
- G4 Parameters stores the parameters GEANT is configured with.
- Photon Visibility describes the simulation of the transportation of photons to the optical detectors.
- Space Charge describes the effect of distortions of TPC’s electric field.
Miscellaneous services such as:
- Detector conditions fetching information about DAQ channel status, pedestals, possibly from databases
- Detector Clocks provides a coherent view of times in the event related to the beam trigger.
- FFT facilitates the application of Fourier transform in simulation of TPC signals and their calibration (e.g. noise reduction).
For more information, please see the source for this material Gianluca Petrillo’s slides for algorithms and services from the 2015 LArSoft class and LArSoft Wiki on Writing LArSoft Services.