Page History
...
Skipped events can be used in further analysis or saved in the "filtered" Xtc file, as explained in Package PSXtcOutput.
Job and Module Configuration
...
Parameters for user modules appear in the separate sections named after the modules. For example the module with name "TestPackage.ExampleModule" will read its parameters from the section [TestPackage.ExampleModule]
. If the module name includes modifier after colon then it will try to find parameter value in the corresponding section first and if it does not exist there it will try to read parameter form section which does not have modifier. In this way the modules can share common parameters. For example the module "TestPackage.ExampleModule:test" will try to read a parameter from [TestPackage.ExampleModule:test]
section first and [TestPackage.ExampleModule]
section after that
To help manage configuration options, Psana provides a way select between several sets of parameters in a config file, as well as to override a default set with a few specific values. When specifying a module to load, it can be tagged as follows:
modules = TestPackage.Analysis:mode1
The modifier after the colon tells Psana to first look for configuration parameters in the section [TestPackage.Analysis:model]
and then in the section [TestPackage.ExampleModule]
. It is also possible to load the same module several times, specifying different configuration options for each instance. Psana will construct each instance with a different name - based on the tag provided.
Here is an example of configuration for some fictional analysis job:
...
More extensive example is available in Psana User Examples - Old.
Writing User Modules
Here are few simple steps and guidelines which should help users to write their analysis modules.
- Everything is done in the context of the off-line analysis releases, your environment should be prepared and you should have test release setup based on one of the recent analysis releases. Consult Workbook which should help you going.
You need your own package which may host several analysis modules. Package name must be unique. If the package has not be created yet run this command:
Code Block newpkg MyPackage mkdir MyPackage/include MyPackage/src
Generate skeleton module class from template:
Code Block codegen -l psana-module MyPackage MyModule
this will create two files:
MyPackage/include/MyModule.h
andMyPackage/src/MyModule.cpp
- Edit these two files, add necessary data members and implementation of the methods.
- For examples of accessing different data types see collection of modules in
psana_examples
package. Reference for all event and configuration data types is located at https://pswww.slac.stanford.edu/swdoc/releases/ana-current/psddl_psana/ - Reference for other classes in psana framework: Psana Reference Manual
- Run
scons
to build the module library. - Create psana config file if necessary.
- Run
psana
providing input data, configuration file, etc. - It is also possible that somebody wrote a module which you can reuse for your analysis, check the module catalog: Psana psana - Module Catalog
To add your own compiler or linker options to the build (such as to link to a third party library), see this section on customizing the scons build.
...
A set of psana modules is available in current release as explained in Psana Module Catalog - Old. Part of them demonstrates how data can be accessed from user module code . Other modules can be used in data analysis or event filtering. Example of application for these modules are available in separate document:
- Psana Module Examples - Old - for advanced modules for analysis and event filtering
...