Introduction
This reference manual describes interfaces of various classes constituting psana analysis framework. For more user-oriented description with examples and detailed explanations consult Psana User Manual.
Packages
Framework code is split between several packages. Here is the list of few major packages:
psana
– psana application, base class for user module, few simple modulesPSEvt
– classes which deal with event dataPSEnv
– classes which constitute non-event data (environment)PSTime
– classes for time representation and I/ORootHistoManager
– histogramming package, wrapper for ROOT classesPSXtcInput
– input module implementation for XTC filespsddl_psana
– interfaces for event data and configuration classes produced by LCLS DAQConfigSvc
– configuration serviceMsgLogger
– message logging service
In addition to these packages there are several other low-level packages (such as boost
) which are used in many places. Those packages are not described here.
Below is the reference for individual packages, most of them link to the doxygen-generated documentation. Link to doxygen documentation point to the current production version (release ana-current
), for older versions please navigate to the page https://pswww.slac.stanford.edu/swdoc/releases/ and choose relevant release.
Package psana
This package contains code for the core part of psana framework responsible for the job configuration, event loop, module loading, etc.
For complete reference select Doxygen documentation.
Package PSEvt
PSEvt package contains classes which provide storage and access to event data.
For complete reference select Doxygen documentation.
Package PSEnv
PSEnv package contains classes which provide storage and access to non-event data.
For complete reference select Doxygen documentation.
Package PSTime
This package include several classes and functions which define time representation and operations with time. It is based on on standard ISO8601 external representation (http://en.wikipedia.org/wiki/ISO_8601) but it does not provide complete support and in some cases it is made more human-oriented.
For complete reference select Doxygen documentation.
Package RootHistoManager
Interim implementation of the histogramming service based on pure ROOT classes.
This package is a thin wrapper around standard ROOT package. It just adds one more class RootHMgr which is a factory class for ROOT histograms and also manages the lifetime of the associated ROOT file and histograms that it creates.
For complete reference select Doxygen documentation.
Package PSXtcInput
Package with the implementation of psana input module for XTC files. It is a part of the framework itself and does not have user-callable methods.
For complete reference select Doxygen documentation.
Package psddl_psana
This package contains definition of interfaces for all data types produced by LCLS. The interfaces are generated from a data definition language (psddl) and are similar but not identical to the data classes defined in pdsdata
package.
All classes in psddl_psana
are defined in a separate namespace Psana
to reduce possibility of collision with other libraries. Individual sub-packages (such as Acqiris or CsPad) define their own namespaces withing Psana
namespace.
For complete reference select auto-generated documentation.
Package ConfigSvc
This package defines service which allows clients to extract parameter values from configuration file. User modules in psana framework do not interact with this service directly, instead the base class for user module defines several methods which facilitate the access to the configuration parameters.
For details look at the documentation of psana::Configurable
class.
Package MsgLogger
MsgLogger package provides service for generating, filtering, and routing of the messages. User Manual provides detailed description of the service and shows examples of how this services can be used from the user code.