...
This tool is not in a release yet, so to run, you need to set up an offline release in your directory (See the Account Setup section to set up the analysis environment).
Do the setup from pslogin
:
Code Block |
---|
[user@psana0XXXuser@pslogin ~] newrel ana-current myrelease
[user@psana0XXXuser@pslogin ~] cd myrelease
[user@psana0XXXuser@pslogin ~myrelease] sit_setup
|
Add the xtc browser package to your analysis release and "compile":
Code Block |
---|
[user@psana0XXXuser@pslogin myrelease] addpkg XtcEventBrowser V00-00-18
[user@psana0XXXuser@pslogin myrelease] scons
|
Note! You can omit the "tag" (VXX-XX-XX) to get the latest version in the svn repository, but this may look different from described here.
Run the program with the command 'xtcbrowser' and optionally give the input xtc files that you want to read as arguments. You can also browse to find files after launching the browser.
To have access to the xtc files, you need to login to psana
for this:
Code Block |
---|
[user@psana0XXXuser@psanaXXX myrelease] sit_setup
[user@psanaXXX myrelease] xtcbrowser /reg/d/psdm/cxi/cxi80410/xtc/e55-r0581*
|
...
MatLab | MatPlotLib | Comments |
---|
Loglog plot of one array vs. another Code Block |
---|
%
%
%
a1 = subplot(121);
loglog(channels(:,1),channels(:,2),'o')
xlabel('CH0')
ylabel('CH1')
a2 = subplot(122);
loglog(channels(:,3),channels(:,4),'o')
xlabel('CH2')
ylabel('CH3')
|
| Loglog plot of one array vs. another Code Block |
---|
import matplotlib.pyplot as plt
import numpy as np
a1 = plt.subplot(221)
plt.loglog(channels[:,0],channels[:,1], 'o' )
plt.xlabel('CH0')
plt.ylabel('CH1')
a2 = plt.subplot(222)
plt.loglog(channels[:,2],channels[:,3], 'o' )
plt.xlabel('CH2')
plt.ylabel('CH3')
|
| channels is a 4xN array of floats, where N is the number of events. Each column corresponds to one out of four Ipimb channels.
Note that the arrays are indexed with 1,2,3,4 in MatLab and 0,1,2,3 in MatPlotLib/NumPy/Python.
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="d8514a5f4d7030d5-d1507ac8-455a4baa-8b45a67a-7bd95afa7c8f89aa42f009e1"><ac:plain-text-body><![CDATA[Note also the use of paranthesis, array() in MatLab, array[] in MatPlotLib. | ]]></ac:plain-text-body></ac:structured-macro> |
test | test | Test |
array of limits from graphical input | array of limits from graphical input | |
Code Block |
---|
axes(a1)
hold on
lims(1:2,:) = ginput(2);
axes(a2)
hold on
lims(3:4,:) = ginput(2);
|
| Code Block |
---|
lims = np.zeros((4,2),dtype="float")
plt.axes(a1)
plt.hold(True)
lims[0:2,:] = plt.ginput(2)
plt.axes(a2)
plt.hold(True)
lims[2:4,:] = plt.ginput(2)
|
| In MatLab, lims is an expandable array that holds limits as set by input from mouse click on the plot (ginput). NumPy arrays cannot be expanded, so I've declared a 4x2 array of zeros to start with, then fill it with ginput().
|
|
| | |
filter | filter | |
Code Block |
---|
fbool1 = (channels(:,1)>min(lims(1:2,1)))&(channels(:,1)<max(lims(1:2,1)))
fbool2 = (channels(:,2)>min(lims(1:2,2)))&(channels(:,2)<max(lims(1:2,2)));
fbool = fbool1&fbool2
loglog(channels(fbool,1),channels(fbool,2),'or')
fbool3 = (channels(:,3)>min(lims(3:4,3)))&(channels(:,3)<max(lims(3:4,3)))
fbool4 = (channels(:,4)>min(lims(3:4,4)))&(channels(:,4)<max(lims(3:4,4)));
fbool = fbool3&fbool4
loglog(channels(fbool,3),channels(fbool,4),'or') |
| Code Block |
---|
fbools0 = (channels[:,0]>lims[:,0].min())&(channels[:,0]<lims[:,0].max())
fbools1 = (channels[:,1]>lims[:,1].min())&(channels[:,1]<lims[:,1].max())
fbools = fbools0 & fbools1
fbools2 = (channels[:,2]>lims[:,2].min())&(channels[:,2]<lims[:,2].max())
fbools3 = (channels[:,3]>lims[:,3].min())&(channels[:,3]<lims[:,3].max())
fbools = fbools2&fbools3
|
| Comment |
| | |