Versions Compared

Key

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

...

Panel

Anchor
pyana.event.Event
pyana.event.Event

Class pyana.event.Event

Instance of this class contains all event data.


Construction

Usage: evt = pyana.event.Event(dg)

Creates event object from the corresponding XTC datagram object.

Parameters:


Method

seq()

Usage: s = evt.seq()

Returns _pdsdata.xtc.Sequence object, equivalent to dg.seq

Method getTime()

Usage: t = evt.getTime()

Returns _pdsdata.xtc.ClockTime object, equivalent to dg.seq.clock()

Method find()

Usage: objects = evt.find(...)

Returns possibly empty list of data objects contained in the event. This method accepts a number of arguments, but all arguments are optional. If no arguments are given then a list of all data objects is returned. If some arguments are given then only those objects that satisfy a particular criteria are returned. The list of possible keyword arguments:

  • typeId – accepts enum xtc.TypeId.Type, only return objects which have that TypeId
  • version – accepts number, only return objects whose type version number is equal to number
  • level – accepts one of xtc.Level values, only returns objects originated at that level
  • detector – accepts enum xtc.DetInfo.Detector values, only returns objects produced by this detector
  • detId – accepts number, only returns objects produced by this detector ID
  • device – accepts enum xtc.DetInfo.Device values, only returns objects produced by this device
  • devId – accepts number, only returns objects produced by this device ID
  • addressxtc.DetInfo object or an address string (see User Manual)

The parameters address and any of the detector, detId, device, devId are incompatible, specify only one or another.


Method findFirst()

Usage: object = evt.findFirst(...)

Accepts the same set of arguments as find() methods but instead of list of objects returns fist object found. If no object is satisfying all selection criteria then None is returned.


Method getAcqConfig()

Usage: acqConfig = evt.getAcqConfig(address)

Returns Acqiris configuration data of type acqiris.ConfigV* for specific device. If address given is not very specific then the first matching object is returned.

Parameters:

Ordinary configuration objects are contained in a Configure type datagrams only. For client code that means that this method can be used in beginjob() or beginrun() methods only. Note also that configuration objects are stored in the Pyana environment and preferred way to access configuration information is through the environment. This makes this method of little utility to end users.


Method

getOpal1kConfig

getAcqValue()

Usage: opalConfig acqData = evt.getOpal1kConfiggetAcqValue(address, channel, env)

Returns Opal1k configuration Acqiris data object of type opal1kpypdsdata.acqiris.ConfigVDataDescV* for specific device and channel. If address given is not very specific then the first matching object is returned.

Parameters:

Same caveats apply as for getAcqConfig() method.

Method getAcqValue()

Usage: acqData = evt.getAcqValue(address, channel, env)

Returns Acqiris data object of type pypdsdata.acqiris.DataDescV* for specific device and channel. If address given is not very specific then the first matching object is returned.

Parameters:

  • addressxtc.DetInfo object or an address string (see User Manual)
  • channel – channel number from 0 to max number of channels
  • env – environment object containing Acqiris configuration object
  • channel – channel number from 0 to max number of channels
  • env – environment object containing Acqiris configuration object

Channel Channel number is an integer number, total number of channels can be extracted from the Acqiris configuration object.


Method

getOpal1kValue

getEBeam()

Usage: frame obj = evt.getOpal1kValuegetEBeam(address)

Returns Acqiris data object of type _pdsdata.camera.Frame* for specific device and channel. If address given is not very specific then the first matching object is returned.

Parameters:

Method getPnCcdValue()

Usage: frame = evt.getPnCcdValue(address, env)

returns pnCCD data object of type pypdsdata.pnccd.FrameV* for specific device. If address given is not very specific then the first matching object is returned.

Parameters:

  • addressxtc.DetInfo object or an address string (see User Manual)
  • env – environment object containing pnCCD configuration object

Method getFeeGasDet()

bld.BldDataEBeam or bld.BldDataEBeamV0 whichever is present in the event.

...

Method getFeeGasDet()

Usage: array = evt.getFeeGasDet()

