Page History
Include Page |
---|
...
|
...
|
Table of Contents |
---|
Include Page |
---|
...
|
...
|
Introduction
This reference manual describes interfaces of various classes constituting psana analysis framework. For more user-oriented description with examples and detailed explanations consult consult Psana User Manual - Old.
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/OPSHist
– – Package providing interfaces for histogramming servicesRootHist
– – Package providing the ROOT implementation for histogramming services of ofPSHist
RootHistoManager
– – 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 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 release ana-current
), for older versions please navigate to the page page https://pswww.slac.stanford.edu/swdoc/releases/ and 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 select Doxygen documentation.
Package PSEvt
PSEvt package contains classes which provide storage and access to event data.
For complete reference select select Doxygen documentation.
Package PSEnv
PSEnv package contains classes which provide storage and access to non-event data.
For complete reference select 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 select Doxygen documentation.
Package PSHist
PSHist package contains a set of classes providing abstract interfaces for histogramming service. Specific implementation (e.g. based on ROOT) is instantiated by psana at run time, but client code is supposed to interact with the histogramming service only via abstract interfaces from this package.
For complete reference select select Doxygen documentation.
Package RootHist
RootHist package contains a set of classes with actual implementation of the PSHist abstract methods for histogramming service. This specific implementation is based on ROOT. Client code is supposed to interact with the histogramming service only via abstract interfaces from the PSHist package.
For complete reference select select Doxygen documentation.
Package RootHistoManager
...
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 select Doxygen documentation.
Package PSXtcInput
Package deals 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 select Doxygen documentation.
Package PSXtcOutput
Package deals with the implementation of psana output module for XTC files. It is a part of the framework itself and does not have user-callable methods. The event, which is passed by all filter modules (see section section Controlling Framework from User Module), is saved in the output file.
Module configuration parameters:
chunkSizeMB
(default: 512000U) – output file chank size in MBnameFmt
(default: "e%1$d-r%2$04d-s%3$02d-c%4$02d.xtcf") – output file name formatdirName
(default: ".") – output file directorykeepEpics
(default: true) – keep/discard EPICS variablesexpNum
(default: 0)run
(default: 0)stream
(default: 0)
See also also Psana Module Examples - Old#Example for TimeStampFilter and XtcOutputModule.
For complete reference select 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 in pdsdata
package package.
All classes in in psddl_psana
are are defined in a separate namespace namespace Psana
to to reduce possibility of collision with other libraries. Individual sub-packages (such as Acqiris or CsPad) define their own namespaces withing withing Psana
namespace namespace.
For complete reference select select auto-generated documentation.
...
For details look at the documentation of of psana::Configurable
class class.
Package ndarray
This package defines classes (currently only one class with the same name name ndarray
) which provide high-level C++ interface to multi-dimensional array.
For details look at the documentation of of ndarray
class class.
Package MsgLogger
MsgLogger package provides service for generating, filtering, and routing of the messages. User Manual provides detailed detailed description of of the service and shows examples of how this services can be used from the user code. Se also [also Doxygen-generated documentation|https://pswww.slac.stanford.edu/swdoc/releases/ana-current/psana-doxy/html