Page History
Introduction
XTCAV is a detector that is used to determine the laser-power vs. time of each LCLS shot. Alvaro Sanchez-Gonzalez has written psana-python code to do the rather complex analysis of images from the XTCAV camera to determine these quantities.
Analysis Setup
Two things must be done before XTCAV analysis will function: a "dark run" must be analyzed to get the pedestal values for cameras, and a "no lasing" run must be analyzed to generate sets of "no lasing" images (the latter is quite a complex process). An example of a dark-run analysis is:
Code Block | ||
---|---|---|
| ||
#!/usr/bin/env python
from xtcav.GenerateDarkBackground import *
GDB=GenerateDarkBackground();
GDB.experiment='amoc8114'
GDB.runs='85'
GDB.maxshots=150
GDB.SetValidityRange(85,109)
GDB.Generate(); |
An example of a non-lasing run is:
Code Block | ||
---|---|---|
| ||
#!/usr/bin/env python
from xtcav.GenerateLasingOffReference import *
GLOC=GenerateLasingOffReference();
GLOC.experiment='amoc8114'
GLOC.runs='86'
GLOC.maxshots=401
GLOC.nb=1
GLOC.groupsize=5
GLOC.SetValidityRange(86,91)
GLOC.Generate(); |
Once the above has been completed, the user can analyze the lasing-on events.
Example Analysis Script
This script assumes that dark/lasing-off data has been analyzed (see above)
Code Block | ||
---|---|---|
| ||
import psana
from xtcav.ShotToShotCharacterization import *
maxshots=5 #Maximum number of valid shots to process
experiment='amoc8114' #Experiment label
runs='87' #Runs
#Loading the dataset from the "dark" run, this way of working should be compatible with both xtc and hdf5 files
dataSource=psana.DataSource("exp=%s:run=%s:idx" % (experiment,runs))
#XTCAV Retrieval (setting the data source is useful to get information such as experiment name)
XTCAVRetrieval=ShotToShotCharacterization();
XTCAVRetrieval.SetDataSource(dataSource)
for r,run in enumerate(dataSource.runs()):
times = run.times()
for t in times:
evt = run.event(t)
if not XTCAVRetrieval.SetCurrentEvent(evt):
continue
t,power=XTCAVRetrieval.XRayPower()
agreement=XTCAVRetrieval.ReconstructionAgreement() |
Overview
Content Tools