Versions Compared

Key

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

...

In several of these examples, we fill root histograms or NTuples. For more information on root, see http://root.cern.ch.

Disclaimer: There is no more complete or up-to-date documentation than the code itself, so regard this document as an introduction and a user guide, not a complete documentation.

If you have questions or requests related to this user guide, feel free to send me an email (ofte at slac.stanford.edu).

...

The data recorded from the LCLS experiments are stored in xtc (eXtended Tagged Container) files. These files contain This online format consists of "datagrams" which are an object of some , C structures which have a type (TypeId) with associated , a status (Damage), source (Src) and extent (size). It is Xtc files are not an indexed file and does not provide random access, and can only be read . The only way to read it is using a special iterator (XtcIterator) and read the events seqencially, one event ( shot ) at a time.

You can explore the contents of an xtc file by using the xtcreader utility or pyxtcreader utilities:

Code Block
pslogin ~ >  xtcreader -f myxtcfile.xtc | less
pslogin ~ >  pyxtcreader  myxtcfile.xtc | less

Reading through the output, you may see sections describing the various transitions in datataking. Look for these "headings" in the text output:

...

  • Princeton camera:
    To get the image data (array of unsigned short), use getPrincetonValue, and to get other information, like the image size, camera exposure, temperature etc, use getPrincetonConfig and getPrincetonTemperature:
    Code Block
    int getPrincetonConfig(Pds::DetInfo::Detector det, int iDevId,
                           int& width, int& height,  // image width and height in pixels
                           int& orgX, int& orgY,     // 0,0 
                           int& binX, int&binY);     // 1,1
    
    int getPrincetonValue(Pds::DetInfo::Detector det, int iDevId, 
                          unsigned short *& image);  // pointer to first pixel element
    
    int getPrincetonTemperature(Pds::DetInfo::Detector det, int iDevId, 
                                float& temperature);
    
    fetches the configuration and data from the camera. getPrincetonTemperature is there to check the temperature of the camera at the time of data taking (not necessarily available for every shot).

...