Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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 modules
  • PSEvt  – classes which deal with event data
  • PSEnv  – classes which constitute non-event data (environment)
  • PSTime  – classes for time representation and I/O
  • PSHist  – Package providing interfaces for histogramming services
  • RootHist  – Package providing the ROOT implementation for histogramming services of of PSHist
  • RootHistoManager  – histogramming package, wrapper for ROOT classes
  • PSXtcInput  – input module implementation for XTC files
  • psddl_psana  – interfaces for event data and configuration classes produced by LCLS DAQ
  • ConfigSvc  – configuration service
  • MsgLogger  – 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 MB
  • nameFmt (default: "e%1$d-r%2$04d-s%3$02d-c%4$02d.xtcf") – output file name format
  • dirName (default: ".") – output file directory
  • keepEpics (default: true) – keep/discard EPICS variables
  • expNum (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 on 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