Wiki Markup
Returns the list of 4 numbers {{\[f_11_ENRC, f_12_ENRC, f_21_ENRC, f_22_ENRC\]}} obtained from [{{bld.BldDataFEEGasDetEnergy}}|#_pdsdata.bld.BldDataFEEGasDetEnergy] object.

...

Method

...

getOpal1kConfig()

Usage:

...

opalConfig = evt.

...

getOpal1kConfig(address)

Returns Opal1k configuration data

...

of type opal1k.ConfigV* for specific device. If address given is not very specific then the first matching object is returned.

Parameters:

  • addressxtc.DetInfo object or an address string (see User Manual)

Same caveats apply as for getAcqConfig() method.

...

Method getOpal1kValue()

Usage: frame = evt.getOpal1kValue(address)

Returns Acqiris data object of type _pdsdata.camera.Frame* for specific device and channel. If address given is not very specific then the first matching object is returned.

Parameters:

...

Method getPhaseCavity()

Usage: obj = evt.getPhaseCavity()

Returns data object of type bld.BldDataPhaseCavity.

...

Method getPnCcdValue()

Usage: frame = evt.getPnCcdValue(address, env)

returns pnCCD data object of type pypdsdata.pnccd.FrameV* for specific device. If address given is not very specific then the first matching object is returned.

Parameters:

  • addressxtc.DetInfo object or an address string (see User Manual)
  • env – environment object containing pnCCD configuration object

...

Method getTime()

Usage: t = evt.getTime()

Returns _pdsdata.xtc.ClockTime object, equivalent to dg.seq.clock()

...

Method seq()

Usage: s = evt.seq()

Returns _pdsdata.xtc.Sequence object, equivalent to dg.seq

...

bld.BldDataPhaseCavity.

Method getEBeam()

Usage: obj = evt.getEBeam()

Returns data object of type bld.BldDataEBeam or bld.BldDataEBeamV0 whichever is present in the event.

Class pyana.event.Env

Instance of this class is a container for all sorts of environment data.

Construction

Usage: env = pyana.event.Env(jobName="pyana", hmgr=None, subproc=False)

Creates environment object.

Parameters:

  • jobName – analysis job name, arbitrary string
  • hmgr – histogram manager object
  • subproc – flag which must be set to true when running in pyana sub-process

Objects of this type are created by pyana itself and end users do not need to create new instances.

Method jobName()

Usage: jobName = env.jobName()

Returns analysis job name string.

Method subprocess()

Usage: num = env.subprocess()

Returns sub-process number. In case of multi-processing job it will be a non-negative number ranging from 0 to a total number of sub-processes. In case of single-process job it will return -1.

Method jobNameSub()

Usage: jobName = env.jobNameSub()

Returns process-specific analysis job name string. In case of multi-processing job it will a string in format "jobName-procNum" where procNum is a number returned by subprocess(). In case of single-process job it will return the same string as jobName().

Method hmgr()

Usage: hmgr = env.hmgr()

Returns histogram manager object of type pyana.histo.HistoManager*.

Method mkfile()

Usage: file = env.mkfile(filename, mode='w', bufsize=-1)

Opens file for writing output data. This is pyana's alternative for Python open() function which supports multi-processing. If user needs the data in this file to be merged with the files produced by other processes then mkfile() has to be used in place of open().

Parameters:

  • filename – output file name
  • mode – open mode, currently any "w*" modes are supported
  • bufsize – output buffer size, default is to use Python's default

In case of single-process job this method is equivalent to a regular Python open() method. In case of multi-processing when this method is called from a sub-process then the file is created somewhere in a temporary location (with unique name). At the end of the job files from all sub-processes are merged into one file with name filename and the temporary files are deleted.


Method epicsStore()

Usage: store = env.epicsStore()

This is the primary method for user code to access EPICS data. It returns event.EpicsStore object which can be used to retrieve the state of the individual EPICS channels.


Method

update

getAcqConfig()

Usage: acqConfig = env.updategetAcqConfig(evtaddress)

This method updates environment contents with selected data from event object. This is equivalent to calling env.updateEpics() and env.updateConfig().

Parameters:

  • evt – event object of type event.Event

This method is not supposed to be called from user code, pyana takes care of all updates itself.

Method updateEpics()

Usage: env.updateEpics(evt)

This method updates environment EPICS data from event object.

Parameters:

This method is not supposed to be called from user code, pyana takes care of all updates itself.

Method updateConfig

Returns Acqiris configuration object for a given device address. If more than one object is matched by the parameters then first arbitrary object is returned. None is returned if no object is found.

Parameters:


Method getControlConfig()

Usage: opalConfig = env.getControlConfig()

Returns control.Config configuration object or None.


Method getOpal1kConfig()

Usage: opalConfig = env.getOpal1kConfig(address)

Returns Opal1k configuration object for a given device address. If more than one object is matched by the parameters then first arbitrary object is returned. None is returned if no object is found.

Parameters:


Method getPnCCDConfig()

Usage: pnccdConfig = env.getPnCCDConfig(address)

Returns pnCCD configuration object for a given device address. If more than one object is matched by the parameters then first arbitrary object is returned. None is returned if no object is found.

Parameters:


Method hmgr()

Usage: hmgr = env.hmgr()

Returns histogram manager object of type pyana.histo.HistoManager*.


Method jobName()

Usage: jobName = env.jobName()

Returns analysis job name string.


Method jobNameSub()

Usage: jobName = env.jobNameSub()

Returns process-specific analysis job name string. In case of multi-processing job it will a string in format "jobName-procNum" where procNum is a number returned by subprocess(). In case of single-process job it will return the same string as jobName().


Method mkfile()

Usage: file = env.mkfile(filename, mode='w', bufsize=-1)

Opens file for writing output data. This is pyana's alternative for Python open() function which supports multi-processing. If user needs the data in this file to be merged with the files produced by other processes then mkfile() has to be used in place of open().

Parameters:

  • filename – output file name
  • mode – open mode, currently any "w*" modes are supported
  • bufsize – output buffer size, default is to use Python's default

In case of single-process job this method is equivalent to a regular Python open() method. In case of multi-processing when this method is called from a sub-process then the file is created somewhere in a temporary location (with unique name). At the end of the job files from all sub-processes are merged into one file with name filename and the temporary files are deleted.


Method subprocess()

Usage: num = env.subprocess()

Returns sub-process number. In case of multi-processing job it will be a non-negative number ranging from 0 to a total number of sub-processes. In case of single-process job it will return -1.


Method update()

Usage: env.updateConfigupdate(evt)

This method copies configuration objects from event object into environment.

Parameters:

  • evt – event object of type event.Event

This method is not supposed to be called from user code, pyana takes care of all updates itself.

Method getAcqConfig()

Usage: acqConfig = env.getAcqConfig(address)

Returns Acqiris configuration object for a given device address. If more than one object is matched by the parameters then first arbitrary object is returned. None is returned if no object is foundupdates environment contents with selected data from event object. This is equivalent to calling env.updateEpics() and env.updateConfig().

Parameters:

Method getPnCCDConfig
  • evt – event object of type event.Event

This method is not supposed to be called from user code, pyana takes care of all updates itself.


Method updateEpics()

Usage: pnccdConfig = env.getPnCCDConfigupdateEpics(addressevt)

Returns pnCCD configuration object for a given device address. If more than one object is matched by the parameters then first arbitrary object is returned. None is returned if no object is found.

Parameters:

Method getOpal1kConfig

This method updates environment EPICS data from event object.

Parameters:

This method is not supposed to be called from user code, pyana takes care of all updates itself.


Method updateConfig()

Usage: opalConfig = env.getOpal1kConfigupdateConfig(addressevt)

Returns Opal1k configuration object for a given device address. If more than one object is matched by the parameters then first arbitrary object is returned. None is returned if no object is foundThis method copies configuration objects from event object into environment.

Parameters:

Method getControlConfig()

Usage: opalConfig = env.getControlConfig()

  • event object of type event.Event

This method is not supposed to be called from user code, pyana takes care of all updates itselfReturns control.Config configuration object or None.


Method result()

Usage: data = env.result()

Method used by pyana to extract the data produced by a single sub-process in multi-processing setup. Not to be used by end users.

Panel

Anchor
pyana.event.Env
pyana.event.Env

Class pyana.event.Env

Instance of this class is a container for all sorts of environment data.


Construction

Usage: env = pyana.event.Env(jobName="pyana", hmgr=None, subproc=False)

Creates environment object.

Parameters:

  • jobName – analysis job name, arbitrary string
  • hmgr – histogram manager object
  • subproc – flag which must be set to true when running in pyana sub-process

Objects of this type are created by pyana itself and end users do not need to create new instances

Panel
Anchor
pyana.event.Envpyana.event.Env

...