Page History
...
Short | Long | Config File | Option type | Default | Description | ||
---|---|---|---|---|---|---|---|
-v | --verbose | verbose | integer | 0 | Command line options do not need any values but can be repeated multiple times, configuration file option accepts single integer number. | ||
-c file | --config=file |
| path | pyana.cfg | Name of the configuration file. | ||
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="70eebdfe21a5a9ef-3c5d59de-4a0a48fc-b9fbab12-0b553010c3bc445cbb2a81b2"><ac:plain-text-body><![CDATA[ | -C name | --config-name=name |
| string |
| If non-empty string is given then configuration will be read from section | ]]></ac:plain-text-body></ac:structured-macro> |
-l file | --file-list=file | file-list | path |
| The list of input data files will be read form a given file which must contain one file name per line. | ||
-n number | --num-events=number | num-events | integer | 0 | Maximum number of events to process, this counter will include damaged events too. | ||
-j name | --job-name=name | job-name | string |
| Sets job name which is accessible to user code via environment method. Default name is based on the input file names. | ||
-m name | --module=name | modules | string |
| User analysis module(s). Command line options can be repeated several times, configuration file option accepts space-separated list of names. | ||
-p number | --num-cpu=number | num-cpu | integer | 1 | Number of processes to run, if greater than 1 then multi-processing mode will be used. |
...
Code Block | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||
# user analysis class class myana(object): def beginjob(self, event, env): # get histogram manager hmgr = env.hmgr() # book histograms, store referemcesreferences self.hist1 = hmgr.h1d('energy', 'Energy Distribution', 100, 0., 1.) self.hist2 = hmgr.h2d('energy vs something', 'Histo2 title', 100, 0., 1., 100, -20., 20.) def event(self, event, env): # fill histograms energy = ... something = ... self.hist1.Fill(energy) self.hist2.Fill(energy, something) |
Anchor | ||||
---|---|---|---|---|
|
SciPy Algorithms
Few data classes such as camera.FrameV1
and acqiris.DataDescV1
present their data as NumPy arrays. There are several packages out there that implement efficient algorithms working with NumPy arrays. Probably one of the most widely used packages is SciPy which is a collection of various types of algorithms including optimization, integration, FFT, image processing, statistics, special functions, and few more. The rich interface and close integration with NumPy makes it a good candidate for use in user analysis modules.
SciPy is installed as a part of the standard LCLS analysis releases. SciPy interactive features and Matlab-like API make it attractive for interactive use, but it can also be efficiently used in batch analysis jobs. There is extensive on-line documentation of both NumPy and SciPy.
Here is vary brief example of using SciPy for integration of experimental data:
Code Block | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||
from scipy import integrate
class myana(object):
def event(self, event, env):
# Get Acqiris waveform object
ddesc = evt.getAcqValue( "AmoITof", channel, env )
wf = ddesc.waveform()
ts = ddesc.timestamps()
# integrate it using Simpson's rule
integral = integrate.simps (wf, ts)
|
Anchor | ||||
---|---|---|---|---|
|
...