Compare commits
447 Commits
4.0.0
...
split-list
Author | SHA1 | Date | |
---|---|---|---|
193f2b9011 | |||
6cb043b2d9 | |||
fa34ad435b | |||
c5178bc4de | |||
c89fad45a9 | |||
6c4fad01d4 | |||
eb3dff3a6c | |||
d9503bebf9 | |||
b99606211b | |||
039e658773 | |||
92ca22fc09 | |||
d4ac6fe160 | |||
8cb0f3a29c | |||
c16f9b8c30 | |||
050854de36 | |||
cb80cf5f09 | |||
83e43b1bcf | |||
2a01688683 | |||
3ff01bf609 | |||
4b2c6af4f5 | |||
03402d0e9e | |||
9d489dc962 | |||
44f0dfc3c0 | |||
685fcc31b6 | |||
ce6289afda | |||
4e56107015 | |||
430e0e3fb5 | |||
d8c0fb522a | |||
ce25c06b41 | |||
6759b2eeb8 | |||
38bf540c1a | |||
43012e4f28 | |||
98655ee7e3 | |||
43d478076c | |||
4036e6af8d | |||
fad73a57aa | |||
c0d5303b70 | |||
3356c2d3f6 | |||
3f45d39c8d | |||
4e94995142 | |||
c93b78c74f | |||
73af4a744f | |||
6ddde83c81 | |||
bb93147537 | |||
1eff8485dd | |||
c153be95d1 | |||
4943983d10 | |||
5fe7a86361 | |||
7522a655df | |||
836eb8cde2 | |||
9f724f0c0d | |||
bad44f5bf4 | |||
40d2f66146 | |||
9639e480d9 | |||
8520492e4b | |||
be33102164 | |||
5235a87e93 | |||
cb687d805e | |||
327d08a016 | |||
1960460e43 | |||
e42e8f5bf6 | |||
c9422befff | |||
c56efdec8a | |||
14131f93f1 | |||
d21ceb0e75 | |||
9a08c85b2a | |||
85134443de | |||
7d3d2a8b31 | |||
75ce111344 | |||
f8aa0e3d6d | |||
2dcef909ca | |||
ec18db868f | |||
7e793539ca | |||
d4e4fb8ffe | |||
48e4cec56f | |||
3b2c734efd | |||
507a22ac05 | |||
a01d68a61f | |||
6765fd0dc8 | |||
ae5938799f | |||
19b21dac88 | |||
b8f071dcf6 | |||
182f65bc2f | |||
1103f56256 | |||
0553755439 | |||
65b8ab5b89 | |||
658438df3b | |||
999a2f4d15 | |||
2532df37cc | |||
ca817c6ae9 | |||
0765b330f1 | |||
abc7a9bd2f | |||
2676e8b43d | |||
d3c1193a71 | |||
db232ad00d | |||
ceb515d517 | |||
04c8a2871d | |||
1803a5aecc | |||
c40db94474 | |||
c56561bc9f | |||
08bd2378f4 | |||
8939e23622 | |||
93192c6e84 | |||
d2d50a56df | |||
8c067437e6 | |||
35b1ad39f7 | |||
bb81613900 | |||
ebee9e308e | |||
debf3a1b01 | |||
96584ce397 | |||
7f2197fc4f | |||
302d9f0633 | |||
f80483de6e | |||
1fe473e830 | |||
966896b942 | |||
4c7a9cd838 | |||
c218e391bb | |||
43ad8b69b3 | |||
4c35dd9b5b | |||
15fc55f914 | |||
eecfcae312 | |||
c723b29f9b | |||
9b81143c68 | |||
20edf61e30 | |||
a1a6a5dbaa | |||
a8121ae108 | |||
40d15264c5 | |||
b2e6b78e20 | |||
f5244faa02 | |||
421dbdb9b5 | |||
617f3d2600 | |||
a4f1b7670f | |||
09546a8632 | |||
29d4eb8b41 | |||
775bde76c9 | |||
d876cb6da6 | |||
69f361468e | |||
b52c6b05b8 | |||
c93f88b7e5 | |||
d0e1289c1b | |||
4a8a72c447 | |||
501c579f6b | |||
722883531d | |||
d2ba206216 | |||
6be47d936f | |||
9aaca14b01 | |||
aaae6d854c | |||
c91c2c224a | |||
2fdfd33f97 | |||
230b26a680 | |||
46aa7769cc | |||
59f3f0c764 | |||
d46d96ecca | |||
82584dd1a8 | |||
b65e0a1f01 | |||
f9417a23e0 | |||
fd95550724 | |||
c064dc84ae | |||
01e3cb8d5e | |||
c6ac0f8ebc | |||
f9be8b89ac | |||
75a75b6cf6 | |||
f125b94a7d | |||
b18391330e | |||
2bcf88e434 | |||
031a11c4f7 | |||
a64b34610a | |||
985b2eba4d | |||
a5ee9fbdba | |||
166541bd15 | |||
140996fae6 | |||
3f43767d38 | |||
a76cc90972 | |||
0c1a3b7756 | |||
076faa62e0 | |||
bb37915419 | |||
536c853d79 | |||
f1d055138c | |||
82ce6b639c | |||
7d9417dffe | |||
89ee1d5bcf | |||
a1c0d28ddb | |||
c3472f295b | |||
99a1c609f1 | |||
3eca4c0535 | |||
b200138730 | |||
a4fec1e750 | |||
46036e5dde | |||
d2ed245d1d | |||
b74aed91dc | |||
e1ec60c9c1 | |||
603b217b54 | |||
449e4da892 | |||
1ec9d950d5 | |||
1b28cc88ff | |||
8d6ee6ff46 | |||
10539f8533 | |||
13d6d3f866 | |||
eff17371a5 | |||
13f9b9929a | |||
b07492be6f | |||
c05829031f | |||
76da6a07aa | |||
db0807bf7b | |||
b19b2a044c | |||
1ebe0f5624 | |||
49f71ffca7 | |||
80a1a3d796 | |||
683a859d4c | |||
37ebeaed7b | |||
0f688bb249 | |||
1ce8f3d092 | |||
10a34cce2d | |||
7fe9251a3b | |||
901785b818 | |||
68545f2b26 | |||
fe09f6d062 | |||
9d9251293d | |||
d240ab7a29 | |||
dd93117b06 | |||
4b9e41e23b | |||
dd5bd60429 | |||
5e032c2c3e | |||
7303734b19 | |||
8bc9fa54fc | |||
a9fb476543 | |||
f2669adda7 | |||
29c09ab381 | |||
8738700e8a | |||
c1c302f740 | |||
bc9d5718c9 | |||
991567ba1c | |||
f0b29cfecc | |||
3c41ec4a7a | |||
172c9218d1 | |||
b7582e93d3 | |||
5ae31bc438 | |||
1941e90697 | |||
363f4f1da0 | |||
1bbb352743 | |||
5ea5e83236 | |||
b46fb5e9c4 | |||
0841df98d4 | |||
1bd0b33806 | |||
de2ebad2ed | |||
2a988c7ffa | |||
94979b5824 | |||
c6a597c3ec | |||
288ef0a514 | |||
818be3bb85 | |||
d01e8d24c2 | |||
b38a41493b | |||
37c22dfeb2 | |||
15235ab4fc | |||
230c335c29 | |||
0f50b9f161 | |||
58f97d4f46 | |||
42ed65076c | |||
b5b5ce5c37 | |||
55c57e4c3f | |||
52785c6642 | |||
f815e7ffb6 | |||
0a2c1d1406 | |||
b1570bde9c | |||
93ec5f5ef7 | |||
feaa276284 | |||
26f8ca3221 | |||
b7aac059c3 | |||
81a49babda | |||
553633651a | |||
bf4ba9d08b | |||
4b007b003a | |||
06a6d53a3f | |||
bfda07d262 | |||
a013734af8 | |||
84a67870a0 | |||
f161d68efc | |||
1ca8bf204a | |||
89d9204e1c | |||
88b9a93b3e | |||
1af2d95462 | |||
d07f53cd6f | |||
6533a474d1 | |||
7a432befa3 | |||
f68321af43 | |||
2dd8093905 | |||
659faa9aaa | |||
feeaebb7e4 | |||
547efc48e3 | |||
1c59c5c4f4 | |||
79693a38f5 | |||
87f7563035 | |||
a4de4bb475 | |||
b3393fc18b | |||
4e65a1d964 | |||
98b5e893b1 | |||
8f3f9caf2b | |||
d0665ce075 | |||
284ce30a81 | |||
c19c787904 | |||
e3a0c1373c | |||
8942098a90 | |||
89fa30ee4b | |||
2e37eda9d9 | |||
a37be4b2e3 | |||
7a99d4155a | |||
91dd176a0f | |||
a99584a0da | |||
d1c8d0b01c | |||
833f0c164c | |||
742d4e6cb7 | |||
d55c39ef08 | |||
a47db85350 | |||
b43be57b6e | |||
92123069ce | |||
17027962ea | |||
e0cbbde01d | |||
aec8c031de | |||
3d40d5d058 | |||
af550b4c70 | |||
70a1b87603 | |||
dfa8cf7381 | |||
92fc837eb4 | |||
33ac63d14a | |||
cf87b6ca83 | |||
261849d69c | |||
129e12fd97 | |||
ab2eb607c8 | |||
5671f1c87b | |||
ff440f1325 | |||
dfad145e14 | |||
500304024d | |||
86fb843021 | |||
c95bc84458 | |||
058de39d40 | |||
b44039361d | |||
0070a79838 | |||
1d14dc6ff4 | |||
1d65063088 | |||
5c2ff84c0e | |||
42c4e3e1a1 | |||
014dfaa251 | |||
b50d359ee6 | |||
b5a2c91873 | |||
3c9b1884d3 | |||
66e79dc9a9 | |||
5b8dfd7943 | |||
178b832223 | |||
8df63b7767 | |||
8382d0f5f9 | |||
1e2ffae690 | |||
f6357a667f | |||
4cdd766a8e | |||
c3289a973f | |||
e921dbb6a7 | |||
1895ee1ebe | |||
22e8c52bd8 | |||
c31c851e88 | |||
565739f6a2 | |||
43c6cae25b | |||
d2c8c0a2eb | |||
d96cbe02a2 | |||
795e147e7d | |||
f806759af3 | |||
316ba01297 | |||
a28932bb6c | |||
4d69b6d3a1 | |||
302f31678f | |||
32924def33 | |||
ee20932392 | |||
0ee7f67965 | |||
c24a9b223c | |||
f7809bda3b | |||
5682466356 | |||
b82fca2c8e | |||
576de404d4 | |||
5a356534e6 | |||
f735c86b93 | |||
6aa0029580 | |||
2216574d34 | |||
d0950ba001 | |||
f69e9d0df4 | |||
8dc0d72028 | |||
5f6f276f70 | |||
fd7060ef6c | |||
e1d570e8ce | |||
6d9530ee1d | |||
b981fe78ef | |||
2cd0841ea3 | |||
74bd223fda | |||
6147383677 | |||
5e7e7d3c33 | |||
938dd5e06c | |||
d685cb8ff4 | |||
78bfc9d0a5 | |||
4b166b726e | |||
9ca163dfc9 | |||
f2da42a305 | |||
64f4188a00 | |||
17a6322f7c | |||
8151f1d5fe | |||
7d5b24fe33 | |||
4bcc24a59f | |||
45b00c4e7d | |||
923a7e8936 | |||
b9f97f42a6 | |||
f7a6938366 | |||
70f55ff788 | |||
7ffa72092f | |||
1c78400369 | |||
b5c35ddeac | |||
ab8b07f2ee | |||
1c70f9ec65 | |||
251a7c2446 | |||
cf37725e04 | |||
287cd118b0 | |||
21ca289ebf | |||
02acaf13c5 | |||
c6d2902539 | |||
2aa7e7d2ff | |||
fefdf8e7d6 | |||
6bfc212f19 | |||
a1b24a637b | |||
40ae74bb99 | |||
586c664a43 | |||
fdcd633769 | |||
70ea4b48c3 | |||
dafbc970e3 | |||
100c1b81f8 | |||
757bc89d05 | |||
97934e323c | |||
f4cfafb2bb | |||
c248b12455 | |||
def79807f6 | |||
c52025dd7c | |||
7b4910ee87 | |||
021212372b | |||
e8612a481c | |||
8773de93e9 | |||
ef20fa6f3c | |||
30e060b3b1 | |||
29ba9ae6f7 | |||
2b2b53f598 | |||
1ebb07198a | |||
ed0b22b500 | |||
548036a602 | |||
1b55fdad86 |
6
.clang-format
Normal file
@ -0,0 +1,6 @@
|
||||
BasedOnStyle: LLVM
|
||||
IndentWidth: 4
|
||||
|
||||
UseTab: Never
|
||||
ColumnLimit: 100
|
||||
AlignConsecutiveAssignments: false
|
7
.clang-tidy
Normal file
@ -0,0 +1,7 @@
|
||||
---
|
||||
Checks: '*, -google-runtime-references, -hicpp-no-array-decay, -cppcoreguidelines-pro-bounds-array-to-pointer-decay, -cppcoreguidelines-pro-bounds-pointer-arithmetic, -fuchsia*,-readability-else-after-return,-readability-avoid-const-params-in-decls,-hicpp-signed-bitwise,-cppcoreguidelines-pro-bounds-constant-array-index,-llvm-header-guard,-readability-static-accessed-through-instance,-google-readability-todo'
|
||||
WarningsAsErrors: '*'
|
||||
HeaderFilterRegex: '.*'
|
||||
AnalyzeTemporaryDtors: false
|
||||
FormatStyle: none
|
||||
...
|
6
.gitignore
vendored
@ -6,6 +6,12 @@ bin/
|
||||
*.log
|
||||
*.out
|
||||
*.toc
|
||||
*.o
|
||||
build
|
||||
docs/
|
||||
RELEASE.txt
|
||||
|
||||
|
||||
*.pyc
|
||||
*/__pycache__/*
|
||||
|
||||
|
3
.gitmodules
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
[submodule "python/pybind11"]
|
||||
path = python/pybind11
|
||||
url = https://github.com/pybind/pybind11.git
|
13
.travis.yml
@ -2,10 +2,13 @@ sudo: false
|
||||
|
||||
language: cpp
|
||||
|
||||
matrix:
|
||||
include:
|
||||
- os: linux
|
||||
env: CONDA_PY=3.6
|
||||
os: linux
|
||||
|
||||
env:
|
||||
matrix:
|
||||
- CONDA_PY=3.6
|
||||
- CONDA_PY=3.7
|
||||
|
||||
|
||||
dist: trusty
|
||||
|
||||
@ -41,5 +44,5 @@ deploy:
|
||||
provider: script
|
||||
script: find $HOME/miniconda/conda-bld/${TRAVIS_OS_NAME}-64 -name "*.tar.bz2" -exec anaconda -t $CONDA_TOKEN upload --force {} \;
|
||||
on:
|
||||
branch: 4.0.0
|
||||
all_branches: true
|
||||
|
||||
|
159
CMakeLists.txt
@ -1,57 +1,134 @@
|
||||
cmake_minimum_required(VERSION 2.8)
|
||||
# cmake_minimum_required(VERSION 3.5)
|
||||
project(slsDetectorPackage)
|
||||
include(cmake/project_version.cmake)
|
||||
|
||||
# Include additional modules that are used unconditionally
|
||||
include(GNUInstallDirs)
|
||||
|
||||
# If conda build, always set lib dir to 'lib'
|
||||
if($ENV{CONDA_BUILD})
|
||||
set(CMAKE_INSTALL_LIBDIR "lib")
|
||||
endif()
|
||||
|
||||
# Set lower / upper case project names
|
||||
string(TOUPPER "${PROJECT_NAME}" PROJECT_NAME_UPPER)
|
||||
string(TOLOWER "${PROJECT_NAME}" PROJECT_NAME_LOWER)
|
||||
|
||||
# Set targets export name (used by slsDetectorPackage and dependencies)
|
||||
set(TARGETS_EXPORT_NAME "${PROJECT_NAME_LOWER}-targets")
|
||||
#set(namespace "${PROJECT_NAME}::")
|
||||
|
||||
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH})
|
||||
set (CALIBRATE OFF)
|
||||
|
||||
option (USE_HDF5 "HDF5 File format" OFF)
|
||||
option (USE_TEXTCLIENT "Text Client" OFF)
|
||||
option (USE_RECEIVER "Receiver" OFF)
|
||||
option (USE_GUI "GUI" OFF)
|
||||
|
||||
|
||||
if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 6.0)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -std=c++98 -Wno-misleading-indentation")
|
||||
else ()
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -std=c++98")
|
||||
endif ()
|
||||
# Check if project is being used directly or via add_subdirectory
|
||||
set(SLS_MASTER_PROJECT OFF)
|
||||
if (CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR)
|
||||
set(SLS_MASTER_PROJECT ON)
|
||||
endif()
|
||||
|
||||
find_package(Qt4)
|
||||
find_package(Qwt 6)
|
||||
find_package(CBF)
|
||||
find_package(Doxygen)
|
||||
# find_package(PNG REQUIRED)
|
||||
|
||||
if (USE_HDF5)
|
||||
find_package(HDF5 1.10 COMPONENTS CXX)
|
||||
endif (USE_HDF5)
|
||||
|
||||
option (SLS_USE_HDF5 "HDF5 File format" OFF)
|
||||
option (SLS_USE_TEXTCLIENT "Text Client" OFF)
|
||||
option (SLS_USE_RECEIVER "Receiver High Level API" OFF)
|
||||
option (SLS_USE_LISTENER "Receiver Low Level API" OFF)
|
||||
option (SLS_USE_GUI "GUI" OFF)
|
||||
option (SLS_USE_TESTS "TESTS" ON)
|
||||
option (SLS_USE_INTEGRATION_TESTS "Integration Tests" ON)
|
||||
option(SLS_USE_SANITIZER "Sanitizers for debugging" OFF)
|
||||
option(SLS_USE_PYTHON "Python bindings" OFF)
|
||||
|
||||
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
||||
|
||||
#Testing for minimum version for compilers
|
||||
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
||||
# clang does not support -Wno-misleading-indentation
|
||||
if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.2)
|
||||
message(FATAL_ERROR "Clang version must be at least 3.2!")
|
||||
endif()
|
||||
elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
|
||||
if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.8)
|
||||
message(FATAL_ERROR "GCC version must be at least 4.8!")
|
||||
endif()
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-misleading-indentation -Wno-stringop-truncation -Wno-class-memaccess")
|
||||
endif()
|
||||
|
||||
# Suppressed warnings in GCC
|
||||
# -Wno-stringop-truncation happens when we do sls::strcpy_safe truncates string instead of overwrite buffer
|
||||
# -Wno-class-memaccess - on memcpy in rapidjson should be investigated upgrade implementation?
|
||||
# -Wno-misleading-indentation - until clang format
|
||||
|
||||
#set (CMAKE_CXX_STANDARD 11)
|
||||
#set (CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -std=c++11 ")
|
||||
|
||||
if(SLS_USE_SANITIZER)
|
||||
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS_DEBUG} -fno-omit-frame-pointer -fsanitize=address,undefined")
|
||||
set (CMAKE_LINKER_FLAGS "${CMAKE_LINKER_FLAGS_DEBUG} -fno-omit-frame-pointer -fsanitize=address,undefiend")
|
||||
endif()
|
||||
|
||||
|
||||
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
||||
|
||||
set(CMAKE_INSTALL_RPATH "$ORIGIN")
|
||||
set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
|
||||
|
||||
|
||||
if (USE_TEXTCLIENT)
|
||||
add_subdirectory(slsDetectorSoftware)
|
||||
endif (USE_TEXTCLIENT)
|
||||
|
||||
if (USE_RECEIVER)
|
||||
add_subdirectory(slsReceiverSoftware)
|
||||
add_subdirectory(manual/manual-api)
|
||||
endif (USE_RECEIVER)
|
||||
|
||||
|
||||
if (USE_GUI)
|
||||
if (QT4_FOUND AND QWT_FOUND)
|
||||
add_subdirectory(slsDetectorGui)
|
||||
endif()
|
||||
endif (USE_GUI)
|
||||
find_package(Doxygen)
|
||||
find_package(ZeroMQ 4 REQUIRED)
|
||||
|
||||
|
||||
if (CALIBRATE)
|
||||
if (DEFINED ENV{ROOTSYS})
|
||||
find_package(ROOT)
|
||||
if (ROOT_FOUND)
|
||||
add_subdirectory(calibrationWizards)
|
||||
endif()
|
||||
# Support library containing functionallity common to
|
||||
# detector and receiver
|
||||
add_subdirectory(slsSupportLib)
|
||||
|
||||
if (SLS_USE_TEXTCLIENT)
|
||||
add_subdirectory(slsDetectorSoftware)
|
||||
endif (SLS_USE_TEXTCLIENT)
|
||||
|
||||
# This logic could be moved in slsReceiverSoftware/CMakeLists.txt
|
||||
if (SLS_USE_RECEIVER)
|
||||
set(SLS_USE_LISTENER ON)
|
||||
if (SLS_USE_HDF5)
|
||||
find_package(HDF5 1.10 COMPONENTS CXX REQUIRED)
|
||||
endif (SLS_USE_HDF5)
|
||||
add_subdirectory(slsReceiverSoftware/slsReceiver)
|
||||
add_subdirectory(manual/manual-api)
|
||||
endif (SLS_USE_RECEIVER)
|
||||
|
||||
if (SLS_USE_LISTENER)
|
||||
add_subdirectory(slsReceiverSoftware/slsListener)
|
||||
endif (SLS_USE_LISTENER)
|
||||
|
||||
if (SLS_USE_GUI)
|
||||
find_package(Qt4 REQUIRED)
|
||||
find_package(Qwt 6 REQUIRED)
|
||||
if (QT4_FOUND AND QWT_FOUND)
|
||||
add_subdirectory(slsDetectorGui)
|
||||
endif()
|
||||
endif(CALIBRATE)
|
||||
endif (SLS_USE_GUI)
|
||||
|
||||
if (SLS_USE_TESTS)
|
||||
enable_testing()
|
||||
endif(SLS_USE_TESTS)
|
||||
|
||||
if (SLS_USE_INTEGRATION_TESTS)
|
||||
add_subdirectory(integrationTests)
|
||||
endif (SLS_USE_INTEGRATION_TESTS)
|
||||
|
||||
if (SLS_USE_PYTHON)
|
||||
add_subdirectory(python)
|
||||
endif(SLS_USE_PYTHON)
|
||||
|
||||
|
||||
if(SLS_MASTER_PROJECT)
|
||||
# Set install dir CMake packages
|
||||
set(CMAKE_INSTALL_DIR ${CMAKE_INSTALL_DATADIR}/cmake/sls)
|
||||
# Set the list of exported targets
|
||||
set(PROJECT_LIBRARIES slsSupportLib slsDetectorShared slsReceiverShared)
|
||||
# Generate and install package config file and version
|
||||
include(cmake/package_config.cmake)
|
||||
endif()
|
||||
|
||||
|
235
Makefile
@ -1,235 +0,0 @@
|
||||
# do not change below this line#
|
||||
|
||||
# Include common definitions
|
||||
include Makefile.include
|
||||
|
||||
INSTALLROOT ?= $(PWD)
|
||||
BINDIR ?= $(INSTALLROOT)/bin
|
||||
DOCDIR ?= $(INSTALLROOT)/manual/docs
|
||||
LIBDIR ?= $(INSTALLROOT)/bin
|
||||
INCDIR ?= $(INSTALLROOT)/include
|
||||
DETAILDOC ?= $(INSTALLROOT)/docs
|
||||
|
||||
WD = $(shell pwd)
|
||||
LIBRARYDIR = $(WD)/slsDetectorSoftware
|
||||
LIBRARYRXRDIR = $(WD)/slsReceiverSoftware
|
||||
CLIENTDIR = $(LIBRARYDIR)/slsDetectorClient
|
||||
GUIDIR = $(WD)/slsDetectorGui
|
||||
RECEIVERDIR = $(LIBRARYRXRDIR)
|
||||
CALWIZDIR = $(WD)/calibrationWizards
|
||||
MANDIR = $(WD)/manual
|
||||
CALIBDIR = $(WD)/slsDetectorCalibration
|
||||
MANAPIDIR = $(MANDIR)/manual-api
|
||||
|
||||
TABSPACE := "\t"
|
||||
|
||||
|
||||
INCLUDES=-I. -I$(LIBRARYDIR)/commonFiles -I$(LIBRARYDIR)/slsDetector -I$(LIBRARYDIR)/usersFunctions -I$(LIBRARYDIR)/multiSlsDetector -I$(LIBRARYDIR)/slsDetectorUtils -I$(LIBRARYDIR)/slsDetectorCommand -I$(LIBRARYDIR)/slsDetectorAnalysis -I$(LIBRARYDIR)/slsReceiverInterface -I$(LIBRARYRXRDIR)/include -I$(LIBRARYDIR)/threadFiles -I$(LIBRARYDIR)/sharedMemory -I$(ASM)
|
||||
|
||||
INCLUDESRXR += -I. -I$(LIBRARYRXRDIR)/include -I$(CALIBDIR) -I$(ASM)
|
||||
#LIBFLAGRXR +=
|
||||
|
||||
$(info )
|
||||
$(info #######################################)
|
||||
$(info # In slsDetectorsPackage Makefile #)
|
||||
$(info #######################################)
|
||||
$(info )
|
||||
|
||||
|
||||
.PHONY: all nonstatic static lib libreceiver textclient receiver gui stextclient sreceiver
|
||||
|
||||
#all: lib textclient receiver gui
|
||||
all: textclient receiver gui
|
||||
|
||||
nonstatic: lib libreceiver textclient receiver gui
|
||||
|
||||
static: lib libreceiver stextclient sreceiver gui
|
||||
|
||||
|
||||
lib:
|
||||
cd $(LIBRARYDIR) && $(MAKE) FLAGS='$(FLAGS)' DESTDIR='$(LIBDIR)' LIBRARYDIR='$(LIBRARYDIR)' LIBS='$(LDFLAGDET)' INCLUDES='$(INCLUDES)' LIBDIR='$(LIBDIR)'
|
||||
|
||||
libreceiver:
|
||||
cd $(LIBRARYRXRDIR) && $(MAKE) FLAGS='$(FLAGS)' DESTDIR='$(LIBDIR)' LIBS='$(LDFLAGRXR)' INCLUDES='$(INCLUDESRXR)' LIBDIR='$(LIBDIR)'
|
||||
|
||||
|
||||
stextclient: slsDetectorClient_static
|
||||
|
||||
slsDetectorClient: textclient
|
||||
|
||||
slsDetectorClient_static: #lib
|
||||
cd $(CLIENTDIR) && $(MAKE) static_clients FLAGS='$(FLAGS)' DESTDIR='$(BINDIR)' LIBRARYDIR='$(LIBRARYDIR)' LIBS='$(LDFLAGDET)' INCLUDES='$(INCLUDES)' LIBDIR='$(LIBDIR)'
|
||||
@echo ""
|
||||
@echo "#######################################"
|
||||
@echo "# Back in slsDetectorPackage Makefile #"
|
||||
@echo "#######################################"
|
||||
@echo ""
|
||||
|
||||
textclient: #lib
|
||||
cd $(CLIENTDIR) && $(MAKE) FLAGS='$(FLAGS)' DESTDIR='$(BINDIR)' LIBRARYDIR='$(LIBRARYDIR)' LIBS='$(LDFLAGDET)' INCLUDES='$(INCLUDES)' LIBDIR='$(LIBDIR)'
|
||||
@echo ""
|
||||
@echo "#######################################"
|
||||
@echo "# Back in slsDetectorPackage Makefile #"
|
||||
@echo "#######################################"
|
||||
@echo ""
|
||||
|
||||
slsReceiver: receiver
|
||||
|
||||
slsReceiver_static: receiver
|
||||
|
||||
receiver: #libreceiver
|
||||
# cd $(RECEIVERDIR) && $(MAKE) receiver FLAGS='$(FLAGS)' DESTDIR='$(BINDIR)' LIBS='$(LDFLAGRXR)' INCLUDES='$(INCLUDESRXR)' LIBDIR='$(LIBDIR)'
|
||||
cd $(RECEIVERDIR) && $(MAKE) FLAGS='$(FLAGS)' DESTDIR='$(BINDIR)' LIBS='$(LDFLAGRXR)' INCLUDES='$(INCLUDESRXR)' LIBDIR='$(LIBDIR)'
|
||||
cd $(MANAPIDIR) && $(MAKE) slsMultiReceiver
|
||||
@echo ""
|
||||
@echo "#######################################"
|
||||
@echo "# Back in slsDetectorPackage Makefile #"
|
||||
@echo "#######################################"
|
||||
@echo ""
|
||||
|
||||
sreceiver: #libreceiver
|
||||
cd $(RECEIVERDIR) && $(MAKE) static_receiver FLAGS='$(FLAGS)' DESTDIR='$(BINDIR)' LIBS='$(LDFLAGRXR)' INCLUDES='$(INCLUDESRXR)' LIBDIR='$(LIBDIR)'
|
||||
@echo ""
|
||||
@echo "#######################################"
|
||||
@echo "# Back in slsDetectorPackage Makefile #"
|
||||
@echo "#######################################"
|
||||
@echo ""
|
||||
|
||||
slsDetectorGUI: #lib
|
||||
cd $(GUIDIR) && $(MAKE) DESTDIR='$(BINDIR)' LIBRARYDIR='$(LIBRARYDIR)' INCLUDES='$(INCLUDES)' LDFLAGDET='$(LDFLAGDETONLY)' LIBDIR='$(LIBDIR)'
|
||||
@echo ""
|
||||
@echo "#######################################"
|
||||
@echo "# Back in slsDetectorPackage Makefile #"
|
||||
@echo "#######################################"
|
||||
@echo ""
|
||||
|
||||
calWiz:
|
||||
cd $(CALWIZDIR) && $(MAKE) DESTDIR=$(BINDIR) #FLAGS=$(FLAGS) LDFLAGDET=$(LDFLAGDET) INCLUDES=$(INCLUDES)
|
||||
|
||||
|
||||
|
||||
gui: slsDetectorGUI
|
||||
|
||||
|
||||
doc:
|
||||
$(shell test -d $(DOCDIR) || mkdir -p $(DOCDIR))
|
||||
cd manual && make all DESTDIR=$(DOCDIR)
|
||||
|
||||
htmldoc:
|
||||
make doc
|
||||
$(shell test -d $(DOCDIR) || mkdir -p $(DOCDIR))
|
||||
cd manual && make html DESTDIR=$(DOCDIR)
|
||||
|
||||
detaildoc: createdocs docspdf docshtml removedocs
|
||||
|
||||
createdocs: $(LIBRARYDIR)/doxy.config
|
||||
doxygen $(LIBRARYDIR)/doxy.config
|
||||
|
||||
docspdf:
|
||||
cd slsDetectorPackageDocs/latex && make
|
||||
$(shell test -d $(DETAILDOC) || mkdir -p $(DETAILDOC))
|
||||
$(shell test -d $(DETAILDOC)/pdf || mkdir -p $(DETAILDOC)/pdf)
|
||||
mv slsDetectorPackageDocs/latex/refman.pdf $(DETAILDOC)/pdf/slsDetectorPackageDocs.pdf
|
||||
|
||||
docshtml:
|
||||
$(shell test -d $(DETAILDOC) || mkdir -p $(DETAILDOC))
|
||||
$(shell test -d $(DETAILDOC)/html || mkdir -p $(DETAILDOC)/html)
|
||||
$(shell test -d $(DETAILDOC)/html/slsDetectorPackageDocs && rm -r $(DETAILDOC)/html/slsDetectorPackageDocs)
|
||||
mv slsDetectorPackageDocs/html $(DETAILDOC)/html/slsDetectorPackageDocs
|
||||
|
||||
removedocs:
|
||||
rm -rf slsDetectorPackageDocs;
|
||||
|
||||
|
||||
clean:
|
||||
cd $(BINDIR) && rm -rf sls_detector_* slsDetectorGui slsReceiver angularCalibrationWizard energyCalibrationWizard
|
||||
cd $(LIBDIR) && rm -rf libSlsDetector.so libSlsDetector.a libSlsReceiver.so libSlsReceiver.a
|
||||
cd $(LIBRARYDIR) && $(MAKE) clean
|
||||
cd $(LIBRARYRXRDIR) && $(MAKE) clean
|
||||
cd $(CLIENTDIR) && $(MAKE) clean
|
||||
cd $(GUIDIR) && $(MAKE) clean
|
||||
cd $(CALWIZDIR) && $(MAKE) clean
|
||||
cd manual && $(MAKE) clean
|
||||
cd $(DOCDIR) && rm -rf *
|
||||
rm -rf slsDetectorPackageDocs;
|
||||
rm -rf $(DETAILDOC)
|
||||
rm -rf $(MANAPIDIR)/slsMultiReceiver
|
||||
|
||||
|
||||
#install_lib:
|
||||
# cd $(LIBRARYDIR) && $(MAKE) install DESTDIR=$(LIBDIR) INCLUDES=$(INCLUDES)
|
||||
# cd $(LIBRARYDIR) && $(MAKE) install_inc DESTDIR=$(INCDIR)
|
||||
|
||||
mythen_virtual:
|
||||
cd $(LIBRARYDIR) && $(MAKE) mythenVirtualServer DESTDIR=$(BINDIR)
|
||||
|
||||
|
||||
gotthard_virtual:
|
||||
cd $(LIBRARYDIR) && $(MAKE) gotthardVirtualServer DESTDIR=$(BINDIR)
|
||||
|
||||
|
||||
install_client: textclient slsReceiver
|
||||
|
||||
install_gui: gui
|
||||
|
||||
confinstall:
|
||||
make conf;\
|
||||
make install
|
||||
|
||||
install_lib:
|
||||
make lib;\
|
||||
make libreceiver; \
|
||||
make textclient; \
|
||||
make slsReceiver; \
|
||||
make doc; \
|
||||
make htmldoc; \
|
||||
cd $(LIBRARYDIR) && $(MAKE) install_inc DESTDIR=$(INCDIR); \
|
||||
cd $(LIBRARYRXRDIR) && $(MAKE) install_inc DESTDIR=$(INCDIR);
|
||||
|
||||
install:
|
||||
make install_lib; \
|
||||
make gui; \
|
||||
make calWiz; \
|
||||
cd $(LIBRARYDIR) && $(MAKE) install_inc DESTDIR=$(INCDIR);\
|
||||
cd $(LIBRARYRXRDIR) && $(MAKE) install_inc DESTDIR=$(INCDIR);
|
||||
|
||||
conf:
|
||||
set -e; \
|
||||
. ./configure; \
|
||||
@echo "INSTALLROOT is $(INSTALLROOT)"
|
||||
@echo "BINDIR is $(BINDIR)"
|
||||
@echo "LIBDIR is $(LIBDIR)"
|
||||
@echo "INCDIR is $(INCDIR)"
|
||||
@echo "DOCDIR is $(DOCDIR)"
|
||||
|
||||
|
||||
help:
|
||||
@echo "Targets:"
|
||||
@echo "make all compile library, text clients, data reciever"
|
||||
@echo "make lib compile library"
|
||||
@echo "make libreceiver compile receiver library"
|
||||
@echo "make textclient compile the slsDetectorClient dynamically linking the libraries"
|
||||
@echo "make stextclient compile slsDetectorClient statically linking the libraries"
|
||||
@echo "make receiver compile the slsReciever dynamically linking the libraries"
|
||||
@echo "make sreceiver compile the slsReciever statically linking the libraries"
|
||||
@echo "make gui compile slsDetectorGUI - requires a working Qt4 and Qwt installation"
|
||||
@echo "make calWiz compile the calibration wizards - requires a working Root installation"
|
||||
@echo "make doc compile pdf documentation"
|
||||
@echo "make htmldoc compile html (and pdf) documentation"
|
||||
@echo "make install_lib installs the libraries, the text clients, the documentation and the includes for the API"
|
||||
@echo "make install installs all software, including the gui, the cal wizards and the includes for the API"
|
||||
@echo "make confinstall installs all software, including the gui, the cal wizards and the includes for the API, prompting for the install paths"
|
||||
@echo "make clean remove object files and executables"
|
||||
@echo "make help lists possible targets"
|
||||
@echo ""
|
||||
@echo ""
|
||||
@echo "Makefile variables"
|
||||
@echo "DEBUG=1,2 set debug level to 1 (VERBOSE) or 2 (VERYVERBOSE)"
|
||||
@echo ""
|
||||
@echo ""
|
||||
@echo "Variables - to change them run <source configure> :"
|
||||
@echo "INSTALLROOT=<yourdir>: installation root di r, default $PWD"
|
||||
@echo "BINDIR=<yourbin>: binary installation dir below INSTALLROOT, default bin"
|
||||
@echo "LIBDIR=<yourlib>: library installation dir below INSTALLROOT, default lib"
|
||||
@echo "INCDIR=<yourincludes>: header installation dir below INSTALLROOT, default include"
|
||||
@echo "DOCDIR=<yourdoc>: documentation installation dir below INSTALLROOT, default doc"
|
@ -1,58 +0,0 @@
|
||||
##############################################################
|
||||
# Generic
|
||||
##############################################################
|
||||
|
||||
CC = g++
|
||||
CXX = $(CC)
|
||||
ASM=$(shell echo "/lib/modules/`uname -r`/build/include")
|
||||
LDFLAGDETONLY = -L$(LIBDIR) -Wl,-rpath=$(LIBDIR) -lSlsDetector
|
||||
LDFLAGDET = -L$(LIBDIR) -Wl,-rpath=$(LIBDIR) -lSlsDetector -L/usr/lib64/ -pthread
|
||||
LDFLAGRXR = -L$(LIBDIR) -Wl,-rpath=$(LIBDIR) -lSlsReceiver -L/usr/lib64/ -pthread
|
||||
FLAGS= -Wall -pthread #-DEIGER_DEBUG2
|
||||
# -DVERBOSE
|
||||
|
||||
# Setting up the verbose flags
|
||||
ifeq ($(DEBUG),1)
|
||||
FLAGS = -Wall -DVERBOSE
|
||||
endif
|
||||
ifeq ($(DEBUG),2)
|
||||
FLAGS = -Wall -DVERYVERBOSE
|
||||
endif
|
||||
|
||||
##############################################################
|
||||
# HDF5 specific. Set this to yes, if you want to compile
|
||||
# HDF5 code: in this case, you need HDF5 libraries
|
||||
##############################################################
|
||||
|
||||
HDF5 = no
|
||||
HDF5_DIR = /opt/hdf5v1.10.0
|
||||
|
||||
ifeq ($(HDF5),yes)
|
||||
LDFLAGRXR = -L$(LIBDIR) -Wl,-rpath=$(LIBDIR) -lSlsReceiver -L$(HDF5_DIR)/lib -Wl,-rpath=$(HDF5_DIR)/lib -lhdf5 -lhdf5_cpp -lsz -lz -DHDF5C -L/usr/lib64/ -pthread
|
||||
INCLUDESRXR = -I$(HDF5_DIR)/include
|
||||
endif
|
||||
|
||||
|
||||
##############################################################
|
||||
# ROOTSLS specific. Set this to yes, if you want to compile
|
||||
# ROOTSLS code: in this case, you need also root libraries
|
||||
##############################################################
|
||||
|
||||
ROOTSLS = no
|
||||
|
||||
ROOTFLAGS = $(shell root-config --cflags --glibs) -DMYROOT1 #-DALLFILE_DEBUG #-DMYROOT1
|
||||
|
||||
ifeq ($(ROOTSLS),yes)
|
||||
LDFLAGRXR = -L$(LIBDIR) -lSlsReceiver $(ROOTFLAGS) -DROOTSLS
|
||||
endif
|
||||
|
||||
|
||||
define colorecho
|
||||
@tput setaf 6
|
||||
@echo $1
|
||||
@tput sgr0
|
||||
endef
|
||||
|
||||
|
||||
|
||||
|
@ -75,13 +75,13 @@ Use cmake to create out-of-source builds, by creating a build folder parallel to
|
||||
$ cd ..
|
||||
$ mkdir slsDetectorPackage-build
|
||||
$ cd slsDetectorPackage-build
|
||||
$ cmake ../slsDetectorPackage -DCMAKE_BUILD_TYPE=Debug -DUSE_HDF5=OFF
|
||||
$ cmake ../slsDetectorPackage -DCMAKE_BUILD_TYPE=Debug -DSLS_USE_HDF5=OFF
|
||||
$ make
|
||||
```
|
||||
|
||||
Use the following as an example to compile statically and using specific hdf5 folder
|
||||
```
|
||||
$ HDF5_ROOT=/opt/hdf5v1.10.0 cmake ../slsDetectorPackage -DCMAKE_BUILD_TYPE=Debug -DUSE_HDF5=ON
|
||||
$ HDF5_ROOT=/opt/hdf5v1.10.0 cmake ../slsDetectorPackage -DCMAKE_BUILD_TYPE=Debug -DSLS_USE_HDF5=ON
|
||||
```
|
||||
After compiling, the libraries and executables will be found at `bin` directory
|
||||
```
|
||||
|
508
RELEASE.txt
@ -1,508 +0,0 @@
|
||||
SLS Detector Package 4.0.0 released on 27.09.2018
|
||||
=================================================
|
||||
|
||||
|
||||
|
||||
INTRODUCTION
|
||||
|
||||
This document describes the differences between 4.0.0 and 3.1.4 releases.
|
||||
|
||||
Download
|
||||
--------
|
||||
|
||||
The Source Code (Default C++ API):
|
||||
https://github.com/slsdetectorgroup/slsDetectorPackage
|
||||
|
||||
The Conda Lib Package:
|
||||
https://github.com/slsdetectorgroup/sls_detector_lib
|
||||
|
||||
The Conda GUI Package:
|
||||
https://github.com/slsdetectorgroup/sls_detector_gui
|
||||
|
||||
The Python Interface (including the package):
|
||||
https://github.com/slsdetectorgroup/sls_detector
|
||||
|
||||
|
||||
Documentation
|
||||
-------------
|
||||
|
||||
Manual (HTML & PDF):
|
||||
https://www.psi.ch/detectors/documentation
|
||||
slsDetectorPackage/manual/docs/
|
||||
|
||||
Command Line Documentation:
|
||||
manual/docs/html/slsDetectorClientDocs/index.html
|
||||
manual/docs/pdf/slsDetectorClientDocs.pdf
|
||||
|
||||
C++ API Documentation:
|
||||
manual/docs/html/slsDetectorUsersDocs/index.html
|
||||
manual/docs/pdf/slsDetectorUsersDocs.pdf
|
||||
|
||||
C++ API Example:
|
||||
manual/manual-api/mainClient.cpp
|
||||
manual/manual-api/mainReceiver.cpp
|
||||
|
||||
Python API Documentation:
|
||||
https://slsdetectorgroup.github.io/sls_detector/
|
||||
|
||||
Further Documentation:
|
||||
https://www.psi.ch/detectors/users-support
|
||||
|
||||
|
||||
Support
|
||||
-------
|
||||
|
||||
General Software related:
|
||||
dhanya.thattil@psi.ch
|
||||
anna.bergamaschi@psi.ch
|
||||
|
||||
Python related:
|
||||
erik.frojdh@psi.ch
|
||||
|
||||
|
||||
|
||||
CONTENTS
|
||||
|
||||
1. Firmware Requirements
|
||||
2. Changes in User Interface
|
||||
3. New/Modified Commands
|
||||
4. Other New Features
|
||||
5. Resolved Issues
|
||||
6. Known Issues
|
||||
7. Next Major Release Plans
|
||||
|
||||
|
||||
|
||||
1. Firmware Requirements
|
||||
========================
|
||||
|
||||
Gotthard
|
||||
========
|
||||
Minimum compatible version : 11.01.2013
|
||||
Latest version : 08.02.2018 (50um and 25um Master)
|
||||
09.02.2018 (25 um Slave)
|
||||
Eiger
|
||||
=====
|
||||
Minimum compatible version : 22
|
||||
Latest version : 22
|
||||
|
||||
Jungfrau
|
||||
========
|
||||
Minimum compatible version : 15.06.2018
|
||||
Latest version : 15.06.2018
|
||||
|
||||
|
||||
Detector Upgrade
|
||||
================
|
||||
Gotthard Cannot be upgraded remotely. Requires programming via USB blaster
|
||||
Eiger Can be upgraded remotely via bit files
|
||||
Jungfrau Can be upgraded remotely using sls_detector_put programfpga <pof>
|
||||
|
||||
Instructions available at
|
||||
https://www.psi.ch/detectors/installation-instructions
|
||||
under Detector Upgrade -> [Detector Type] -> Firmware.
|
||||
|
||||
|
||||
Please refer to the link below for more details on the firmware versions.
|
||||
https://www.psi.ch/detectors/firmware.
|
||||
|
||||
|
||||
|
||||
2. Changes in User Interface
|
||||
============================
|
||||
|
||||
Client
|
||||
------
|
||||
|
||||
1. Shared Memory:
|
||||
|
||||
POSIX shared memory has been implemented and they are typically created in
|
||||
/dev/shm/ folder.
|
||||
|
||||
A multiSlsDetector object will create a shared memory segment with naming style:
|
||||
slsDetectorPackage_x_[_z]
|
||||
and an slsDetector object will create a shared memory segment with naming style:
|
||||
slsDetectorPackage_x_sls_y[_z]
|
||||
|
||||
where
|
||||
x is the multi detector id
|
||||
y is the sls detector id
|
||||
z is the environment variable SLSDETNAME, if set.
|
||||
They can be deleted directly.
|
||||
|
||||
Environment variable SLSDETNAME included for user-friendliness
|
||||
of using 2 different detectors from the same client pc. One needn't use
|
||||
different multi detector id if the SLSDETNAME is different for both consoles.
|
||||
|
||||
Constructor will fail if shared memory size is different (different package
|
||||
releases/detectors). Loading config file cleans shared memory.
|
||||
|
||||
|
||||
2. Exceptions in constructors:
|
||||
|
||||
All constructors that have an error throws an exception. For this release,
|
||||
this is caught within the package and interfaced as error codes or messages
|
||||
to the users using command line or API.
|
||||
|
||||
As a result:
|
||||
- slsDetectorsUsers constructor signature now includes a success flag.
|
||||
- If one uses multiSlsDetector, slsDetector, ZmqSocket classes directly,
|
||||
catch exceptions from constructors.
|
||||
- In future releases, the exception will be thrown
|
||||
outside the package for the users to handle it.
|
||||
|
||||
|
||||
3. API Compatibility:
|
||||
|
||||
Client now checks API version of Detector Server - Client and Receiver - Client
|
||||
when connecting for the first time to detector server or receiver server
|
||||
and the online flags have not been set in shm.
|
||||
|
||||
Upon failure, error messages will ensue and further commands will not
|
||||
be executed. Detector servers referred to are only for Eiger, Jungfrau and Gotthard.
|
||||
|
||||
Previously, the detector server would exit on mismatched Firmware-Detector
|
||||
server mismatch. They now wait for client to ask for compatibility check,
|
||||
which is done the first time client connects to the detector and the
|
||||
online flag in shm has not been set.
|
||||
|
||||
|
||||
4. Commands "type", "id" and "replace" are removed.
|
||||
|
||||
|
||||
Receiver
|
||||
--------
|
||||
|
||||
1. Reciever Header Structure in file writing and call back:
|
||||
|
||||
sls_receiver_header structure added to sls_receiver_defs.h for image headers
|
||||
in file writing.
|
||||
|
||||
#define MAX_NUM_PACKETS 512
|
||||
typedef std::bitset<MAX_NUM_PACKETS> sls_bitset;
|
||||
typedef struct {
|
||||
sls_detector_header detHeader; /**< is the detector header */
|
||||
sls_bitset packetsMask; /**< is the packets caught bit mask */
|
||||
} sls_receiver_header;
|
||||
|
||||
It includes the detector header structure + bitmask of 512 bits,
|
||||
where each bit represents a packet caught. This is useful in saving time
|
||||
in writing to file by not padding missing packets and still retaining useful data.
|
||||
|
||||
The binary and HDF5 writer version number changed from 1.0 to 2.0.
|
||||
The detector header version remains as 1.0.
|
||||
|
||||
registerCallBackRawDataReady modified to give this structure pointer,
|
||||
instead of individual structure member pointers.
|
||||
|
||||
|
||||
2. ZmqSocket class:
|
||||
|
||||
If one uses ZmqSocket.h, then the json header has to be parsed outside
|
||||
the class to allow the user to remove the restriction in extracting all data
|
||||
from the json header.
|
||||
|
||||
|
||||
3. Receiver Call back with modified size:
|
||||
|
||||
registerCallBackRawDataModifyReady call back that is similar to the receiver
|
||||
registerCallBackRawDataReady has been added to allow the call back to
|
||||
specify an updated size of image after call back. This is in view to process
|
||||
an image in call back (including extract only a region of the image) and
|
||||
provide this updated size in callback. This new resized/processed image
|
||||
will be written to file or streamed out via zmq. This is useful in ROI
|
||||
selection in the receiver.
|
||||
|
||||
This also means that the call back is now called before writing to file.
|
||||
|
||||
|
||||
|
||||
3. New/Modified Commands
|
||||
========================
|
||||
|
||||
Client
|
||||
------
|
||||
|
||||
1. add (modified):
|
||||
appends detector to end of multi detector list.
|
||||
|
||||
2. replace:
|
||||
sets hostname/ip address for a single detector.
|
||||
|
||||
3. user:
|
||||
get user details from shared memory.
|
||||
|
||||
4. checkdetversion:
|
||||
checks client version compatibility with detector server.
|
||||
|
||||
5. checkrecversion:
|
||||
checks client version compatibility with receiver server.
|
||||
|
||||
|
||||
Receiver
|
||||
--------
|
||||
|
||||
1. rx_zmqip:
|
||||
sets/gets the zmq (TCP) ip of the receiver from where data is streamed
|
||||
out from. (Eg. to the gui or intermediate process). By default, it is
|
||||
the same as the zmqip.
|
||||
|
||||
2. zmqip:
|
||||
sets/gets the zmq (TCP) ip, where client listens to, to reconstuct images.
|
||||
(Eg. from receiver or intermediate process). By default, it is the same
|
||||
as rx_zmqip.
|
||||
|
||||
3. rx_jsonaddheader:
|
||||
sets/gets additional json header to be streamed out with the zmq from
|
||||
receiver. Default is empty. Eg. p rx_jsonaddheader \"what\":\"nothing\"
|
||||
|
||||
4. r_discardpolicy:
|
||||
sets/gets the frame discard policy in the receiver.
|
||||
nodiscard - no discard (default),
|
||||
discardempty - discard only empty frames,
|
||||
discardpartial - discard any partial frame(fastest)
|
||||
|
||||
5. r_padding:
|
||||
sets/gets the frame padding in the receiver.
|
||||
0 does not pad partial frames(fastest),
|
||||
1 (default) pads partial frames.
|
||||
One can look at bitmask in the sls_receiver_header to process the unpadded
|
||||
partial frames later.
|
||||
|
||||
6. activate (modified):
|
||||
Extra option added to pad or unpad images in receivers when deactivated.
|
||||
activate i [padding option], where i is activate/deactivate and padding
|
||||
option is "padding" (default) or "nopadding".
|
||||
|
||||
7. rx_udpsocksize:
|
||||
sets/gets the UDP socket buffer size. Already attempts to set by default
|
||||
to 100mb, 2gb for Jungfrau. Does not remember custom values in client
|
||||
shared memory, so must be initialized each time after setting receiver
|
||||
hostname in config file.
|
||||
|
||||
8. rx_realudpsocksize:
|
||||
gets the actual UDP socket buffer size. Usually double the set udp socket
|
||||
buffer size due to kernel bookkeeping.
|
||||
|
||||
9. r_framesperfile:
|
||||
sets/gets the frames per file in receiver. 0 means infinite or all frames
|
||||
in a single file. Default of Eiger changed from 2k to 10k.
|
||||
|
||||
|
||||
Eiger Specific
|
||||
--------------
|
||||
|
||||
1. status trigger:
|
||||
To trigger internally via software, one can use "status trigger".
|
||||
|
||||
2. subdeadtime:
|
||||
sets/gets sub frame dead time in s in 32 bit mode. Subperiod is set in
|
||||
the detector by subexptime + subdeadtime. This value is normally a
|
||||
constant set by an expert catered to individual detector modules in the
|
||||
config file. Receiver files writes master file metadata subperiod
|
||||
instead of subdeadtime.
|
||||
|
||||
3. gappixels:
|
||||
enables/disables gap pixels in system (detector & receiver). 1 sets,
|
||||
0 unsets. In Receiver, 4 bit gap pixels mode is not implemented, but is
|
||||
implemented in client data call back. Gap pixels are at module level
|
||||
and not at multi module level.
|
||||
|
||||
4. measuredperiod:
|
||||
gets the measured frame period (time between last frame and the previous
|
||||
one) in s. Makes sense only for acquisitions of more than 1 frame.
|
||||
|
||||
5. measuredsubperiod:
|
||||
gets the measured subframe period (time between last subframe and the
|
||||
previous one) in s in 32 bit mode.
|
||||
|
||||
6. flags(modified):
|
||||
extra flags "nooverflow" (default) and "overflow" for sub images in 32
|
||||
bit mode. If set to overflow, it will set MSB of pixel data high if
|
||||
there was any saturation in any of the sub images 32 bit mode.
|
||||
|
||||
|
||||
Jungfrau Specific
|
||||
-----------------
|
||||
|
||||
1. storagecells:
|
||||
sets/gets number of additional storage cells per acquisition. For very
|
||||
advanced users only. Range: 0-15. Default: 0.
|
||||
The #images = #frames * #cycles * (#storagecells +1).
|
||||
|
||||
2. storage_start:
|
||||
sets/gets the storage cell that stores the first acquisition of the series.
|
||||
For very advanced users only. Range: 0-15. Default: 15(0xf).
|
||||
|
||||
|
||||
|
||||
4. Other New Features
|
||||
=====================
|
||||
|
||||
Client
|
||||
------
|
||||
|
||||
1. (Jungfrau & Gotthard) Settingsdir and caldir is removed from config file.
|
||||
Default dacs are stored in detector server. Hence, these folders
|
||||
are also removed from slsDetectorPackage/settingsdir. Eiger and Mythen
|
||||
continue to have them.
|
||||
|
||||
2. Depending on 1d position of detectors and detsizechan in config file,
|
||||
row and column (previously xcoord and ycoord) are given to detector
|
||||
servers (Eiger and Jungfrau) to encode into the udp header.
|
||||
|
||||
3. (Eiger) Setting threshold energy changes such as CAL dac is irrelevant
|
||||
when interpolating between two energies and VRS dac is interpolated, not copied.
|
||||
|
||||
4. Users API updated with the following functions:
|
||||
- setReceiverFramesDiscardPolicy
|
||||
- setReceiverPartialFramesPadding
|
||||
- setReceiverFramesPerFile
|
||||
- sendSoftwareTrigger
|
||||
- setSubFrameExposureDeadTime
|
||||
- setSubFrameExposureTime
|
||||
- enableGapPixels
|
||||
- getMeasuredPeriod
|
||||
- getMeasuredSubFramePeriod
|
||||
- setOverflowMode
|
||||
- setNumberOfStorageCells
|
||||
- setStoragecellStart
|
||||
- setThresholdEnergy (overloaded)
|
||||
- resetFramesCaughtInReceiver
|
||||
- setReceiverFifoDepth
|
||||
- setFlowControl10G
|
||||
- setTenGigabitEthernet
|
||||
- getNMods
|
||||
- setReceiverDataStreamingOutIP
|
||||
- setClientDataStreamingInIP
|
||||
|
||||
SlsReceiver
|
||||
-----------
|
||||
|
||||
1. slsMultiReceiver executable added that creates multiple receiver child processes.
|
||||
./slsMultiReceiver [start_tcp_port] [num_receivers] [1 for call back, 0 for none]
|
||||
|
||||
2. Default row and column (previously xcoord and ycoord) are hardcoded
|
||||
for missing packets. (Eiger and Jungfrau)
|
||||
|
||||
|
||||
Gui
|
||||
---
|
||||
|
||||
1. (Jungfrau) Gain plot included. Option under 2D options in Plot tab.
|
||||
|
||||
2. Option to maintain aspect ratio
|
||||
|
||||
3. Start and Stop separated to prevent multiple click syndrome.
|
||||
|
||||
|
||||
Detector Server
|
||||
---------------
|
||||
|
||||
1. (Jungfrau) To use programfpga command, one must start server with -update
|
||||
mode and then restart server without -update mode.
|
||||
|
||||
2. (Jungfrau) ASIC Timer configured at server start up and changed a few
|
||||
startup values for firmware v0.7 such as adc phase, ADC_PORT_INVERT_VAL
|
||||
and ADC offset half speed value.
|
||||
|
||||
3. (Jungfrau) Minimum exposure time of 50 ns was implemented.
|
||||
|
||||
4. (Eiger and Jungfrau) They can be configured to have x and y coord values
|
||||
of the detector in their udp header.
|
||||
|
||||
|
||||
|
||||
|
||||
5. Resolved Issues
|
||||
==================
|
||||
|
||||
Client
|
||||
------
|
||||
memory leak for multi threading
|
||||
|
||||
1. Compiler flag -std=c++98 enforced. Debug flag removed.
|
||||
|
||||
2. If trimen gives different list from different detectors, it returns a -1.
|
||||
|
||||
3. Version format for each submodule of the package changed to just date YYMMDD.
|
||||
Users class fixed to give correct version, instead of -1.
|
||||
|
||||
4. Getting settings in users class gave -1. Fixed now.
|
||||
|
||||
5. (Jungfrau) Programming FPGA now creates the rawbin file from pof in tmp
|
||||
rather than source file location (for permission issues).
|
||||
|
||||
6. (Gotthard) ROI segmentation fault fixed.
|
||||
|
||||
Receiver
|
||||
--------
|
||||
|
||||
1. Silent feature of receiver fixed.
|
||||
|
||||
2. Socket descriptor misused earlier for success flag, instead exceptions
|
||||
used that are handled inside the package.
|
||||
|
||||
3. Global optind variable initialized to instantiate multiple receivers
|
||||
in same process. Also removed static members to enable this feature.
|
||||
|
||||
4. Socket buffer size attempts to set for each acquiistion and provide
|
||||
warning if no capabilities. Warnings can be removed using instruction with
|
||||
error provided. Default Jungfrau UDP socket buffer size if 2 GB, default is
|
||||
100 MB.
|
||||
|
||||
5. Refactored code a bit for performance and robustness, blocking push
|
||||
in buffer between listener and dataprocessor
|
||||
|
||||
|
||||
Detector Server
|
||||
---------------
|
||||
|
||||
1. (Jungfrau) Stop server also mapped during a reset. Reading power status
|
||||
instead of user input register for power.
|
||||
|
||||
2. (Eiger) Bug fix for saving trimbits to file (Advanced users).
|
||||
|
||||
3. (Gotthard 25um) config.txt is not read again after detector startup,
|
||||
no matter the number of times the detector server is restarted.
|
||||
|
||||
|
||||
6. Known Issues
|
||||
===============
|
||||
|
||||
Receiver
|
||||
--------
|
||||
|
||||
1. HDF5 compression and filters are not implemented yet.
|
||||
|
||||
|
||||
Detector Server
|
||||
---------------
|
||||
|
||||
1. (Eiger) Registers mapped differently between firmware v20 and v22.
|
||||
So, please ensure correct on-board server before switching between
|
||||
firmware versions. Else one cannot ping it anymore. Will need to flash firmware
|
||||
again to recover.
|
||||
|
||||
2. (Gotthard) To switch back to all ADC from single ADC ROI, one must take
|
||||
even number of images for the receiver to understand complete images.
|
||||
This will be fixed in the next firmware upgrade.
|
||||
|
||||
|
||||
|
||||
7. Next Major Release Plans
|
||||
===========================
|
||||
|
||||
Client
|
||||
------
|
||||
|
||||
1. Exceptions thrown to the user to be handled.
|
||||
|
||||
2. Compilation using c++11.
|
||||
|
||||
3. Support of Mythen II restricted to this major and its minor releases.
|
||||
|
||||
4. Restructuring and refactoring of client code.
|
||||
|
||||
|
||||
|
||||
|
14934
catch/catch.hpp
Normal file
@ -1 +0,0 @@
|
||||
rm /dev/shm/slsDetectorPackage*;
|
112
cmake/FindZeroMQ.cmake
Normal file
@ -0,0 +1,112 @@
|
||||
|
||||
# This file is originally from https://github.com/zeromq/azmq and distributed
|
||||
# under Boost Software Lincese 1.0
|
||||
# Boost Software License - Version 1.0 - August 17th, 2003
|
||||
|
||||
# Permission is hereby granted, free of charge, to any person or organization
|
||||
# obtaining a copy of the software and accompanying documentation covered by
|
||||
# this license (the "Software") to use, reproduce, display, distribute,
|
||||
# execute, and transmit the Software, and to prepare derivative works of the
|
||||
# Software, and to permit third-parties to whom the Software is furnished to
|
||||
# do so, all subject to the following:
|
||||
|
||||
# The copyright notices in the Software and this entire statement, including
|
||||
# the above license grant, this restriction and the following disclaimer,
|
||||
# must be included in all copies of the Software, in whole or in part, and
|
||||
# all derivative works of the Software, unless such copies or derivative
|
||||
# works are solely in the form of machine-executable object code generated by
|
||||
# a source language processor.
|
||||
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
# FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
|
||||
# SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
|
||||
# FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
|
||||
# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
# DEALINGS IN THE SOFTWARE.
|
||||
# --------------------------------------------------------------------------------
|
||||
|
||||
# Find ZeroMQ Headers/Libs
|
||||
|
||||
# Variables
|
||||
# ZMQ_ROOT - set this to a location where ZeroMQ may be found
|
||||
#
|
||||
# ZeroMQ_FOUND - True of ZeroMQ found
|
||||
# ZeroMQ_INCLUDE_DIRS - Location of ZeroMQ includes
|
||||
# ZeroMQ_LIBRARIES - ZeroMQ libraries
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
|
||||
if (NOT ZMQ_ROOT)
|
||||
set(ZMQ_ROOT "$ENV{ZMQ_ROOT}")
|
||||
endif()
|
||||
|
||||
if (NOT ZMQ_ROOT)
|
||||
find_path(_ZeroMQ_ROOT NAMES include/zmq.h)
|
||||
else()
|
||||
set(_ZeroMQ_ROOT "${ZMQ_ROOT}")
|
||||
endif()
|
||||
|
||||
find_path(ZeroMQ_INCLUDE_DIRS NAMES zmq.h HINTS ${_ZeroMQ_ROOT}/include)
|
||||
|
||||
if (ZeroMQ_INCLUDE_DIRS)
|
||||
set(_ZeroMQ_H ${ZeroMQ_INCLUDE_DIRS}/zmq.h)
|
||||
|
||||
function(_zmqver_EXTRACT _ZeroMQ_VER_COMPONENT _ZeroMQ_VER_OUTPUT)
|
||||
set(CMAKE_MATCH_1 "0")
|
||||
set(_ZeroMQ_expr "^[ \\t]*#define[ \\t]+${_ZeroMQ_VER_COMPONENT}[ \\t]+([0-9]+)$")
|
||||
file(STRINGS "${_ZeroMQ_H}" _ZeroMQ_ver REGEX "${_ZeroMQ_expr}")
|
||||
string(REGEX MATCH "${_ZeroMQ_expr}" ZeroMQ_ver "${_ZeroMQ_ver}")
|
||||
set(${_ZeroMQ_VER_OUTPUT} "${CMAKE_MATCH_1}" PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
_zmqver_EXTRACT("ZMQ_VERSION_MAJOR" ZeroMQ_VERSION_MAJOR)
|
||||
_zmqver_EXTRACT("ZMQ_VERSION_MINOR" ZeroMQ_VERSION_MINOR)
|
||||
_zmqver_EXTRACT("ZMQ_VERSION_PATCH" ZeroMQ_VERSION_PATCH)
|
||||
|
||||
message(STATUS "ZeroMQ version: ${ZeroMQ_VERSION_MAJOR}.${ZeroMQ_VERSION_MINOR}.${ZeroMQ_VERSION_PATCH}")
|
||||
|
||||
# We should provide version to find_package_handle_standard_args in the same format as it was requested,
|
||||
# otherwise it can't check whether version matches exactly.
|
||||
if (ZeroMQ_FIND_VERSION_COUNT GREATER 2)
|
||||
set(ZeroMQ_VERSION "${ZeroMQ_VERSION_MAJOR}.${ZeroMQ_VERSION_MINOR}.${ZeroMQ_VERSION_PATCH}")
|
||||
else()
|
||||
# User has requested ZeroMQ version without patch part => user is not interested in specific patch =>
|
||||
# any patch should be an exact match.
|
||||
set(ZeroMQ_VERSION "${ZeroMQ_VERSION_MAJOR}.${ZeroMQ_VERSION_MINOR}")
|
||||
endif()
|
||||
|
||||
if (NOT ${CMAKE_CXX_PLATFORM_ID} STREQUAL "Windows")
|
||||
find_library(ZeroMQ_LIBRARIES NAMES zmq HINTS ${_ZeroMQ_ROOT}/lib)
|
||||
else()
|
||||
find_library(
|
||||
ZeroMQ_LIBRARY_RELEASE
|
||||
NAMES
|
||||
libzmq
|
||||
"libzmq-${CMAKE_VS_PLATFORM_TOOLSET}-mt-${ZeroMQ_VERSION_MAJOR}_${ZeroMQ_VERSION_MINOR}_${ZeroMQ_VERSION_PATCH}"
|
||||
HINTS
|
||||
${_ZeroMQ_ROOT}/lib
|
||||
)
|
||||
|
||||
find_library(
|
||||
ZeroMQ_LIBRARY_DEBUG
|
||||
NAMES
|
||||
libzmq_d
|
||||
"libzmq-${CMAKE_VS_PLATFORM_TOOLSET}-mt-gd-${ZeroMQ_VERSION_MAJOR}_${ZeroMQ_VERSION_MINOR}_${ZeroMQ_VERSION_PATCH}"
|
||||
HINTS
|
||||
${_ZeroMQ_ROOT}/lib)
|
||||
|
||||
# On Windows we have to use corresponding version (i.e. Release or Debug) of ZeroMQ because of `errno` CRT global variable
|
||||
# See more at http://www.drdobbs.com/avoiding-the-visual-c-runtime-library/184416623
|
||||
set(ZeroMQ_LIBRARIES optimized "${ZeroMQ_LIBRARY_RELEASE}" debug "${ZeroMQ_LIBRARY_DEBUG}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
find_package_handle_standard_args(ZeroMQ FOUND_VAR ZeroMQ_FOUND
|
||||
REQUIRED_VARS ZeroMQ_INCLUDE_DIRS ZeroMQ_LIBRARIES
|
||||
VERSION_VAR ZeroMQ_VERSION)
|
||||
|
||||
if (ZeroMQ_FOUND)
|
||||
mark_as_advanced(ZeroMQ_INCLUDE_DIRS ZeroMQ_LIBRARIES ZeroMQ_VERSION
|
||||
ZeroMQ_VERSION_MAJOR ZeroMQ_VERSION_MINOR ZeroMQ_VERSION_PATCH)
|
||||
endif()
|
31
cmake/package_config.cmake
Normal file
@ -0,0 +1,31 @@
|
||||
# This cmake code creates the configuration that is found and used by
|
||||
# find_package() of another cmake project
|
||||
|
||||
# get lower and upper case project name for the configuration files
|
||||
|
||||
# configure and install the configuration files
|
||||
include(CMakePackageConfigHelpers)
|
||||
|
||||
configure_package_config_file(
|
||||
"${CMAKE_SOURCE_DIR}/cmake/project-config.cmake.in"
|
||||
"${PROJECT_BINARY_DIR}/${PROJECT_NAME_LOWER}-config.cmake"
|
||||
INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME_LOWER}
|
||||
PATH_VARS CMAKE_INSTALL_DIR)
|
||||
|
||||
write_basic_package_version_file(
|
||||
"${PROJECT_BINARY_DIR}/${PROJECT_NAME_LOWER}-config-version.cmake"
|
||||
VERSION ${PROJECT_VERSION}
|
||||
COMPATIBILITY SameMajorVersion)
|
||||
|
||||
install(FILES
|
||||
"${PROJECT_BINARY_DIR}/${PROJECT_NAME_LOWER}-config.cmake"
|
||||
"${PROJECT_BINARY_DIR}/${PROJECT_NAME_LOWER}-config-version.cmake"
|
||||
COMPONENT devel
|
||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME_LOWER})
|
||||
|
||||
if (PROJECT_LIBRARIES OR PROJECT_STATIC_LIBRARIES)
|
||||
install(
|
||||
EXPORT "${TARGETS_EXPORT_NAME}"
|
||||
FILE ${PROJECT_NAME_LOWER}-targets.cmake
|
||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME_LOWER})
|
||||
endif ()
|
24
cmake/project-config.cmake.in
Normal file
@ -0,0 +1,24 @@
|
||||
# Config file for @PROJECT_NAME_LOWER@
|
||||
#
|
||||
# It defines the following variables:
|
||||
#
|
||||
# @PROJECT_NAME_UPPER@_INCLUDE_DIRS - include directory
|
||||
# @PROJECT_NAME_UPPER@_LIBRARIES - all dynamic libraries
|
||||
# @PROJECT_NAME_UPPER@_STATIC_LIBRARIES - all static libraries
|
||||
|
||||
@PACKAGE_INIT@
|
||||
|
||||
include(CMakeFindDependencyMacro)
|
||||
|
||||
set(SLS_USE_HDF5 "@SLS_USE_HDF5@")
|
||||
|
||||
# Add optional dependencies here
|
||||
find_dependency(Threads)
|
||||
if (SLS_USE_HDF5)
|
||||
find_dependency(HDF5)
|
||||
endif ()
|
||||
|
||||
set_and_check(@PROJECT_NAME_UPPER@_CMAKE_INCLUDE_DIRS "@PACKAGE_CMAKE_INSTALL_DIR@")
|
||||
|
||||
include("${CMAKE_CURRENT_LIST_DIR}/@TARGETS_EXPORT_NAME@.cmake")
|
||||
check_required_components("@PROJECT_NAME@")
|
14
cmake/project_version.cc.in
Normal file
@ -0,0 +1,14 @@
|
||||
#include "project_version.h"
|
||||
/// project version as major.minor.patch string
|
||||
const char* @PROJECT_NAME@_runtime_project_version(){ return "@PROJECT_VERSION@"; }
|
||||
/// package version as string, possibly with git commit: v1.2.3+4+g56789abc
|
||||
const char* @PROJECT_NAME@_runtime_package_version(){ return "@PACKAGE_VERSION@"; }
|
||||
/// project version as integer: major * 10000 + minor * 100 + patch
|
||||
int @PROJECT_NAME@_runtime_version_int() { return @PROJECT_VERSION_INT@; }
|
||||
/// project version as integer: major
|
||||
int @PROJECT_NAME@_runtime_version_major(){ return @PACKAGE_VERSION_MAJOR@; }
|
||||
/// project version as integer: minor
|
||||
int @PROJECT_NAME@_runtime_version_minor(){ return @PACKAGE_VERSION_MINOR@; }
|
||||
/// project version as integer: patch
|
||||
int @PROJECT_NAME@_runtime_version_patch(){ return @PACKAGE_VERSION_PATCH@; }
|
||||
|
154
cmake/project_version.cmake
Normal file
@ -0,0 +1,154 @@
|
||||
#
|
||||
# Sets PROJECT_VERSION and PACKAGE_VERSION
|
||||
#
|
||||
|
||||
# Don't set PROJECT_VERSION to empty string when no VERSION is given to project() command.
|
||||
#if(POLICY CMP0048)
|
||||
# cmake_policy(SET CMP0048 OLD)
|
||||
#endif()
|
||||
|
||||
# Split a version number into separate components
|
||||
# version the version number to split
|
||||
# major variable name to store the major version in
|
||||
# minor variable name to store the minor version in
|
||||
# patch variable name to store the patch version in
|
||||
# extra variable name to store a version suffix in
|
||||
function(version_split version major minor patch extra)
|
||||
string(REGEX MATCH "([0-9]+)\\.([0-9]+)\\.([0-9]+)(.*)?" version_valid ${version})
|
||||
if(version_valid)
|
||||
string(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)(.*)?" "\\1;\\2;\\3;\\4" VERSION_MATCHES ${version})
|
||||
list(GET VERSION_MATCHES 0 version_major)
|
||||
set(${major} ${version_major} PARENT_SCOPE)
|
||||
list(GET VERSION_MATCHES 1 version_minor)
|
||||
set(${minor} ${version_minor} PARENT_SCOPE)
|
||||
list(GET VERSION_MATCHES 2 version_patch)
|
||||
set(${patch} ${version_patch} PARENT_SCOPE)
|
||||
list(GET VERSION_MATCHES 3 version_extra)
|
||||
set(${extra} ${version_extra} PARENT_SCOPE)
|
||||
else(version_valid)
|
||||
message(AUTHOR_WARNING "Bad version ${version}; falling back to 0 (have you made an initial release?)")
|
||||
set(${major} "0" PARENT_SCOPE)
|
||||
set(${minor} "0" PARENT_SCOPE)
|
||||
set(${patch} "0" PARENT_SCOPE)
|
||||
set(${extra} "" PARENT_SCOPE)
|
||||
endif(version_valid)
|
||||
endfunction(version_split)
|
||||
|
||||
##############################
|
||||
# get PROJECT_VERSION from git
|
||||
##############################
|
||||
find_program(GIT_CMD git)
|
||||
mark_as_advanced(GIT_CMD)
|
||||
if (GIT_CMD)
|
||||
execute_process(COMMAND ${GIT_CMD} rev-parse --show-toplevel
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
OUTPUT_VARIABLE GIT_TOPLEVEL
|
||||
ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
endif()
|
||||
if (GIT_CMD AND NOT "${GIT_TOPLEVEL}" STREQUAL "")
|
||||
execute_process(COMMAND ${GIT_CMD} rev-parse --short HEAD
|
||||
WORKING_DIRECTORY ${GIT_TOPLEVEL}
|
||||
OUTPUT_VARIABLE GIT_SHA1
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
#message(STATUS "GIT_SHA1: " ${GIT_SHA1})
|
||||
execute_process(COMMAND ${GIT_CMD} describe --match "*[0-9].[0-9]*" HEAD
|
||||
WORKING_DIRECTORY ${GIT_TOPLEVEL}
|
||||
OUTPUT_VARIABLE GIT_DESCRIBE
|
||||
ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
#message(STATUS "GIT_DESCRIBE: " ${GIT_DESCRIBE})
|
||||
|
||||
if (GIT_DESCRIBE)
|
||||
string(REGEX REPLACE "v?([0-9.]+).*" "\\1" GIT_VERSION ${GIT_DESCRIBE})
|
||||
message(STATUS "GIT_VERSION: " ${GIT_VERSION})
|
||||
|
||||
# as package version we use the full version from git describe: 1.7.1+7+ge324c81
|
||||
if (GIT_DESCRIBE MATCHES ".*-g.*")
|
||||
# convert a git describe string to usable debian version, e.g. v1.7.1-7-ge324c81 to 1.7.1+7+ge324c81
|
||||
string(REGEX REPLACE "v?([0-9]*.[0-9.]*).*-([0-9]*)-([a-g0-9]*)" "\\1+\\2+\\3" GIT_FULL_VERSION ${GIT_DESCRIBE})
|
||||
else()
|
||||
# current HEAD is git tag (i.e. releaase), directly use the version
|
||||
set(GIT_FULL_VERSION ${GIT_VERSION})
|
||||
endif()
|
||||
else ()
|
||||
# no (suitable) tag found
|
||||
set(GIT_VERSION "0.0.0")
|
||||
# get number of commits in repo
|
||||
execute_process(COMMAND ${GIT_CMD} rev-list --count HEAD
|
||||
WORKING_DIRECTORY ${GIT_TOPLEVEL}
|
||||
OUTPUT_VARIABLE GIT_COMMIT_COUNT
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
set(GIT_FULL_VERSION 0.0.0+${GIT_COMMIT_COUNT}+g${GIT_SHA1})
|
||||
endif ()
|
||||
endif ()
|
||||
|
||||
# get version from package.xml if it exists
|
||||
if (EXISTS "${PROJECT_SOURCE_DIR}/package.xml")
|
||||
file(STRINGS "${PROJECT_SOURCE_DIR}/package.xml" PACKAGE_XML_VERSION_LINE REGEX <version>[0-9.]*</version>)
|
||||
string(REGEX REPLACE .*<version>\([0-9.]*\)</version>.* \\1 PACKAGE_XML_VERSION "${PACKAGE_XML_VERSION_LINE}")
|
||||
MESSAGE(STATUS "PACKAGE_XML_VERSION: " ${PACKAGE_XML_VERSION})
|
||||
endif ()
|
||||
|
||||
# set version (if not already manually specified)
|
||||
# check versions from different sources and set actually used version
|
||||
if (NOT PROJECT_VERSION)
|
||||
# set PROJECT_VERSION to MAJOR.MINOR.PATCH
|
||||
# PACKAGE_VERSION can have extra info
|
||||
if (GIT_VERSION)
|
||||
set(PROJECT_VERSION ${GIT_VERSION})
|
||||
set(PACKAGE_VERSION ${GIT_FULL_VERSION})
|
||||
elseif (PACKAGE_XML_VERSION)
|
||||
set(PROJECT_VERSION ${PACKAGE_XML_VERSION})
|
||||
set(PACKAGE_VERSION ${PROJECT_VERSION})
|
||||
else ()
|
||||
message(WARNING "PROJECT_VERSION not set. Defaulting to 0.0.0")
|
||||
set(PROJECT_VERSION "0.0.0")
|
||||
endif ()
|
||||
endif ()
|
||||
if (NOT PACKAGE_VERSION)
|
||||
message(WARNING "PACKAGE_VERSION not set! Falling back to (${PROJECT_VERSION})")
|
||||
set(PACKAGE_VERSION ${PROJECT_VERSION})
|
||||
endif ()
|
||||
|
||||
# warn if versions don't match
|
||||
if (GIT_VERSION AND NOT GIT_VERSION MATCHES ${PROJECT_VERSION})
|
||||
message(WARNING "Version from git (${GIT_VERSION}) doesn't match PROJECT_VERSION (${PROJECT_VERSION})")
|
||||
endif()
|
||||
if (PACKAGE_XML_VERSION AND NOT PACKAGE_XML_VERSION MATCHES ${PROJECT_VERSION})
|
||||
message(WARNING "Version from package.xml (${PACKAGE_XML_VERSION}) doesn't match PROJECT_VERSION (${PROJECT_VERSION})")
|
||||
endif()
|
||||
|
||||
message(STATUS "PROJECT_VERSION: " ${PROJECT_VERSION})
|
||||
message(STATUS "PACKAGE_VERSION: " ${PACKAGE_VERSION})
|
||||
|
||||
|
||||
version_split(${PROJECT_VERSION} PACKAGE_VERSION_MAJOR PACKAGE_VERSION_MINOR PACKAGE_VERSION_PATCH extra)
|
||||
#message(STATUS "PACKAGE_VERSION_MAJOR: " ${PACKAGE_VERSION_MAJOR})
|
||||
#message(STATUS "PACKAGE_VERSION_MINOR: " ${PACKAGE_VERSION_MINOR})
|
||||
#message(STATUS "PACKAGE_VERSION_PATCH: " ${PACKAGE_VERSION_PATCH})
|
||||
|
||||
# generate an integer version number: major * 10000 + minor * 100 + patch
|
||||
math(EXPR PROJECT_VERSION_INT "${PACKAGE_VERSION_MAJOR} * 10000 + ${PACKAGE_VERSION_MINOR} * 100 + ${PACKAGE_VERSION_PATCH}")
|
||||
|
||||
# make PROJECT_VERSION available as define in the project source
|
||||
#add_definitions(-DPROJECT_VERSION="${PROJECT_VERSION}")
|
||||
#add_definitions(-DPROJECT_VERSION_INT=${PROJECT_VERSION_INT})
|
||||
#add_definitions(-DPACKAGE_VERSION="${PACKAGE_VERSION}")
|
||||
#add_definitions(-DPACKAGE_VERSION_MAJOR=${PACKAGE_VERSION_MAJOR})
|
||||
#add_definitions(-DPACKAGE_VERSION_MINOR=${PACKAGE_VERSION_MINOR})
|
||||
#add_definitions(-DPACKAGE_VERSION_PATCH=${PACKAGE_VERSION_PATCH})
|
||||
|
||||
# set ABI version to major.minor, which will be used for the SOVERSION
|
||||
set(abiversion "${PACKAGE_VERSION_MAJOR}.${PACKAGE_VERSION_MINOR}")
|
||||
|
||||
# generate a version.h file in the binary output dir, don't forget to install it...
|
||||
string(TOUPPER "${PROJECT_NAME}" PROJECT_NAME_UPPER)
|
||||
|
||||
# These files provide compile-time and runtime version information about your project.
|
||||
# To offer the version info to the users of your library, you need to
|
||||
# adapt the following lines in your respective CMakeLists.txt:
|
||||
# add_library(<yourlibraryname> SHARED <your code files> ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}/project_version.cc)
|
||||
# install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}/project_version.h COMPONENT dev DESTINATION include/<your-include-dir>)
|
||||
# To use it within your library or tests you need to add the include directory:
|
||||
# > target_include_directories(yourtarget PUBLIC ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME})
|
||||
configure_file(${CMAKE_CURRENT_LIST_DIR}/project_version.h.in ${PROJECT_NAME}/project_version.h @ONLY)
|
||||
configure_file(${CMAKE_CURRENT_LIST_DIR}/project_version.cc.in ${PROJECT_NAME}/project_version.cc @ONLY)
|
34
cmake/project_version.h.in
Normal file
@ -0,0 +1,34 @@
|
||||
#ifndef @PROJECT_NAME_UPPER@_VERSION_H_
|
||||
#define @PROJECT_NAME_UPPER@_VERSION_H_
|
||||
|
||||
/// project version as major.minor.patch string
|
||||
#define @PROJECT_NAME_UPPER@_VERSION "@PROJECT_VERSION@"
|
||||
/// project version as integer: major * 10000 + minor * 100 + patch
|
||||
#define @PROJECT_NAME_UPPER@_VERSION_INT @PROJECT_VERSION_INT@
|
||||
#define @PROJECT_NAME_UPPER@_VERSION_MAJOR @PACKAGE_VERSION_MAJOR@
|
||||
#define @PROJECT_NAME_UPPER@_VERSION_MINOR @PACKAGE_VERSION_MINOR@
|
||||
#define @PROJECT_NAME_UPPER@_VERSION_PATCH @PACKAGE_VERSION_PATCH@
|
||||
/// package version as string, possibly with git commit: v1.2.3+4+g56789abc
|
||||
#define @PROJECT_NAME_UPPER@_PACKAGE_VERSION "@PACKAGE_VERSION@"
|
||||
|
||||
///runtime versions, where the above values are linked into a lib and therefore reflect the version
|
||||
///of the library itself (not the version of the header at compile time of the user code)
|
||||
const char* @PROJECT_NAME@_runtime_project_version();
|
||||
const char* @PROJECT_NAME@_runtime_package_version();
|
||||
int @PROJECT_NAME@_runtime_version_int();
|
||||
int @PROJECT_NAME@_runtime_version_major();
|
||||
int @PROJECT_NAME@_runtime_version_minor();
|
||||
int @PROJECT_NAME@_runtime_version_patch();
|
||||
|
||||
///Check consistency of runtime vs compile-time version number. I.e. the header used
|
||||
///for compilation was from the same version as the linked library.
|
||||
inline bool @PROJECT_NAME@_check_version_consistency(bool major_minor_only)
|
||||
{
|
||||
return @PROJECT_NAME@_runtime_version_major() == @PROJECT_NAME_UPPER@_VERSION_MAJOR &&
|
||||
@PROJECT_NAME@_runtime_version_minor() == @PROJECT_NAME_UPPER@_VERSION_MINOR &&
|
||||
(major_minor_only ||
|
||||
@PROJECT_NAME@_runtime_version_patch() == @PROJECT_NAME_UPPER@_VERSION_PATCH);
|
||||
}
|
||||
|
||||
|
||||
#endif
|
13
cmk.sh
@ -116,20 +116,21 @@ done
|
||||
|
||||
|
||||
if [ $TEXTCLIENT -eq 0 ] && [ $RECEIVER -eq 0 ] && [ $GUI -eq 0 ]; then
|
||||
CMAKE_POST+=" -DUSE_TEXTCLIENT=ON -DUSE_RECEIVER=ON -DUSE_GUI=ON "
|
||||
# CMAKE_POST+=" -DSLS_USE_TEXTCLIENT=ON -DSLS_USE_RECEIVER=ON -DSLS_USE_GUI=ON "
|
||||
CMAKE_POST+=" -DSLS_USE_TEXTCLIENT=ON -DSLS_USE_RECEIVER=ON "
|
||||
echo "Compile Option: TextClient, Receiver and GUI"
|
||||
else
|
||||
if [ $TEXTCLIENT -eq 1 ]; then
|
||||
CMAKE_POST+=" -DUSE_TEXTCLIENT=ON "
|
||||
CMAKE_POST+=" -DSLS_USE_TEXTCLIENT=ON "
|
||||
echo "Compile Option: TextClient"
|
||||
fi
|
||||
if [ $RECEIVER -eq 1 ]; then
|
||||
CMAKE_POST+=" -DUSE_RECEIVER=ON "
|
||||
CMAKE_POST+=" -DSLS_USE_RECEIVER=ON "
|
||||
echo "Compile Option: Receiver"
|
||||
fi
|
||||
|
||||
if [ $GUI -eq 1 ]; then
|
||||
CMAKE_POST+=" -DUSE_GUI=ON "
|
||||
CMAKE_POST+=" -DSLS_USE_GUI=ON "
|
||||
echo "Compile Option: GUI"
|
||||
fi
|
||||
fi
|
||||
@ -161,10 +162,10 @@ fi
|
||||
#hdf5 rebuild
|
||||
if [ $HDF5 -eq 1 ]; then
|
||||
CMAKE_PRE+="HDF5_ROOT="$HDF5DIR
|
||||
CMAKE_POST+=" -DUSE_HDF5=ON "
|
||||
CMAKE_POST+=" -DSLS_USE_HDF5=ON "
|
||||
#normal mode rebuild
|
||||
else
|
||||
CMAKE_POST+=" -DUSE_HDF5=OFF "
|
||||
CMAKE_POST+=" -DSLS_USE_HDF5=OFF "
|
||||
fi
|
||||
|
||||
|
||||
|
@ -1,15 +0,0 @@
|
||||
sh updateSvnVersion.sh
|
||||
|
||||
cd slsDetectorGui
|
||||
git commit -a -m "updating versions"
|
||||
git push origin developer:developer
|
||||
|
||||
cd ../slsDetectorSoftware
|
||||
git commit -a -m "updating versions"
|
||||
git push origin developer:developer
|
||||
|
||||
cd ../slsReceiverSoftware
|
||||
git commit -a -m "updating versions"
|
||||
git push origin developer:developer
|
||||
|
||||
cd ..
|
@ -4,11 +4,11 @@ cd build
|
||||
cmake .. \
|
||||
-DCMAKE_PREFIX_PATH=$CONDA_PREFIX \
|
||||
-DCMAKE_INSTALL_PREFIX=install \
|
||||
-DUSE_TEXTCLIENT=ON \
|
||||
-DUSE_RECEIVER=ON \
|
||||
-DUSE_GUI=ON \
|
||||
-DSLS_USE_TEXTCLIENT=ON \
|
||||
-DSLS_USE_RECEIVER=ON \
|
||||
-DSLS_USE_GUI=OFF \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DUSE_HDF5=OFF\
|
||||
-DSLS_USE_HDF5=OFF\
|
||||
|
||||
|
||||
cmake --build . -- -j10
|
@ -6,9 +6,8 @@ mkdir $PREFIX/include/slsDetectorPackage
|
||||
|
||||
#Shared and static libraries
|
||||
cp build/bin/libSlsDetector.so $PREFIX/lib/.
|
||||
cp build/bin/libSlsDetector.a $PREFIX/lib/.
|
||||
cp build/bin/libSlsReceiver.so $PREFIX/lib/.
|
||||
cp build/bin/libSlsReceiver.a $PREFIX/lib/.
|
||||
cp build/bin/libSlsSupport.so $PREFIX/lib/.
|
||||
|
||||
#Binaries
|
||||
cp build/bin/sls_detector_acquire $PREFIX/bin/.
|
@ -1,7 +1,7 @@
|
||||
|
||||
package:
|
||||
name: sls_detector_software
|
||||
version: 4.0.0
|
||||
version: "refactor"
|
||||
|
||||
source:
|
||||
- path: ..
|
||||
@ -52,38 +52,47 @@ requirements:
|
||||
|
||||
outputs:
|
||||
- name: sls_detector_lib
|
||||
version: 4.0.0
|
||||
version: "refactor"
|
||||
script: copy_lib.sh
|
||||
requirements:
|
||||
build:
|
||||
- {{ compiler('c') }}
|
||||
- {{compiler('cxx')}}
|
||||
- name: sls_detector_gui
|
||||
version: 4.0.0
|
||||
script: copy_gui.sh
|
||||
requirements:
|
||||
build:
|
||||
- {{ compiler('c') }}
|
||||
- {{compiler('cxx')}}
|
||||
- cmake
|
||||
- qwt 6.*
|
||||
- qt=4.8.7=7
|
||||
- zeromq=4.2.5=hfc679d8_5
|
||||
- pyzmq
|
||||
- xorg-libx11
|
||||
- xorg-libice
|
||||
- xorg-libxext
|
||||
- xorg-libsm
|
||||
- xorg-libxau
|
||||
- xorg-libxrender
|
||||
- xorg-libxfixes
|
||||
- {{ cdt('mesa-libgl-devel') }} # [linux]
|
||||
- {{ cdt('mesa-libegl-devel') }} # [linux]
|
||||
- {{ cdt('mesa-dri-drivers') }} # [linux]
|
||||
- {{ cdt('libselinux') }} # [linux]
|
||||
- {{ cdt('libxdamage') }} # [linux]
|
||||
- {{ cdt('libxxf86vm') }} # [linux]
|
||||
run:
|
||||
- sls_detector_lib=4.0.0
|
||||
- qwt 6.*
|
||||
- qt=4.8.7=7
|
||||
|
||||
# - name: sls_detector
|
||||
# version: "refactor"
|
||||
# script: copy_lib.sh
|
||||
# requirements:
|
||||
# build:
|
||||
# - {{ compiler('c') }}
|
||||
# - {{compiler('cxx')}}
|
||||
|
||||
# - name: sls_detector_gui
|
||||
# version: "refactor"
|
||||
# script: copy_gui.sh
|
||||
# requirements:
|
||||
# build:
|
||||
# - {{ compiler('c') }}
|
||||
# - {{compiler('cxx')}}
|
||||
# - cmake
|
||||
# - qwt 6.*
|
||||
# - qt=4.8.7=7
|
||||
# - zeromq=4.2.5=hfc679d8_5
|
||||
# - pyzmq
|
||||
# - xorg-libx11
|
||||
# - xorg-libice
|
||||
# - xorg-libxext
|
||||
# - xorg-libsm
|
||||
# - xorg-libxau
|
||||
# - xorg-libxrender
|
||||
# - xorg-libxfixes
|
||||
# - {{ cdt('mesa-libgl-devel') }} # [linux]
|
||||
# - {{ cdt('mesa-libegl-devel') }} # [linux]
|
||||
# - {{ cdt('mesa-dri-drivers') }} # [linux]
|
||||
# - {{ cdt('libselinux') }} # [linux]
|
||||
# - {{ cdt('libxdamage') }} # [linux]
|
||||
# - {{ cdt('libxxf86vm') }} # [linux]
|
||||
# run:
|
||||
# - sls_detector_lib=refactor
|
||||
# - qwt 6.*
|
||||
# - qt=4.8.7=7
|
57
examples/gotthard_two.config
Normal file
@ -0,0 +1,57 @@
|
||||
detsizechan 2560 1
|
||||
|
||||
hostname bchip074+bchip075+
|
||||
|
||||
|
||||
0:extsig:0 trigger_in_rising_edge
|
||||
0:rx_tcpport 1954
|
||||
0:rx_udpport 50001
|
||||
0:vhighvoltage 0
|
||||
|
||||
1:extsig:0 trigger_in_rising_edge
|
||||
1:rx_tcpport 1955
|
||||
1:rx_udpport 50002
|
||||
1:vhighvoltage 0
|
||||
|
||||
##############################################################################
|
||||
#########
|
||||
######### Uncomment this part to use the gotthard25umZmq process
|
||||
#########
|
||||
##############################################################################
|
||||
|
||||
# #replace my_receiver_hostname with the hostname of IP of the machine where the receiver runs
|
||||
#0:rx_zmqip my_receiver_hostname
|
||||
#0:rx_zmqport 30003
|
||||
# #replace my_client_hostname with the hostname of IP of the machine where the client/GUI or softIOC runs
|
||||
#0:zmqip my_client_hostname
|
||||
#0:zmqport 40003
|
||||
|
||||
# #replace my_receiver_hostname with the hostname of IP of the machine where the receiver runs
|
||||
#1:rx_zmqip my_receiver_hostname
|
||||
#1:rx_zmqport 30004
|
||||
# #replace my_client_hostname with the hostname of IP of the machine where the client/GUI or softIOC runs
|
||||
#1:zmqip my_client_hostname
|
||||
#1:zmqport 40004
|
||||
|
||||
##############################################################################
|
||||
#########
|
||||
######### until here
|
||||
#########
|
||||
##############################################################################
|
||||
|
||||
|
||||
r_readfreq 1
|
||||
rx_datastream 1
|
||||
|
||||
#replace my_receiver_hostname with the hostname of 1Gb IP of the machine where the receiver runs
|
||||
rx_hostname my_receiver_hostname
|
||||
rx_datastream 1
|
||||
outdir /tmp/
|
||||
|
||||
|
||||
settings veryhighgain
|
||||
exptime 0.000005
|
||||
period 0.0001
|
||||
|
||||
vhighvoltage 90
|
||||
|
13
examples/howto_gotthard_twomodules.txt
Normal file
@ -0,0 +1,13 @@
|
||||
Turn on the two receivers:
|
||||
slsReceiver -t1954 &
|
||||
slsReceiver -t1955 &
|
||||
|
||||
Switch on the photon conversion on the receiver machine (replace my_receiver_hostname):
|
||||
gotthard25umZmq my_receiver_hostname 30003 my_receiver_hostname 40003 &
|
||||
|
||||
Run the configuration file:
|
||||
sls_detector_put config bchip2modules.config
|
||||
|
||||
|
||||
Start your measurements using the command line, the slsDetectorGui or the EPICS driver
|
||||
|
491
examples/moench01_T1_lab.config
Normal file
@ -0,0 +1,491 @@
|
||||
hostname bchip085+
|
||||
|
||||
patword 0000 0000000000000000
|
||||
patword 0001 0000000000000000
|
||||
patword 0002 0008000900080000
|
||||
patword 0003 0008000900080000
|
||||
patword 0004 0008000900080000
|
||||
patword 0005 0008000900080000
|
||||
patword 0006 0008000900080000
|
||||
patword 0007 0008000900080000
|
||||
patword 0008 0008000900080000
|
||||
patword 0009 0008000900080000
|
||||
patword 000a 0008000900080000
|
||||
patword 000b 0008000900080000
|
||||
patword 000c 0008000900080000
|
||||
patword 000d 0008000900080000
|
||||
patword 000e 0008000900080000
|
||||
patword 000f 0008000900080000
|
||||
patword 0010 0008000900080000
|
||||
patword 0011 0008000900080000
|
||||
patword 0012 0008000900080000
|
||||
patword 0013 0008000900080000
|
||||
patword 0014 0008000900080000
|
||||
patword 0015 0008000900080000
|
||||
patword 0016 0008400900080020
|
||||
patword 0017 0008400900080020
|
||||
patword 0018 0008599f0418503a
|
||||
patword 0019 0008599f0418503a
|
||||
patword 001a 0108599f0418503a
|
||||
patword 001b 0108599f0418503a
|
||||
patword 001c 0108599f0418503a
|
||||
patword 001d 0108599f0418503a
|
||||
patword 001e 0108599f0418503a
|
||||
patword 001f 0108599f0418503a
|
||||
patword 0020 0108599f0418503a
|
||||
patword 0021 0108599f0418503a
|
||||
patword 0022 0108599f0418503a
|
||||
patword 0023 0108599f0418503a
|
||||
patword 0024 0108599f0418503a
|
||||
patword 0025 0108599f0418503a
|
||||
patword 0026 0108599f0418503a
|
||||
patword 0027 0108599f0418503a
|
||||
patword 0028 0108599f0418503a
|
||||
patword 0029 0108599f0418503a
|
||||
patword 002a 0108599f0418503a
|
||||
patword 002b 0108599f0418503a
|
||||
patword 002c 0108599f0418503a
|
||||
patword 002d 0108599f0418503a
|
||||
patword 002e 0108599f0418503a
|
||||
patword 002f 0108599f0418503a
|
||||
patword 0030 0108599f0418503a
|
||||
patword 0031 0108599f0418503a
|
||||
patword 0032 0108599f0418503a
|
||||
patword 0033 0108599f0418503a
|
||||
patword 0034 0108599f0418503a
|
||||
patword 0035 0108599f0418503a
|
||||
patword 0036 0108599f0418503a
|
||||
patword 0037 0108599f0418503a
|
||||
patword 0038 0108599f0418503a
|
||||
patword 0039 0108599f0418503a
|
||||
patword 003a 0108599f0418503a
|
||||
patword 003b 0108599f0418503a
|
||||
patword 003c 0108599f0418503a
|
||||
patword 003d 0108599f0418503a
|
||||
patword 003e 0108599f0418503a
|
||||
patword 003f 0108599f0418503a
|
||||
patword 0040 0108599f0418503a
|
||||
patword 0041 0108599f0418503a
|
||||
patword 0042 0108599f0418503a
|
||||
patword 0043 0108599f0418503a
|
||||
patword 0044 0108599f0418503a
|
||||
patword 0045 0108599f0418503a
|
||||
patword 0046 0108599f0418503a
|
||||
patword 0047 0108599f0418503a
|
||||
patword 0048 0108599f0418503a
|
||||
patword 0049 0108599f0418503a
|
||||
patword 004a 0108599f0418503a
|
||||
patword 004b 0108599f0418503a
|
||||
patword 004c 0108599f0418503a
|
||||
patword 004d 0108599f0418503a
|
||||
patword 004e 0108599f0418503a
|
||||
patword 004f 0108599f0418503a
|
||||
patword 0050 0108599f0418503a
|
||||
patword 0051 0108599f0418503a
|
||||
patword 0052 0108599f0418503a
|
||||
patword 0053 0108599f0418503a
|
||||
patword 0054 0108599f0418503a
|
||||
patword 0055 0108599f0418503a
|
||||
patword 0056 0108599f0418503a
|
||||
patword 0057 0108599f0418503a
|
||||
patword 0058 0108599f0418503a
|
||||
patword 0059 0108599f0418503a
|
||||
patword 005a 0108599f0418503a
|
||||
patword 005b 0108599f0418503a
|
||||
patword 005c 0108599f0418503a
|
||||
patword 005d 0108599f0418503a
|
||||
patword 005e 0108599f0418503a
|
||||
patword 005f 0108599f0418503a
|
||||
patword 0060 0108599f0418503a
|
||||
patword 0061 0108599f0418503a
|
||||
patword 0062 0108599f0418503a
|
||||
patword 0063 0108599f0418503a
|
||||
patword 0064 0108599f0418503a
|
||||
patword 0065 0108599f0418503a
|
||||
patword 0066 0108599f0418503a
|
||||
patword 0067 0108599f0418503a
|
||||
patword 0068 0108599f0418503a
|
||||
patword 0069 0108599f0418503a
|
||||
patword 006a 0108599f0418503a
|
||||
patword 006b 0108599f0418503a
|
||||
patword 006c 0108599f0418503a
|
||||
patword 006d 0108599f0418503a
|
||||
patword 006e 0108599f0418503a
|
||||
patword 006f 0108599f0418503a
|
||||
patword 0070 0108599f0418503a
|
||||
patword 0071 0108599f0418503a
|
||||
patword 0072 0108599f0418503a
|
||||
patword 0073 0108599f0418503a
|
||||
patword 0074 0108599f0418503a
|
||||
patword 0075 0108599f0418503a
|
||||
patword 0076 0108599f0418503a
|
||||
patword 0077 0108599f0418503a
|
||||
patword 0078 0108599f0418503a
|
||||
patword 0079 0108599f0418503a
|
||||
patword 007a 0108599f0418503a
|
||||
patword 007b 0108599f0418503a
|
||||
patword 007c 0108599f0418503a
|
||||
patword 007d 0108599f0418503a
|
||||
patword 007e 010859960418503a
|
||||
patword 007f 010859960418503a
|
||||
patword 0080 010859960418503a
|
||||
patword 0081 010859960418503a
|
||||
patword 0082 010859960418503a
|
||||
patword 0083 010859960418503a
|
||||
patword 0084 010859960418503a
|
||||
patword 0085 010859960418503a
|
||||
patword 0086 010859960418503a
|
||||
patword 0087 010859960418503a
|
||||
patword 0088 010859960418503a
|
||||
patword 0089 010859960418503a
|
||||
patword 008a 010859960418503a
|
||||
patword 008b 010859960418503a
|
||||
patword 008c 010859960418503a
|
||||
patword 008d 010859960418503a
|
||||
patword 008e 010859960418503a
|
||||
patword 008f 010859960418503a
|
||||
patword 0090 010859960418503a
|
||||
patword 0091 010859960418503a
|
||||
patword 0092 010819960418501a
|
||||
patword 0093 010819960418501a
|
||||
patword 0094 010819960418501a
|
||||
patword 0095 010819960418501a
|
||||
patword 0096 030819960418501a
|
||||
patword 0097 030819960418501a
|
||||
patword 0098 030819960418501a
|
||||
patword 0099 030819960418501a
|
||||
patword 009a 030819960418501a
|
||||
patword 009b 030819960418501a
|
||||
patword 009c 030819960418501a
|
||||
patword 009d 030819960418501a
|
||||
patword 009e 030819960418501a
|
||||
patword 009f 030819960418501a
|
||||
patword 00a0 030819960418501a
|
||||
patword 00a1 030819960418501a
|
||||
patword 00a2 030819960418501a
|
||||
patword 00a3 030819960418501a
|
||||
patword 00a4 030819960418501a
|
||||
patword 00a5 030819960418501a
|
||||
patword 00a6 030819960418501a
|
||||
patword 00a7 030819960418501a
|
||||
patword 00a8 030819960418501a
|
||||
patword 00a9 030819960418501a
|
||||
patword 00aa 030819960418501a
|
||||
patword 00ab 030819960418501a
|
||||
patword 00ac 030819960008501a
|
||||
patword 00ad 030819960008501a
|
||||
patword 00ae 030819960008501a
|
||||
patword 00af 030819960008501a
|
||||
patword 00b0 030819960008501a
|
||||
patword 00b1 030819960008501a
|
||||
patword 00b2 030819960008501a
|
||||
patword 00b3 030819960008501a
|
||||
patword 00b4 030819960008501a
|
||||
patword 00b5 030819960008501a
|
||||
patword 00b6 030819960008501a
|
||||
patword 00b7 030819960008501a
|
||||
patword 00b8 030819960008501a
|
||||
patword 00b9 030819960008501a
|
||||
patword 00ba 030819960008501a
|
||||
patword 00bb 030819960008501a
|
||||
patword 00bc 030819960008501a
|
||||
patword 00bd 030819960008501a
|
||||
patword 00be 030819960008501a
|
||||
patword 00bf 030819960008501a
|
||||
patword 00c0 0308199f0008501a
|
||||
patword 00c1 0308199f0008501a
|
||||
patword 00c2 0308199f0008501a
|
||||
patword 00c3 0308199f0008501a
|
||||
patword 00c4 0308199f0008501a
|
||||
patword 00c5 0308199f0008501a
|
||||
patword 00c6 0308199f0008501a
|
||||
patword 00c7 0308199f0008501a
|
||||
patword 00c8 0308199f0008501a
|
||||
patword 00c9 0308199f0008501a
|
||||
patword 00ca 0308199f0008501a
|
||||
patword 00cb 0308199f0008501a
|
||||
patword 00cc 0308199f0008501a
|
||||
patword 00cd 0308199f0008501a
|
||||
patword 00ce 0308199f0008501a
|
||||
patword 00cf 0308199f0008501a
|
||||
patword 00d0 0308199f0008501a
|
||||
patword 00d1 0308199f0008501a
|
||||
patword 00d2 0308199f0008501a
|
||||
patword 00d3 0308199f0008501a
|
||||
patword 00d4 0308599f0008503a
|
||||
patword 00d5 0308599f0008503a
|
||||
patword 00d6 030c599f000850ba
|
||||
patword 00d7 030c599f000850ba
|
||||
patword 00d8 030c599f000850ba
|
||||
patword 00d9 030c599f000850ba
|
||||
patword 00da 030c599f000850ba
|
||||
patword 00db 030c599f000850ba
|
||||
patword 00dc 030c599f000850ba
|
||||
patword 00dd 030c599f000850ba
|
||||
patword 00de 030c599f000850ba
|
||||
patword 00df 030c599f000850ba
|
||||
patword 00e0 030c599f000850ba
|
||||
patword 00e1 030c599f000850ba
|
||||
patword 00e2 030c599f000850ba
|
||||
patword 00e3 030c599f000850ba
|
||||
patword 00e4 030c599f000850ba
|
||||
patword 00e5 030c599f000850ba
|
||||
patword 00e6 030c599f000850ba
|
||||
patword 00e7 030c599f000850ba
|
||||
patword 00e8 030c599f000850ba
|
||||
patword 00e9 030c599f000850ba
|
||||
patword 00ea 030c799f010858ba
|
||||
patword 00eb 030c799f010858ba
|
||||
patword 00ec 030c599f000850ba
|
||||
patword 00ed 030c599f000850ba
|
||||
patword 00ee 030c599f000850ba
|
||||
patword 00ef 030c599f000850ba
|
||||
patword 00f0 030c599f000850ba
|
||||
patword 00f1 030c599f000850ba
|
||||
patword 00f2 030c599f000850ba
|
||||
patword 00f3 030c599f000850ba
|
||||
patword 00f4 030c599f000850ba
|
||||
patword 00f5 030c599f000850ba
|
||||
patword 00f6 030c599f000850ba
|
||||
patword 00f7 030c599f000850ba
|
||||
patword 00f8 030c599f000850ba
|
||||
patword 00f9 030c599f000850ba
|
||||
patword 00fa 030c599f000850ba
|
||||
patword 00fb 030c599f000850ba
|
||||
patword 00fc 030c599f000850ba
|
||||
patword 00fd 030c599f000850ba
|
||||
patword 00fe 030c599f000850ba
|
||||
patword 00ff 030c599f000850ba
|
||||
patword 0100 030c599f000850ba
|
||||
patword 0101 030c599f000850ba
|
||||
patword 0102 030c599f400850ba
|
||||
patword 0103 030c599f400850ba
|
||||
patword 0104 030c599f600850ba
|
||||
patword 0105 030c599f400850ba
|
||||
patword 0106 030c599f400850ba
|
||||
patword 0107 030c599f400850ba
|
||||
patword 0108 870c599f682e50ba
|
||||
patword 0109 870c599f482850ba
|
||||
patword 010a 870c599f000e50ba
|
||||
patword 010b 870c599f000850ba
|
||||
patword 010c 870c599f000e50ba
|
||||
patword 010d 870c599f000850ba
|
||||
patword 010e 870c599f000e50ba
|
||||
patword 010f 870c599f000850ba
|
||||
patword 0110 870c599f000e50ba
|
||||
patword 0111 870c599f000850ba
|
||||
patword 0112 870c599f000e50ba
|
||||
patword 0113 870c599f000850ba
|
||||
patword 0114 870c599f000e50ba
|
||||
patword 0115 870c599f000850ba
|
||||
patword 0116 870c599f000e50ba
|
||||
patword 0117 870c599f000850ba
|
||||
patword 0118 870c599f000e50ba
|
||||
patword 0119 870c599f000850ba
|
||||
patword 011a 870c599f000e50ba
|
||||
patword 011b 870c599f000850ba
|
||||
patword 011c 870c599f000e50ba
|
||||
patword 011d 870c599f000850ba
|
||||
patword 011e 870c599f000e50ba
|
||||
patword 011f 870c599f000850ba
|
||||
patword 0120 870c599f000e50ba
|
||||
patword 0121 870c599f000850ba
|
||||
patword 0122 870c599f200e50ba
|
||||
patword 0123 870c599f000850ba
|
||||
patword 0124 870c599f000e50ba
|
||||
patword 0125 870c599f000850ba
|
||||
patword 0126 870c599f000e50ba
|
||||
patword 0127 870c599f000850ba
|
||||
patword 0128 870c599f000e50ba
|
||||
patword 0129 870c599f000850ba
|
||||
patword 012a 870c599f000e50ba
|
||||
patword 012b 870c599f000850ba
|
||||
patword 012c 870c599f000e50ba
|
||||
patword 012d 870c599f000850ba
|
||||
patword 012e 870c599f000e50ba
|
||||
patword 012f 870c599f000850ba
|
||||
patword 0130 870c599f000e50ba
|
||||
patword 0131 870c599f000850ba
|
||||
patword 0132 870c599f000e50ba
|
||||
patword 0133 870c599f000850ba
|
||||
patword 0134 870c599f000e50ba
|
||||
patword 0135 870c599f000850ba
|
||||
patword 0136 870c599f000e50ba
|
||||
patword 0137 870c599f000850ba
|
||||
patword 0138 870c599f000e50ba
|
||||
patword 0139 870c599f000850ba
|
||||
patword 013a 870c599f282e50ba
|
||||
patword 013b 870c599f082850ba
|
||||
patword 013c 870c599f000e50ba
|
||||
patword 013d 870c599f000850ba
|
||||
patword 013e 870c599f000e50ba
|
||||
patword 013f 870c599f000850ba
|
||||
patword 0140 870c599f000e50ba
|
||||
patword 0141 870c599f000850ba
|
||||
patword 0142 870c599f000e50ba
|
||||
patword 0143 870c599f000850ba
|
||||
patword 0144 870c599f000e50ba
|
||||
patword 0145 870c599f000850ba
|
||||
patword 0146 870c599f000e50ba
|
||||
patword 0147 870c599f000850ba
|
||||
patword 0148 870c599f000e50ba
|
||||
patword 0149 870c599f000850ba
|
||||
patword 014a 870c599f000e50ba
|
||||
patword 014b 870c599f000850ba
|
||||
patword 014c 870c599f000e50ba
|
||||
patword 014d 870c599f000850ba
|
||||
patword 014e 870c599f000e50ba
|
||||
patword 014f 870c599f000850ba
|
||||
patword 0150 870c599f000e50ba
|
||||
patword 0151 870c599f000850ba
|
||||
patword 0152 870c599f000e50ba
|
||||
patword 0153 870c599f000850ba
|
||||
patword 0154 870c599f200e50ba
|
||||
patword 0155 870c599f000850ba
|
||||
patword 0156 870c599f000e50ba
|
||||
patword 0157 870c599f000850ba
|
||||
patword 0158 870c599f000e50ba
|
||||
patword 0159 870c599f000850ba
|
||||
patword 015a 870c599f000e50ba
|
||||
patword 015b 870c599f000850ba
|
||||
patword 015c 870c599f000e50ba
|
||||
patword 015d 870c599f000850ba
|
||||
patword 015e 870c599f000e50ba
|
||||
patword 015f 870c599f000850ba
|
||||
patword 0160 870c599f000e50ba
|
||||
patword 0161 870c599f000850ba
|
||||
patword 0162 870c599f000e50ba
|
||||
patword 0163 870c599f000850ba
|
||||
patword 0164 870c599f000e50ba
|
||||
patword 0165 870c599f000850ba
|
||||
patword 0166 870c599f000e50ba
|
||||
patword 0167 870c599f000850ba
|
||||
patword 0168 870c599f000e50ba
|
||||
patword 0169 870c599f000850ba
|
||||
patword 016a 870c599f000e50ba
|
||||
patword 016b 870c599f000850ba
|
||||
patword 016c 070c599f000850ba
|
||||
patword 016d 070c599f000850ba
|
||||
patword 016e 000c599f000850ba
|
||||
patword 016f 000c599f000850ba
|
||||
patword 0170 0008599f200e503a
|
||||
patword 0171 0008599f0008503a
|
||||
patword 0172 0008599f200e503a
|
||||
patword 0173 0008599f0008503a
|
||||
patword 0174 0008599f0008503a
|
||||
patword 0175 0008599f0008503a
|
||||
patword 0176 0008599f0008503a
|
||||
patword 0177 0008599f0008503a
|
||||
patword 0178 0008599f0008503a
|
||||
patword 0179 0008599f0008503a
|
||||
patword 017a 0008599f0008503a
|
||||
patword 017b 0008599f0008503a
|
||||
patword 017c 0008599f0008503a
|
||||
patword 017d 0008599f0008503a
|
||||
patword 017e 0008599f0008503a
|
||||
patword 017f 0008599f0008503a
|
||||
patword 0180 0008599f0008503a
|
||||
patword 0181 0008599f0008503a
|
||||
patword 0182 0008599f0008503a
|
||||
patword 0183 0008599f0008503a
|
||||
patword 0184 0008599f0008503a
|
||||
patword 0185 0008599f0008503a
|
||||
patword 0186 0008599f0008503a
|
||||
patword 0187 0008599f0008503a
|
||||
patword 0188 0008599f0008503a
|
||||
patword 0189 0008599f0008503a
|
||||
patword 018a 0008599f0008503a
|
||||
patword 018b 0008599f0008503a
|
||||
patword 018c 0008599f0008503a
|
||||
patword 018d 0008599f0008503a
|
||||
patioctrl 8f0effff6dbffdbf
|
||||
patclkctrl 0000000000000000
|
||||
patlimits 0000 018c
|
||||
patloop0 013a 016b
|
||||
patnloop0 199
|
||||
patloop1 0400 0400
|
||||
patnloop1 0
|
||||
patloop2 0400 0400
|
||||
patnloop2 0
|
||||
patwait0 00aa
|
||||
patwaittime0 40000
|
||||
patwait1 0400
|
||||
patwaittime1 0
|
||||
patwait2 0400
|
||||
patwaittime2 0
|
||||
|
||||
|
||||
####mcp2011
|
||||
#0:rx_udpip 10.1.1.102
|
||||
#0:detectorip 10.1.1.19
|
||||
#0:rx_udpport 32410
|
||||
####gui listening to
|
||||
#zmqip 129.129.202.131
|
||||
#zmqport 30001
|
||||
####data streaming out of
|
||||
#rx_zmqip 10.1.2.103
|
||||
#rx_zmqport 30003
|
||||
#0:rx_hostname mpc2011
|
||||
|
||||
####mx-test-1
|
||||
0:rx_udpip 10.1.1.100
|
||||
0:detectorip 10.1.1.19
|
||||
0:rx_udpport 32410
|
||||
####gui listening to (on receiver pc)
|
||||
zmqip 129.129.202.92
|
||||
zmqport 30001
|
||||
####data streaming out of
|
||||
rx_zmqip 10.1.1.100
|
||||
rx_zmqport 30003
|
||||
0:rx_hostname pcmoench01
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#turn on datastream from commandline
|
||||
rx_datastream 1
|
||||
|
||||
r_readfreq 1
|
||||
|
||||
#0:configuremac -1
|
||||
rx_datastream 1
|
||||
|
||||
r_readfreq 1
|
||||
|
||||
|
||||
dac:6 800
|
||||
dac:0 1300
|
||||
dac:4 1428
|
||||
dac:1 1000
|
||||
dac:7 900
|
||||
dac:3 680
|
||||
dac:2 1400
|
||||
dac:5 1200
|
||||
adcinvert 4a342593
|
||||
samples 5000
|
||||
adcphase 90
|
||||
adcpipeline 15
|
||||
adcreg 14 40
|
||||
powerchip 1
|
||||
vhighvoltage 90
|
||||
period 0.005
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
frames 100
|
||||
period 0.1
|
||||
outdir /scratch/
|
||||
enablefwrite 0
|
||||
|
||||
|
||||
|
39
integrationTests/CMakeLists.txt
Normal file
@ -0,0 +1,39 @@
|
||||
MESSAGE( STATUS "CMAKE_CURRENT_SOURCE_DIR: " ${CMAKE_CURRENT_SOURCE_DIR} )
|
||||
MESSAGE( STATUS "PROJECT_SOURCE_DIR: " ${PROJECT_SOURCE_DIR} )
|
||||
|
||||
|
||||
|
||||
include_directories(
|
||||
${PROJECT_SOURCE_DIR}/catch
|
||||
)
|
||||
|
||||
if(SLS_USE_TESTS)
|
||||
set(TEST_SOURCES
|
||||
src/test-slsDetector.cpp
|
||||
src/test.cpp
|
||||
)
|
||||
add_executable(detector_test ${TEST_SOURCES})
|
||||
|
||||
target_link_libraries(detector_test
|
||||
slsDetectorShared
|
||||
slsSupportLib
|
||||
pthread
|
||||
rt
|
||||
)
|
||||
set_target_properties(detector_test PROPERTIES
|
||||
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
|
||||
)
|
||||
add_executable(a src/a.cpp)
|
||||
|
||||
target_link_libraries(a
|
||||
slsDetectorShared
|
||||
slsSupportLib
|
||||
pthread
|
||||
rt
|
||||
)
|
||||
set_target_properties(a PROPERTIES
|
||||
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
|
||||
)
|
||||
|
||||
endif()
|
||||
|
94
integrationTests/src/a.cpp
Normal file
@ -0,0 +1,94 @@
|
||||
|
||||
#include "catch.hpp"
|
||||
|
||||
#include "ClientSocket.h"
|
||||
#include "Timer.h"
|
||||
#include "logger.h"
|
||||
#include "slsDetector.h"
|
||||
#include "sls_detector_defs.h"
|
||||
#include "sls_detector_exceptions.h"
|
||||
#include "sls_detector_funcs.h"
|
||||
#include <iostream>
|
||||
#include <vector>
|
||||
|
||||
#define VERBOSE
|
||||
|
||||
using sls::RuntimeError;
|
||||
using sls::SharedMemoryError;
|
||||
using sls::SocketError;
|
||||
using sls::DetectorError;
|
||||
|
||||
int main() {
|
||||
|
||||
|
||||
const std::string hostname = "beb083";
|
||||
auto type = slsDetector::getTypeFromDetector(hostname);
|
||||
slsDetector d(type);
|
||||
d.setHostname(hostname);
|
||||
d.setOnline(true);
|
||||
std::cout << "hostname: " << d.getHostname() << '\n';
|
||||
d.setThresholdTemperature(50);
|
||||
// try{
|
||||
// d.setThresholdTemperature(50);
|
||||
// }catch(const DetectorError &e){
|
||||
// std::cout << "Caught: " << e.what() << '\n';
|
||||
// }
|
||||
// std::cout << "hostname: " << d.getHostname() << '\n';
|
||||
// std::cout << "exptime: " << d.setDAC(-1, slsDetectorDefs::E_Vrf, 0) << '\n';
|
||||
|
||||
|
||||
|
||||
|
||||
// slsDetector d2(type);
|
||||
// std::cout << "Online: " << d2.getOnlineFlag() << '\n';
|
||||
// d2.setHostname("beb55555");
|
||||
// d2.setOnline(true);
|
||||
// std::cout << "Online: " << d2.getOnlineFlag() << '\n';
|
||||
// std::cout << "hostname: " << d2.getHostname() << '\n';
|
||||
|
||||
// std::cout << "port: " << d.getControlPort() << '\n';
|
||||
// d.setOnline(true);
|
||||
// d.setReceiverOnline(true);
|
||||
// std::cout << "reciver version: " << std::hex << d.getReceiverVersion() << '\n';
|
||||
// // std::cout << "version: " << d.getId(slsDetectorDefs::CLIENT_RECEIVER_API_VERSION) << '\n';
|
||||
// d.freeSharedMemory();
|
||||
// //Catch exception
|
||||
// try {
|
||||
// throw RuntimeError("something went wrong");
|
||||
// } catch (RuntimeError &e) {
|
||||
// std::cout << "Caught RuntimeError with message : " << e.what() << '\n';
|
||||
// }
|
||||
|
||||
// //Catch base class
|
||||
// try {
|
||||
// throw SharedMemoryError("Could not create shared memory");
|
||||
// } catch (RuntimeError &e) {
|
||||
// std::cout << "Caught: " << e.what() << '\n';
|
||||
// }
|
||||
|
||||
// //Catch base class after looking for something else
|
||||
// try {
|
||||
// throw SharedMemoryError("Could not create shared memory");
|
||||
// } catch (SocketError &e) {
|
||||
|
||||
// std::cout << "Caught Socket error: " << e.what() << '\n';
|
||||
|
||||
// } catch (RuntimeError &e) {
|
||||
// std::cout << "Caught base class: " << e.what() << '\n';
|
||||
// }
|
||||
|
||||
// //Catch any after looking for something else
|
||||
// try {
|
||||
// throw SharedMemoryError("Could not create shared memory");
|
||||
// } catch (SocketError &e) {
|
||||
|
||||
// std::cout << "Caught Socket error: " << e.what() << '\n';
|
||||
|
||||
// } catch (...) {
|
||||
// std::cout << "Caught Something else probably should have let me crash\n";
|
||||
// }
|
||||
|
||||
|
||||
// throw RuntimeError("This one we missed");
|
||||
return 0;
|
||||
}
|
11
integrationTests/src/test-multiDetector.cpp
Normal file
@ -0,0 +1,11 @@
|
||||
// #include "catch.hpp"
|
||||
// #include "multiSlsDetector.h"
|
||||
|
||||
// #include <iostream>
|
||||
// TEST_CASE("Initialize a detector") {
|
||||
// multiSlsDetector det(0, true, true);
|
||||
// std::cout << "Size: " << det.getNumberOfDetectors() << std::endl;
|
||||
// std::cout << "Hostname: " << det.getHostname() << std::endl;
|
||||
// REQUIRE(false);
|
||||
|
||||
// }
|
199
integrationTests/src/test-slsDetector.cpp
Normal file
@ -0,0 +1,199 @@
|
||||
|
||||
#include "catch.hpp"
|
||||
|
||||
#include "ClientSocket.h"
|
||||
#include "logger.h"
|
||||
#include "slsDetector.h"
|
||||
#include "sls_detector_defs.h"
|
||||
|
||||
#include "Timer.h"
|
||||
#include "sls_detector_funcs.h"
|
||||
#include <iostream>
|
||||
#include <vector>
|
||||
#define VERBOSE
|
||||
|
||||
auto type_enum = slsDetectorDefs::detectorType::EIGER;
|
||||
const std::string hostname = "beb083";
|
||||
const std::string type_string = "Eiger";
|
||||
const std::string my_ip = "129.129.205.242";
|
||||
|
||||
TEST_CASE("single EIGER detector no receiver basic set and get") {
|
||||
//TODO! this test should take command line arguments for config
|
||||
|
||||
//Read type by connecting to the detector
|
||||
auto type = slsDetector::getTypeFromDetector(hostname);
|
||||
CHECK(type == type_enum);
|
||||
|
||||
//Create slsDetector of said type and set hostname and detector online
|
||||
slsDetector d(type);
|
||||
CHECK(d.getDetectorTypeAsEnum() == type);
|
||||
CHECK(d.getDetectorTypeAsString() == type_string);
|
||||
|
||||
d.setHostname(hostname);
|
||||
CHECK(d.getHostname() == hostname);
|
||||
|
||||
d.setOnline(true);
|
||||
CHECK(d.getOnlineFlag() == true);
|
||||
|
||||
CHECK(d.getReceiverOnline() == false);
|
||||
CHECK(d.checkDetectorVersionCompatibility() == slsDetectorDefs::OK);
|
||||
|
||||
//Setting and reading exposure time
|
||||
auto t = 1000000000;
|
||||
d.setTimer(slsDetectorDefs::timerIndex::ACQUISITION_TIME, t);
|
||||
CHECK(d.setTimer(slsDetectorDefs::timerIndex::ACQUISITION_TIME) == t);
|
||||
|
||||
//size of an eiger half module with and without gap pixels
|
||||
CHECK(d.getTotalNumberOfChannels() == 256 * 256 * 4);
|
||||
CHECK(d.getTotalNumberOfChannels(slsDetectorDefs::dimension::X) == 1024);
|
||||
CHECK(d.getTotalNumberOfChannels(slsDetectorDefs::dimension::Y) == 256);
|
||||
// CHECK(d.getTotalNumberOfChannels(slsDetectorDefs::dimension::Z) == 1);
|
||||
CHECK(d.getTotalNumberOfChannelsInclGapPixels(slsDetectorDefs::dimension::X) == 1024);
|
||||
CHECK(d.getTotalNumberOfChannelsInclGapPixels(slsDetectorDefs::dimension::Y) == 256);
|
||||
// CHECK(d.getTotalNumberOfChannelsInclGapPixels(slsDetectorDefs::dimension::Z) == 1);
|
||||
|
||||
CHECK(d.getNChans() == 256 * 256);
|
||||
CHECK(d.getNChans(slsDetectorDefs::dimension::X) == 256);
|
||||
CHECK(d.getNChans(slsDetectorDefs::dimension::Y) == 256);
|
||||
// CHECK(d.getNChans(slsDetectorDefs::dimension::Z) == 1);
|
||||
|
||||
CHECK(d.getNChips() == 4);
|
||||
CHECK(d.getNChips(slsDetectorDefs::dimension::X) == 4);
|
||||
CHECK(d.getNChips(slsDetectorDefs::dimension::Y) == 1);
|
||||
// CHECK(d.getNChips(slsDetectorDefs::dimension::Z) == 1);
|
||||
|
||||
d.freeSharedMemory();
|
||||
}
|
||||
|
||||
TEST_CASE("Set control port then create a new object with this control port") {
|
||||
/*
|
||||
TODO!
|
||||
Standard port but should not be hardcoded
|
||||
Is this the best way to initialize the detectors
|
||||
Using braces to make the object go out of scope
|
||||
*/
|
||||
int old_cport = DEFAULT_PORTNO;
|
||||
int old_sport = DEFAULT_PORTNO + 1;
|
||||
int new_cport = 1993;
|
||||
int new_sport = 2000;
|
||||
|
||||
{
|
||||
auto type = slsDetector::getTypeFromDetector(hostname);
|
||||
CHECK(type == type_enum);
|
||||
slsDetector d(type);
|
||||
d.setHostname(hostname);
|
||||
d.setOnline(true);
|
||||
CHECK(d.getControlPort() == old_cport);
|
||||
d.setControlPort(new_cport);
|
||||
CHECK(d.getStopPort() == old_sport);
|
||||
d.setStopPort(new_sport);
|
||||
d.freeSharedMemory();
|
||||
}
|
||||
{
|
||||
auto type = slsDetector::getTypeFromDetector(hostname, new_cport);
|
||||
CHECK(type == type_enum);
|
||||
slsDetector d(type);
|
||||
d.setHostname(hostname);
|
||||
d.setControlPort(new_cport);
|
||||
d.setStopPort(new_sport);
|
||||
CHECK(d.getControlPort() == new_cport);
|
||||
CHECK(d.getStopPort() == new_sport);
|
||||
|
||||
d.setOnline(true);
|
||||
|
||||
//Reset standard ports
|
||||
d.setControlPort(old_cport);
|
||||
d.setStopPort(old_sport);
|
||||
d.freeSharedMemory();
|
||||
}
|
||||
|
||||
auto type = slsDetector::getTypeFromDetector(hostname);
|
||||
CHECK(type == type_enum);
|
||||
slsDetector d(type);
|
||||
d.setHostname(hostname);
|
||||
d.setOnline(true);
|
||||
CHECK(d.getStopPort() == DEFAULT_PORTNO + 1);
|
||||
}
|
||||
|
||||
TEST_CASE("Locking mechanism and last ip") {
|
||||
auto type = slsDetector::getTypeFromDetector(hostname);
|
||||
slsDetector d(type);
|
||||
d.setHostname(hostname);
|
||||
d.setOnline(true);
|
||||
|
||||
//Check that detector server is unlocked then lock
|
||||
CHECK(d.lockServer() == 0);
|
||||
d.lockServer(1);
|
||||
CHECK(d.lockServer() == 1);
|
||||
|
||||
//Can we do things while it is locked
|
||||
auto t = 1300000000;
|
||||
d.setTimer(slsDetectorDefs::timerIndex::ACQUISITION_TIME, t);
|
||||
CHECK(d.setTimer(slsDetectorDefs::timerIndex::ACQUISITION_TIME) == t);
|
||||
|
||||
//unlock again
|
||||
d.lockServer(0);
|
||||
CHECK(d.lockServer() == 0);
|
||||
|
||||
CHECK(d.getLastClientIP() == my_ip);
|
||||
}
|
||||
|
||||
TEST_CASE("Excersise all possible set timer functions") {
|
||||
// FRAME_NUMBER, /**< number of real time frames: total number of acquisitions is number or frames*number of cycles */
|
||||
// ACQUISITION_TIME, /**< exposure time */
|
||||
// FRAME_PERIOD, /**< period between exposures */
|
||||
// DELAY_AFTER_TRIGGER, /**< delay between trigger and start of exposure or readout (in triggered mode) */
|
||||
// GATES_NUMBER, /**< number of gates per frame (in gated mode) */
|
||||
// CYCLES_NUMBER, /**< number of cycles: total number of acquisitions is number or frames*number of cycles */
|
||||
// ACTUAL_TIME, /**< Actual time of the detector's internal timer */
|
||||
// MEASUREMENT_TIME, /**< Time of the measurement from the detector (fifo) */
|
||||
|
||||
// PROGRESS, /**< fraction of measurement elapsed - only get! */
|
||||
// MEASUREMENTS_NUMBER,
|
||||
// FRAMES_FROM_START,
|
||||
// FRAMES_FROM_START_PG,
|
||||
// SAMPLES,
|
||||
// SUBFRAME_ACQUISITION_TIME, /**< subframe exposure time */
|
||||
// STORAGE_CELL_NUMBER, /**<number of storage cells */
|
||||
// SUBFRAME_DEADTIME, /**< subframe deadtime */
|
||||
// MEASURED_PERIOD, /**< measured period */
|
||||
// MEASURED_SUBPERIOD, /**< measured subperiod */
|
||||
// MAX_TIMERS
|
||||
|
||||
auto type = slsDetector::getTypeFromDetector(hostname);
|
||||
slsDetector d(type);
|
||||
d.setHostname(hostname);
|
||||
d.setOnline(true);
|
||||
|
||||
//Number of frames
|
||||
auto frames = 10;
|
||||
d.setTimer(slsDetectorDefs::timerIndex::FRAME_NUMBER, frames);
|
||||
CHECK(d.setTimer(slsDetectorDefs::timerIndex::FRAME_NUMBER) == frames);
|
||||
|
||||
auto t = 10000000;
|
||||
d.setTimer(slsDetectorDefs::timerIndex::ACQUISITION_TIME, t);
|
||||
CHECK(d.setTimer(slsDetectorDefs::timerIndex::ACQUISITION_TIME) == t);
|
||||
|
||||
auto period = 1000000000;
|
||||
d.setTimer(slsDetectorDefs::timerIndex::FRAME_PERIOD, period);
|
||||
CHECK(d.setTimer(slsDetectorDefs::timerIndex::FRAME_PERIOD) == period);
|
||||
|
||||
// not implemented for EIGER
|
||||
// auto delay = 10000;
|
||||
// d.setTimer(slsDetectorDefs::timerIndex::DELAY_AFTER_TRIGGER, delay);
|
||||
// CHECK(d.setTimer(slsDetectorDefs::timerIndex::DELAY_AFTER_TRIGGER) == delay);
|
||||
|
||||
// auto gates = 1;
|
||||
// d.setTimer(slsDetectorDefs::timerIndex::GATES_NUMBER, gates);
|
||||
// CHECK(d.setTimer(slsDetectorDefs::timerIndex::GATES_NUMBER) == gates);
|
||||
|
||||
auto cycles = 2;
|
||||
d.setTimer(slsDetectorDefs::timerIndex::CYCLES_NUMBER, cycles);
|
||||
CHECK(d.setTimer(slsDetectorDefs::timerIndex::CYCLES_NUMBER) == cycles);
|
||||
|
||||
auto subtime = 200;
|
||||
d.setTimer(slsDetectorDefs::timerIndex::SUBFRAME_ACQUISITION_TIME, subtime);
|
||||
CHECK(d.setTimer(slsDetectorDefs::timerIndex::SUBFRAME_ACQUISITION_TIME) == subtime);
|
||||
}
|
||||
|
||||
// TEST_CASE()
|
3
integrationTests/src/test.cpp
Normal file
@ -0,0 +1,3 @@
|
||||
// tests-main.cpp
|
||||
#define CATCH_CONFIG_MAIN
|
||||
#include "catch.hpp"
|
@ -1 +0,0 @@
|
||||
No implementation found for style `graphicx'
|
@ -1,30 +0,0 @@
|
||||
/* Century Schoolbook font is very similar to Computer Modern Math: cmmi */
|
||||
.MATH { font-family: "Century Schoolbook", serif; }
|
||||
.MATH I { font-family: "Century Schoolbook", serif; font-style: italic }
|
||||
.BOLDMATH { font-family: "Century Schoolbook", serif; font-weight: bold }
|
||||
|
||||
/* implement both fixed-size and relative sizes */
|
||||
SMALL.XTINY { font-size : xx-small }
|
||||
SMALL.TINY { font-size : x-small }
|
||||
SMALL.SCRIPTSIZE { font-size : smaller }
|
||||
SMALL.FOOTNOTESIZE { font-size : small }
|
||||
SMALL.SMALL { }
|
||||
BIG.LARGE { }
|
||||
BIG.XLARGE { font-size : large }
|
||||
BIG.XXLARGE { font-size : x-large }
|
||||
BIG.HUGE { font-size : larger }
|
||||
BIG.XHUGE { font-size : xx-large }
|
||||
|
||||
/* heading styles */
|
||||
H1 { }
|
||||
H2 { }
|
||||
H3 { }
|
||||
H4 { }
|
||||
H5 { }
|
||||
|
||||
/* mathematics styles */
|
||||
DIV.displaymath { } /* math displays */
|
||||
TD.eqno { } /* equation-number cells */
|
||||
|
||||
|
||||
/* document-specific styles come next */
|
@ -1,84 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
||||
|
||||
<!--Converted with LaTeX2HTML 2012 (1.2)
|
||||
original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
|
||||
* with significant contributions from:
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Angular calibration wizard manual</TITLE>
|
||||
<META NAME="description" CONTENT="Angular calibration wizard manual">
|
||||
<META NAME="keywords" CONTENT="angularCalibrationHowTo">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<META NAME="distribution" CONTENT="global">
|
||||
|
||||
<META NAME="Generator" CONTENT="LaTeX2HTML v2012">
|
||||
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
|
||||
|
||||
<LINK REL="STYLESHEET" HREF="angularCalibrationHowTo.css">
|
||||
|
||||
<LINK REL="next" HREF="node1.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html6"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next"
|
||||
SRC="file:/usr/share/latex2html/icons/next.png"></A>
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up"
|
||||
SRC="file:/usr/share/latex2html/icons/up_g.png">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous"
|
||||
SRC="file:/usr/share/latex2html/icons/prev_g.png">
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html7"
|
||||
HREF="node1.html">Introduction</A>
|
||||
<BR>
|
||||
<BR>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<P>
|
||||
|
||||
<H1 ALIGN="CENTER">Angular calibration wizard manual</H1>
|
||||
<DIV>
|
||||
|
||||
<P ALIGN="CENTER"><STRONG>Anna Bergamaschi</STRONG></P>
|
||||
<P ALIGN="CENTER"><STRONG>September 28, 2018</STRONG></P>
|
||||
</DIV>
|
||||
|
||||
<P>
|
||||
<BR><HR>
|
||||
<!--Table of Child-Links-->
|
||||
<A NAME="CHILD_LINKS"></A>
|
||||
|
||||
<UL>
|
||||
<LI><A NAME="tex2html8"
|
||||
HREF="node1.html">Introduction</A>
|
||||
<LI><A NAME="tex2html9"
|
||||
HREF="node2.html">Data acquisition</A>
|
||||
<UL>
|
||||
<LI><A NAME="tex2html10"
|
||||
HREF="node2.html#SECTION00021000000000000000">Software</A>
|
||||
</UL>
|
||||
<BR>
|
||||
<LI><A NAME="tex2html11"
|
||||
HREF="node3.html">Data analysis</A>
|
||||
<UL>
|
||||
<LI><A NAME="tex2html12"
|
||||
HREF="node3.html#SECTION00031000000000000000">Software</A>
|
||||
</UL>
|
||||
<BR>
|
||||
<LI><A NAME="tex2html13"
|
||||
HREF="node4.html">Setup calibration files</A>
|
||||
<LI><A NAME="tex2html14"
|
||||
HREF="node5.html">About this document ...</A>
|
||||
</UL>
|
||||
<!--End of Table of Child-Links-->
|
||||
<BR><HR>
|
||||
<ADDRESS>
|
||||
Thattil Dhanya
|
||||
2018-09-28
|
||||
</ADDRESS>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1 +0,0 @@
|
||||
\relax
|
@ -1,232 +0,0 @@
|
||||
This is pdfTeX, Version 3.1415926-2.5-1.40.14 (TeX Live 2013) (format=latex 2018.8.23) 28 SEP 2018 11:35
|
||||
entering extended mode
|
||||
restricted \write18 enabled.
|
||||
%&-line parsing enabled.
|
||||
**./images.tex
|
||||
(./images.tex
|
||||
LaTeX2e <2011/06/27>
|
||||
Babel <v3.8m> and hyphenation patterns for english, dumylang, nohyphenation, lo
|
||||
aded.
|
||||
|
||||
(/usr/share/texlive/texmf-dist/tex/latex/base/article.cls
|
||||
Document Class: article 2007/10/19 v1.4h Standard LaTeX document class
|
||||
(/usr/share/texlive/texmf-dist/tex/latex/base/size10.clo
|
||||
File: size10.clo 2007/10/19 v1.4h Standard LaTeX file (size option)
|
||||
)
|
||||
\c@part=\count79
|
||||
\c@section=\count80
|
||||
\c@subsection=\count81
|
||||
\c@subsubsection=\count82
|
||||
\c@paragraph=\count83
|
||||
\c@subparagraph=\count84
|
||||
\c@figure=\count85
|
||||
\c@table=\count86
|
||||
\abovecaptionskip=\skip41
|
||||
\belowcaptionskip=\skip42
|
||||
\bibindent=\dimen102
|
||||
) (/usr/share/texlive/texmf-dist/tex/latex/base/ifthen.sty
|
||||
Package: ifthen 2001/05/26 v1.1c Standard LaTeX ifthen package (DPC)
|
||||
) (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amssymb.sty
|
||||
Package: amssymb 2013/01/14 v3.01 AMS font symbols
|
||||
(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amsfonts.sty
|
||||
Package: amsfonts 2013/01/14 v3.01 Basic AMSFonts support
|
||||
\@emptytoks=\toks14
|
||||
\symAMSa=\mathgroup4
|
||||
\symAMSb=\mathgroup5
|
||||
LaTeX Font Info: Overwriting math alphabet `\mathfrak' in version `bold'
|
||||
(Font) U/euf/m/n --> U/euf/b/n on input line 106.
|
||||
)) (/usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty
|
||||
Package: graphicx 1999/02/16 v1.0f Enhanced LaTeX Graphics (DPC,SPQR)
|
||||
(/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty
|
||||
Package: keyval 1999/03/16 v1.13 key=value parser (DPC)
|
||||
\KV@toks@=\toks15
|
||||
) (/usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty
|
||||
Package: graphics 2009/02/05 v1.0o Standard LaTeX Graphics (DPC,SPQR)
|
||||
(/usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty
|
||||
Package: trig 1999/03/16 v1.09 sin cos tan (DPC)
|
||||
) (/usr/share/texlive/texmf-dist/tex/latex/latexconfig/graphics.cfg
|
||||
File: graphics.cfg 2010/04/23 v1.9 graphics configuration of TeX Live
|
||||
)
|
||||
Package graphics Info: Driver file: dvips.def on input line 91.
|
||||
(/usr/share/texlive/texmf-dist/tex/latex/graphics/dvips.def
|
||||
File: dvips.def 1999/02/16 v3.0i Driver-dependant file (DPC,SPQR)
|
||||
))
|
||||
\Gin@req@height=\dimen103
|
||||
\Gin@req@width=\dimen104
|
||||
) (/usr/share/texlive/texmf-dist/tex/latex/tools/verbatim.sty
|
||||
Package: verbatim 2003/08/22 v1.5q LaTeX2e package for verbatim enhancements
|
||||
\every@verbatim=\toks16
|
||||
\verbatim@line=\toks17
|
||||
\verbatim@in@stream=\read1
|
||||
) (/usr/share/texlive/texmf-dist/tex/latex/graphics/color.sty
|
||||
Package: color 2005/11/14 v1.0j Standard LaTeX Color (DPC)
|
||||
(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/color.cfg
|
||||
File: color.cfg 2007/01/18 v1.5 color configuration of teTeX/TeXLive
|
||||
)
|
||||
Package color Info: Driver file: dvips.def on input line 130.
|
||||
(/usr/share/texlive/texmf-dist/tex/latex/graphics/dvipsnam.def
|
||||
File: dvipsnam.def 1999/02/16 v3.0i Driver-dependant file (DPC,SPQR)
|
||||
)) (/usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty
|
||||
Package: inputenc 2008/03/30 v1.1d Input encoding file
|
||||
\inpenc@prehook=\toks18
|
||||
\inpenc@posthook=\toks19
|
||||
)
|
||||
\sizebox=\box26
|
||||
\lthtmlwrite=\write3
|
||||
(./images.aux)
|
||||
\openout1 = `images.aux'.
|
||||
|
||||
LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 116.
|
||||
LaTeX Font Info: ... okay on input line 116.
|
||||
LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 116.
|
||||
LaTeX Font Info: ... okay on input line 116.
|
||||
LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 116.
|
||||
LaTeX Font Info: ... okay on input line 116.
|
||||
LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 116.
|
||||
LaTeX Font Info: ... okay on input line 116.
|
||||
LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 116.
|
||||
LaTeX Font Info: ... okay on input line 116.
|
||||
LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 116.
|
||||
LaTeX Font Info: ... okay on input line 116.
|
||||
|
||||
latex2htmlLength hsize=349.0pt
|
||||
|
||||
latex2htmlLength vsize=633.0pt
|
||||
|
||||
latex2htmlLength hoffset=0.0pt
|
||||
|
||||
latex2htmlLength voffset=0.0pt
|
||||
|
||||
latex2htmlLength topmargin=0.0pt
|
||||
|
||||
latex2htmlLength topskip=0.00003pt
|
||||
|
||||
latex2htmlLength headheight=0.0pt
|
||||
|
||||
latex2htmlLength headsep=0.0pt
|
||||
|
||||
latex2htmlLength parskip=0.0pt plus 1.0pt
|
||||
|
||||
latex2htmlLength oddsidemargin=62.0pt
|
||||
|
||||
latex2htmlLength evensidemargin=62.0pt
|
||||
|
||||
LaTeX Font Info: Try loading font information for U+msa on input line 141.
|
||||
(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsa.fd
|
||||
File: umsa.fd 2013/01/14 v3.01 AMS symbols A
|
||||
)
|
||||
LaTeX Font Info: Try loading font information for U+msb on input line 141.
|
||||
(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsb.fd
|
||||
File: umsb.fd 2013/01/14 v3.01 AMS symbols B
|
||||
)
|
||||
l2hSize :tex2html_wrap_inline84:6.94444pt::0.0pt::5.47226pt.
|
||||
[1
|
||||
|
||||
|
||||
|
||||
]
|
||||
l2hSize :tex2html_wrap_inline86:7.33331pt::7.33331pt::24.82152pt.
|
||||
[2
|
||||
|
||||
|
||||
]
|
||||
l2hSize :tex2html_wrap_inline88:6.59525pt::0.0pt::3.94516pt.
|
||||
[3
|
||||
|
||||
|
||||
]
|
||||
l2hSize :tex2html_wrap_inline90:7.33331pt::7.33331pt::12.57195pt.
|
||||
[4
|
||||
|
||||
|
||||
]
|
||||
l2hSize :displaymath18:22.88544pt::0.0pt::349.0pt.
|
||||
[5
|
||||
|
||||
|
||||
]
|
||||
l2hSize :tex2html_wrap_inline94:8.76085pt::8.76085pt::12.72505pt.
|
||||
[6
|
||||
|
||||
|
||||
]
|
||||
l2hSize :tex2html_wrap_inline96:8.76085pt::8.76085pt::31.20164pt.
|
||||
[7
|
||||
|
||||
|
||||
]
|
||||
l2hSize :tex2html_wrap_inline98:8.26085pt::0.0pt::11.49947pt.
|
||||
[8
|
||||
|
||||
|
||||
]
|
||||
l2hSize :tex2html_wrap_inline102:6.95831pt::6.95831pt::47.00348pt.
|
||||
[9
|
||||
|
||||
|
||||
]
|
||||
l2hSize :tex2html_wrap_inline106:6.95831pt::6.95831pt::4.98616pt.
|
||||
[10
|
||||
|
||||
|
||||
]
|
||||
l2hSize :tex2html_wrap_inline108:6.95831pt::6.95831pt::6.52551pt.
|
||||
[11
|
||||
|
||||
|
||||
]
|
||||
l2hSize :tex2html_wrap_inline110:6.95831pt::6.95831pt::8.27783pt.
|
||||
[12
|
||||
|
||||
|
||||
]
|
||||
l2hSize :tex2html_wrap_inline120:8.76085pt::8.76085pt::21.53073pt.
|
||||
[13
|
||||
|
||||
|
||||
]
|
||||
File: enable_angcal.eps Graphic file (type eps)
|
||||
<enable_angcal.eps>
|
||||
l2hSize :tex2html_wrap330:378.81322pt::0.0pt::349.0pt.
|
||||
[14
|
||||
|
||||
|
||||
]
|
||||
File: position_scan.eps Graphic file (type eps)
|
||||
<position_scan.eps>
|
||||
l2hSize :tex2html_wrap334:378.81322pt::0.0pt::349.0pt.
|
||||
[15
|
||||
|
||||
|
||||
]
|
||||
File: setupAngcal.eps Graphic file (type eps)
|
||||
<setupAngcal.eps>
|
||||
l2hSize :tex2html_wrap340:444.03647pt::0.0pt::349.0pt.
|
||||
[16
|
||||
|
||||
|
||||
]
|
||||
File: peakFit.eps Graphic file (type eps)
|
||||
<peakFit.eps>
|
||||
l2hSize :tex2html_wrap344:444.03647pt::0.0pt::349.0pt.
|
||||
[17
|
||||
|
||||
|
||||
]
|
||||
File: angleFit.eps Graphic file (type eps)
|
||||
<angleFit.eps>
|
||||
l2hSize :tex2html_wrap348:444.03647pt::0.0pt::349.0pt.
|
||||
[18
|
||||
|
||||
|
||||
] (./images.aux) )
|
||||
Here is how much of TeX's memory you used:
|
||||
1150 strings out of 495064
|
||||
14686 string characters out of 3182224
|
||||
55704 words of memory out of 3000000
|
||||
4358 multiletter control sequences out of 15000+200000
|
||||
5339 words of font info for 22 fonts, out of 3000000 for 9000
|
||||
14 hyphenation exceptions out of 8191
|
||||
25i,6n,26p,206b,199s stack positions out of 5000i,500n,10000p,200000b,50000s
|
||||
|
||||
Output written on images.dvi (18 pages, 4432 bytes).
|
@ -1,116 +0,0 @@
|
||||
# LaTeX2HTML 2012 (1.2)
|
||||
# Associate images original text with physical files.
|
||||
|
||||
|
||||
$key = q/Theta_e;MSF=1.6;AAT/;
|
||||
$cached_env_img{$key} = q|<IMG
|
||||
WIDTH="24" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="|."$dir".q|img4.png"
|
||||
ALT="$\Theta_e$">|;
|
||||
|
||||
$key = q/C_{center}^{i};MSF=1.6;AAT/;
|
||||
$cached_env_img{$key} = q|<IMG
|
||||
WIDTH="53" HEIGHT="36" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="|."$dir".q|img7.png"
|
||||
ALT="$C_{center}^{i}$">|;
|
||||
|
||||
$key = q/i;MSF=1.6;AAT/;
|
||||
$cached_env_img{$key} = q|<IMG
|
||||
WIDTH="10" HEIGHT="17" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="|."$dir".q|img3.png"
|
||||
ALT="$i$">|;
|
||||
|
||||
$key = q/mu;MSF=1.6;AAT/;
|
||||
$cached_env_img{$key} = q|<IMG
|
||||
WIDTH="14" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="|."$dir".q|img11.png"
|
||||
ALT="$\mu$">|;
|
||||
|
||||
$key = q/Theta_o^i;MSF=1.6;AAT/;
|
||||
$cached_env_img{$key} = q|<IMG
|
||||
WIDTH="24" HEIGHT="36" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="|."$dir".q|img6.png"
|
||||
ALT="$\Theta_o^i$">|;
|
||||
|
||||
$key = q/includegraphics[width=textwidth]{enable_angcal.eps};AAT/;
|
||||
$cached_env_img{$key} = q|<IMG
|
||||
WIDTH="555" HEIGHT="603" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="|."$dir".q|img14.png"
|
||||
ALT="\includegraphics[width=\textwidth]{enable_angcal.eps}">|;
|
||||
|
||||
$key = q/p=50~mum;MSF=1.6;AAT/;
|
||||
$cached_env_img{$key} = q|<IMG
|
||||
WIDTH="79" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="|."$dir".q|img9.png"
|
||||
ALT="$p=50 \mu m$">|;
|
||||
|
||||
$key = q/C_{peak};MSF=1.6;AAT/;
|
||||
$cached_env_img{$key} = q|<IMG
|
||||
WIDTH="43" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="|."$dir".q|img2.png"
|
||||
ALT="$C_{peak}$">|;
|
||||
|
||||
$key = q/_6;MSF=1.6;AAT/;
|
||||
$cached_env_img{$key} = q|<IMG
|
||||
WIDTH="12" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="|."$dir".q|img10.png"
|
||||
ALT="$_6$">|;
|
||||
|
||||
$key = q/includegraphics[width=textwidth]{peakFit.eps};AAT/;
|
||||
$cached_env_img{$key} = q|<IMG
|
||||
WIDTH="555" HEIGHT="707" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="|."$dir".q|img17.png"
|
||||
ALT="\includegraphics[width=\textwidth]{peakFit.eps}">|;
|
||||
|
||||
$key = q/pslashR^i;MSF=1.6;AAT/;
|
||||
$cached_env_img{$key} = q|<IMG
|
||||
WIDTH="38" HEIGHT="36" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="|."$dir".q|img13.png"
|
||||
ALT="$p/R^i$">|;
|
||||
|
||||
$key = q/includegraphics[width=textwidth]{setupAngcal.eps};AAT/;
|
||||
$cached_env_img{$key} = q|<IMG
|
||||
WIDTH="555" HEIGHT="707" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="|."$dir".q|img16.png"
|
||||
ALT="\includegraphics[width=\textwidth]{setupAngcal.eps}">|;
|
||||
|
||||
$key = q/includegraphics[width=textwidth]{angleFit.eps};AAT/;
|
||||
$cached_env_img{$key} = q|<IMG
|
||||
WIDTH="555" HEIGHT="707" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="|."$dir".q|img18.png"
|
||||
ALT="\includegraphics[width=\textwidth]{angleFit.eps}">|;
|
||||
|
||||
$key = q/pm;MSF=1.6;AAT/;
|
||||
$cached_env_img{$key} = q|<IMG
|
||||
WIDTH="17" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="|."$dir".q|img12.png"
|
||||
ALT="$\pm$">|;
|
||||
|
||||
$key = q/{displaymath}Theta_e=Theta_o^i-arctanBig(frac{pcdot(C_{peak}-C_{center}^i)}{R^i}Big),{displaymath};MSF=1.6;AAT/;
|
||||
$cached_env_img{$key} = q|<IMG
|
||||
WIDTH="291" HEIGHT="41" BORDER="0"
|
||||
SRC="|."$dir".q|img5.png"
|
||||
ALT="\begin{displaymath}
|
||||
\Theta_e=\Theta_o^i-\arctan\Big(\frac{p \cdot (C_{peak}-C_{center}^i)}{R^i}\Big),
|
||||
\end{displaymath}">|;
|
||||
|
||||
$key = q/theta;MSF=1.6;AAT/;
|
||||
$cached_env_img{$key} = q|<IMG
|
||||
WIDTH="12" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="|."$dir".q|img1.png"
|
||||
ALT="$\theta$">|;
|
||||
|
||||
$key = q/R^i;MSF=1.6;AAT/;
|
||||
$cached_env_img{$key} = q|<IMG
|
||||
WIDTH="22" HEIGHT="17" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="|."$dir".q|img8.png"
|
||||
ALT="$R^i$">|;
|
||||
|
||||
$key = q/includegraphics[width=textwidth]{position_scan.eps};AAT/;
|
||||
$cached_env_img{$key} = q|<IMG
|
||||
WIDTH="555" HEIGHT="603" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="|."$dir".q|img15.png"
|
||||
ALT="\includegraphics[width=\textwidth]{position_scan.eps}">|;
|
||||
|
||||
1;
|
||||
|
@ -1,255 +0,0 @@
|
||||
\batchmode
|
||||
\documentclass{article}
|
||||
\RequirePackage{ifthen}
|
||||
|
||||
|
||||
\usepackage{amssymb}
|
||||
\usepackage[dvips]{graphicx}
|
||||
\usepackage{verbatim}
|
||||
|
||||
|
||||
\usepackage[dvips]{color}
|
||||
|
||||
|
||||
\pagecolor[gray]{.7}
|
||||
|
||||
\usepackage[]{inputenc}
|
||||
|
||||
|
||||
|
||||
\makeatletter
|
||||
|
||||
\makeatletter
|
||||
\count@=\the\catcode`\_ \catcode`\_=8
|
||||
\newenvironment{tex2html_wrap}{}{}%
|
||||
\catcode`\<=12\catcode`\_=\count@
|
||||
\newcommand{\providedcommand}[1]{\expandafter\providecommand\csname #1\endcsname}%
|
||||
\newcommand{\renewedcommand}[1]{\expandafter\providecommand\csname #1\endcsname{}%
|
||||
\expandafter\renewcommand\csname #1\endcsname}%
|
||||
\newcommand{\newedenvironment}[1]{\newenvironment{#1}{}{}\renewenvironment{#1}}%
|
||||
\let\newedcommand\renewedcommand
|
||||
\let\renewedenvironment\newedenvironment
|
||||
\makeatother
|
||||
\let\mathon=$
|
||||
\let\mathoff=$
|
||||
\ifx\AtBeginDocument\undefined \newcommand{\AtBeginDocument}[1]{}\fi
|
||||
\newbox\sizebox
|
||||
\setlength{\hoffset}{0pt}\setlength{\voffset}{0pt}
|
||||
\addtolength{\textheight}{\footskip}\setlength{\footskip}{0pt}
|
||||
\addtolength{\textheight}{\topmargin}\setlength{\topmargin}{0pt}
|
||||
\addtolength{\textheight}{\headheight}\setlength{\headheight}{0pt}
|
||||
\addtolength{\textheight}{\headsep}\setlength{\headsep}{0pt}
|
||||
\setlength{\textwidth}{349pt}
|
||||
\newwrite\lthtmlwrite
|
||||
\makeatletter
|
||||
\let\realnormalsize=\normalsize
|
||||
\global\topskip=2sp
|
||||
\def\preveqno{}\let\real@float=\@float \let\realend@float=\end@float
|
||||
\def\@float{\let\@savefreelist\@freelist\real@float}
|
||||
\def\liih@math{\ifmmode$\else\bad@math\fi}
|
||||
\def\end@float{\realend@float\global\let\@freelist\@savefreelist}
|
||||
\let\real@dbflt=\@dbflt \let\end@dblfloat=\end@float
|
||||
\let\@largefloatcheck=\relax
|
||||
\let\if@boxedmulticols=\iftrue
|
||||
\def\@dbflt{\let\@savefreelist\@freelist\real@dbflt}
|
||||
\def\adjustnormalsize{\def\normalsize{\mathsurround=0pt \realnormalsize
|
||||
\parindent=0pt\abovedisplayskip=0pt\belowdisplayskip=0pt}%
|
||||
\def\phantompar{\csname par\endcsname}\normalsize}%
|
||||
\def\lthtmltypeout#1{{\let\protect\string \immediate\write\lthtmlwrite{#1}}}%
|
||||
\newcommand\lthtmlhboxmathA{\adjustnormalsize\setbox\sizebox=\hbox\bgroup\kern.05em }%
|
||||
\newcommand\lthtmlhboxmathB{\adjustnormalsize\setbox\sizebox=\hbox to\hsize\bgroup\hfill }%
|
||||
\newcommand\lthtmlvboxmathA{\adjustnormalsize\setbox\sizebox=\vbox\bgroup %
|
||||
\let\ifinner=\iffalse \let\)\liih@math }%
|
||||
\newcommand\lthtmlboxmathZ{\@next\next\@currlist{}{\def\next{\voidb@x}}%
|
||||
\expandafter\box\next\egroup}%
|
||||
\newcommand\lthtmlmathtype[1]{\gdef\lthtmlmathenv{#1}}%
|
||||
\newcommand\lthtmllogmath{\dimen0\ht\sizebox \advance\dimen0\dp\sizebox
|
||||
\ifdim\dimen0>.95\vsize
|
||||
\lthtmltypeout{%
|
||||
*** image for \lthtmlmathenv\space is too tall at \the\dimen0, reducing to .95 vsize ***}%
|
||||
\ht\sizebox.95\vsize \dp\sizebox\z@ \fi
|
||||
\lthtmltypeout{l2hSize %
|
||||
:\lthtmlmathenv:\the\ht\sizebox::\the\dp\sizebox::\the\wd\sizebox.\preveqno}}%
|
||||
\newcommand\lthtmlfigureA[1]{\let\@savefreelist\@freelist
|
||||
\lthtmlmathtype{#1}\lthtmlvboxmathA}%
|
||||
\newcommand\lthtmlpictureA{\bgroup\catcode`\_=8 \lthtmlpictureB}%
|
||||
\newcommand\lthtmlpictureB[1]{\lthtmlmathtype{#1}\egroup
|
||||
\let\@savefreelist\@freelist \lthtmlhboxmathB}%
|
||||
\newcommand\lthtmlpictureZ[1]{\hfill\lthtmlfigureZ}%
|
||||
\newcommand\lthtmlfigureZ{\lthtmlboxmathZ\lthtmllogmath\copy\sizebox
|
||||
\global\let\@freelist\@savefreelist}%
|
||||
\newcommand\lthtmldisplayA{\bgroup\catcode`\_=8 \lthtmldisplayAi}%
|
||||
\newcommand\lthtmldisplayAi[1]{\lthtmlmathtype{#1}\egroup\lthtmlvboxmathA}%
|
||||
\newcommand\lthtmldisplayB[1]{\edef\preveqno{(\theequation)}%
|
||||
\lthtmldisplayA{#1}\let\@eqnnum\relax}%
|
||||
\newcommand\lthtmldisplayZ{\lthtmlboxmathZ\lthtmllogmath\lthtmlsetmath}%
|
||||
\newcommand\lthtmlinlinemathA{\bgroup\catcode`\_=8 \lthtmlinlinemathB}
|
||||
\newcommand\lthtmlinlinemathB[1]{\lthtmlmathtype{#1}\egroup\lthtmlhboxmathA
|
||||
\vrule height1.5ex width0pt }%
|
||||
\newcommand\lthtmlinlineA{\bgroup\catcode`\_=8 \lthtmlinlineB}%
|
||||
\newcommand\lthtmlinlineB[1]{\lthtmlmathtype{#1}\egroup\lthtmlhboxmathA}%
|
||||
\newcommand\lthtmlinlineZ{\egroup\expandafter\ifdim\dp\sizebox>0pt %
|
||||
\expandafter\centerinlinemath\fi\lthtmllogmath\lthtmlsetinline}
|
||||
\newcommand\lthtmlinlinemathZ{\egroup\expandafter\ifdim\dp\sizebox>0pt %
|
||||
\expandafter\centerinlinemath\fi\lthtmllogmath\lthtmlsetmath}
|
||||
\newcommand\lthtmlindisplaymathZ{\egroup %
|
||||
\centerinlinemath\lthtmllogmath\lthtmlsetmath}
|
||||
\def\lthtmlsetinline{\hbox{\vrule width.1em \vtop{\vbox{%
|
||||
\kern.1em\copy\sizebox}\ifdim\dp\sizebox>0pt\kern.1em\else\kern.3pt\fi
|
||||
\ifdim\hsize>\wd\sizebox \hrule depth1pt\fi}}}
|
||||
\def\lthtmlsetmath{\hbox{\vrule width.1em\kern-.05em\vtop{\vbox{%
|
||||
\kern.1em\kern0.8 pt\hbox{\hglue.17em\copy\sizebox\hglue0.8 pt}}\kern.3pt%
|
||||
\ifdim\dp\sizebox>0pt\kern.1em\fi \kern0.8 pt%
|
||||
\ifdim\hsize>\wd\sizebox \hrule depth1pt\fi}}}
|
||||
\def\centerinlinemath{%
|
||||
\dimen1=\ifdim\ht\sizebox<\dp\sizebox \dp\sizebox\else\ht\sizebox\fi
|
||||
\advance\dimen1by.5pt \vrule width0pt height\dimen1 depth\dimen1
|
||||
\dp\sizebox=\dimen1\ht\sizebox=\dimen1\relax}
|
||||
|
||||
\def\lthtmlcheckvsize{\ifdim\ht\sizebox<\vsize
|
||||
\ifdim\wd\sizebox<\hsize\expandafter\hfill\fi \expandafter\vfill
|
||||
\else\expandafter\vss\fi}%
|
||||
\providecommand{\selectlanguage}[1]{}%
|
||||
\makeatletter \tracingstats = 1
|
||||
|
||||
|
||||
\begin{document}
|
||||
\pagestyle{empty}\thispagestyle{empty}\lthtmltypeout{}%
|
||||
\lthtmltypeout{latex2htmlLength hsize=\the\hsize}\lthtmltypeout{}%
|
||||
\lthtmltypeout{latex2htmlLength vsize=\the\vsize}\lthtmltypeout{}%
|
||||
\lthtmltypeout{latex2htmlLength hoffset=\the\hoffset}\lthtmltypeout{}%
|
||||
\lthtmltypeout{latex2htmlLength voffset=\the\voffset}\lthtmltypeout{}%
|
||||
\lthtmltypeout{latex2htmlLength topmargin=\the\topmargin}\lthtmltypeout{}%
|
||||
\lthtmltypeout{latex2htmlLength topskip=\the\topskip}\lthtmltypeout{}%
|
||||
\lthtmltypeout{latex2htmlLength headheight=\the\headheight}\lthtmltypeout{}%
|
||||
\lthtmltypeout{latex2htmlLength headsep=\the\headsep}\lthtmltypeout{}%
|
||||
\lthtmltypeout{latex2htmlLength parskip=\the\parskip}\lthtmltypeout{}%
|
||||
\lthtmltypeout{latex2htmlLength oddsidemargin=\the\oddsidemargin}\lthtmltypeout{}%
|
||||
\makeatletter
|
||||
\if@twoside\lthtmltypeout{latex2htmlLength evensidemargin=\the\evensidemargin}%
|
||||
\else\lthtmltypeout{latex2htmlLength evensidemargin=\the\oddsidemargin}\fi%
|
||||
\lthtmltypeout{}%
|
||||
\makeatother
|
||||
\setcounter{page}{1}
|
||||
\onecolumn
|
||||
|
||||
% !!! IMAGES START HERE !!!
|
||||
|
||||
\stepcounter{section}
|
||||
{\newpage\clearpage
|
||||
\lthtmlinlinemathA{tex2html_wrap_inline84}%
|
||||
$\theta$%
|
||||
\lthtmlinlinemathZ
|
||||
\lthtmlcheckvsize\clearpage}
|
||||
|
||||
{\newpage\clearpage
|
||||
\lthtmlinlinemathA{tex2html_wrap_inline86}%
|
||||
$C_{peak}$%
|
||||
\lthtmlinlinemathZ
|
||||
\lthtmlcheckvsize\clearpage}
|
||||
|
||||
{\newpage\clearpage
|
||||
\lthtmlinlinemathA{tex2html_wrap_inline88}%
|
||||
$i$%
|
||||
\lthtmlinlinemathZ
|
||||
\lthtmlcheckvsize\clearpage}
|
||||
|
||||
{\newpage\clearpage
|
||||
\lthtmlinlinemathA{tex2html_wrap_inline90}%
|
||||
$\Theta_e$%
|
||||
\lthtmlinlinemathZ
|
||||
\lthtmlcheckvsize\clearpage}
|
||||
|
||||
{\newpage\clearpage
|
||||
\lthtmldisplayA{displaymath18}%
|
||||
\begin{displaymath}
|
||||
\Theta_e=\Theta_o^i-\arctan\Big(\frac{p \cdot (C_{peak}-C_{center}^i)}{R^i}\Big),
|
||||
\end{displaymath}%
|
||||
\lthtmldisplayZ
|
||||
\lthtmlcheckvsize\clearpage}
|
||||
|
||||
{\newpage\clearpage
|
||||
\lthtmlinlinemathA{tex2html_wrap_inline94}%
|
||||
$\Theta_o^i$%
|
||||
\lthtmlinlinemathZ
|
||||
\lthtmlcheckvsize\clearpage}
|
||||
|
||||
{\newpage\clearpage
|
||||
\lthtmlinlinemathA{tex2html_wrap_inline96}%
|
||||
$C_{center}^{i}$%
|
||||
\lthtmlinlinemathZ
|
||||
\lthtmlcheckvsize\clearpage}
|
||||
|
||||
{\newpage\clearpage
|
||||
\lthtmlinlinemathA{tex2html_wrap_inline98}%
|
||||
$R^i$%
|
||||
\lthtmlinlinemathZ
|
||||
\lthtmlcheckvsize\clearpage}
|
||||
|
||||
{\newpage\clearpage
|
||||
\lthtmlinlinemathA{tex2html_wrap_inline102}%
|
||||
$p=50~\mu m$%
|
||||
\lthtmlinlinemathZ
|
||||
\lthtmlcheckvsize\clearpage}
|
||||
|
||||
{\newpage\clearpage
|
||||
\lthtmlinlinemathA{tex2html_wrap_inline106}%
|
||||
$_6$%
|
||||
\lthtmlinlinemathZ
|
||||
\lthtmlcheckvsize\clearpage}
|
||||
|
||||
{\newpage\clearpage
|
||||
\lthtmlinlinemathA{tex2html_wrap_inline108}%
|
||||
$\mu$%
|
||||
\lthtmlinlinemathZ
|
||||
\lthtmlcheckvsize\clearpage}
|
||||
|
||||
{\newpage\clearpage
|
||||
\lthtmlinlinemathA{tex2html_wrap_inline110}%
|
||||
$\pm$%
|
||||
\lthtmlinlinemathZ
|
||||
\lthtmlcheckvsize\clearpage}
|
||||
|
||||
\stepcounter{section}
|
||||
{\newpage\clearpage
|
||||
\lthtmlinlinemathA{tex2html_wrap_inline120}%
|
||||
$p/R^i$%
|
||||
\lthtmlinlinemathZ
|
||||
\lthtmlcheckvsize\clearpage}
|
||||
|
||||
\stepcounter{subsection}
|
||||
{\newpage\clearpage
|
||||
\lthtmlpictureA{tex2html_wrap330}%
|
||||
\includegraphics[width=\textwidth]{enable_angcal.eps}%
|
||||
\lthtmlpictureZ
|
||||
\lthtmlcheckvsize\clearpage}
|
||||
|
||||
{\newpage\clearpage
|
||||
\lthtmlpictureA{tex2html_wrap334}%
|
||||
\includegraphics[width=\textwidth]{position_scan.eps}%
|
||||
\lthtmlpictureZ
|
||||
\lthtmlcheckvsize\clearpage}
|
||||
|
||||
\stepcounter{section}
|
||||
\stepcounter{subsection}
|
||||
{\newpage\clearpage
|
||||
\lthtmlpictureA{tex2html_wrap340}%
|
||||
\includegraphics[width=\textwidth]{setupAngcal.eps}%
|
||||
\lthtmlpictureZ
|
||||
\lthtmlcheckvsize\clearpage}
|
||||
|
||||
{\newpage\clearpage
|
||||
\lthtmlpictureA{tex2html_wrap344}%
|
||||
\includegraphics[width=\textwidth]{peakFit.eps}%
|
||||
\lthtmlpictureZ
|
||||
\lthtmlcheckvsize\clearpage}
|
||||
|
||||
{\newpage\clearpage
|
||||
\lthtmlpictureA{tex2html_wrap348}%
|
||||
\includegraphics[width=\textwidth]{angleFit.eps}%
|
||||
\lthtmlpictureZ
|
||||
\lthtmlcheckvsize\clearpage}
|
||||
|
||||
\stepcounter{section}
|
||||
|
||||
\end{document}
|
Before Width: | Height: | Size: 195 B |
Before Width: | Height: | Size: 185 B |
Before Width: | Height: | Size: 206 B |
Before Width: | Height: | Size: 157 B |
Before Width: | Height: | Size: 331 B |
Before Width: | Height: | Size: 28 KiB |
Before Width: | Height: | Size: 27 KiB |
Before Width: | Height: | Size: 61 KiB |
Before Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 314 B |
Before Width: | Height: | Size: 176 B |
Before Width: | Height: | Size: 242 B |
Before Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 271 B |
Before Width: | Height: | Size: 352 B |
Before Width: | Height: | Size: 234 B |
Before Width: | Height: | Size: 428 B |
@ -1,84 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
||||
|
||||
<!--Converted with LaTeX2HTML 2012 (1.2)
|
||||
original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
|
||||
* with significant contributions from:
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Angular calibration wizard manual</TITLE>
|
||||
<META NAME="description" CONTENT="Angular calibration wizard manual">
|
||||
<META NAME="keywords" CONTENT="angularCalibrationHowTo">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<META NAME="distribution" CONTENT="global">
|
||||
|
||||
<META NAME="Generator" CONTENT="LaTeX2HTML v2012">
|
||||
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
|
||||
|
||||
<LINK REL="STYLESHEET" HREF="angularCalibrationHowTo.css">
|
||||
|
||||
<LINK REL="next" HREF="node1.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html6"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next"
|
||||
SRC="file:/usr/share/latex2html/icons/next.png"></A>
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up"
|
||||
SRC="file:/usr/share/latex2html/icons/up_g.png">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous"
|
||||
SRC="file:/usr/share/latex2html/icons/prev_g.png">
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html7"
|
||||
HREF="node1.html">Introduction</A>
|
||||
<BR>
|
||||
<BR>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<P>
|
||||
|
||||
<H1 ALIGN="CENTER">Angular calibration wizard manual</H1>
|
||||
<DIV>
|
||||
|
||||
<P ALIGN="CENTER"><STRONG>Anna Bergamaschi</STRONG></P>
|
||||
<P ALIGN="CENTER"><STRONG>September 28, 2018</STRONG></P>
|
||||
</DIV>
|
||||
|
||||
<P>
|
||||
<BR><HR>
|
||||
<!--Table of Child-Links-->
|
||||
<A NAME="CHILD_LINKS"></A>
|
||||
|
||||
<UL>
|
||||
<LI><A NAME="tex2html8"
|
||||
HREF="node1.html">Introduction</A>
|
||||
<LI><A NAME="tex2html9"
|
||||
HREF="node2.html">Data acquisition</A>
|
||||
<UL>
|
||||
<LI><A NAME="tex2html10"
|
||||
HREF="node2.html#SECTION00021000000000000000">Software</A>
|
||||
</UL>
|
||||
<BR>
|
||||
<LI><A NAME="tex2html11"
|
||||
HREF="node3.html">Data analysis</A>
|
||||
<UL>
|
||||
<LI><A NAME="tex2html12"
|
||||
HREF="node3.html#SECTION00031000000000000000">Software</A>
|
||||
</UL>
|
||||
<BR>
|
||||
<LI><A NAME="tex2html13"
|
||||
HREF="node4.html">Setup calibration files</A>
|
||||
<LI><A NAME="tex2html14"
|
||||
HREF="node5.html">About this document ...</A>
|
||||
</UL>
|
||||
<!--End of Table of Child-Links-->
|
||||
<BR><HR>
|
||||
<ADDRESS>
|
||||
Thattil Dhanya
|
||||
2018-09-28
|
||||
</ADDRESS>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,30 +0,0 @@
|
||||
# LaTeX2HTML 2012 (1.2)
|
||||
# Associate internals original text with physical files.
|
||||
|
||||
|
||||
$key = q/fig:guiangcallog/;
|
||||
$ref_files{$key} = "$dir".q|node2.html|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/fig:guiposscan/;
|
||||
$ref_files{$key} = "$dir".q|node2.html|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/fig:peakfit/;
|
||||
$ref_files{$key} = "$dir".q|node3.html|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/eq:angcal/;
|
||||
$ref_files{$key} = "$dir".q|node1.html|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/fig:setangcal/;
|
||||
$ref_files{$key} = "$dir".q|node3.html|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/fig:anglefit/;
|
||||
$ref_files{$key} = "$dir".q|node3.html|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
1;
|
||||
|
@ -1,61 +0,0 @@
|
||||
# LaTeX2HTML 2012 (1.2)
|
||||
# Associate labels original text with physical files.
|
||||
|
||||
|
||||
$key = q/fig:guiangcallog/;
|
||||
$external_labels{$key} = "$URL/" . q|node2.html|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/fig:guiposscan/;
|
||||
$external_labels{$key} = "$URL/" . q|node2.html|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/fig:peakfit/;
|
||||
$external_labels{$key} = "$URL/" . q|node3.html|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/eq:angcal/;
|
||||
$external_labels{$key} = "$URL/" . q|node1.html|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/fig:setangcal/;
|
||||
$external_labels{$key} = "$URL/" . q|node3.html|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/fig:anglefit/;
|
||||
$external_labels{$key} = "$URL/" . q|node3.html|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
1;
|
||||
|
||||
|
||||
# LaTeX2HTML 2012 (1.2)
|
||||
# labels from external_latex_labels array.
|
||||
|
||||
|
||||
$key = q/fig:guiangcallog/;
|
||||
$external_latex_labels{$key} = q|1|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/fig:guiposscan/;
|
||||
$external_latex_labels{$key} = q|2|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/fig:peakfit/;
|
||||
$external_latex_labels{$key} = q|4|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/eq:angcal/;
|
||||
$external_latex_labels{$key} = q|1|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/fig:setangcal/;
|
||||
$external_latex_labels{$key} = q|3|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/fig:anglefit/;
|
||||
$external_latex_labels{$key} = q|5|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
1;
|
||||
|
@ -1,186 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
||||
|
||||
<!--Converted with LaTeX2HTML 2012 (1.2)
|
||||
original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
|
||||
* with significant contributions from:
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Introduction</TITLE>
|
||||
<META NAME="description" CONTENT="Introduction">
|
||||
<META NAME="keywords" CONTENT="angularCalibrationHowTo">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<META NAME="distribution" CONTENT="global">
|
||||
|
||||
<META NAME="Generator" CONTENT="LaTeX2HTML v2012">
|
||||
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
|
||||
|
||||
<LINK REL="STYLESHEET" HREF="angularCalibrationHowTo.css">
|
||||
|
||||
<LINK REL="next" HREF="node2.html">
|
||||
<LINK REL="previous" HREF="angularCalibrationHowTo.html">
|
||||
<LINK REL="up" HREF="angularCalibrationHowTo.html">
|
||||
<LINK REL="next" HREF="node2.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html23"
|
||||
HREF="node2.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next"
|
||||
SRC="file:/usr/share/latex2html/icons/next.png"></A>
|
||||
<A NAME="tex2html21"
|
||||
HREF="angularCalibrationHowTo.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up"
|
||||
SRC="file:/usr/share/latex2html/icons/up.png"></A>
|
||||
<A NAME="tex2html15"
|
||||
HREF="angularCalibrationHowTo.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous"
|
||||
SRC="file:/usr/share/latex2html/icons/prev.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html24"
|
||||
HREF="node2.html">Data acquisition</A>
|
||||
<B> Up:</B> <A NAME="tex2html22"
|
||||
HREF="angularCalibrationHowTo.html">Angular calibration wizard manual</A>
|
||||
<B> Previous:</B> <A NAME="tex2html16"
|
||||
HREF="angularCalibrationHowTo.html">Angular calibration wizard manual</A>
|
||||
<BR>
|
||||
<BR>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H1><A NAME="SECTION00010000000000000000">
|
||||
Introduction</A>
|
||||
</H1>
|
||||
|
||||
<P>
|
||||
In order to convert from strip number to 2<IMG
|
||||
WIDTH="12" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img1.png"
|
||||
ALT="$\theta$">-angle, an accurate angular calibration of the detector must be performed (for details see the paper Bergamaschi, A. et al. (2010). J. Synchrotron Rad. 17, 653-668).
|
||||
<BR>
|
||||
<P>
|
||||
For this purpose, a series of patterns of a powder standard with symmetric peaks (e.g. silicon) must acquired while shifting the detector by an angular step of the order of about 2% of the module size. During the measurement, a strong intensity peak (e.g. Si(111)) should pass through the field of view of every module such that it can be used as a reference angular position to perform the calibration of the modules position.
|
||||
<BR>
|
||||
<P>
|
||||
In a first step, the peak is fitted with a Gaussian in order to determine its position <IMG
|
||||
WIDTH="43" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img2.png"
|
||||
ALT="$C_{peak}$"> in channel number for each of the acquired patterns.
|
||||
<BR>
|
||||
In a second step, for each module <IMG
|
||||
WIDTH="10" HEIGHT="17" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img3.png"
|
||||
ALT="$i$">, the encoder position <IMG
|
||||
WIDTH="24" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img4.png"
|
||||
ALT="$\Theta_e$"> is fitted as a function of the peak position <IMG
|
||||
WIDTH="43" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img2.png"
|
||||
ALT="$C_{peak}$"> according to:
|
||||
<BR>
|
||||
<DIV ALIGN="RIGHT">
|
||||
|
||||
<!-- MATH
|
||||
\begin{equation}
|
||||
\Theta_e=\Theta_o^i-\arctan\Big(\frac{p \cdot (C_{peak}-C_{center}^i)}{R^i}\Big),
|
||||
\end{equation}
|
||||
-->
|
||||
<TABLE WIDTH="100%" ALIGN="CENTER">
|
||||
<TR VALIGN="MIDDLE"><TD ALIGN="CENTER" NOWRAP><A NAME="eq:angcal"></A><IMG
|
||||
WIDTH="291" HEIGHT="41" BORDER="0"
|
||||
SRC="img5.png"
|
||||
ALT="\begin{displaymath}
|
||||
\Theta_e=\Theta_o^i-\arctan\Big(\frac{p \cdot (C_{peak}-C_{center}^i)}{R^i}\Big),
|
||||
\end{displaymath}"></TD>
|
||||
<TD WIDTH=10 ALIGN="RIGHT">
|
||||
(1)</TD></TR>
|
||||
</TABLE>
|
||||
<BR CLEAR="ALL"></DIV><P></P>
|
||||
where the parameters <IMG
|
||||
WIDTH="24" HEIGHT="36" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img6.png"
|
||||
ALT="$\Theta_o^i$"> is the angular offset with respect to the diffractometer zero position, <!-- MATH
|
||||
$C_{center}^{i}$
|
||||
-->
|
||||
<IMG
|
||||
WIDTH="53" HEIGHT="36" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img7.png"
|
||||
ALT="$C_{center}^{i}$"> is the central channel and <IMG
|
||||
WIDTH="22" HEIGHT="17" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img8.png"
|
||||
ALT="$R^i$"> is the distance of the module <IMG
|
||||
WIDTH="10" HEIGHT="17" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img3.png"
|
||||
ALT="$i$"> from the diffractometer center while <IMG
|
||||
WIDTH="79" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img9.png"
|
||||
ALT="$p=50~\mu m$"> is the strip pitch of the detector.
|
||||
<BR>
|
||||
Finally, the global offset of the detector system is precisely determined by refining a silicon pattern at a well-defined energy (i.e., knowing the position of the peak).
|
||||
|
||||
<P>
|
||||
The same function of equation <A HREF="#eq:angcal">1</A>, with the parameters obtained from the calibration, is used in order to convert from channel number to 2<IMG
|
||||
WIDTH="12" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img1.png"
|
||||
ALT="$\theta$">-angle.
|
||||
|
||||
<P>
|
||||
The parallax at the borders of the modules due to the thickness of the silicon sensor is a function of the X-ray energy (higher energy X-rays are absorbed deeper inside the sensor) and is of the order of 0.2 mdeg at 12 keV and 0.5 mdeg at 30 keV.
|
||||
<BR>
|
||||
The differences in pixel size due to the different portion of solid angle covered by the strips on the border of the modules and the higher efficiency due to the longer path of the X-rays in the sensor are removed by the flat field correction. This also normalizes additional differences in pixel size between channels which are also present because of mismatches in the strip sensor fabrication and in fluctuations of the channels threshold level.
|
||||
|
||||
<P>
|
||||
Patterns acquired at different detector positions are generally merged together in order to fill the gaps between the modules and correct possibly bad functioning channels. In this procedure the data from different positions which are closer than 4 mdeg (the average pixel size) are averaged and the new position is set to the mean of the positions of the original points.
|
||||
|
||||
<P>
|
||||
The position and width of the peaks results from a fit over several detector channels. Geometrical distortions might disturb this determination mainly because of errors in the angular calibration, fluctuations in the encoder position, variations between channels and parallax effects.
|
||||
<BR>
|
||||
The resolution in locating the peak center and determining its width and integrated intensity has been estimated by acquiring several patterns of a LaB<IMG
|
||||
WIDTH="12" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img10.png"
|
||||
ALT="$_6$"> sample in a 300 <IMG
|
||||
WIDTH="14" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img11.png"
|
||||
ALT="$\mu$">m capillary with the detector shifted in 5 mdeg steps between 30.4 and 36.5 degrees. The 16 peaks acquired have been fitted with a Gaussian function plus background and the fluctuations on the fitted parameters have been calculated. The resulting average resolutions are 0.63<IMG
|
||||
WIDTH="17" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img12.png"
|
||||
ALT="$\pm$">0.06 mdeg for the peak center and 0.22<IMG
|
||||
WIDTH="17" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img12.png"
|
||||
ALT="$\pm$">0.05 mdeg for the peak Full-Width at Half-Maximum (FWHM) for an average peak FWHM of 27.0<IMG
|
||||
WIDTH="17" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img12.png"
|
||||
ALT="$\pm$">2.5 mdeg.
|
||||
<BR>
|
||||
These results show that the angular calibration allows a resolution in determining the peaks position and width which is appropriate for structural determination.
|
||||
|
||||
<P>
|
||||
<HR>
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html23"
|
||||
HREF="node2.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next"
|
||||
SRC="file:/usr/share/latex2html/icons/next.png"></A>
|
||||
<A NAME="tex2html21"
|
||||
HREF="angularCalibrationHowTo.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up"
|
||||
SRC="file:/usr/share/latex2html/icons/up.png"></A>
|
||||
<A NAME="tex2html15"
|
||||
HREF="angularCalibrationHowTo.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous"
|
||||
SRC="file:/usr/share/latex2html/icons/prev.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html24"
|
||||
HREF="node2.html">Data acquisition</A>
|
||||
<B> Up:</B> <A NAME="tex2html22"
|
||||
HREF="angularCalibrationHowTo.html">Angular calibration wizard manual</A>
|
||||
<B> Previous:</B> <A NAME="tex2html16"
|
||||
HREF="angularCalibrationHowTo.html">Angular calibration wizard manual</A>
|
||||
<!--End of Navigation Panel-->
|
||||
<ADDRESS>
|
||||
Thattil Dhanya
|
||||
2018-09-28
|
||||
</ADDRESS>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,217 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
||||
|
||||
<!--Converted with LaTeX2HTML 2012 (1.2)
|
||||
original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
|
||||
* with significant contributions from:
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Data acquisition</TITLE>
|
||||
<META NAME="description" CONTENT="Data acquisition">
|
||||
<META NAME="keywords" CONTENT="angularCalibrationHowTo">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<META NAME="distribution" CONTENT="global">
|
||||
|
||||
<META NAME="Generator" CONTENT="LaTeX2HTML v2012">
|
||||
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
|
||||
|
||||
<LINK REL="STYLESHEET" HREF="angularCalibrationHowTo.css">
|
||||
|
||||
<LINK REL="next" HREF="node3.html">
|
||||
<LINK REL="previous" HREF="node1.html">
|
||||
<LINK REL="up" HREF="angularCalibrationHowTo.html">
|
||||
<LINK REL="next" HREF="node3.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html33"
|
||||
HREF="node3.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next"
|
||||
SRC="file:/usr/share/latex2html/icons/next.png"></A>
|
||||
<A NAME="tex2html31"
|
||||
HREF="angularCalibrationHowTo.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up"
|
||||
SRC="file:/usr/share/latex2html/icons/up.png"></A>
|
||||
<A NAME="tex2html25"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous"
|
||||
SRC="file:/usr/share/latex2html/icons/prev.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html34"
|
||||
HREF="node3.html">Data analysis</A>
|
||||
<B> Up:</B> <A NAME="tex2html32"
|
||||
HREF="angularCalibrationHowTo.html">Angular calibration wizard manual</A>
|
||||
<B> Previous:</B> <A NAME="tex2html26"
|
||||
HREF="node1.html">Introduction</A>
|
||||
<BR>
|
||||
<BR>
|
||||
<!--End of Navigation Panel-->
|
||||
<!--Table of Child-Links-->
|
||||
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
|
||||
|
||||
<UL>
|
||||
<LI><A NAME="tex2html35"
|
||||
HREF="node2.html#SECTION00021000000000000000">Software</A>
|
||||
</UL>
|
||||
<!--End of Table of Child-Links-->
|
||||
<HR>
|
||||
|
||||
<H1><A NAME="SECTION00020000000000000000">
|
||||
Data acquisition</A>
|
||||
</H1>
|
||||
|
||||
<P>
|
||||
The angular calibration consists in acquiring a set of diffraction patterns of a well known powder standard (e.g. Silicon) at different encoder positions. In order to facilitate the procedure, the sample should not emit fluorescent light and should present relatively symmetric peaks.
|
||||
<BR>
|
||||
During the measurement, a strong intensity peak (e.g. Si(111)) should pass through the field of view of every module such that it can be used as a reference angular position to perform the calibration of the modules position. In general the highest peak will be used for the calibration, but this is not necessary in case there would be e.g. geometrical limitations for shifting the detector.
|
||||
<BR><B>Do not forget to properly position the beam stopper if the detector is scanned in front of the direct beam.</B>
|
||||
<BR>
|
||||
The detector should be shifted of an angular step of the order of about 2% of the module size, such that about 50 patterns can contribute to the fitting of the 3 parameters necessary for the angular calibration.
|
||||
<BR>
|
||||
<P>
|
||||
All the angular calibration procedure should be acquired using a trimmed detector with the threshold set at half of the X-ray energy (Assuming no fluorescent element in the standard). A flat field should also be acquired in order to precisely correct the data, while the X-ray intensity should be kept lower than about 100 kHz per strip in order to avoid the need for rate corrections.
|
||||
|
||||
<P>
|
||||
A rough angular conversion file starting from a previous calibration or from the geometric characteristics of the mechanics is an advantage. The angular conversion file should contain a line for each module of the detector with its module number <IMG
|
||||
WIDTH="10" HEIGHT="17" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img3.png"
|
||||
ALT="$i$">, center <!-- MATH
|
||||
$C_{center}^{i}$
|
||||
-->
|
||||
<IMG
|
||||
WIDTH="53" HEIGHT="36" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img7.png"
|
||||
ALT="$C_{center}^{i}$"> and error, conversion radius <IMG
|
||||
WIDTH="38" HEIGHT="36" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img13.png"
|
||||
ALT="$p/R^i$"> and error, offset <IMG
|
||||
WIDTH="24" HEIGHT="36" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img6.png"
|
||||
ALT="$\Theta_o^i$"> and error:
|
||||
<PRE>
|
||||
module 0 center 639.5 +- 0 conversion 6.56E-05 +- 0 offset 0 +- 0
|
||||
</PRE>
|
||||
Also the <I>global offset</I> value of the beamline should be approximately known i.e. the angular position of channel 0 of module 0 when the motor is set at 0.
|
||||
<BR>
|
||||
All the documentation assumes that the detector is oriented in the same direction as the encoder position i.e. large channel number at higher angles (both per module and absolute). If this is not the case, the <I>angular direction</I> should be set to -1.
|
||||
|
||||
<P>
|
||||
|
||||
<H2><A NAME="SECTION00021000000000000000">
|
||||
Software</A>
|
||||
</H2>
|
||||
|
||||
<P>
|
||||
For the acquisition ot the data you need to install the slsDetector software package (please refere to separate documentation). The use of the GUI is optional and all operations can be performed also using the text client.
|
||||
<BR>
|
||||
<P>
|
||||
Please make sure that you have edited the
|
||||
<BR><I>slsDetectorSoftware/usersFunctions/angleFunction.h</I>
|
||||
<BR>
|
||||
in order to match the angular conversion for your geometry and
|
||||
<BR><I>slsDetectorSoftware/usersFunctions/usersFunctions.cpp</I>
|
||||
<BR>
|
||||
in order to be able to move the detector and read out its position by using the slsDetector software.
|
||||
|
||||
<P>
|
||||
In the following the command to acquire a dataset for the angular calibration with an exposure time of 1 s, and position shift
|
||||
<PRE>
|
||||
#setup angular calibration log mode
|
||||
> sls_detector_put angcallog 1
|
||||
#set exposure time to 1s
|
||||
> sls_detector_put exptime 1.
|
||||
#setup threshold scan
|
||||
> sls_detector_put scan0script position
|
||||
#setup the precision for the scan variable in the file name
|
||||
> sls_detector_put scan0prec 2
|
||||
#set scan range between 20deg and -60deg, step of -0.1deg
|
||||
# (at 12.4 keV the Si(111) peak is at approx 19deg
|
||||
> sls_detector_put scan0range 20 -60 -0.1
|
||||
#acquire the data
|
||||
> sls_detector_acquire
|
||||
#unset angular calibration log mode
|
||||
> sls_detector_put angcallog 0
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
With the GUI you can obtain the same results by clicking on the <I>Angular calibration</I> log button in the advanced tab (see figure <A HREF="#fig:guiangcallog">1</A>) and setting up the motor position scan in the Actions tab (see figure <A HREF="#fig:guiposscan">2</A>). The exposure time should also be set in the measurement tab.
|
||||
|
||||
<P>
|
||||
Additional to the data files, the acquisition will produce a .angcal file containing an header and, for each step of the acquisition, the exect value of the motor position and the file name.
|
||||
<BR>
|
||||
In case you forgot to enable the angcallog flag in the software, you can produce the file with the syntax as follows, assuming that you know the exact values of your encoder for each frame:
|
||||
<PRE>
|
||||
type Mythen
|
||||
maxmod 32
|
||||
nmod 32
|
||||
angconv /scratch/angcal20120422/ang.off
|
||||
globaloff 5.088
|
||||
fineoff 0.0
|
||||
angdir 1
|
||||
ffdir /scratch/angcal20120422/
|
||||
flatfield flatfield_E12keV_T6keV_0.raw
|
||||
badchannels /scratch/cal/bad.chans
|
||||
19.99998 angcal_S20.00_0
|
||||
19.90001 angcal_S19.90_0
|
||||
19.79999 angcal_S19.80_0
|
||||
19.70002 angcal_S19.70_0
|
||||
......
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
|
||||
<DIV ALIGN="CENTER"><A NAME="fig:guiangcallog"></A><A NAME="46"></A>
|
||||
<TABLE>
|
||||
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 1:</STRONG>
|
||||
Acquisition GUI window to enable the angular calibration log.</CAPTION>
|
||||
<TR><TD><IMG
|
||||
WIDTH="555" HEIGHT="603" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img14.png"
|
||||
ALT="\includegraphics[width=\textwidth]{enable_angcal.eps}"></TD></TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
|
||||
<P>
|
||||
|
||||
<DIV ALIGN="CENTER"><A NAME="fig:guiposscan"></A><A NAME="51"></A>
|
||||
<TABLE>
|
||||
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 2:</STRONG>
|
||||
Acquisition GUI window to setup the motor position scan.</CAPTION>
|
||||
<TR><TD><IMG
|
||||
WIDTH="555" HEIGHT="603" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img15.png"
|
||||
ALT="\includegraphics[width=\textwidth]{position_scan.eps}"></TD></TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
|
||||
<P>
|
||||
<HR>
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html33"
|
||||
HREF="node3.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next"
|
||||
SRC="file:/usr/share/latex2html/icons/next.png"></A>
|
||||
<A NAME="tex2html31"
|
||||
HREF="angularCalibrationHowTo.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up"
|
||||
SRC="file:/usr/share/latex2html/icons/up.png"></A>
|
||||
<A NAME="tex2html25"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous"
|
||||
SRC="file:/usr/share/latex2html/icons/prev.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html34"
|
||||
HREF="node3.html">Data analysis</A>
|
||||
<B> Up:</B> <A NAME="tex2html32"
|
||||
HREF="angularCalibrationHowTo.html">Angular calibration wizard manual</A>
|
||||
<B> Previous:</B> <A NAME="tex2html26"
|
||||
HREF="node1.html">Introduction</A>
|
||||
<!--End of Navigation Panel-->
|
||||
<ADDRESS>
|
||||
Thattil Dhanya
|
||||
2018-09-28
|
||||
</ADDRESS>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,186 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
||||
|
||||
<!--Converted with LaTeX2HTML 2012 (1.2)
|
||||
original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
|
||||
* with significant contributions from:
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Data analysis</TITLE>
|
||||
<META NAME="description" CONTENT="Data analysis">
|
||||
<META NAME="keywords" CONTENT="angularCalibrationHowTo">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<META NAME="distribution" CONTENT="global">
|
||||
|
||||
<META NAME="Generator" CONTENT="LaTeX2HTML v2012">
|
||||
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
|
||||
|
||||
<LINK REL="STYLESHEET" HREF="angularCalibrationHowTo.css">
|
||||
|
||||
<LINK REL="next" HREF="node4.html">
|
||||
<LINK REL="previous" HREF="node2.html">
|
||||
<LINK REL="up" HREF="angularCalibrationHowTo.html">
|
||||
<LINK REL="next" HREF="node4.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html44"
|
||||
HREF="node4.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next"
|
||||
SRC="file:/usr/share/latex2html/icons/next.png"></A>
|
||||
<A NAME="tex2html42"
|
||||
HREF="angularCalibrationHowTo.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up"
|
||||
SRC="file:/usr/share/latex2html/icons/up.png"></A>
|
||||
<A NAME="tex2html36"
|
||||
HREF="node2.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous"
|
||||
SRC="file:/usr/share/latex2html/icons/prev.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html45"
|
||||
HREF="node4.html">Setup calibration files</A>
|
||||
<B> Up:</B> <A NAME="tex2html43"
|
||||
HREF="angularCalibrationHowTo.html">Angular calibration wizard manual</A>
|
||||
<B> Previous:</B> <A NAME="tex2html37"
|
||||
HREF="node2.html">Data acquisition</A>
|
||||
<BR>
|
||||
<BR>
|
||||
<!--End of Navigation Panel-->
|
||||
<!--Table of Child-Links-->
|
||||
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
|
||||
|
||||
<UL>
|
||||
<LI><A NAME="tex2html46"
|
||||
HREF="node3.html#SECTION00031000000000000000">Software</A>
|
||||
</UL>
|
||||
<!--End of Table of Child-Links-->
|
||||
<HR>
|
||||
|
||||
<H1><A NAME="SECTION00030000000000000000">
|
||||
Data analysis</A>
|
||||
</H1>
|
||||
|
||||
<P>
|
||||
The data analysis consists in fitting with a gaussian the selected peak of the powder pattern for each position in order to determine its position is channel number as a function of the encoder position.
|
||||
<BR>
|
||||
In a second step, for each module, the channel vs. encoder curve is fitted in order to extrapolate the three parameters necessary for the angular conversion and the result is written to file
|
||||
|
||||
<P>
|
||||
|
||||
<H2><A NAME="SECTION00031000000000000000">
|
||||
Software</A>
|
||||
</H2>
|
||||
|
||||
<P>
|
||||
The software used for the angular calibration data analysis is based on root (see http://root.cern.ch).
|
||||
<BR>
|
||||
This can be downloaded as binary or installed from sources. The version of the software should not play an important role, but up to now everything has been implemented and tested using version 5.20.
|
||||
|
||||
<P>
|
||||
To start the data analysis simply launch:
|
||||
<PRE>
|
||||
> ./angularCalibrationWizard
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
|
||||
<DIV ALIGN="CENTER"><A NAME="fig:setangcal"></A><A NAME="60"></A>
|
||||
<TABLE>
|
||||
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 3:</STRONG>
|
||||
Overview of the nagular calibration dataset.</CAPTION>
|
||||
<TR><TD><IMG
|
||||
WIDTH="555" HEIGHT="707" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img16.png"
|
||||
ALT="\includegraphics[width=\textwidth]{setupAngcal.eps}"></TD></TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
|
||||
<P>
|
||||
To setup the angular calibration dataset, the .angcal file should be selected (or digited) and the load button should be pressed to confirm. The parameters of the angular calibration are then read to the file and the data loaded for a quick overview (see figure <A HREF="#fig:setangcal">3</A>).
|
||||
<BR>
|
||||
The software assumes that the data files (.raw) and the .encal file are in the same directory.
|
||||
<BR>
|
||||
A 2D color plot will show a rebinned overview of the dataset. The peak to be fitted should be visible as a high intensity diagonal line passing through all the channels.
|
||||
|
||||
<P>
|
||||
|
||||
<DIV ALIGN="CENTER"><A NAME="fig:peakfit"></A><A NAME="66"></A>
|
||||
<TABLE>
|
||||
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 4:</STRONG>
|
||||
Preview of the fitting of the Si(111) peak for one of the detector positions.</CAPTION>
|
||||
<TR><TD><IMG
|
||||
WIDTH="555" HEIGHT="707" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img17.png"
|
||||
ALT="\includegraphics[width=\textwidth]{peakFit.eps}"></TD></TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
|
||||
<P>
|
||||
For a more detailed view of the data, one can select an angular calibration step from the combo box, select the plot mode (raw data or processed data as a function of channel number, processed angular converted data, flat field data, or again an overview of the whole dataset).
|
||||
<BR>
|
||||
By (right) clicking close to the axis you are able to zoom in/out, set the scale to logarithmic etc.
|
||||
<BR>
|
||||
<P>
|
||||
If the bad channel list, angular conversion file or flat field file are changed compared to the acquisition, they can be reloaded by editing the correspondent text entries and pressing enter.
|
||||
|
||||
<P>
|
||||
In particular, the angular converted data should be checked in order to view the position of the selected peak. In this case, the plot will be zoomed to the angular region slected in the minimum and maximum angle entries. By pressing fit, the fit of the peak in the selected angular range will be shown (see figure <A HREF="#fig:peakfit">4</A>). It is useful to check that it works properly in several positions such that then the sequential fitting on all steps can give good results.
|
||||
|
||||
<P>
|
||||
To automatically fit all positions simply press <I>Proceed to Modules Calibration</I> and wait until all steps are fitted. This can take sometime, depending on the number of steps.
|
||||
|
||||
<P>
|
||||
|
||||
<DIV ALIGN="CENTER"><A NAME="fig:anglefit"></A><A NAME="73"></A>
|
||||
<TABLE>
|
||||
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 5:</STRONG>
|
||||
Window for fitting the angular calibration parameters of a module.</CAPTION>
|
||||
<TR><TD><IMG
|
||||
WIDTH="555" HEIGHT="707" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img18.png"
|
||||
ALT="\includegraphics[width=\textwidth]{angleFit.eps}"></TD></TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
|
||||
<P>
|
||||
In the module calibration window (see figure <A HREF="#fig:anglefit">5</A>), you will be able to fit the channel number to encoder position curve to estimate the three angular calibration parameters for each module.
|
||||
<BR>
|
||||
The entries show the angular calibration parameters used for approximate angular conversion in the previous step of the calibration. These can be edited and will be used as start parameters for the fit.
|
||||
By clicking on the check box next to the parameters, the selected parameter will be set and fixed during the fit. Often the center is used as a fix parameter.
|
||||
<BR>
|
||||
It is possible to navigate between modules by using the Previous and Next module buttons. To refit the current module (e.g. after changing one of the parameters) simply re-click on the module number.
|
||||
|
||||
<P>
|
||||
After fitting all modules you can click on the <I>Write Angular Calibration</I> button, select the file name to write to and save the calibration angulat calibration data. Please note that the offset of module 0 will always be 0 and the other values will be rescaled to its value. Therefore the global offset of the steup will always need to be specified for a proper angular conversion unless the home of the encoder will not be redifined.
|
||||
|
||||
<P>
|
||||
<HR>
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html44"
|
||||
HREF="node4.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next"
|
||||
SRC="file:/usr/share/latex2html/icons/next.png"></A>
|
||||
<A NAME="tex2html42"
|
||||
HREF="angularCalibrationHowTo.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up"
|
||||
SRC="file:/usr/share/latex2html/icons/up.png"></A>
|
||||
<A NAME="tex2html36"
|
||||
HREF="node2.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous"
|
||||
SRC="file:/usr/share/latex2html/icons/prev.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html45"
|
||||
HREF="node4.html">Setup calibration files</A>
|
||||
<B> Up:</B> <A NAME="tex2html43"
|
||||
HREF="angularCalibrationHowTo.html">Angular calibration wizard manual</A>
|
||||
<B> Previous:</B> <A NAME="tex2html37"
|
||||
HREF="node2.html">Data acquisition</A>
|
||||
<!--End of Navigation Panel-->
|
||||
<ADDRESS>
|
||||
Thattil Dhanya
|
||||
2018-09-28
|
||||
</ADDRESS>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,68 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
||||
|
||||
<!--Converted with LaTeX2HTML 2012 (1.2)
|
||||
original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
|
||||
* with significant contributions from:
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Setup calibration files</TITLE>
|
||||
<META NAME="description" CONTENT="Setup calibration files">
|
||||
<META NAME="keywords" CONTENT="angularCalibrationHowTo">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<META NAME="distribution" CONTENT="global">
|
||||
|
||||
<META NAME="Generator" CONTENT="LaTeX2HTML v2012">
|
||||
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
|
||||
|
||||
<LINK REL="STYLESHEET" HREF="angularCalibrationHowTo.css">
|
||||
|
||||
<LINK REL="next" HREF="node5.html">
|
||||
<LINK REL="previous" HREF="node3.html">
|
||||
<LINK REL="up" HREF="angularCalibrationHowTo.html">
|
||||
<LINK REL="next" HREF="node5.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html55"
|
||||
HREF="node5.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next"
|
||||
SRC="file:/usr/share/latex2html/icons/next.png"></A>
|
||||
<A NAME="tex2html53"
|
||||
HREF="angularCalibrationHowTo.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up"
|
||||
SRC="file:/usr/share/latex2html/icons/up.png"></A>
|
||||
<A NAME="tex2html47"
|
||||
HREF="node3.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous"
|
||||
SRC="file:/usr/share/latex2html/icons/prev.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html56"
|
||||
HREF="node5.html">About this document ...</A>
|
||||
<B> Up:</B> <A NAME="tex2html54"
|
||||
HREF="angularCalibrationHowTo.html">Angular calibration wizard manual</A>
|
||||
<B> Previous:</B> <A NAME="tex2html48"
|
||||
HREF="node3.html">Data analysis</A>
|
||||
<BR>
|
||||
<BR>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H1><A NAME="SECTION00040000000000000000">
|
||||
Setup calibration files</A>
|
||||
</H1>
|
||||
|
||||
<P>
|
||||
To use the generated angular calibration files, using the text client:
|
||||
<PRE>
|
||||
sls_detector_put angconv /scratch/ang_new.off
|
||||
</PRE>
|
||||
while for the GUI the file name should be specified in the configuration file (works also for the text client).
|
||||
<BR><HR>
|
||||
<ADDRESS>
|
||||
Thattil Dhanya
|
||||
2018-09-28
|
||||
</ADDRESS>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,71 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
||||
|
||||
<!--Converted with LaTeX2HTML 2012 (1.2)
|
||||
original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
|
||||
* with significant contributions from:
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>About this document ...</TITLE>
|
||||
<META NAME="description" CONTENT="About this document ...">
|
||||
<META NAME="keywords" CONTENT="angularCalibrationHowTo">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<META NAME="distribution" CONTENT="global">
|
||||
|
||||
<META NAME="Generator" CONTENT="LaTeX2HTML v2012">
|
||||
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
|
||||
|
||||
<LINK REL="STYLESHEET" HREF="angularCalibrationHowTo.css">
|
||||
|
||||
<LINK REL="previous" HREF="node4.html">
|
||||
<LINK REL="up" HREF="angularCalibrationHowTo.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next"
|
||||
SRC="file:/usr/share/latex2html/icons/next_g.png">
|
||||
<A NAME="tex2html61"
|
||||
HREF="angularCalibrationHowTo.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up"
|
||||
SRC="file:/usr/share/latex2html/icons/up.png"></A>
|
||||
<A NAME="tex2html57"
|
||||
HREF="node4.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous"
|
||||
SRC="file:/usr/share/latex2html/icons/prev.png"></A>
|
||||
<BR>
|
||||
<B> Up:</B> <A NAME="tex2html62"
|
||||
HREF="angularCalibrationHowTo.html">Angular calibration wizard manual</A>
|
||||
<B> Previous:</B> <A NAME="tex2html58"
|
||||
HREF="node4.html">Setup calibration files</A>
|
||||
<BR>
|
||||
<BR>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H1><A NAME="SECTION00050000000000000000">
|
||||
About this document ...</A>
|
||||
</H1>
|
||||
<STRONG>Angular calibration wizard manual</STRONG><P>
|
||||
This document was generated using the
|
||||
<A HREF="http://www.latex2html.org/"><STRONG>LaTeX</STRONG>2<tt>HTML</tt></A> translator Version 2012 (1.2)
|
||||
<P>
|
||||
Copyright © 1993, 1994, 1995, 1996,
|
||||
<A HREF="http://cbl.leeds.ac.uk/nikos/personal.html">Nikos Drakos</A>,
|
||||
Computer Based Learning Unit, University of Leeds.
|
||||
<BR>
|
||||
Copyright © 1997, 1998, 1999,
|
||||
<A HREF="http://www.maths.mq.edu.au/~ross/">Ross Moore</A>,
|
||||
Mathematics Department, Macquarie University, Sydney.
|
||||
<P>
|
||||
The command line arguments were: <BR>
|
||||
<STRONG>latex2html</STRONG> <TT>-split 4 angularCalibrationHowTo.tex</TT>
|
||||
<P>
|
||||
The translation was initiated by Thattil Dhanya on 2018-09-28
|
||||
<BR><HR>
|
||||
<ADDRESS>
|
||||
Thattil Dhanya
|
||||
2018-09-28
|
||||
</ADDRESS>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1 +0,0 @@
|
||||
No implementation found for style `graphicx'
|
@ -1,30 +0,0 @@
|
||||
/* Century Schoolbook font is very similar to Computer Modern Math: cmmi */
|
||||
.MATH { font-family: "Century Schoolbook", serif; }
|
||||
.MATH I { font-family: "Century Schoolbook", serif; font-style: italic }
|
||||
.BOLDMATH { font-family: "Century Schoolbook", serif; font-weight: bold }
|
||||
|
||||
/* implement both fixed-size and relative sizes */
|
||||
SMALL.XTINY { font-size : xx-small }
|
||||
SMALL.TINY { font-size : x-small }
|
||||
SMALL.SCRIPTSIZE { font-size : smaller }
|
||||
SMALL.FOOTNOTESIZE { font-size : small }
|
||||
SMALL.SMALL { }
|
||||
BIG.LARGE { }
|
||||
BIG.XLARGE { font-size : large }
|
||||
BIG.XXLARGE { font-size : x-large }
|
||||
BIG.HUGE { font-size : larger }
|
||||
BIG.XHUGE { font-size : xx-large }
|
||||
|
||||
/* heading styles */
|
||||
H1 { }
|
||||
H2 { }
|
||||
H3 { }
|
||||
H4 { }
|
||||
H5 { }
|
||||
|
||||
/* mathematics styles */
|
||||
DIV.displaymath { } /* math displays */
|
||||
TD.eqno { } /* equation-number cells */
|
||||
|
||||
|
||||
/* document-specific styles come next */
|
@ -1,84 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
||||
|
||||
<!--Converted with LaTeX2HTML 2012 (1.2)
|
||||
original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
|
||||
* with significant contributions from:
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Energy calibration wizard manual</TITLE>
|
||||
<META NAME="description" CONTENT="Energy calibration wizard manual">
|
||||
<META NAME="keywords" CONTENT="energyCalibrationHowTo">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<META NAME="distribution" CONTENT="global">
|
||||
|
||||
<META NAME="Generator" CONTENT="LaTeX2HTML v2012">
|
||||
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
|
||||
|
||||
<LINK REL="STYLESHEET" HREF="energyCalibrationHowTo.css">
|
||||
|
||||
<LINK REL="next" HREF="node1.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html9"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next"
|
||||
SRC="file:/usr/share/latex2html/icons/next.png"></A>
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up"
|
||||
SRC="file:/usr/share/latex2html/icons/up_g.png">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous"
|
||||
SRC="file:/usr/share/latex2html/icons/prev_g.png">
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html10"
|
||||
HREF="node1.html">Introduction</A>
|
||||
<BR>
|
||||
<BR>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<P>
|
||||
|
||||
<H1 ALIGN="CENTER">Energy calibration wizard manual</H1>
|
||||
<DIV>
|
||||
|
||||
<P ALIGN="CENTER"><STRONG>Anna Bergamaschi</STRONG></P>
|
||||
<P ALIGN="CENTER"><STRONG>September 28, 2018</STRONG></P>
|
||||
</DIV>
|
||||
|
||||
<P>
|
||||
<BR><HR>
|
||||
<!--Table of Child-Links-->
|
||||
<A NAME="CHILD_LINKS"></A>
|
||||
|
||||
<UL>
|
||||
<LI><A NAME="tex2html11"
|
||||
HREF="node1.html">Introduction</A>
|
||||
<LI><A NAME="tex2html12"
|
||||
HREF="node2.html">Data acquisition</A>
|
||||
<UL>
|
||||
<LI><A NAME="tex2html13"
|
||||
HREF="node2.html#SECTION00021000000000000000">Software</A>
|
||||
</UL>
|
||||
<BR>
|
||||
<LI><A NAME="tex2html14"
|
||||
HREF="node3.html">Data analysis</A>
|
||||
<UL>
|
||||
<LI><A NAME="tex2html15"
|
||||
HREF="node3.html#SECTION00031000000000000000">Software</A>
|
||||
</UL>
|
||||
<BR>
|
||||
<LI><A NAME="tex2html16"
|
||||
HREF="node4.html">Setup calibration files</A>
|
||||
<LI><A NAME="tex2html17"
|
||||
HREF="node5.html">About this document ...</A>
|
||||
</UL>
|
||||
<!--End of Table of Child-Links-->
|
||||
<BR><HR>
|
||||
<ADDRESS>
|
||||
Thattil Dhanya
|
||||
2018-09-28
|
||||
</ADDRESS>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1 +0,0 @@
|
||||
\relax
|
@ -1,439 +0,0 @@
|
||||
This is pdfTeX, Version 3.1415926-2.5-1.40.14 (TeX Live 2013) (format=latex 2018.8.23) 28 SEP 2018 11:35
|
||||
entering extended mode
|
||||
restricted \write18 enabled.
|
||||
%&-line parsing enabled.
|
||||
**./images.tex
|
||||
(./images.tex
|
||||
LaTeX2e <2011/06/27>
|
||||
Babel <v3.8m> and hyphenation patterns for english, dumylang, nohyphenation, lo
|
||||
aded.
|
||||
|
||||
(/usr/share/texlive/texmf-dist/tex/latex/base/article.cls
|
||||
Document Class: article 2007/10/19 v1.4h Standard LaTeX document class
|
||||
(/usr/share/texlive/texmf-dist/tex/latex/base/size10.clo
|
||||
File: size10.clo 2007/10/19 v1.4h Standard LaTeX file (size option)
|
||||
)
|
||||
\c@part=\count79
|
||||
\c@section=\count80
|
||||
\c@subsection=\count81
|
||||
\c@subsubsection=\count82
|
||||
\c@paragraph=\count83
|
||||
\c@subparagraph=\count84
|
||||
\c@figure=\count85
|
||||
\c@table=\count86
|
||||
\abovecaptionskip=\skip41
|
||||
\belowcaptionskip=\skip42
|
||||
\bibindent=\dimen102
|
||||
) (/usr/share/texlive/texmf-dist/tex/latex/base/ifthen.sty
|
||||
Package: ifthen 2001/05/26 v1.1c Standard LaTeX ifthen package (DPC)
|
||||
) (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amssymb.sty
|
||||
Package: amssymb 2013/01/14 v3.01 AMS font symbols
|
||||
(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amsfonts.sty
|
||||
Package: amsfonts 2013/01/14 v3.01 Basic AMSFonts support
|
||||
\@emptytoks=\toks14
|
||||
\symAMSa=\mathgroup4
|
||||
\symAMSb=\mathgroup5
|
||||
LaTeX Font Info: Overwriting math alphabet `\mathfrak' in version `bold'
|
||||
(Font) U/euf/m/n --> U/euf/b/n on input line 106.
|
||||
)) (/usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty
|
||||
Package: graphicx 1999/02/16 v1.0f Enhanced LaTeX Graphics (DPC,SPQR)
|
||||
(/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty
|
||||
Package: keyval 1999/03/16 v1.13 key=value parser (DPC)
|
||||
\KV@toks@=\toks15
|
||||
) (/usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty
|
||||
Package: graphics 2009/02/05 v1.0o Standard LaTeX Graphics (DPC,SPQR)
|
||||
(/usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty
|
||||
Package: trig 1999/03/16 v1.09 sin cos tan (DPC)
|
||||
) (/usr/share/texlive/texmf-dist/tex/latex/latexconfig/graphics.cfg
|
||||
File: graphics.cfg 2010/04/23 v1.9 graphics configuration of TeX Live
|
||||
)
|
||||
Package graphics Info: Driver file: dvips.def on input line 91.
|
||||
(/usr/share/texlive/texmf-dist/tex/latex/graphics/dvips.def
|
||||
File: dvips.def 1999/02/16 v3.0i Driver-dependant file (DPC,SPQR)
|
||||
))
|
||||
\Gin@req@height=\dimen103
|
||||
\Gin@req@width=\dimen104
|
||||
) (/usr/share/texlive/texmf-dist/tex/latex/tools/verbatim.sty
|
||||
Package: verbatim 2003/08/22 v1.5q LaTeX2e package for verbatim enhancements
|
||||
\every@verbatim=\toks16
|
||||
\verbatim@line=\toks17
|
||||
\verbatim@in@stream=\read1
|
||||
) (/usr/share/texlive/texmf-dist/tex/latex/graphics/color.sty
|
||||
Package: color 2005/11/14 v1.0j Standard LaTeX Color (DPC)
|
||||
(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/color.cfg
|
||||
File: color.cfg 2007/01/18 v1.5 color configuration of teTeX/TeXLive
|
||||
)
|
||||
Package color Info: Driver file: dvips.def on input line 130.
|
||||
(/usr/share/texlive/texmf-dist/tex/latex/graphics/dvipsnam.def
|
||||
File: dvipsnam.def 1999/02/16 v3.0i Driver-dependant file (DPC,SPQR)
|
||||
)) (/usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty
|
||||
Package: inputenc 2008/03/30 v1.1d Input encoding file
|
||||
\inpenc@prehook=\toks18
|
||||
\inpenc@posthook=\toks19
|
||||
)
|
||||
\sizebox=\box26
|
||||
\lthtmlwrite=\write3
|
||||
(./images.aux)
|
||||
\openout1 = `images.aux'.
|
||||
|
||||
LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 116.
|
||||
LaTeX Font Info: ... okay on input line 116.
|
||||
LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 116.
|
||||
LaTeX Font Info: ... okay on input line 116.
|
||||
LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 116.
|
||||
LaTeX Font Info: ... okay on input line 116.
|
||||
LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 116.
|
||||
LaTeX Font Info: ... okay on input line 116.
|
||||
LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 116.
|
||||
LaTeX Font Info: ... okay on input line 116.
|
||||
LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 116.
|
||||
LaTeX Font Info: ... okay on input line 116.
|
||||
|
||||
latex2htmlLength hsize=349.0pt
|
||||
|
||||
latex2htmlLength vsize=633.0pt
|
||||
|
||||
latex2htmlLength hoffset=0.0pt
|
||||
|
||||
latex2htmlLength voffset=0.0pt
|
||||
|
||||
latex2htmlLength topmargin=0.0pt
|
||||
|
||||
latex2htmlLength topskip=0.00003pt
|
||||
|
||||
latex2htmlLength headheight=0.0pt
|
||||
|
||||
latex2htmlLength headsep=0.0pt
|
||||
|
||||
latex2htmlLength parskip=0.0pt plus 1.0pt
|
||||
|
||||
latex2htmlLength oddsidemargin=62.0pt
|
||||
|
||||
latex2htmlLength evensidemargin=62.0pt
|
||||
|
||||
LaTeX Font Info: Try loading font information for U+msa on input line 140.
|
||||
(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsa.fd
|
||||
File: umsa.fd 2013/01/14 v3.01 AMS symbols A
|
||||
)
|
||||
LaTeX Font Info: Try loading font information for U+msb on input line 140.
|
||||
(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsb.fd
|
||||
File: umsb.fd 2013/01/14 v3.01 AMS symbols B
|
||||
)
|
||||
l2hSize :tex2html_wrap_inline464:7.33331pt::7.33331pt::12.3681pt.
|
||||
[1
|
||||
|
||||
|
||||
|
||||
]
|
||||
l2hSize :tex2html_wrap_inline466:7.33331pt::7.33331pt::13.02087pt.
|
||||
[2
|
||||
|
||||
|
||||
]
|
||||
l2hSize :tex2html_wrap_inline468:6.83331pt::0.0pt::25.4458pt.
|
||||
[3
|
||||
|
||||
|
||||
]
|
||||
l2hSize :tex2html_wrap_inline470:6.83331pt::0.0pt::25.62634pt.
|
||||
[4
|
||||
|
||||
|
||||
]
|
||||
l2hSize :tex2html_wrap_inline472:7.33331pt::7.33331pt::14.32782pt.
|
||||
[5
|
||||
|
||||
|
||||
]
|
||||
! Undefined control sequence.
|
||||
l.170 $CS={\begingroupN
|
||||
_S\endgroup\over N_0}$%
|
||||
The control sequence at the end of the top line
|
||||
of your error message was never \def'ed. If you have
|
||||
misspelled it (e.g., `\hobx'), type `I' and the correct
|
||||
spelling (e.g., `I\hbox'). Otherwise just continue,
|
||||
and I'll forget about whatever was undefined.
|
||||
|
||||
! Missing } inserted.
|
||||
<inserted text>
|
||||
}
|
||||
l.170 $CS={\begingroupN_S\endgroup
|
||||
\over N_0}$%
|
||||
I've inserted something that you may have forgotten.
|
||||
(See the <inserted text> above.)
|
||||
With luck, this will get me unwedged. But if you
|
||||
really didn't forget anything, try typing `2' now; then
|
||||
my insertion and my current dilemma will both disappear.
|
||||
|
||||
! Missing $ inserted.
|
||||
<inserted text>
|
||||
$
|
||||
l.170 $CS={\begingroupN_S\endgroup
|
||||
\over N_0}$%
|
||||
I've inserted something that you may have forgotten.
|
||||
(See the <inserted text> above.)
|
||||
With luck, this will get me unwedged. But if you
|
||||
really didn't forget anything, try typing `2' now; then
|
||||
my insertion and my current dilemma will both disappear.
|
||||
|
||||
! Missing } inserted.
|
||||
<inserted text>
|
||||
}
|
||||
l.170 $CS={\begingroupN_S\endgroup
|
||||
\over N_0}$%
|
||||
I've inserted something that you may have forgotten.
|
||||
(See the <inserted text> above.)
|
||||
With luck, this will get me unwedged. But if you
|
||||
really didn't forget anything, try typing `2' now; then
|
||||
my insertion and my current dilemma will both disappear.
|
||||
|
||||
! Missing } inserted.
|
||||
<inserted text>
|
||||
}
|
||||
l.170 $CS={\begingroupN_S\endgroup
|
||||
\over N_0}$%
|
||||
I've inserted something that you may have forgotten.
|
||||
(See the <inserted text> above.)
|
||||
With luck, this will get me unwedged. But if you
|
||||
really didn't forget anything, try typing `2' now; then
|
||||
my insertion and my current dilemma will both disappear.
|
||||
|
||||
! Extra \endgroup.
|
||||
<recently read> \endgroup
|
||||
|
||||
l.170 $CS={\begingroupN_S\endgroup
|
||||
\over N_0}$%
|
||||
Things are pretty mixed up, but I think the worst is over.
|
||||
|
||||
! Missing $ inserted.
|
||||
<inserted text>
|
||||
$
|
||||
l.170 $CS={\begingroupN_S\endgroup\over
|
||||
N_0}$%
|
||||
I've inserted a begin-math/end-math symbol since I think
|
||||
you left one out. Proceed, with fingers crossed.
|
||||
|
||||
! Extra }, or forgotten $.
|
||||
l.170 $CS={\begingroupN_S\endgroup\over N_0}
|
||||
$%
|
||||
I've deleted a group-closing symbol because it seems to be
|
||||
spurious, as in `$x}$'. But perhaps the } is legitimate and
|
||||
you forgot something else, as in `\hbox{$x}'. In such cases
|
||||
the way to recover is to insert both the forgotten and the
|
||||
deleted material, e.g., by typing `I$}'.
|
||||
|
||||
! Too many }'s.
|
||||
\lthtmlinlinemathZ ->\egroup
|
||||
\expandafter \ifdim \dp \sizebox >0pt \expandaf...
|
||||
l.171 \lthtmlinlinemathZ
|
||||
|
||||
You've closed more groups than you opened.
|
||||
Such booboos are generally harmless, so keep going.
|
||||
|
||||
l2hSize :tex2html_wrap_inline474:0.0pt::0.0pt::0.0pt.
|
||||
[6
|
||||
|
||||
|
||||
]
|
||||
! Too many }'s.
|
||||
l.172 \lthtmlcheckvsize\clearpage}
|
||||
|
||||
You've closed more groups than you opened.
|
||||
Such booboos are generally harmless, so keep going.
|
||||
|
||||
l2hSize :tex2html_wrap_inline482:7.33331pt::7.33331pt::13.06606pt.
|
||||
[7
|
||||
|
||||
|
||||
]
|
||||
l2hSize :tex2html_wrap_inline486:8.0pt::8.0pt::22.36813pt.
|
||||
[8
|
||||
|
||||
|
||||
]
|
||||
l2hSize :tex2html_wrap_inline490:6.83331pt::0.0pt::19.3889pt.
|
||||
[9
|
||||
|
||||
|
||||
]
|
||||
l2hSize :tex2html_wrap_inline492:7.33331pt::7.33331pt::11.40282pt.
|
||||
[10
|
||||
|
||||
|
||||
]
|
||||
l2hSize :tex2html_wrap_inline494:7.33331pt::7.33331pt::51.00127pt.
|
||||
[11
|
||||
|
||||
|
||||
]
|
||||
l2hSize :tex2html_wrap_inline131:7.96227pt::0.0pt::11.90631pt.
|
||||
[12
|
||||
|
||||
|
||||
]
|
||||
l2hSize :tex2html_wrap_inline137:6.83331pt::0.0pt::9.05698pt.
|
||||
[13
|
||||
|
||||
|
||||
]
|
||||
l2hSize :tex2html_wrap_inline141:8.0pt::8.0pt::46.60414pt.
|
||||
[14
|
||||
|
||||
|
||||
]
|
||||
l2hSize :tex2html_wrap_inline143:6.83331pt::0.0pt::9.625pt.
|
||||
[15
|
||||
|
||||
|
||||
]
|
||||
l2hSize :tex2html_wrap_inline147:7.33331pt::7.33331pt::13.97807pt.
|
||||
[16
|
||||
|
||||
|
||||
]
|
||||
l2hSize :tex2html_wrap_inline149:7.33331pt::7.33331pt::13.66582pt.
|
||||
[17
|
||||
|
||||
|
||||
]
|
||||
l2hSize :displaymath17:22.95789pt::0.0pt::349.0pt.
|
||||
[18
|
||||
|
||||
|
||||
]
|
||||
l2hSize :tex2html_wrap_inline151:7.33331pt::7.33331pt::11.92157pt.
|
||||
[19
|
||||
|
||||
|
||||
]
|
||||
l2hSize :tex2html_wrap_inline153:7.33331pt::7.33331pt::50.08467pt.
|
||||
[20
|
||||
|
||||
|
||||
]
|
||||
l2hSize :tex2html_wrap_inline155:6.95831pt::6.95831pt::9.14589pt.
|
||||
[21
|
||||
|
||||
|
||||
]
|
||||
l2hSize :tex2html_wrap_inline157:6.83331pt::0.0pt::7.73268pt.
|
||||
[22
|
||||
|
||||
|
||||
]
|
||||
l2hSize :displaymath26:22.95789pt::0.0pt::349.0pt.
|
||||
[23
|
||||
|
||||
|
||||
]
|
||||
l2hSize :tex2html_wrap_inline165:7.33331pt::7.33331pt::52.6679pt.
|
||||
[24
|
||||
|
||||
|
||||
]
|
||||
l2hSize :tex2html_wrap_inline167:6.83331pt::0.0pt::8.40558pt.
|
||||
[25
|
||||
|
||||
|
||||
]
|
||||
l2hSize :tex2html_wrap_inline169:6.83331pt::0.0pt::8.36252pt.
|
||||
[26
|
||||
|
||||
|
||||
]
|
||||
l2hSize :tex2html_wrap_inline171:7.33331pt::7.33331pt::9.8542pt.
|
||||
[27
|
||||
|
||||
|
||||
]
|
||||
l2hSize :displaymath34:13.49998pt::0.0pt::349.0pt.
|
||||
[28
|
||||
|
||||
|
||||
]
|
||||
l2hSize :tex2html_wrap_inline175:6.59525pt::0.0pt::3.94516pt.
|
||||
[29
|
||||
|
||||
|
||||
]
|
||||
l2hSize :tex2html_wrap_inline177:7.33331pt::7.33331pt::11.45708pt.
|
||||
[30
|
||||
|
||||
|
||||
]
|
||||
l2hSize :tex2html_wrap_inline179:7.33331pt::7.33331pt::11.6918pt.
|
||||
[31
|
||||
|
||||
|
||||
]
|
||||
l2hSize :tex2html_wrap_inline191:9.38889pt::9.38889pt::42.17287pt.
|
||||
[32
|
||||
|
||||
|
||||
]
|
||||
File: fig4.eps Graphic file (type eps)
|
||||
<fig4.eps>
|
||||
l2hSize :tex2html_wrap559:338.53587pt::0.0pt::349.0pt.
|
||||
[33
|
||||
|
||||
|
||||
]
|
||||
File: fig5.eps Graphic file (type eps)
|
||||
<fig5.eps>
|
||||
l2hSize :tex2html_wrap563:338.53587pt::0.0pt::349.0pt.
|
||||
[34
|
||||
|
||||
|
||||
]
|
||||
File: fig7.eps Graphic file (type eps)
|
||||
<fig7.eps>
|
||||
l2hSize :tex2html_wrap585:347.15315pt::0.0pt::349.0pt.
|
||||
[35
|
||||
|
||||
|
||||
]
|
||||
File: fig8.eps Graphic file (type eps)
|
||||
<fig8.eps>
|
||||
l2hSize :tex2html_wrap589:338.53587pt::0.0pt::349.0pt.
|
||||
[36
|
||||
|
||||
|
||||
]
|
||||
File: GUI_Advanced.eps Graphic file (type eps)
|
||||
<GUI_Advanced.eps>
|
||||
l2hSize :tex2html_wrap595:378.81322pt::0.0pt::349.0pt.
|
||||
[37
|
||||
|
||||
|
||||
]
|
||||
File: GUI_ThresholdScan.eps Graphic file (type eps)
|
||||
<GUI_ThresholdScan.eps>
|
||||
l2hSize :tex2html_wrap599:378.81322pt::0.0pt::349.0pt.
|
||||
[38
|
||||
|
||||
|
||||
]
|
||||
File: addEnergy.eps Graphic file (type eps)
|
||||
<addEnergy.eps>
|
||||
l2hSize :tex2html_wrap605:436.2459pt::0.0pt::349.0pt.
|
||||
[39
|
||||
|
||||
|
||||
]
|
||||
File: calibrateModule.eps Graphic file (type eps)
|
||||
<calibrateModule.eps>
|
||||
l2hSize :tex2html_wrap609:436.2459pt::0.0pt::349.0pt.
|
||||
[40
|
||||
|
||||
|
||||
] (./images.aux) )
|
||||
Here is how much of TeX's memory you used:
|
||||
1161 strings out of 495064
|
||||
14835 string characters out of 3182224
|
||||
55704 words of memory out of 3000000
|
||||
4366 multiletter control sequences out of 15000+200000
|
||||
5339 words of font info for 22 fonts, out of 3000000 for 9000
|
||||
14 hyphenation exceptions out of 8191
|
||||
25i,6n,26p,836b,199s stack positions out of 5000i,500n,10000p,200000b,50000s
|
||||
|
||||
Output written on images.dvi (40 pages, 9712 bytes).
|
@ -1,252 +0,0 @@
|
||||
# LaTeX2HTML 2012 (1.2)
|
||||
# Associate images original text with physical files.
|
||||
|
||||
|
||||
$key = q/CS=frac{N_S}{N_0};MSF=1.6;AAT/;
|
||||
$cached_env_img{$key} = q|<IMG
|
||||
WIDTH="71" HEIGHT="38" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="|."$dir".q|img32.png"
|
||||
ALT="$CS=\frac{N_S}{N_0}$">|;
|
||||
|
||||
$key = q/O;MSF=1.6;AAT/;
|
||||
$cached_env_img{$key} = q|<IMG
|
||||
WIDTH="17" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="|."$dir".q|img25.png"
|
||||
ALT="$O$">|;
|
||||
|
||||
$key = q/N_gamma;MSF=1.6;AAT/;
|
||||
$cached_env_img{$key} = q|<IMG
|
||||
WIDTH="25" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="|."$dir".q|img17.png"
|
||||
ALT="$N_\gamma$">|;
|
||||
|
||||
$key = q/E_t;MSF=1.6;AAT/;
|
||||
$cached_env_img{$key} = q|<IMG
|
||||
WIDTH="22" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="|."$dir".q|img10.png"
|
||||
ALT="$E_t$">|;
|
||||
|
||||
$key = q/includegraphics[width=textwidth]{calibrateModule.eps};AAT/;
|
||||
$cached_env_img{$key} = q|<IMG
|
||||
WIDTH="514" HEIGHT="654" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="|."$dir".q|img40.png"
|
||||
ALT="\includegraphics[width=\textwidth]{calibrateModule.eps}">|;
|
||||
|
||||
$key = q/{displaymath}N_n(E_t)simfrac{T}{tau_s}DBig(frac{-E_t}{ENC}Big).{displaymath};MSF=1.6;AAT/;
|
||||
$cached_env_img{$key} = q|<IMG
|
||||
WIDTH="169" HEIGHT="41" BORDER="0"
|
||||
SRC="|."$dir".q|img23.png"
|
||||
ALT="\begin{displaymath}
|
||||
N_n(E_t) \sim \frac{T}{\tau_s} D \Big(\frac{-E_t}{ENC} \Big).
|
||||
\end{displaymath}">|;
|
||||
|
||||
$key = q/tau_s;MSF=1.6;AAT/;
|
||||
$cached_env_img{$key} = q|<IMG
|
||||
WIDTH="18" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="|."$dir".q|img21.png"
|
||||
ALT="$\tau_s$">|;
|
||||
|
||||
$key = q/V_t;MSF=1.6;AAT/;
|
||||
$cached_env_img{$key} = q|<IMG
|
||||
WIDTH="19" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="|."$dir".q|img27.png"
|
||||
ALT="$V_t$">|;
|
||||
|
||||
$key = q/ENC;MSF=1.6;AAT/;
|
||||
$cached_env_img{$key} = q|<IMG
|
||||
WIDTH="44" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="|."$dir".q|img3.png"
|
||||
ALT="$ENC$">|;
|
||||
|
||||
$key = q/includegraphics[width=textwidth]{fig8.eps};AAT/;
|
||||
$cached_env_img{$key} = q|<IMG
|
||||
WIDTH="556" HEIGHT="539" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="|."$dir".q|img36.png"
|
||||
ALT="\includegraphics[width=\textwidth]{fig8.eps}">|;
|
||||
|
||||
$key = q/N_n;MSF=1.6;AAT/;
|
||||
$cached_env_img{$key} = q|<IMG
|
||||
WIDTH="26" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="|."$dir".q|img16.png"
|
||||
ALT="$N_n$">|;
|
||||
|
||||
$key = q/T;MSF=1.6;AAT/;
|
||||
$cached_env_img{$key} = q|<IMG
|
||||
WIDTH="16" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="|."$dir".q|img22.png"
|
||||
ALT="$T$">|;
|
||||
|
||||
$key = q/E_0;MSF=1.6;AAT/;
|
||||
$cached_env_img{$key} = q|<IMG
|
||||
WIDTH="23" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="|."$dir".q|img1.png"
|
||||
ALT="$E_0$">|;
|
||||
|
||||
$key = q/G;MSF=1.6;AAT/;
|
||||
$cached_env_img{$key} = q|<IMG
|
||||
WIDTH="17" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="|."$dir".q|img26.png"
|
||||
ALT="$G$">|;
|
||||
|
||||
$key = q/{displaymath}N_gamma(E_t)=frac{N_0}{2}cdotBig(1+C_sfrac{E_0-2E_t}{E_0}Big)DBig(frac{E_0-E_t}{ENC}Big),{displaymath};MSF=1.6;AAT/;
|
||||
$cached_env_img{$key} = q|<IMG
|
||||
WIDTH="335" HEIGHT="41" BORDER="0"
|
||||
SRC="|."$dir".q|img18.png"
|
||||
ALT="\begin{displaymath}
|
||||
N_\gamma(E_t)=\frac{N_0}{2}\cdot\Big(1+C_s \frac{E_0-2E_t}{E_0}\Big)D \Big(\frac{E_0-E_t}{ENC} \Big),
|
||||
\end{displaymath}">|;
|
||||
|
||||
$key = q/includegraphics[width=textwidth]{GUI_ThresholdScan.eps};AAT/;
|
||||
$cached_env_img{$key} = q|<IMG
|
||||
WIDTH="555" HEIGHT="603" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="|."$dir".q|img38.png"
|
||||
ALT="\includegraphics[width=\textwidth]{GUI_ThresholdScan.eps}">|;
|
||||
|
||||
$key = q/N_0;MSF=1.6;AAT/;
|
||||
$cached_env_img{$key} = q|<IMG
|
||||
WIDTH="24" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="|."$dir".q|img2.png"
|
||||
ALT="$N_0$">|;
|
||||
|
||||
$key = q/N_S;MSF=1.6;AAT/;
|
||||
$cached_env_img{$key} = q|<IMG
|
||||
WIDTH="27" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="|."$dir".q|img5.png"
|
||||
ALT="$N_S$">|;
|
||||
|
||||
$key = q/O_i;MSF=1.6;AAT/;
|
||||
$cached_env_img{$key} = q|<IMG
|
||||
WIDTH="22" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="|."$dir".q|img30.png"
|
||||
ALT="$O_i$">|;
|
||||
|
||||
$key = q/E_f;MSF=1.6;AAT/;
|
||||
$cached_env_img{$key} = q|<IMG
|
||||
WIDTH="25" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="|."$dir".q|img7.png"
|
||||
ALT="$E_f$">|;
|
||||
|
||||
$key = q/i;MSF=1.6;AAT/;
|
||||
$cached_env_img{$key} = q|<IMG
|
||||
WIDTH="10" HEIGHT="17" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="|."$dir".q|img29.png"
|
||||
ALT="$i$">|;
|
||||
|
||||
$key = q/G_i;MSF=1.6;AAT/;
|
||||
$cached_env_img{$key} = q|<IMG
|
||||
WIDTH="22" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="|."$dir".q|img31.png"
|
||||
ALT="$G_i$">|;
|
||||
|
||||
$key = q/includegraphics[width=textwidth]{fig7.eps};AAT/;
|
||||
$cached_env_img{$key} = q|<IMG
|
||||
WIDTH="556" HEIGHT="553" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="|."$dir".q|img35.png"
|
||||
ALT="\includegraphics[width=\textwidth]{fig7.eps}">|;
|
||||
|
||||
$key = q/D;MSF=1.6;AAT/;
|
||||
$cached_env_img{$key} = q|<IMG
|
||||
WIDTH="18" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="|."$dir".q|img13.png"
|
||||
ALT="$D$">|;
|
||||
|
||||
$key = q/N_s=C_sN_0;MSF=1.6;AAT/;
|
||||
$cached_env_img{$key} = q|<IMG
|
||||
WIDTH="83" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="|."$dir".q|img20.png"
|
||||
ALT="$N_s=C_s N_0$">|;
|
||||
|
||||
$key = q/E_0slash2;MSF=1.6;AAT/;
|
||||
$cached_env_img{$key} = q|<IMG
|
||||
WIDTH="39" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="|."$dir".q|img8.png"
|
||||
ALT="$E_0/2$">|;
|
||||
|
||||
$key = q/E_t=E_0slash2;MSF=1.6;AAT/;
|
||||
$cached_env_img{$key} = q|<IMG
|
||||
WIDTH="78" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="|."$dir".q|img14.png"
|
||||
ALT="$E_t=E_0/2$">|;
|
||||
|
||||
$key = q/includegraphics[width=textwidth]{fig4.eps};AAT/;
|
||||
$cached_env_img{$key} = q|<IMG
|
||||
WIDTH="556" HEIGHT="539" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="|."$dir".q|img33.png"
|
||||
ALT="\includegraphics[width=\textwidth]{fig4.eps}">|;
|
||||
|
||||
$key = q/includegraphics[width=textwidth]{GUI_Advanced.eps};AAT/;
|
||||
$cached_env_img{$key} = q|<IMG
|
||||
WIDTH="555" HEIGHT="603" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="|."$dir".q|img37.png"
|
||||
ALT="\includegraphics[width=\textwidth]{GUI_Advanced.eps}">|;
|
||||
|
||||
$key = q/includegraphics[width=textwidth]{addEnergy.eps};AAT/;
|
||||
$cached_env_img{$key} = q|<IMG
|
||||
WIDTH="514" HEIGHT="654" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="|."$dir".q|img39.png"
|
||||
ALT="\includegraphics[width=\textwidth]{addEnergy.eps}">|;
|
||||
|
||||
$key = q/C_s;MSF=1.6;AAT/;
|
||||
$cached_env_img{$key} = q|<IMG
|
||||
WIDTH="23" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="|."$dir".q|img19.png"
|
||||
ALT="$C_s$">|;
|
||||
|
||||
$key = q/CS={begingroup{N_Sbegingroup{overN_0};MSF=1.6;AAT/;
|
||||
$cached_env_img{$key} = q|<IMG
|
||||
WIDTH="24" HEIGHT="12" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="|."$dir".q|img6.png"
|
||||
ALT="$CS={\begingroupN_S\endgroup\over N_0}$">|;
|
||||
|
||||
$key = q/CS=;MSF=1.6;AAT/;
|
||||
$cached_env_img{$key} = q|<IMG
|
||||
WIDTH="45" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="|."$dir".q|img4.png"
|
||||
ALT="$CS=$">|;
|
||||
|
||||
$key = q/e^-;MSF=1.6;AAT/;
|
||||
$cached_env_img{$key} = q|<IMG
|
||||
WIDTH="23" HEIGHT="19" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="|."$dir".q|img12.png"
|
||||
ALT="$e^-$">|;
|
||||
|
||||
$key = q/includegraphics[width=textwidth]{fig5.eps};AAT/;
|
||||
$cached_env_img{$key} = q|<IMG
|
||||
WIDTH="556" HEIGHT="539" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="|."$dir".q|img34.png"
|
||||
ALT="\includegraphics[width=\textwidth]{fig5.eps}">|;
|
||||
|
||||
$key = q/{displaymath}V_{t}=O+GcdotE_t.{displaymath};MSF=1.6;AAT/;
|
||||
$cached_env_img{$key} = q|<IMG
|
||||
WIDTH="111" HEIGHT="26" BORDER="0"
|
||||
SRC="|."$dir".q|img28.png"
|
||||
ALT="\begin{displaymath}
|
||||
V_{t}=O+G \cdot E_t.
|
||||
\end{displaymath}">|;
|
||||
|
||||
$key = q/Sigma>3ENC;MSF=1.6;AAT/;
|
||||
$cached_env_img{$key} = q|<IMG
|
||||
WIDTH="85" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="|."$dir".q|img11.png"
|
||||
ALT="$\Sigma >3ENC$">|;
|
||||
|
||||
$key = q/N;MSF=1.6;AAT/;
|
||||
$cached_env_img{$key} = q|<IMG
|
||||
WIDTH="19" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="|."$dir".q|img15.png"
|
||||
ALT="$N$">|;
|
||||
|
||||
$key = q/Sigma>3,ENC;MSF=1.6;AAT/;
|
||||
$cached_env_img{$key} = q|<IMG
|
||||
WIDTH="88" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="|."$dir".q|img24.png"
|
||||
ALT="$\Sigma>3 ENC$">|;
|
||||
|
||||
$key = q/Deltasim;MSF=1.6;AAT/;
|
||||
$cached_env_img{$key} = q|<IMG
|
||||
WIDTH="35" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="|."$dir".q|img9.png"
|
||||
ALT="$\Delta \sim $">|;
|
||||
|
||||
1;
|
||||
|
@ -1,391 +0,0 @@
|
||||
\batchmode
|
||||
\documentclass{article}
|
||||
\RequirePackage{ifthen}
|
||||
|
||||
|
||||
\usepackage{amssymb}
|
||||
\usepackage[dvips]{graphicx}
|
||||
\usepackage{verbatim}
|
||||
|
||||
|
||||
\usepackage[dvips]{color}
|
||||
|
||||
|
||||
\pagecolor[gray]{.7}
|
||||
|
||||
\usepackage[]{inputenc}
|
||||
|
||||
|
||||
|
||||
\makeatletter
|
||||
|
||||
\makeatletter
|
||||
\count@=\the\catcode`\_ \catcode`\_=8
|
||||
\newenvironment{tex2html_wrap}{}{}%
|
||||
\catcode`\<=12\catcode`\_=\count@
|
||||
\newcommand{\providedcommand}[1]{\expandafter\providecommand\csname #1\endcsname}%
|
||||
\newcommand{\renewedcommand}[1]{\expandafter\providecommand\csname #1\endcsname{}%
|
||||
\expandafter\renewcommand\csname #1\endcsname}%
|
||||
\newcommand{\newedenvironment}[1]{\newenvironment{#1}{}{}\renewenvironment{#1}}%
|
||||
\let\newedcommand\renewedcommand
|
||||
\let\renewedenvironment\newedenvironment
|
||||
\makeatother
|
||||
\let\mathon=$
|
||||
\let\mathoff=$
|
||||
\ifx\AtBeginDocument\undefined \newcommand{\AtBeginDocument}[1]{}\fi
|
||||
\newbox\sizebox
|
||||
\setlength{\hoffset}{0pt}\setlength{\voffset}{0pt}
|
||||
\addtolength{\textheight}{\footskip}\setlength{\footskip}{0pt}
|
||||
\addtolength{\textheight}{\topmargin}\setlength{\topmargin}{0pt}
|
||||
\addtolength{\textheight}{\headheight}\setlength{\headheight}{0pt}
|
||||
\addtolength{\textheight}{\headsep}\setlength{\headsep}{0pt}
|
||||
\setlength{\textwidth}{349pt}
|
||||
\newwrite\lthtmlwrite
|
||||
\makeatletter
|
||||
\let\realnormalsize=\normalsize
|
||||
\global\topskip=2sp
|
||||
\def\preveqno{}\let\real@float=\@float \let\realend@float=\end@float
|
||||
\def\@float{\let\@savefreelist\@freelist\real@float}
|
||||
\def\liih@math{\ifmmode$\else\bad@math\fi}
|
||||
\def\end@float{\realend@float\global\let\@freelist\@savefreelist}
|
||||
\let\real@dbflt=\@dbflt \let\end@dblfloat=\end@float
|
||||
\let\@largefloatcheck=\relax
|
||||
\let\if@boxedmulticols=\iftrue
|
||||
\def\@dbflt{\let\@savefreelist\@freelist\real@dbflt}
|
||||
\def\adjustnormalsize{\def\normalsize{\mathsurround=0pt \realnormalsize
|
||||
\parindent=0pt\abovedisplayskip=0pt\belowdisplayskip=0pt}%
|
||||
\def\phantompar{\csname par\endcsname}\normalsize}%
|
||||
\def\lthtmltypeout#1{{\let\protect\string \immediate\write\lthtmlwrite{#1}}}%
|
||||
\newcommand\lthtmlhboxmathA{\adjustnormalsize\setbox\sizebox=\hbox\bgroup\kern.05em }%
|
||||
\newcommand\lthtmlhboxmathB{\adjustnormalsize\setbox\sizebox=\hbox to\hsize\bgroup\hfill }%
|
||||
\newcommand\lthtmlvboxmathA{\adjustnormalsize\setbox\sizebox=\vbox\bgroup %
|
||||
\let\ifinner=\iffalse \let\)\liih@math }%
|
||||
\newcommand\lthtmlboxmathZ{\@next\next\@currlist{}{\def\next{\voidb@x}}%
|
||||
\expandafter\box\next\egroup}%
|
||||
\newcommand\lthtmlmathtype[1]{\gdef\lthtmlmathenv{#1}}%
|
||||
\newcommand\lthtmllogmath{\dimen0\ht\sizebox \advance\dimen0\dp\sizebox
|
||||
\ifdim\dimen0>.95\vsize
|
||||
\lthtmltypeout{%
|
||||
*** image for \lthtmlmathenv\space is too tall at \the\dimen0, reducing to .95 vsize ***}%
|
||||
\ht\sizebox.95\vsize \dp\sizebox\z@ \fi
|
||||
\lthtmltypeout{l2hSize %
|
||||
:\lthtmlmathenv:\the\ht\sizebox::\the\dp\sizebox::\the\wd\sizebox.\preveqno}}%
|
||||
\newcommand\lthtmlfigureA[1]{\let\@savefreelist\@freelist
|
||||
\lthtmlmathtype{#1}\lthtmlvboxmathA}%
|
||||
\newcommand\lthtmlpictureA{\bgroup\catcode`\_=8 \lthtmlpictureB}%
|
||||
\newcommand\lthtmlpictureB[1]{\lthtmlmathtype{#1}\egroup
|
||||
\let\@savefreelist\@freelist \lthtmlhboxmathB}%
|
||||
\newcommand\lthtmlpictureZ[1]{\hfill\lthtmlfigureZ}%
|
||||
\newcommand\lthtmlfigureZ{\lthtmlboxmathZ\lthtmllogmath\copy\sizebox
|
||||
\global\let\@freelist\@savefreelist}%
|
||||
\newcommand\lthtmldisplayA{\bgroup\catcode`\_=8 \lthtmldisplayAi}%
|
||||
\newcommand\lthtmldisplayAi[1]{\lthtmlmathtype{#1}\egroup\lthtmlvboxmathA}%
|
||||
\newcommand\lthtmldisplayB[1]{\edef\preveqno{(\theequation)}%
|
||||
\lthtmldisplayA{#1}\let\@eqnnum\relax}%
|
||||
\newcommand\lthtmldisplayZ{\lthtmlboxmathZ\lthtmllogmath\lthtmlsetmath}%
|
||||
\newcommand\lthtmlinlinemathA{\bgroup\catcode`\_=8 \lthtmlinlinemathB}
|
||||
\newcommand\lthtmlinlinemathB[1]{\lthtmlmathtype{#1}\egroup\lthtmlhboxmathA
|
||||
\vrule height1.5ex width0pt }%
|
||||
\newcommand\lthtmlinlineA{\bgroup\catcode`\_=8 \lthtmlinlineB}%
|
||||
\newcommand\lthtmlinlineB[1]{\lthtmlmathtype{#1}\egroup\lthtmlhboxmathA}%
|
||||
\newcommand\lthtmlinlineZ{\egroup\expandafter\ifdim\dp\sizebox>0pt %
|
||||
\expandafter\centerinlinemath\fi\lthtmllogmath\lthtmlsetinline}
|
||||
\newcommand\lthtmlinlinemathZ{\egroup\expandafter\ifdim\dp\sizebox>0pt %
|
||||
\expandafter\centerinlinemath\fi\lthtmllogmath\lthtmlsetmath}
|
||||
\newcommand\lthtmlindisplaymathZ{\egroup %
|
||||
\centerinlinemath\lthtmllogmath\lthtmlsetmath}
|
||||
\def\lthtmlsetinline{\hbox{\vrule width.1em \vtop{\vbox{%
|
||||
\kern.1em\copy\sizebox}\ifdim\dp\sizebox>0pt\kern.1em\else\kern.3pt\fi
|
||||
\ifdim\hsize>\wd\sizebox \hrule depth1pt\fi}}}
|
||||
\def\lthtmlsetmath{\hbox{\vrule width.1em\kern-.05em\vtop{\vbox{%
|
||||
\kern.1em\kern0.8 pt\hbox{\hglue.17em\copy\sizebox\hglue0.8 pt}}\kern.3pt%
|
||||
\ifdim\dp\sizebox>0pt\kern.1em\fi \kern0.8 pt%
|
||||
\ifdim\hsize>\wd\sizebox \hrule depth1pt\fi}}}
|
||||
\def\centerinlinemath{%
|
||||
\dimen1=\ifdim\ht\sizebox<\dp\sizebox \dp\sizebox\else\ht\sizebox\fi
|
||||
\advance\dimen1by.5pt \vrule width0pt height\dimen1 depth\dimen1
|
||||
\dp\sizebox=\dimen1\ht\sizebox=\dimen1\relax}
|
||||
|
||||
\def\lthtmlcheckvsize{\ifdim\ht\sizebox<\vsize
|
||||
\ifdim\wd\sizebox<\hsize\expandafter\hfill\fi \expandafter\vfill
|
||||
\else\expandafter\vss\fi}%
|
||||
\providecommand{\selectlanguage}[1]{}%
|
||||
\makeatletter \tracingstats = 1
|
||||
|
||||
|
||||
\begin{document}
|
||||
\pagestyle{empty}\thispagestyle{empty}\lthtmltypeout{}%
|
||||
\lthtmltypeout{latex2htmlLength hsize=\the\hsize}\lthtmltypeout{}%
|
||||
\lthtmltypeout{latex2htmlLength vsize=\the\vsize}\lthtmltypeout{}%
|
||||
\lthtmltypeout{latex2htmlLength hoffset=\the\hoffset}\lthtmltypeout{}%
|
||||
\lthtmltypeout{latex2htmlLength voffset=\the\voffset}\lthtmltypeout{}%
|
||||
\lthtmltypeout{latex2htmlLength topmargin=\the\topmargin}\lthtmltypeout{}%
|
||||
\lthtmltypeout{latex2htmlLength topskip=\the\topskip}\lthtmltypeout{}%
|
||||
\lthtmltypeout{latex2htmlLength headheight=\the\headheight}\lthtmltypeout{}%
|
||||
\lthtmltypeout{latex2htmlLength headsep=\the\headsep}\lthtmltypeout{}%
|
||||
\lthtmltypeout{latex2htmlLength parskip=\the\parskip}\lthtmltypeout{}%
|
||||
\lthtmltypeout{latex2htmlLength oddsidemargin=\the\oddsidemargin}\lthtmltypeout{}%
|
||||
\makeatletter
|
||||
\if@twoside\lthtmltypeout{latex2htmlLength evensidemargin=\the\evensidemargin}%
|
||||
\else\lthtmltypeout{latex2htmlLength evensidemargin=\the\oddsidemargin}\fi%
|
||||
\lthtmltypeout{}%
|
||||
\makeatother
|
||||
\setcounter{page}{1}
|
||||
\onecolumn
|
||||
|
||||
% !!! IMAGES START HERE !!!
|
||||
|
||||
{\newpage\clearpage
|
||||
\lthtmlinlinemathA{tex2html_wrap_inline464}%
|
||||
$E_0$%
|
||||
\lthtmlinlinemathZ
|
||||
\lthtmlcheckvsize\clearpage}
|
||||
|
||||
{\newpage\clearpage
|
||||
\lthtmlinlinemathA{tex2html_wrap_inline466}%
|
||||
$N_0$%
|
||||
\lthtmlinlinemathZ
|
||||
\lthtmlcheckvsize\clearpage}
|
||||
|
||||
{\newpage\clearpage
|
||||
\lthtmlinlinemathA{tex2html_wrap_inline468}%
|
||||
$ENC$%
|
||||
\lthtmlinlinemathZ
|
||||
\lthtmlcheckvsize\clearpage}
|
||||
|
||||
{\newpage\clearpage
|
||||
\lthtmlinlinemathA{tex2html_wrap_inline470}%
|
||||
$CS=$%
|
||||
\lthtmlinlinemathZ
|
||||
\lthtmlcheckvsize\clearpage}
|
||||
|
||||
{\newpage\clearpage
|
||||
\lthtmlinlinemathA{tex2html_wrap_inline472}%
|
||||
$N_S$%
|
||||
\lthtmlinlinemathZ
|
||||
\lthtmlcheckvsize\clearpage}
|
||||
|
||||
{\newpage\clearpage
|
||||
\lthtmlinlinemathA{tex2html_wrap_inline474}%
|
||||
$CS={\begingroupN_S\endgroup\over N_0}$%
|
||||
\lthtmlinlinemathZ
|
||||
\lthtmlcheckvsize\clearpage}
|
||||
|
||||
{\newpage\clearpage
|
||||
\lthtmlinlinemathA{tex2html_wrap_inline482}%
|
||||
$E_f$%
|
||||
\lthtmlinlinemathZ
|
||||
\lthtmlcheckvsize\clearpage}
|
||||
|
||||
{\newpage\clearpage
|
||||
\lthtmlinlinemathA{tex2html_wrap_inline486}%
|
||||
$E_0/2$%
|
||||
\lthtmlinlinemathZ
|
||||
\lthtmlcheckvsize\clearpage}
|
||||
|
||||
{\newpage\clearpage
|
||||
\lthtmlinlinemathA{tex2html_wrap_inline490}%
|
||||
$\Delta \sim $%
|
||||
\lthtmlinlinemathZ
|
||||
\lthtmlcheckvsize\clearpage}
|
||||
|
||||
{\newpage\clearpage
|
||||
\lthtmlinlinemathA{tex2html_wrap_inline492}%
|
||||
$E_t$%
|
||||
\lthtmlinlinemathZ
|
||||
\lthtmlcheckvsize\clearpage}
|
||||
|
||||
{\newpage\clearpage
|
||||
\lthtmlinlinemathA{tex2html_wrap_inline494}%
|
||||
$\Sigma >3ENC$%
|
||||
\lthtmlinlinemathZ
|
||||
\lthtmlcheckvsize\clearpage}
|
||||
|
||||
\stepcounter{section}
|
||||
{\newpage\clearpage
|
||||
\lthtmlinlinemathA{tex2html_wrap_inline131}%
|
||||
$e^-$%
|
||||
\lthtmlinlinemathZ
|
||||
\lthtmlcheckvsize\clearpage}
|
||||
|
||||
{\newpage\clearpage
|
||||
\lthtmlinlinemathA{tex2html_wrap_inline137}%
|
||||
$D$%
|
||||
\lthtmlinlinemathZ
|
||||
\lthtmlcheckvsize\clearpage}
|
||||
|
||||
{\newpage\clearpage
|
||||
\lthtmlinlinemathA{tex2html_wrap_inline141}%
|
||||
$E_t=E_0/2$%
|
||||
\lthtmlinlinemathZ
|
||||
\lthtmlcheckvsize\clearpage}
|
||||
|
||||
{\newpage\clearpage
|
||||
\lthtmlinlinemathA{tex2html_wrap_inline143}%
|
||||
$N$%
|
||||
\lthtmlinlinemathZ
|
||||
\lthtmlcheckvsize\clearpage}
|
||||
|
||||
{\newpage\clearpage
|
||||
\lthtmlinlinemathA{tex2html_wrap_inline147}%
|
||||
$N_n$%
|
||||
\lthtmlinlinemathZ
|
||||
\lthtmlcheckvsize\clearpage}
|
||||
|
||||
{\newpage\clearpage
|
||||
\lthtmlinlinemathA{tex2html_wrap_inline149}%
|
||||
$N_\gamma$%
|
||||
\lthtmlinlinemathZ
|
||||
\lthtmlcheckvsize\clearpage}
|
||||
|
||||
{\newpage\clearpage
|
||||
\lthtmldisplayA{displaymath17}%
|
||||
\begin{displaymath}
|
||||
N_\gamma(E_t)=\frac{N_0}{2}\cdot\Big(1+C_s \frac{E_0-2E_t}{E_0}\Big)D \Big(\frac{E_0-E_t}{ENC} \Big),
|
||||
\end{displaymath}%
|
||||
\lthtmldisplayZ
|
||||
\lthtmlcheckvsize\clearpage}
|
||||
|
||||
{\newpage\clearpage
|
||||
\lthtmlinlinemathA{tex2html_wrap_inline151}%
|
||||
$C_s$%
|
||||
\lthtmlinlinemathZ
|
||||
\lthtmlcheckvsize\clearpage}
|
||||
|
||||
{\newpage\clearpage
|
||||
\lthtmlinlinemathA{tex2html_wrap_inline153}%
|
||||
$N_s=C_s N_0$%
|
||||
\lthtmlinlinemathZ
|
||||
\lthtmlcheckvsize\clearpage}
|
||||
|
||||
{\newpage\clearpage
|
||||
\lthtmlinlinemathA{tex2html_wrap_inline155}%
|
||||
$\tau_s$%
|
||||
\lthtmlinlinemathZ
|
||||
\lthtmlcheckvsize\clearpage}
|
||||
|
||||
{\newpage\clearpage
|
||||
\lthtmlinlinemathA{tex2html_wrap_inline157}%
|
||||
$T$%
|
||||
\lthtmlinlinemathZ
|
||||
\lthtmlcheckvsize\clearpage}
|
||||
|
||||
{\newpage\clearpage
|
||||
\lthtmldisplayA{displaymath26}%
|
||||
\begin{displaymath}
|
||||
N_n(E_t) \sim \frac{T}{\tau_s} D \Big(\frac{-E_t}{ENC} \Big).
|
||||
\end{displaymath}%
|
||||
\lthtmldisplayZ
|
||||
\lthtmlcheckvsize\clearpage}
|
||||
|
||||
{\newpage\clearpage
|
||||
\lthtmlinlinemathA{tex2html_wrap_inline165}%
|
||||
$\Sigma>3\,ENC$%
|
||||
\lthtmlinlinemathZ
|
||||
\lthtmlcheckvsize\clearpage}
|
||||
|
||||
{\newpage\clearpage
|
||||
\lthtmlinlinemathA{tex2html_wrap_inline167}%
|
||||
$O$%
|
||||
\lthtmlinlinemathZ
|
||||
\lthtmlcheckvsize\clearpage}
|
||||
|
||||
{\newpage\clearpage
|
||||
\lthtmlinlinemathA{tex2html_wrap_inline169}%
|
||||
$G$%
|
||||
\lthtmlinlinemathZ
|
||||
\lthtmlcheckvsize\clearpage}
|
||||
|
||||
{\newpage\clearpage
|
||||
\lthtmlinlinemathA{tex2html_wrap_inline171}%
|
||||
$V_t$%
|
||||
\lthtmlinlinemathZ
|
||||
\lthtmlcheckvsize\clearpage}
|
||||
|
||||
{\newpage\clearpage
|
||||
\lthtmldisplayA{displaymath34}%
|
||||
\begin{displaymath}
|
||||
V_{t}=O+G \cdot E_t.
|
||||
\end{displaymath}%
|
||||
\lthtmldisplayZ
|
||||
\lthtmlcheckvsize\clearpage}
|
||||
|
||||
{\newpage\clearpage
|
||||
\lthtmlinlinemathA{tex2html_wrap_inline175}%
|
||||
$i$%
|
||||
\lthtmlinlinemathZ
|
||||
\lthtmlcheckvsize\clearpage}
|
||||
|
||||
{\newpage\clearpage
|
||||
\lthtmlinlinemathA{tex2html_wrap_inline177}%
|
||||
$O_i$%
|
||||
\lthtmlinlinemathZ
|
||||
\lthtmlcheckvsize\clearpage}
|
||||
|
||||
{\newpage\clearpage
|
||||
\lthtmlinlinemathA{tex2html_wrap_inline179}%
|
||||
$G_i$%
|
||||
\lthtmlinlinemathZ
|
||||
\lthtmlcheckvsize\clearpage}
|
||||
|
||||
{\newpage\clearpage
|
||||
\lthtmlinlinemathA{tex2html_wrap_inline191}%
|
||||
$CS=\frac{N_S}{N_0}$%
|
||||
\lthtmlinlinemathZ
|
||||
\lthtmlcheckvsize\clearpage}
|
||||
|
||||
{\newpage\clearpage
|
||||
\lthtmlpictureA{tex2html_wrap559}%
|
||||
\includegraphics[width=\textwidth]{fig4.eps}%
|
||||
\lthtmlpictureZ
|
||||
\lthtmlcheckvsize\clearpage}
|
||||
|
||||
{\newpage\clearpage
|
||||
\lthtmlpictureA{tex2html_wrap563}%
|
||||
\includegraphics[width=\textwidth]{fig5.eps}%
|
||||
\lthtmlpictureZ
|
||||
\lthtmlcheckvsize\clearpage}
|
||||
|
||||
{\newpage\clearpage
|
||||
\lthtmlpictureA{tex2html_wrap585}%
|
||||
\includegraphics[width=\textwidth]{fig7.eps}%
|
||||
\lthtmlpictureZ
|
||||
\lthtmlcheckvsize\clearpage}
|
||||
|
||||
{\newpage\clearpage
|
||||
\lthtmlpictureA{tex2html_wrap589}%
|
||||
\includegraphics[width=\textwidth]{fig8.eps}%
|
||||
\lthtmlpictureZ
|
||||
\lthtmlcheckvsize\clearpage}
|
||||
|
||||
\stepcounter{section}
|
||||
\stepcounter{subsection}
|
||||
{\newpage\clearpage
|
||||
\lthtmlpictureA{tex2html_wrap595}%
|
||||
\includegraphics[width=\textwidth]{GUI_Advanced.eps}%
|
||||
\lthtmlpictureZ
|
||||
\lthtmlcheckvsize\clearpage}
|
||||
|
||||
{\newpage\clearpage
|
||||
\lthtmlpictureA{tex2html_wrap599}%
|
||||
\includegraphics[width=\textwidth]{GUI_ThresholdScan.eps}%
|
||||
\lthtmlpictureZ
|
||||
\lthtmlcheckvsize\clearpage}
|
||||
|
||||
\stepcounter{section}
|
||||
\stepcounter{subsection}
|
||||
{\newpage\clearpage
|
||||
\lthtmlpictureA{tex2html_wrap605}%
|
||||
\includegraphics[width=\textwidth]{addEnergy.eps}%
|
||||
\lthtmlpictureZ
|
||||
\lthtmlcheckvsize\clearpage}
|
||||
|
||||
{\newpage\clearpage
|
||||
\lthtmlpictureA{tex2html_wrap609}%
|
||||
\includegraphics[width=\textwidth]{calibrateModule.eps}%
|
||||
\lthtmlpictureZ
|
||||
\lthtmlcheckvsize\clearpage}
|
||||
|
||||
\stepcounter{section}
|
||||
|
||||
\end{document}
|
Before Width: | Height: | Size: 249 B |
Before Width: | Height: | Size: 231 B |
Before Width: | Height: | Size: 489 B |
Before Width: | Height: | Size: 176 B |
Before Width: | Height: | Size: 216 B |
Before Width: | Height: | Size: 405 B |
Before Width: | Height: | Size: 213 B |
Before Width: | Height: | Size: 242 B |
Before Width: | Height: | Size: 240 B |
Before Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 238 B |
Before Width: | Height: | Size: 249 B |
Before Width: | Height: | Size: 451 B |
Before Width: | Height: | Size: 199 B |
Before Width: | Height: | Size: 199 B |
Before Width: | Height: | Size: 1.0 KiB |
Before Width: | Height: | Size: 491 B |
Before Width: | Height: | Size: 217 B |
Before Width: | Height: | Size: 223 B |
Before Width: | Height: | Size: 226 B |
Before Width: | Height: | Size: 507 B |
Before Width: | Height: | Size: 176 B |
Before Width: | Height: | Size: 342 B |
Before Width: | Height: | Size: 238 B |
Before Width: | Height: | Size: 243 B |
Before Width: | Height: | Size: 456 B |
Before Width: | Height: | Size: 8.0 KiB |