Add jfjoch_azint, a multi-threaded tool that runs CPU azimuthal integration (AzIntEngineCPU) on a Jungfraujoch HDF5 file and writes the result to <prefix>_process.h5, mirroring jfjoch_process output. Azimuthal integration settings (min/max Q, Q spacing, azimuthal bins, polarization and solid-angle corrections), geometry (beam center, detector distance, wavelength, PONI rot1/rot2) and the polarization factor default to the values stored in the input file and can be overridden from the command line. Set az_int_phi_bin_count on the StartMessage so the writer sizes the azimuthal dimension correctly for multi-azimuthal-bin output. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
84 lines
3.3 KiB
Markdown
84 lines
3.3 KiB
Markdown
# Tools
|
|
|
|
## jfjoch_pcie_status
|
|
Prints detailed status information about the card. Execute by adding device path, e.g.:
|
|
```
|
|
./jfjoch_pcie_status /dev/jfjoch0
|
|
```
|
|
The program is safe to execute during a running data collection.
|
|
|
|
## jfjoch_pcie_clear_net_counters
|
|
Network counters in the card give information about Ethernet, UDP and ICMP packets encountered by the network stack prior to Jungfraujoch logic.
|
|
These counters are running from the moment card is powered on. They can be reset by running the program with device name, e.g.:
|
|
```
|
|
./jfjoch_pcie_clear_net_counters /dev/jfjoch0
|
|
```
|
|
|
|
## jfjoch_pcie_net_cfg
|
|
Network configuration can be retrieved and modified with `jfjoch_pcie_net_cfg` tool. Usage:
|
|
|
|
```
|
|
jfjoch_pcie_net_cfg <device name>
|
|
Read configuration for all network interface of a device
|
|
jfjoch_pcie_net_cfg <device name> <if number>|fgen
|
|
Read configuration for a particular network interface / internal frame generator"
|
|
jfjoch_pcie_net_cfg <device name> <if number>|fgen ipv4 <IPv4 address>
|
|
Set IPv4 address for a particular network interface / internal frame generator
|
|
jfjoch_pcie_net_cfg <device name> <if number>|fgen direct 0|1
|
|
Set direct mode for a particular network interface / internal frame generator
|
|
jfjoch_pcie_net_cfg <device name> <if number>|fgen clear
|
|
Clear Ethernet counter for a particular network interface / internal frame generator
|
|
```
|
|
|
|
## jfjoch_hdf5_tools
|
|
|
|
Tool to test single threaded HDF5 writer performance
|
|
|
|
## jfjoch_offline_process
|
|
|
|
Tool to run offline processing on existing HDF5 dataset
|
|
|
|
## jfjoch_udp_simulator
|
|
|
|
UDP simulator to test Jungfraujoch FPGA
|
|
|
|
## jfjoch_pcie_read_register
|
|
|
|
Tool to read verbatim Jungfraujoch FPGA registers
|
|
|
|
## jfjoch_azint
|
|
|
|
Runs CPU azimuthal integration on an existing Jungfraujoch HDF5 file using `N` threads and writes the
|
|
result to `<prefix>_process.h5`. Example:
|
|
```
|
|
./jfjoch_azint -o output -N 8 input.h5
|
|
```
|
|
|
|
The integration settings and geometry default to the values stored in the input file; any of them can be
|
|
overridden on the command line:
|
|
```
|
|
jfjoch_azint {<options>} <input.h5>
|
|
-o, --output-prefix <txt> Output file prefix (default: output)
|
|
-N, --threads <num> Number of threads (default: 1)
|
|
-s, --start-image <num> Start image number (default: 0)
|
|
-e, --end-image <num> End image number (default: all)
|
|
-t, --stride <num> Image stride (default: 1)
|
|
-v, --verbose Verbose output
|
|
|
|
Azimuthal integration:
|
|
--min-q <num> Minimum Q for integration (1/A)
|
|
--max-q <num> Maximum Q for integration (1/A)
|
|
--q-spacing <num> Q bin spacing (1/A)
|
|
--azimuthal-bins <num> Number of azimuthal bins (default: 1)
|
|
--polarization-correction <on|off> Enable/disable polarization correction
|
|
--solid-angle-correction <on|off> Enable/disable solid angle correction
|
|
|
|
Geometry overrides:
|
|
--beam-x <num> Beam center X (pixel)
|
|
--beam-y <num> Beam center Y (pixel)
|
|
--detector-distance <num> Detector distance (mm)
|
|
--wavelength <num> Wavelength (A)
|
|
--rot1 <num> PONI rotation 1 (rad)
|
|
--rot2 <num> PONI rotation 2 (rad)
|
|
--polarization <num> Polarization factor
|
|
``` |