Frequently asked questions
Frequently asked questions
XTC files are read through psana, thus there is a chance that the psana.cfg file may also need modification. This file specifies the Cheetah module to load for processing, as well as which detectors are read into Cheetah. The detector information in particular may need to be changed for different experiment configurations and different instruments. Hopefully this file does not need to be modified, but now you know it’s there just in case.
Q: I can not read the cspad detector
Q: Has something changed recently?
Check the change notes. Sometimes improvements break back-compatibility in the interests of moving forwards.
Q: I am getting the error
*** Constructor ***
Standard exception caught in runApp(): PSEvt::Exception: Source string cannot be parsed: 'BldInfo(:FEE-SPEC0)' [in func$
Note: Support for the FEE spectrometer was added on 24 November 2013.
This may require the following line to be added to your psana.conf file:
feeSpectrum = BldInfo(FEE-SPEC0)
There have been reports of psana crashing with the error
Standard exception caught in runApp(): PSEvt::Exception: Source string cannot be parsed: 'BldInfo(:FEE-SPEC0)' [in func$
if this line is not present, even though a default value has been specified
Answer:
We added support for the front end spectrometer in November 2013.
This is meant to pick up a default value, but sometimes it does not.
Make sure to add the line:
feeSpectrum = BldInfo(FEE-SPEC0)
to your psana.conf file and try again.
Note that CXI changed the detector naming convention in June 2014.
The front CSpad detector is now called Ds2 in the data stream starting with Run 7 for cxid6214. Ds1 will be the back detector.
Note that the Dsd name that the 2nd CSpad detector (DS2) previously had in the data stream is a holdover from quite some time ago. Now is a good time to make this detector name clarification to avoid future confusion since the physical locations on the beamline are named:
- DSA for the position immediately after the SC01 (aka SC2) chamber for the 100nm focus.
- DSB for the position in front of the SC1 chamber
- DSC for the front detector position immediately after the SC1 chamber
- DSD for the back detector position
For the rest of Run 9 we expect to have the following configuration:
- DS2 in the DSC location
- DS1 in the DSD location
DS2 is our newest and best V1.6 CSpad detector. It is believed to have ~10% better energy resolution than the DS1 detector, which is now the back detector. The DS1 detector also has one 2x2 that does not behave quite as well with high X-ray counts. These are the two primary reasons that motivate the switch in positions. The switch also mitigates risk due to the poor encoder behavior observed during a couple days of the cxid2714 Neutze beamtime for the DS1 z-axis, but this seems to be resolved now.
(thanks to Jason Koglin for this note)
Q: Running the cheetah gui from outside slac is painfully slow
It is possible to run the Cheetah GUI at SLAC over X11 forwarding from anywhere in the world. However, this can be painfully slow at times because of X11 latency.
An effective workaround is to use VNC or noMachine to render the graphics at SLAC and display only the compressed screen image on your monitor.
noMachine is supported at LCLS - instructions can be found Instructions for starting an XVNC from SLAC can be found on this SLAC confluence page.
Q: Is the right data in my XTC file?
Check the XTC data file at a lower level.
Thanks to Andrei Salnikov for this tip:
If you suspect that data disappeared for some reason you need to start checking event contents to see if it is really there. There are many tools which can help you to analyse XTC file contents. With psana you can run this command to dump the content of the events as it is seen by psana (probably most useful for you):
% psana -m EventKeys exp=cxib9213:run=8 | less
...
Event keys:
EventKey(type=Psana::EvrData::DataV3, src=DetInfo(NoDetector.0:Evr.0))
EventKey(type=Psana::Camera::FrameV1, src=DetInfo(CxiDg2.0:Tm6740.0))
EventKey(type=Psana::CsPad::DataV1, src=DetInfo(CxiDs1.0:Cspad.0))
EventKey(type=Psana::Bld::BldDataEBeamV4, src=BldInfo(EBeam))
EventKey(type=Psana::Bld::BldDataFEEGasDetEnergy, src=BldInfo(FEEGasDetEnergy))
EventKey(type=PSEvt::EventId)
EventKey(type=Pds::Dgram)
another usefult tool is pyxtcreader, it dumps the structure of the XTC
file:
% pyxtcreader /reg/d/psdm/cxi/cxib9213//xtc/e334-r0008-s0* | less
....
L1Accept transition: damage=0x4000, type=0, time=1382419172.690850779, ticks=331078, fiducials=24792, control=140, vector=8657, payloadSize=5208936
Event level: payloadSize=5208936 damage=0x4000 src=ProcInfo(Event, 31361, 172.21.26.101) contains=Xtc
.....
Segment level: payloadSize=4594084 damage=0x0 src=ProcInfo(Segment, 3922, 172.21.26.95) contains=Xtc
Source level: payloadSize=4594064 damage=0x0 src=DetInfo(CxiDs1-0|Cspad-0) contains=CspadElement_V1
Cheers,
Andy