Compare commits

..

447 Commits

Author SHA1 Message Date
Samuel Debionne
193f2b9011 Split slsReceiver into slsListener and slsReceiver 2019-03-25 17:52:30 +01:00
6cb043b2d9 Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2019-03-21 16:30:25 +01:00
fa34ad435b server: pll fix 2019-03-21 16:30:18 +01:00
Gemma Tinti
c5178bc4de manual 2019-03-21 16:29:36 +01:00
Gemma Tinti
c89fad45a9 Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2019-03-21 15:09:19 +01:00
Gemma Tinti
6c4fad01d4 manual 2019-03-21 15:09:10 +01:00
eb3dff3a6c eiger server 2019-03-21 14:15:52 +01:00
d9503bebf9 Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2019-03-21 14:13:15 +01:00
b99606211b ctb server: altera pll odd division fix 2019-03-21 14:13:07 +01:00
Gemma Tinti
039e658773 manual 2019-03-21 11:46:38 +01:00
Gemma Tinti
92ca22fc09 manual 2019-03-20 18:34:44 +01:00
Erik Frojdh
d4ac6fe160 gitinfo as public 2019-03-20 17:48:01 +01:00
Erik Frojdh
8cb0f3a29c Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2019-03-20 17:41:57 +01:00
Erik Frojdh
c16f9b8c30 specify detector or receiver in error 2019-03-20 17:41:46 +01:00
050854de36 Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2019-03-20 17:34:37 +01:00
cb80cf5f09 receiver missing packets made to have signed for getting more packets than expected 2019-03-20 17:34:29 +01:00
Erik Frojdh
83e43b1bcf format ColumnLimit changed to 100 2019-03-20 17:31:19 +01:00
Erik Frojdh
2a01688683 Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2019-03-20 17:07:29 +01:00
3ff01bf609 removed minor warnings for unused ret 2019-03-20 17:07:02 +01:00
Erik Frojdh
4b2c6af4f5 reorganizing of slsDetectorSoftware 2019-03-20 17:07:02 +01:00
Erik Fröjdh
03402d0e9e Error handling with exceptions in slsDetector and multiSlsDetector (#14)
* less error mask

* removing error mask from slsDetector

* removed ErrorMask

* setonline, setreceiveornline bug fix
2019-03-20 16:23:41 +01:00
9d489dc962 servers, gitinfo script updated; ctb/moench server: delay uses sync clock, 2019-03-20 14:39:24 +01:00
44f0dfc3c0 ctbserver: updated firmware version and api 2019-03-19 18:58:42 +01:00
685fcc31b6 setonline, setreceiveronline was never really setting offline flag, so was never really updating detector first time 2019-03-19 18:42:45 +01:00
Dhanya Thattil
ce6289afda Merge pull request #13 from slsdetectorgroup/except
new socket overload
2019-03-19 18:01:09 +01:00
Erik Frojdh
4e56107015 new socket overload 2019-03-19 17:49:20 +01:00
430e0e3fb5 Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2019-03-19 17:32:17 +01:00
d8c0fb522a ctb/ moench server fix: usleep of 10 for reading from fifo removed 2019-03-19 17:32:07 +01:00
Dhanya Thattil
ce25c06b41 Merge pull request #12 from slsdetectorgroup/except
refactor getID
2019-03-19 16:58:43 +01:00
Erik Frojdh
6759b2eeb8 refactor getID 2019-03-19 16:27:07 +01:00
Erik Frojdh
38bf540c1a fixed segfault on loading trimbits 2019-03-18 18:10:50 +01:00
Erik Frojdh
43012e4f28 more const more python 2019-03-18 17:38:44 +01:00
Erik Frojdh
98655ee7e3 added missing py file 2019-03-18 12:20:48 +01:00
Erik Frojdh
43d478076c Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2019-03-18 12:06:49 +01:00
Erik Frojdh
4036e6af8d const qualified multi calls, python fixes 2019-03-18 12:06:39 +01:00
fad73a57aa minor 2019-03-18 09:19:04 +01:00
Erik Frojdh
c0d5303b70 removed pycache 2019-03-15 17:59:36 +01:00
Erik Frojdh
3356c2d3f6 all python version 2019-03-15 15:01:44 +01:00
Erik Frojdh
3f45d39c8d deploy on all branches 2019-03-15 14:37:01 +01:00
Erik Frojdh
4e94995142 conda build 2019-03-15 14:23:51 +01:00
Erik Frojdh
c93b78c74f working 2019-03-15 13:50:50 +01:00
Erik Frojdh
73af4a744f added pybind11 v2.2 as submodule 2019-03-15 11:05:12 +01:00
Erik Frojdh
6ddde83c81 python 2019-03-15 11:01:36 +01:00
bb93147537 Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2019-03-15 10:37:54 +01:00
1eff8485dd receiver listener bug fix from previous commit 2019-03-15 10:37:47 +01:00
Erik Frojdh
c153be95d1 Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2019-03-15 10:15:50 +01:00
Erik Frojdh
4943983d10 det id const and ini shm in constructor 2019-03-15 10:15:42 +01:00
5fe7a86361 switching udpsocketbuffersize from uitn64_t to int64_t, printing socket exception into tcp error mess, changing an exception message 2019-03-15 10:00:22 +01:00
Erik Frojdh
7522a655df removing warning in gcc 2019-03-14 17:38:40 +01:00
Erik Frojdh
836eb8cde2 explicit override 2019-03-14 17:15:58 +01:00
Erik Frojdh
9f724f0c0d using only sls exceptions 2019-03-14 17:09:44 +01:00
Erik Frojdh
bad44f5bf4 moving SharedMemory into namespace sls 2019-03-14 16:51:38 +01:00
Erik Frojdh
40d2f66146 Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2019-03-14 16:37:46 +01:00
Erik Frojdh
9639e480d9 new exceptions 2019-03-14 16:37:36 +01:00
8520492e4b lock server bug: sending lockstatus converts to littleendian for eiger, lastclient should have other as datatype for eiger 2019-03-14 14:14:14 +01:00
be33102164 checkonline, checkrecieveronline, retval has offline hostnames, online flag should be set no matter what the outcome 2019-03-14 13:18:42 +01:00
5235a87e93 Merge branch 'detshm' into refactor 2019-03-14 12:42:08 +01:00
cb687d805e merge conflict 2019-03-14 12:41:37 +01:00
327d08a016 removing comments, added one check for nullptr, updated current threshold when getting module, removing unsued function from header file (writesettingsfile) 2019-03-14 12:40:01 +01:00
Erik Frojdh
1960460e43 upgraded catch to 2.7 2019-03-14 10:47:43 +01:00
Erik Frojdh
e42e8f5bf6 option for sanitizers 2019-03-14 10:44:31 +01:00
Erik Frojdh
c9422befff fixed loading trimbits 2019-03-14 10:21:18 +01:00
c56efdec8a Merge branch 'refactor' into detshm 2019-03-14 09:11:27 +01:00
14131f93f1 sanitizer compile fail 2019-03-14 09:06:44 +01:00
Erik Frojdh
d21ceb0e75 only construct shared memory from a type with exact size 2019-03-13 17:43:48 +01:00
Erik Frojdh
9a08c85b2a changed the shared memory of slsDetector 2019-03-13 17:38:27 +01:00
Erik Frojdh
85134443de initial 2019-03-13 16:29:29 +01:00
7d3d2a8b31 ctb and moench server: pll vco clock changed from 400 to 800,ctb server: max adc clock from 40 to 65MHz 2019-03-13 16:03:11 +01:00
75ce111344 Merge branch 'shm' into refactor 2019-03-13 15:21:12 +01:00
f8aa0e3d6d removed minor commented lines 2019-03-13 15:19:32 +01:00
2dcef909ca Merge branch 'refactor' into shm 2019-03-13 14:22:26 +01:00
ec18db868f ctb, moench, jungfrau server: changing phase only changes one clock in one direction. ctb and moench phase shift connected to adc clk, instead of run clk 2019-03-13 08:37:45 +01:00
Erik Frojdh
7e793539ca removed typedef for shared struct 2019-03-12 14:42:27 +01:00
Erik Frojdh
d4e4fb8ffe move constructor deleted copy constructor 2019-03-12 14:37:06 +01:00
Erik Frojdh
48e4cec56f minor 2019-03-12 11:52:13 +01:00
Erik Frojdh
3b2c734efd adding tests 2019-03-12 11:43:28 +01:00
Erik Frojdh
507a22ac05 default args 2019-03-12 10:14:24 +01:00
Erik Frojdh
a01d68a61f initial changes 2019-03-12 08:22:07 +01:00
6765fd0dc8 ctb moench: bugfix for fifofull, should not read pattern, same as executing it 2019-03-08 16:59:44 +01:00
ae5938799f Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2019-03-08 16:16:53 +01:00
19b21dac88 Listener bug fix: switching to make_unique ptr side effects, the dummy socket still alive when destructor of listener called 2019-03-08 16:16:40 +01:00
Erik Frojdh
b8f071dcf6 Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2019-03-08 15:13:23 +01:00
Erik Frojdh
182f65bc2f always compile commands 2019-03-08 15:13:11 +01:00
1103f56256 Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2019-03-08 09:14:39 +01:00
0553755439 receiver bug fix: with refactor, the callbacks were getting reset upon initialization. fixed 2019-03-08 09:14:29 +01:00
Gemma Tinti
65b8ab5b89 manual 2019-03-07 17:40:56 +01:00
658438df3b ctb moench server update: (fw update): det id changed, status reg looks at anyfifofull instead of somefifofull, datapresent looks at corresponding analog/digital fifo empty, usleep after read strobe to sync different clock 2019-03-07 17:36:35 +01:00
Dhanya Thattil
999a2f4d15 Merge pull request #8 from slsdetectorgroup/use-unique-ptr
In Listener, remove raw pointers allocations, use `unique_ptr` instead.
2019-03-06 17:48:28 +01:00
2532df37cc client: added basic fail handling where ommitted 2019-03-06 17:37:13 +01:00
ca817c6ae9 client: update roi on updatedetector, (ctb, moench)moved nchans and databyte calculated to updatenumberofchannels and called for any update in roi, readoutflag or #samples changed (get should not update). ctb,moench server: roi fixed, . gotthard server: bug fix waiting to finish, ad9252 spi call fix. receiver: updated for moench and 10g 2019-03-06 17:25:18 +01:00
0765b330f1 ctb and moench, exptime connects to set pattern wait time with level 0 2019-03-06 15:17:54 +01:00
abc7a9bd2f moench has only analog readout 2019-03-06 14:52:21 +01:00
2676e8b43d receiver: readout flag bug fix, clent:send roi for ctb and moench 2019-03-06 10:55:51 +01:00
d3c1193a71 ctb/moench server, fixed frequency configuring bug, readpattern sleep, detectormode command, jsonheader set even if rxr offline, set speed returnvalue is value not ok/fail, rxr printout missingpackets 64 bit 2019-03-06 10:25:16 +01:00
Samuel Debionne
db232ad00d in Listener, remove raw pointers allocations, use unique_ptr instead.
Add an overload of sls::make_unique for array types.
2019-03-06 09:07:51 +01:00
Dhanya Thattil
ceb515d517 Merge pull request #7 from slsdetectorgroup/fix-sprintf-warnings
Fix sprintf warnings
2019-03-05 16:26:18 +01:00
Samuel Debionne
04c8a2871d Fix sprintf warnings 2019-03-05 14:34:01 +01:00
Dhanya Thattil
1803a5aecc Merge pull request #6 from slsdetectorgroup/fix-typos
Fix typos
2019-03-05 14:19:19 +01:00
Samuel Debionne
c40db94474 Fix typos 2019-03-05 10:43:20 +01:00
c56561bc9f updated ctb and moench, moench not tested 2019-03-05 09:38:10 +01:00
08bd2378f4 slsReceiver bug fix affecting Jungfrau receivers as root (optlen size as int), but setting buffer size is uint32_t size. setting it to uint64_t 2019-03-04 09:41:20 +01:00
8939e23622 jungfrau feature:storagecell_delay added 2019-03-01 15:26:38 +01:00
93192c6e84 bugfix receiver: setImagesize only for ctb, moench 2019-03-01 15:22:39 +01:00
d2d50a56df eiger server/client bug fix: readout flag of -1 2019-03-01 14:08:28 +01:00
8c067437e6 ctb moench: added feature set pattern mask and set pattern bit mask, removed CTB prefix for all the patern functions 2019-03-01 12:28:11 +01:00
35b1ad39f7 ctb moench: feature to set digital io pin delay, changed print from unsuccessful to failed, maxpatternlength in server is inclusive 2019-03-01 10:45:01 +01:00
bb81613900 ctb, moench: implemented led enable feature 2019-03-01 09:00:04 +01:00
ebee9e308e ctb server: reserved not required, as the additional space in last packet can be calcualted 2019-02-28 16:14:45 +01:00
debf3a1b01 ctb readout works with receiver for digital readout, allocate ram in server only if 1g udp, free addr info only when setting new udp detals upon configuring ,brough readout flags to receiver 2019-02-28 16:07:47 +01:00
96584ce397 ctb: enable tengiga in server and moved everything to list implementation 2019-02-28 11:32:10 +01:00
7f2197fc4f slsReceiver & client: 10genable allowed for moench and ctb, ctb server: better way to divide to packets to send via udp 2019-02-28 10:09:54 +01:00
302d9f0633 ctb server: back to 10g def 2019-02-28 08:51:07 +01:00
f80483de6e ctb server: (bug fixes, udp sending feature instead of tcp, better debugging prints,
digital readout mode (fifoempty flag in status register is always up, so it is idle for this readout mode),
pattern loop bugs, max_pattern_length redefined in server side, do not update period for ctb and moench in setreceiver
2019-02-28 08:46:26 +01:00
1fe473e830 client: for set port functions, moved forceupdate outside to automatically close previous function call 2019-02-25 14:45:14 +01:00
966896b942 moench: get zmq goes to the receiver instead of shm, setand get threshold energey updates zmq and shm value, setand get roi anyways goes to the ddetector, so only updates zmq or gets it from rxr 2019-02-25 12:57:44 +01:00
4c7a9cd838 moench: set threshold energy and set roi sets jsonheader 2019-02-25 12:34:35 +01:00
c218e391bb client: rx_tcpport fixed 2019-02-25 11:43:10 +01:00
43ad8b69b3 client: stop and control port get fixed 2019-02-25 09:35:07 +01:00
4c35dd9b5b Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2019-02-25 09:16:27 +01:00
15fc55f914 client: must print detector or receiver returning error 2019-02-25 09:16:20 +01:00
eecfcae312 ctbserver: dac -1 check limit error 2019-02-25 08:58:35 +01:00
Erik Frojdh
c723b29f9b address and undefined behaviour sanitizers on debug 2019-02-22 19:55:56 +01:00
9b81143c68 Merge branch 'ctbFixes' into refactor 2019-02-22 13:58:51 +01:00
20edf61e30 ctb server: removed unnecessary prints, resulting in a bug fix for slow adc temp 2019-02-22 13:53:59 +01:00
a1a6a5dbaa ctb server: slow adc temp fixed 2019-02-22 13:22:40 +01:00
a8121ae108 ctb server: vio should be off at start up 2019-02-22 09:03:30 +01:00
40d15264c5 Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2019-02-21 16:25:07 +01:00
b2e6b78e20 Merge branch 'ctbBugFixes' into refactor 2019-02-21 16:24:56 +01:00
f5244faa02 moench: adding enums for zmq parameters, needs modification in naming 2019-02-21 16:01:24 +01:00
421dbdb9b5 ctb server: including moench as well for programfpga and other client ctb implementations 2019-02-21 16:00:40 +01:00
617f3d2600 ctb server: modified program fpag in case of errors 2019-02-21 15:56:51 +01:00
a4f1b7670f ctb server bug fixes:update client, get period left, getid(api and serial number), restrict setting vchip, allow write adc 2019-02-21 09:37:49 +01:00
09546a8632 ctb server:
- allowed flags resetfpga and programfpga for moench and ctb
- set a minimum voltage for vio as it powers the fpga (1200mV)
- changed the min and max for vchip and power regulators due to tolerance
- fixed pattern read function
- fixed minor bugs with input of ctb patterns(waittime) and mode other than 1
- fixed calibration current register for i2c for tolerance (/1.2268)
- fixed current readout of i2c
- added digital, analog and normal readouts for flags
2019-02-20 15:36:34 +01:00
Erik Frojdh
29d4eb8b41 catch by ref 2019-02-20 10:29:15 +01:00
775bde76c9 ctb server: power regulator adjusted for precision 2019-02-20 09:34:55 +01:00
d876cb6da6 Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2019-02-20 08:47:13 +01:00
69f361468e ctb: power regulators (set dac, get dac, get adc of voltage and current) works 2019-02-20 08:45:34 +01:00
Erik Frojdh
b52c6b05b8 link and format 2019-02-16 16:46:09 +01:00
c93f88b7e5 ctb server: fixed dacs, power regulators and vchip 2019-02-15 17:08:49 +01:00
Erik Frojdh
d0e1289c1b replaced sprintf on the same buffer with strcat 2019-02-15 15:39:13 +01:00
4a8a72c447 ctb server: vlimit not impl, adc in degrees 2019-02-14 18:28:32 +01:00
501c579f6b users: added json parameter for moench api 2019-02-14 18:03:49 +01:00
722883531d reverted json_emin, emax, framemode and detectormode. All json parameters for moench will go through rx_jsonpara using strings 2019-02-14 17:43:28 +01:00
d2ba206216 Merge branch 'findzmq' into refactor 2019-02-14 17:35:07 +01:00
6be47d936f conflicts resolved 2019-02-14 17:32:33 +01:00
9aaca14b01 CMakeLists.txt: reordering and removing those we dont use anymore, removed all the Makefiles (except the ones for the detector servers) 2019-02-14 16:15:43 +01:00
aaae6d854c changed remaining cmake options to have SLS_ prefix 2019-02-14 15:42:04 +01:00
c91c2c224a Merge branch 'add-cmake-packages' of https://github.com/esrf-bliss/slsDetectorPackage into esrf-bliss-add-cmake-packages 2019-02-14 10:36:41 +01:00
2fdfd33f97 gitignore: added .o files for the servers 2019-02-14 09:30:50 +01:00
230b26a680 Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2019-02-13 20:19:16 +01:00
46aa7769cc client: added command line and for APIfor framemode and detectormode. Refactorinng required in the future 2019-02-13 20:19:08 +01:00
Erik Frojdh
59f3f0c764 cleaner cmake 2019-02-13 15:59:42 +01:00
Erik Frojdh
d46d96ecca fixed linking zmq 2019-02-13 15:35:40 +01:00
Erik Frojdh
82584dd1a8 cmake 2019-02-13 15:13:21 +01:00
Erik Frojdh
b65e0a1f01 include dirs 2019-02-13 15:12:33 +01:00
Erik Frojdh
f9417a23e0 FindZeroMq 2019-02-13 14:53:23 +01:00
fd95550724 client: fix for json header values being integer 2019-02-13 12:43:56 +01:00
Samuel Debionne
c064dc84ae Add generation and install of CMake packages 2019-02-13 10:45:01 +01:00
Samuel Debionne
01e3cb8d5e Cherry pick commit from 4.0.1 about CMake packages 2019-02-13 09:44:45 +01:00
c6ac0f8ebc Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2019-02-13 09:37:45 +01:00
f9be8b89ac added functionality to set additional json header key value pairs for prototype ctb, server fixed for eiger compile from ctb integration 2019-02-13 09:37:31 +01:00
Dhanya Thattil
75a75b6cf6 Merge pull request #3 from esrf-bliss/add-slsReceiver-ctor-overload
merge for Add slsReceiver ctor overload and sls::make_unique
2019-02-13 09:10:33 +01:00
Samuel Debionne
f125b94a7d Use sls::make_unique<> 2019-02-13 08:59:26 +01:00
Samuel Debionne
b18391330e Add slsReceiverUsers(int tcpip_port_no) overload
Use std::unique_ptr<> instead of raw pointers
2019-02-12 17:01:46 +01:00
Erik Frojdh
2bcf88e434 added receiverUsers as public header 2019-02-12 15:26:08 +01:00
031a11c4f7 removed all the warnings and errors from the merge, also removed added -wextra compiler flag, (yet to add additional commands for moench) 2019-02-12 11:09:19 +01:00
a64b34610a merge from developer (without the additional json header implementations) 2019-02-12 09:35:24 +01:00
985b2eba4d ctb registers updated 2019-02-07 18:05:15 +01:00
a5ee9fbdba ctb bug fixes: pattern generator, vchip, dacs 2019-02-07 16:51:18 +01:00
166541bd15 ctb adc phase get fix 2019-02-06 19:05:11 +01:00
140996fae6 ctb adc fix, update detector fix, acq error fix 2019-02-06 18:50:50 +01:00
3f43767d38 ctb client updated 2019-02-06 17:45:19 +01:00
a76cc90972 adc command line bug, ctb api added to client 2019-02-06 17:25:36 +01:00
0c1a3b7756 eiger bug fix: multi hv and eiger should not return -1 if different, ctb : dacs are 24 not 16 2019-02-06 17:07:13 +01:00
076faa62e0 ctb server: server starts up good. Need to debug each function in detail 2019-02-06 15:50:44 +01:00
bb37915419 stdexcept added to compile 2019-02-05 14:44:49 +01:00
Erik Frojdh
536c853d79 hack for receiver port 2019-01-25 19:41:33 +01:00
Erik Frojdh
f1d055138c moved updateDetector/Receiver 2019-01-25 19:12:28 +01:00
Erik Frojdh
82ce6b639c more cout 2019-01-25 16:53:19 +01:00
Erik Frojdh
7d9417dffe fixed debug couts 2019-01-25 16:48:04 +01:00
Erik Frojdh
89ee1d5bcf new socket for slsDetector 2019-01-25 16:44:29 +01:00
Erik Frojdh
a1c0d28ddb changed constructor 2019-01-24 11:12:24 +01:00
Erik Frojdh
c3472f295b split client and server interface 2019-01-23 12:07:44 +01:00
Erik Frojdh
99a1c609f1 starting to add new Socket interface 2019-01-23 11:47:13 +01:00
Erik Frojdh
3eca4c0535 typo 2019-01-21 14:44:06 +01:00
Erik Frojdh
b200138730 data types and format 2019-01-21 14:43:24 +01:00
Erik Frojdh
a4fec1e750 format and no check before delete 2019-01-21 12:10:00 +01:00
Erik Frojdh
46036e5dde braces around statements 2019-01-21 11:41:19 +01:00
Erik Frojdh
d2ed245d1d format and removed nullptr check before delete 2019-01-21 11:18:27 +01:00
Erik Frojdh
b74aed91dc consistent naming between header and source file 2019-01-21 11:11:39 +01:00
Erik Frojdh
e1ec60c9c1 cleaning up tests for command line parser 2019-01-21 10:45:43 +01:00
Erik Frojdh
603b217b54 clang-tidy modernize 2019-01-18 15:15:39 +01:00
Erik Frojdh
449e4da892 removed potential memory leak in readSettingsFile 2019-01-18 15:13:17 +01:00
Erik Frojdh
1ec9d950d5 malloc to new 2019-01-18 15:00:52 +01:00
Erik Frojdh
1b28cc88ff step one project reorganization 2019-01-18 14:41:04 +01:00
Erik Frojdh
8d6ee6ff46 moved shm deleted .project 2019-01-18 11:40:10 +01:00
Erik Frojdh
10539f8533 new getDetectorType functions 2019-01-18 10:53:49 +01:00
Erik Frojdh
13d6d3f866 Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2019-01-17 17:30:46 +01:00
Erik Frojdh
eff17371a5 removed virtual 2019-01-17 17:30:36 +01:00
13f9b9929a slsreceiver: removed option to start receiver with config file, redundant as the only option is receiver tcp port 2019-01-17 15:17:08 +01:00
Erik Frojdh
b07492be6f removing multiSlsDetectorCommand and using namespace std 2019-01-17 14:45:51 +01:00
Erik Frojdh
c05829031f removed get from the users class and changed put 2019-01-17 14:20:03 +01:00
Erik Frojdh
76da6a07aa using new CmdLineParser 2019-01-16 18:46:34 +01:00
Erik Frojdh
db0807bf7b adding cmdline parser 2019-01-16 16:50:19 +01:00
Erik Frojdh
b19b2a044c minor 2019-01-16 15:22:18 +01:00
Erik Frojdh
1ebe0f5624 spelling 2019-01-16 15:18:49 +01:00
Erik Frojdh
49f71ffca7 project wide nullptr fix 2019-01-16 15:15:29 +01:00
Erik Frojdh
80a1a3d796 moved ClientInterface to src 2019-01-16 15:10:24 +01:00
Erik Frojdh
683a859d4c cleanup 2019-01-16 14:56:01 +01:00
Erik Frojdh
37ebeaed7b Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2019-01-16 14:27:21 +01:00
Erik Frojdh
0f688bb249 unique_ptr in multiSlsDetectorClient 2019-01-16 14:27:08 +01:00
1ce8f3d092 udpSocket might still exist when error in creation, will conver to unique ptr later 2019-01-16 13:37:00 +01:00
10a34cce2d Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2019-01-16 13:29:11 +01:00
7fe9251a3b ctb server compiles 2019-01-16 13:28:50 +01:00
Erik Frojdh
901785b818 only destroy sem if it was initialized 2019-01-16 11:51:50 +01:00
Erik Frojdh
68545f2b26 removed pointer in multiSlsDetectorClient 2019-01-16 10:56:51 +01:00
Erik Frojdh
fe09f6d062 cleaning up slsDetectorCommand 2019-01-16 10:29:10 +01:00
9d9251293d Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2019-01-15 20:06:19 +01:00
d240ab7a29 moench server compiles 2019-01-15 20:06:11 +01:00
Erik Frojdh
dd93117b06 strcpy to sls::strcpy_safe 2019-01-15 17:36:21 +01:00
4b9e41e23b Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2019-01-15 17:16:19 +01:00
dd5bd60429 moench server: list.h fixed 2019-01-15 17:16:00 +01:00
Erik Frojdh
5e032c2c3e added tests for compiler version 2019-01-15 17:03:04 +01:00
Erik Frojdh
7303734b19 removing static libs and changing flags 2019-01-15 16:56:33 +01:00
8bc9fa54fc insignificant print 2019-01-15 13:18:40 +01:00
a9fb476543 changing signature from std::string to const std::string& for client receiver ip functions 2019-01-15 13:14:43 +01:00
f2669adda7 Merge branch 'refactor' into networkParameterFix 2019-01-15 12:12:53 +01:00
29c09ab381 bugfix udpport mixup for udpport2 in commands 2019-01-15 12:12:14 +01:00
8738700e8a insignificant 2019-01-15 11:58:59 +01:00
c1c302f740 removing networkPArameter function complete 2019-01-14 20:42:15 +01:00
Erik Frojdh
bc9d5718c9 typo 2019-01-14 15:38:48 +01:00
Erik Frojdh
991567ba1c strcpy and cleanup of configuremac 2019-01-14 15:33:35 +01:00
f0b29cfecc signatures fixed for setnetworkparameter 2019-01-14 15:26:58 +01:00
3c41ec4a7a in the process of splitting network parameter function 2019-01-14 10:03:40 +01:00
Erik Frojdh
172c9218d1 Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2019-01-11 16:56:43 +01:00
Erik Frojdh
b7582e93d3 working on removing undefined beaviour in configureMAC 2019-01-11 16:56:31 +01:00
5ae31bc438 receiver bug fix: dataprocess gappixels enable check to create tempbuffer always true 2019-01-11 15:21:16 +01:00
1941e90697 moench basic tearing down 2019-01-11 15:19:08 +01:00
363f4f1da0 Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2019-01-11 14:49:09 +01:00
1bbb352743 jungfrau server: pll moved out to remove redundancy 2019-01-11 14:48:58 +01:00
Erik Frojdh
5ea5e83236 removing local variable in slsDetector::setTCPSocket and adding some const string& 2019-01-11 14:38:56 +01:00
Erik Frojdh
b46fb5e9c4 deduce parallel call only on function signature and some const& 2019-01-11 12:33:11 +01:00
Erik Frojdh
0841df98d4 Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2019-01-11 11:27:52 +01:00
Erik Frojdh
1bd0b33806 functions not overriding base and unitialized use 2019-01-11 11:27:48 +01:00
de2ebad2ed receiver: removed unused silentmode from DataStreamer 2019-01-11 11:19:16 +01:00
2a988c7ffa Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2019-01-11 11:11:56 +01:00
94979b5824 changes to moench 2019-01-11 11:11:50 +01:00
Erik Frojdh
c6a597c3ec minor changes and removed W flag not found 2019-01-11 11:07:50 +01:00
288ef0a514 acquiringDone not used, removing 2019-01-10 17:35:06 +01:00
Erik Frojdh
818be3bb85 Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2019-01-10 16:38:50 +01:00
Erik Frojdh
d01e8d24c2 const std::string& for filenames etc. 2019-01-10 16:38:37 +01:00
b38a41493b bug fix, clock divider hangs due to incorrect number of arguments 2019-01-10 16:27:23 +01:00
Erik Frojdh
37c22dfeb2 range based loops and bool literals 2019-01-10 16:07:47 +01:00
Erik Frojdh
15235ab4fc default initializer for slsDetector 2019-01-10 16:02:29 +01:00
Erik Frojdh
230c335c29 using default initializer arguments for multiSlsDetector 2019-01-10 15:53:09 +01:00
Erik Frojdh
0f50b9f161 clang-tidy nullptr 2019-01-10 15:28:43 +01:00
Erik Frojdh
58f97d4f46 clang-tidy push_back -> emplace_back 2019-01-10 15:24:58 +01:00
42ed65076c jungfrau server works now, need to be tested with pedestals for dac 2019-01-10 12:22:43 +01:00
b5b5ce5c37 eiger server works 2019-01-10 11:03:31 +01:00
55c57e4c3f Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2019-01-10 10:35:58 +01:00
52785c6642 gotthard server works 2019-01-10 10:35:49 +01:00
Erik Frojdh
f815e7ffb6 long -> int64_t 2019-01-10 09:33:59 +01:00
0a2c1d1406 Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2019-01-09 17:41:19 +01:00
b1570bde9c updated max1932, modified ltc2620 2019-01-09 17:41:10 +01:00
Erik Frojdh
93ec5f5ef7 minor 2019-01-09 16:22:14 +01:00
Erik Frojdh
feaa276284 range based loops 2019-01-09 14:20:48 +01:00
Erik Frojdh
26f8ca3221 clang-tidy fix from NULL 0 etc to nullptr 2019-01-09 12:02:49 +01:00
Erik Frojdh
b7aac059c3 moved string stuff to string_utils.h/.cpp 2019-01-09 11:19:16 +01:00
81a49babda gotthard server fixed: also for revision 1 boards 2019-01-08 11:52:14 +01:00
553633651a insignificant 2019-01-08 07:52:24 +01:00
bf4ba9d08b some minor modifications 2019-01-08 06:57:04 +01:00
4b007b003a gotthard server works, fine tuning left 2019-01-08 06:52:28 +01:00
06a6d53a3f gotthard, cmakefiles language line removed 2019-01-04 16:34:34 +01:00
bfda07d262 Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2018-12-19 17:16:54 +01:00
a013734af8 moench and lookinginto max1932 2018-12-19 17:16:41 +01:00
Erik Frojdh
84a67870a0 slight cleanup of dumpDetectorSetup 2018-12-19 16:38:18 +01:00
f161d68efc fix in ltc, added moench, separated servers, left to do max1932, client side for moench and more detailed in ctb server side 2018-12-19 16:38:18 +01:00
Erik Frojdh
1ca8bf204a added string_utils and strcpy_safe 2018-12-19 15:44:21 +01:00
Erik Frojdh
89d9204e1c changed fd and some unused store 2018-12-19 12:24:02 +01:00
Erik Frojdh
88b9a93b3e fixed 2018-12-19 11:51:42 +01:00
Erik Frojdh
1af2d95462 Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2018-12-19 11:45:24 +01:00
Erik Frojdh
d07f53cd6f removed using namespace std in slsDetectorCommand.cpp 2018-12-19 11:31:49 +01:00
6533a474d1 Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2018-12-18 18:07:27 +01:00
Erik Frojdh
7a432befa3 removed gui from meta.yaml 2018-12-17 15:19:14 +01:00
Erik Frojdh
f68321af43 disable GUI in conda build 2018-12-17 15:05:22 +01:00
Erik Frojdh
2dd8093905 added project to CMakeLists and path for installing 2018-12-17 14:55:19 +01:00
Erik Frojdh
659faa9aaa added it back 2018-12-12 16:31:36 +01:00
Erik Frojdh
feeaebb7e4 removed branch condition 2018-12-12 16:28:58 +01:00
Erik Frojdh
547efc48e3 added conda recipe 2018-12-12 16:27:35 +01:00
1c59c5c4f4 in between 2018-12-12 11:20:39 +01:00
79693a38f5 in between 2018-12-12 11:20:27 +01:00
87f7563035 gothard server bug fix: conf gain val instead of always dynamic gain 2018-12-05 10:35:57 +01:00
a4de4bb475 Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2018-12-04 16:05:17 +01:00
b3393fc18b few gotthard bug fixes, including cs mask for adc 2018-12-04 16:02:24 +01:00
4e65a1d964 gotthard server: minor fixes 2018-12-04 14:12:11 +01:00
98b5e893b1 rd strobe fifo for only analog fifos 2018-12-03 14:33:32 +01:00
8f3f9caf2b almost done with ctb update, need to do slow adcs, split to moench and ctb 2018-11-30 10:39:26 +01:00
Erik Frojdh
d0665ce075 tests for socket 2018-11-29 12:21:02 +01:00
Erik Frojdh
284ce30a81 starting tests 2018-11-28 14:45:50 +01:00
c19c787904 adcreg command line print 2018-11-12 15:14:37 +01:00
e3a0c1373c created AD9252 for old gotthard modules in use, it runs in both roi and non roi for old and new modules, data needs to be checked by Jiaguo to confirm some parts of the code that has FIXME to be checked later 2018-11-12 13:51:51 +01:00
8942098a90 gotthard works, data to be authenticated when personnel available 2018-11-09 15:25:26 +01:00
89fa30ee4b client compiles 2018-11-08 18:10:03 +01:00
2e37eda9d9 gotthard compiles 2018-11-08 18:09:11 +01:00
a37be4b2e3 fixed eiger server compiler errors 2018-11-08 17:22:59 +01:00
7a99d4155a fixed jungfrau server compile errors 2018-11-08 17:20:41 +01:00
91dd176a0f gotthard server done editing 2018-11-08 17:15:48 +01:00
a99584a0da removed ndac from sls_detector_module and from the servers (not used), fixed setting module by eiger bug in sending number of channels 2018-11-02 17:08:25 +01:00
d1c8d0b01c jungfrau virtual server compiles 2018-11-02 14:52:27 +01:00
833f0c164c reciever hdf5 compiling error fixed 2018-11-02 14:31:36 +01:00
742d4e6cb7 bug fix for mac addr format check 2018-11-02 14:13:59 +01:00
d55c39ef08 minor print fixe 2018-11-02 14:09:40 +01:00
a47db85350 gappixels only for eiger in receiver 2018-11-02 13:56:59 +01:00
b43be57b6e jungfrau server works 2018-11-02 13:50:00 +01:00
92123069ce virtual eiger server compiled 2018-10-31 15:13:31 +01:00
17027962ea log fix for eiger server 2018-10-31 15:02:43 +01:00
e0cbbde01d log fix for servers. eiger server done 2018-10-31 14:57:22 +01:00
aec8c031de kept the same client interface:tb changed when fixing error codes/exceptions, modified multi print, fixed roi bug in indexing to sls 2018-10-31 14:30:30 +01:00
Erik Frojdh
3d40d5d058 format 2018-10-30 14:57:30 +01:00
Erik Frojdh
af550b4c70 Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2018-10-30 14:46:19 +01:00
70a1b87603 merge conflict resolved 2018-10-30 14:31:20 +01:00
dfa8cf7381 runs, prints right in reciever 2018-10-30 13:35:20 +01:00
92fc837eb4 compiles, but doesnt run 2018-10-29 15:23:52 +01:00
33ac63d14a still updating slsdetector.cpp 2018-10-26 17:40:18 +02:00
cf87b6ca83 still updating slsdetector.cpp 2018-10-25 16:24:05 +02:00
261849d69c eiger server compiles, client side of interface to do 2018-10-23 16:20:40 +02:00
Erik Frojdh
129e12fd97 moved test framework 2018-10-22 11:21:18 +02:00
Erik Frojdh
ab2eb607c8 replced usleep with chrono and thread 2018-10-19 15:47:36 +02:00
Erik Frojdh
5671f1c87b using split in add multiple detectors 2018-10-19 10:30:31 +02:00
Erik Frojdh
ff440f1325 clang-format on multi detector 2018-10-19 10:23:06 +02:00
dfad145e14 still in the process of interfacing det and client 2018-10-18 18:08:34 +02:00
Erik Frojdh
500304024d added base clang format 2018-10-18 17:06:43 +02:00
86fb843021 in the process of rewriting detector client interface 2018-10-18 10:58:48 +02:00
Erik Frojdh
c95bc84458 formatting 2018-10-17 18:13:01 +02:00
Erik Frojdh
058de39d40 const qualifying 2018-10-17 17:51:26 +02:00
Erik Frojdh
b44039361d renamed joinThread getter setter 2018-10-17 17:47:19 +02:00
Erik Frojdh
0070a79838 removed command threaded 2018-10-17 17:35:55 +02:00
Erik Frojdh
1d14dc6ff4 void signature of processData 2018-10-17 16:58:09 +02:00
Erik Frojdh
1d65063088 using std::mutex and std::thread in multi detector 2018-10-17 16:56:01 +02:00
Erik Frojdh
5c2ff84c0e removed unused variable numberofJobs in receiver implementation 2018-10-17 11:39:27 +02:00
Erik Frojdh
42c4e3e1a1 cleanup 2018-10-16 17:47:48 +02:00
Erik Frojdh
014dfaa251 moved to vector of unique pointer in slsReceiverImplementation 2018-10-16 17:30:43 +02:00
Erik Frojdh
b50d359ee6 better name 2018-10-16 15:53:01 +02:00
Erik Frojdh
b5a2c91873 removed printf with same source and dest 2018-10-16 15:50:51 +02:00
Erik Frojdh
3c9b1884d3 removed conditional operator and moved to range for 2018-10-16 15:25:15 +02:00
Erik Frojdh
66e79dc9a9 refactoring startReadout 2018-10-16 15:08:59 +02:00
Erik Frojdh
5b8dfd7943 range based for loops for reset acq count 2018-10-16 14:34:34 +02:00
178b832223 funcs name only in c++, bug fix:slsdetectorusers not deleting multislsdetectorcommand object, bug fix: programfpga does not delete fpgasrc malloc if returning in failure 2018-10-12 17:37:39 +02:00
8df63b7767 Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2018-10-12 17:03:28 +02:00
8382d0f5f9 receiver tcp interface updated 2018-10-12 17:03:19 +02:00
Erik Frojdh
1e2ffae690 setNetworkParameter dont split strings 2018-10-12 11:56:47 +02:00
Erik Frojdh
f6357a667f setSettingsDir works as the other functions 2018-10-12 11:39:11 +02:00
Erik Frojdh
4cdd766a8e cleaning readConfigFile 2018-10-12 09:57:46 +02:00
Erik Frojdh
c3289a973f cleaned up read config file slightly 2018-10-11 17:45:57 +02:00
Erik Frojdh
e921dbb6a7 minor 2018-10-11 16:46:34 +02:00
Erik Frojdh
1895ee1ebe minor 2018-10-11 16:19:44 +02:00
Erik Frojdh
22e8c52bd8 more style 2018-10-11 16:08:02 +02:00
c31c851e88 moved communication, jungfrau 2018-10-11 15:58:49 +02:00
565739f6a2 eiger server, moved comunication_funcs 2018-10-11 15:55:08 +02:00
43c6cae25b Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2018-10-11 15:53:42 +02:00
d2c8c0a2eb gotthard server, moved communication_funcs to slsDetectorServer 2018-10-11 15:53:30 +02:00
Erik Frojdh
d96cbe02a2 Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2018-10-11 15:52:48 +02:00
Erik Frojdh
795e147e7d stylistic cleanup 2018-10-11 15:52:39 +02:00
Erik Frojdh
f806759af3 const string& 2018-10-11 15:25:29 +02:00
Erik Frojdh
316ba01297 size of writeConfigFile 2018-10-11 15:19:26 +02:00
Erik Frojdh
a28932bb6c Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2018-10-11 14:43:47 +02:00
Erik Frojdh
4d69b6d3a1 added address sanitizer for debug mode 2018-10-11 14:43:32 +02:00
302f31678f updated gotthard binary, not run 2018-10-11 14:40:52 +02:00
32924def33 updated jungfrau server binary 2018-10-11 14:33:13 +02:00
ee20932392 Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2018-10-11 14:20:58 +02:00
0ee7f67965 detector servers moved out of slsdetector software, eiger server compiles with new headers 2018-10-11 14:20:50 +02:00
c24a9b223c combined all the funcs into one, servers need to be recompiled 2018-10-11 13:57:47 +02:00
Erik Frojdh
f7809bda3b Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2018-10-11 13:54:37 +02:00
Erik Frojdh
5682466356 remove pointers and try block from get detector type 2018-10-11 13:54:25 +02:00
b82fca2c8e removed warnings 2018-10-11 13:32:24 +02:00
576de404d4 Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2018-10-11 12:25:27 +02:00
5a356534e6 refactor receiver client interface, moved defs into one sls_detector_defs.h 2018-10-11 12:25:18 +02:00
Erik Frojdh
f735c86b93 removing more pointers 2018-10-11 12:14:46 +02:00
Erik Frojdh
6aa0029580 changing pointers to local variables 2018-10-11 12:08:07 +02:00
Erik Frojdh
2216574d34 check empty instead of strcmp 2018-10-11 11:51:54 +02:00
d0950ba001 Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2018-10-10 18:11:23 +02:00
f69e9d0df4 refactored client interface (client ot receiveR) 2018-10-10 18:09:14 +02:00
Erik Frojdh
8dc0d72028 minor formatting 2018-10-10 17:46:28 +02:00
Erik Frojdh
5f6f276f70 moved initDetectorStructure into initSharedMemory 2018-10-10 17:41:13 +02:00
Erik Frojdh
fd7060ef6c removed pointer to shared memory in some multi functions 2018-10-10 14:18:47 +02:00
e1d570e8ce client specifies index of receiver returned error, skeleton of including clientinterface in receiver 2018-10-10 13:15:16 +02:00
6d9530ee1d Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2018-10-10 12:24:20 +02:00
b981fe78ef connected command to execute command in receiver pc 2018-10-10 12:23:55 +02:00
Erik Frojdh
2cd0841ea3 Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2018-10-10 12:17:36 +02:00
Erik Frojdh
74bd223fda minor cleanup 2018-10-10 12:17:28 +02:00
Erik Frojdh
6147383677 commented out concatResultOrPos which seems not to be used 2018-10-10 12:01:30 +02:00
5e7e7d3c33 moved client interface to common folder as receiver wills tart using it as well 2018-10-10 12:00:47 +02:00
Erik Frojdh
938dd5e06c Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2018-10-10 11:55:49 +02:00
Erik Frojdh
d685cb8ff4 moved detectors and zmqSocket to unique pointers 2018-10-10 11:55:37 +02:00
78bfc9d0a5 insignificant, renamed recieverInterface to have a capital letter in class name 2018-10-10 11:43:35 +02:00
4b166b726e bug fix, start receiver fail does not return 2018-10-10 11:24:17 +02:00
9ca163dfc9 adding std::launch:async parameter to make it parallel by default for sl7 (seems default for fedora) 2018-10-10 10:51:32 +02:00
f2da42a305 overwrite enabled by default 2018-10-10 10:28:38 +02:00
64f4188a00 removed ms mutex , not used anyway 2018-10-10 10:16:41 +02:00
17a6322f7c receiver runs but does not overwrite due to wx, async doesnt seems parallel problem, acquire gets stuck 2018-10-10 10:12:58 +02:00
8151f1d5fe receiver compiles 2018-10-09 18:02:47 +02:00
7d5b24fe33 solved errors with client compile, rxr yet to do 2018-10-09 13:43:50 +02:00
4bcc24a59f some more changes, yet to do receiver 2018-10-09 12:31:12 +02:00
45b00c4e7d gotthard server updated, yet to run 2018-10-09 10:24:17 +02:00
923a7e8936 eiger and jungfrau server compiles, gotthard and receiver left to do 2018-10-08 14:38:35 +02:00
b9f97f42a6 recovered readme.md 2018-10-08 10:47:16 +02:00
f7a6938366 client moved everythign from common files to slsSupportLin/include 2018-10-08 10:45:56 +02:00
70f55ff788 removed MySocketTCP.cpp 2018-10-08 10:24:57 +02:00
7ffa72092f moved patterngenerator to slsDetectorServers, removed commitVersions 2018-10-08 10:12:28 +02:00
1c78400369 client compiles, more changes required 2018-10-08 09:34:08 +02:00
b5c35ddeac slsdetector and users updated to reflect new signatures, not yet compiled 2018-10-05 15:28:25 +02:00
ab8b07f2ee client multi is updated with argument c++11 threading, need to update sls detector with arguments and removing imod 2018-10-04 17:24:37 +02:00
1c70f9ec65 mutli.cpp updated half (without masking multi error and no check on detectors boundaries for adding exceptions later. done upto savecalibrationfile 2018-10-03 17:56:04 +02:00
251a7c2446 Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2018-10-03 15:28:22 +02:00
cf37725e04 updated command.cpp to have all the indices including default ones 2018-10-03 15:28:08 +02:00
Erik Frojdh
287cd118b0 example 2018-10-03 14:56:56 +02:00
Erik Frojdh
21ca289ebf Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2018-10-03 14:51:44 +02:00
Erik Frojdh
02acaf13c5 added example 2018-10-03 14:51:35 +02:00
c6d2902539 updating indices in slsdetectorcommand 2018-10-03 14:31:43 +02:00
Erik Frojdh
2aa7e7d2ff added catch for unit testing 2018-10-03 14:04:40 +02:00
Erik Frojdh
fefdf8e7d6 slsSupportLib and parallel call using variadic templates 2018-10-03 14:02:41 +02:00
6bfc212f19 client multi.cpp some more changes 2018-10-03 12:53:50 +02:00
a1b24a637b client multi.cpp modified common out of bounds error 2018-10-03 12:47:20 +02:00
40ae74bb99 client multi.cpp getid and checkversioncompatibility are examples of how it might look like 2018-10-03 12:31:00 +02:00
586c664a43 client multi.h comments and some signature updated 2018-10-03 11:57:18 +02:00
fdcd633769 client: multi added indices for detpos in function signature for required 2018-10-03 11:41:50 +02:00
70ea4b48c3 client: removed slsDetectorutils and postprocessing. yet to compile, yet to add detpos index for every multi sls detector command and call from command interface, removed multiple threading, yet to interface with eriks single template for multiple threading 2018-10-03 11:15:39 +02:00
dafbc970e3 client stage2 ongoing, utils removed but not compile ready; left to do imod for every multi, connect client to multi 2018-10-02 18:13:00 +02:00
100c1b81f8 moved all the common header files from receiverSoftware to commonFiles 2018-10-02 16:32:37 +02:00
757bc89d05 moved common files outside slsDetectorSoftware 2018-10-02 16:07:53 +02:00
97934e323c removed actions 2018-10-02 15:51:58 +02:00
f4cfafb2bb removed calibration folder 2018-10-02 15:17:41 +02:00
c248b12455 refactored ONLY THE CLIENT first stage, compiles 2018-10-02 15:15:35 +02:00
def79807f6 merge conflict resolved from 4.0.0 2018-09-28 16:28:21 +02:00
Gemma Tinti
c52025dd7c manual 2018-09-21 12:04:33 +02:00
Gemma Tinti
7b4910ee87 branch 2018-09-17 14:59:08 +02:00
Gemma Tinti
021212372b root converter 2018-09-17 14:54:19 +02:00
Gemma Tinti
e8612a481c receonstruction 2018-09-17 12:47:18 +02:00
Gemma Tinti
8773de93e9 server first 2018-09-17 11:03:31 +02:00
Gemma Tinti
ef20fa6f3c start documenting cbf converter 2018-09-14 18:05:28 +02:00
Gemma Tinti
30e060b3b1 gap pixels basics 2018-09-04 11:16:31 +02:00
Gemma Tinti
29ba9ae6f7 some updates for 4.0.0 2018-09-03 16:34:06 +02:00
Gemma Tinti
2b2b53f598 update 2018-09-03 13:57:21 +02:00
Gemma Tinti
1ebb07198a deadtimesubperiod 2018-08-31 21:36:38 +02:00
ed0b22b500 updated binaries 2018-08-24 13:18:51 +02:00
548036a602 selective merge from branch 4.0.0 conflict fix 2018-08-24 13:12:55 +02:00
1b55fdad86 merged selected patches from 4.0.0 branch 2018-08-24 13:10:16 +02:00
1528 changed files with 795414 additions and 60724 deletions

6
.clang-format Normal file
View File

@@ -0,0 +1,6 @@
BasedOnStyle: LLVM
IndentWidth: 4
UseTab: Never
ColumnLimit: 100
AlignConsecutiveAssignments: false

7
.clang-tidy Normal file
View 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
...

9
.gitignore vendored
View File

@@ -1,8 +1,17 @@
.cproject
.project
bin/
.settings
*.aux
*.log
*.out
*.toc
*.o
build
docs/
RELEASE.txt
*.pyc
*/__pycache__/*

3
.gitmodules vendored Normal file
View File

@@ -0,0 +1,3 @@
[submodule "python/pybind11"]
path = python/pybind11
url = https://github.com/pybind/pybind11.git

48
.travis.yml Normal file
View File

@@ -0,0 +1,48 @@
sudo: false
language: cpp
os: linux
env:
matrix:
- CONDA_PY=3.6
- CONDA_PY=3.7
dist: trusty
install:
- sudo apt-get update
- ldd --version
- wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh;
- bash miniconda.sh -b -p $HOME/miniconda
- export PATH="$HOME/miniconda/bin:$PATH"
- rm -f miniconda.sh
- hash -r
- conda config --set always_yes yes --set changeps1 no
- conda config --add channels conda-forge
- conda config --add channels slsdetectorgroup
- conda update conda
- conda update --all
- conda install conda-build anaconda-client
# Useful for debugging any issues with conda
- conda info -a
# Replace dep1 dep2 ... with your dependencies
- conda create -q -n test-environment python=$CONDA_PY
- source activate test-environment
- conda-build .
script:
- echo "No test scripts to be run!"
deploy:
provider: script
script: find $HOME/miniconda/conda-bld/${TRAVIS_OS_NAME}-64 -name "*.tar.bz2" -exec anaconda -t $CONDA_TOKEN upload --force {} \;
on:
all_branches: true

134
CMakeLists.txt Normal file
View File

@@ -0,0 +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})
# 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()
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)
find_package(Doxygen)
find_package(ZeroMQ 4 REQUIRED)
# 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 (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()

91
README.md Normal file
View File

@@ -0,0 +1,91 @@
### Documentation
Detailed documentation can be found on the [official site.](https://www.psi.ch/detectors/users-support)
### Binaries
Documentation to obtain the binaries via the conda package is available for [lib](https://github.com/slsdetectorgroup/sls_detector_lib) and [gui](https://github.com/slsdetectorgroup/sls_detector_gui)
### Source code
One can also obtain the source code from this repository and compile while realizing the setup dependencies as required.
```
git clone https://github.com/slsdetectorgroup/slsDetectorPackage.git
```
#### Setup dependencies
* Gui Client <br>
Requirements: Qt 4.8 and Qwt 6.0
```
export QTDIR=/usr/local/Trolltech/
export QWTDIR=/usr/local/qwt-6.0.1/
```
If either of them does not exist, the GUI client will not be built.
* Advanced user Calibration wizards<br>
Requirements: ROOT
```
export ROOTSYS=/usr/local/root-5.34
```
#### Compilation
Compiling can be done in two ways.
**1. Compile using script cmk.sh**<br>
After compiling, the libraries and executables will be found in `slsDetectorPackage/build/bin` directory<br>
Usage: [-c] [-b] [-h] [-d HDF5 directory] [-j]<br>
* -[no option]: only make<br>
* -c: Clean<br>
* -b: Builds/Rebuilds CMake files normal mode<br>
* -h: Builds/Rebuilds Cmake files with HDF5 package<br>
* -d: HDF5 Custom Directory<br>
* -t: Build/Rebuilds only text client<br>
* -r: Build/Rebuilds only receiver<br>
* -g: Build/Rebuilds only gui<br>
* -j: Number of threads to compile through<br>
* -e: Debug mode
Basic Option:
./cmk.sh -b
For only make:
./cmk.sh
For make clean;make:
./cmk.sh -c
For using hdf5 without custom dir /blabla:
./cmk.sh -h -d /blabla
For rebuilding cmake without hdf5
./cmk.sh -b
For using multiple cores to compile faster:
./cmk.sh -j9<br>
For rebuilding only certain sections<br>
./cmk.sh -tg #only text client and gui<br>
./cmk.sh -r #only receiver<br>
**2. Compile without script**<br>
Use cmake to create out-of-source builds, by creating a build folder parallel to source directory.
```
$ cd ..
$ mkdir slsDetectorPackage-build
$ cd slsDetectorPackage-build
$ 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 -DSLS_USE_HDF5=ON
```
After compiling, the libraries and executables will be found at `bin` directory
```
$ ls bin/
gui_client libSlsDetector.a libSlsDetector.so libSlsReceiver.a libSlsReceiver.so
sls_detector_acquire sls_detector_get slsDetectorGui sls_detector_help sls_detector_put slsReceiver slsMultiReceiver
```

0
RELEASE.txt Normal file
View File

14934
catch/catch.hpp Normal file

File diff suppressed because it is too large Load Diff

11
cmake/FindCBF.cmake Normal file
View File

@@ -0,0 +1,11 @@
FIND_PATH (CBF_INCLUDE_DIR
${CBF_DIR}/include
${CBF_DIR}/include/cbflib
)
FIND_LIBRARY (CBF_LIBRARY
NAMES cbf
HINTS ${CBF_DIR}/lib
)
INCLUDE ( FindPackageHandleStandardArgs )
FIND_PACKAGE_HANDLE_STANDARD_ARGS (CBF DEFAULT_MSG CBF_LIBRARY CBF_INCLUDE_DIR )

118
cmake/FindQwt.cmake Normal file
View File

@@ -0,0 +1,118 @@
# Qt Widgets for Technical Applications
# available at http://www.http://qwt.sourceforge.net/
#
# The module defines the following variables:
# QWT_FOUND - the system has Qwt
# QWT_INCLUDE_DIR - where to find qwt_plot.h
# QWT_INCLUDE_DIRS - qwt includes
# QWT_LIBRARY - where to find the Qwt library
# QWT_LIBRARIES - aditional libraries
# QWT_MAJOR_VERSION - major version
# QWT_MINOR_VERSION - minor version
# QWT_PATCH_VERSION - patch version
# QWT_VERSION_STRING - version (ex. 5.2.1)
# QWT_ROOT_DIR - root dir (ex. /usr/local)
#=============================================================================
# Copyright 2010-2013, Julien Schueller
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
#
# 1. Redistributions of source code must retain the above copyright notice, this
# list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# The views and conclusions contained in the software and documentation are those
# of the authors and should not be interpreted as representing official policies,
# either expressed or implied, of the FreeBSD Project.
#=============================================================================
find_path ( QWT_INCLUDE_DIR
NAMES qwt_plot.h
HINTS $ENV{QWTDIR} $ENV{QWTDIR}/src ${QT_INCLUDE_DIR}
PATH_SUFFIXES qwt qwt-qt3 qwt-qt4 qwt-qt5
)
set ( QWT_INCLUDE_DIRS ${QWT_INCLUDE_DIR} )
# version
set ( _VERSION_FILE ${QWT_INCLUDE_DIR}/qwt_global.h )
if ( EXISTS ${_VERSION_FILE} )
file ( STRINGS ${_VERSION_FILE} _VERSION_LINE REGEX "define[ ]+QWT_VERSION_STR" )
if ( _VERSION_LINE )
string ( REGEX REPLACE ".*define[ ]+QWT_VERSION_STR[ ]+\"(.*)\".*" "\\1" QWT_VERSION_STRING "${_VERSION_LINE}" )
string ( REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\1" QWT_MAJOR_VERSION "${QWT_VERSION_STRING}" )
string ( REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\2" QWT_MINOR_VERSION "${QWT_VERSION_STRING}" )
string ( REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\3" QWT_PATCH_VERSION "${QWT_VERSION_STRING}" )
endif ()
endif ()
# check version
set ( _QWT_VERSION_MATCH TRUE )
if ( Qwt_FIND_VERSION AND QWT_VERSION_STRING )
if ( Qwt_FIND_VERSION_EXACT )
if ( NOT Qwt_FIND_VERSION VERSION_EQUAL QWT_VERSION_STRING )
set ( _QWT_VERSION_MATCH FALSE )
endif ()
else ()
if ( QWT_VERSION_STRING VERSION_LESS Qwt_FIND_VERSION )
set ( _QWT_VERSION_MATCH FALSE )
endif ()
endif ()
endif ()
find_library ( QWT_LIBRARY
NAMES qwt qwt-qt3 qwt-qt4 qwt-qt5
HINTS $ENV{QWTDIR}/lib ${QT_LIBRARY_DIR}
)
set ( QWT_LIBRARIES ${QWT_LIBRARY} )
# try to guess root dir from include dir
if ( QWT_INCLUDE_DIR )
string ( REGEX REPLACE "(.*)/include.*" "\\1" QWT_ROOT_DIR ${QWT_INCLUDE_DIR} )
# try to guess root dir from library dir
elseif ( QWT_LIBRARY )
string ( REGEX REPLACE "(.*)/lib[/|32|64].*" "\\1" QWT_ROOT_DIR ${QWT_LIBRARY} )
endif ()
# handle the QUIETLY and REQUIRED arguments
include ( FindPackageHandleStandardArgs )
if ( CMAKE_VERSION LESS 2.8.3 )
find_package_handle_standard_args( Qwt DEFAULT_MSG QWT_LIBRARY QWT_INCLUDE_DIR _QWT_VERSION_MATCH )
else ()
find_package_handle_standard_args( Qwt REQUIRED_VARS QWT_LIBRARY QWT_INCLUDE_DIR _QWT_VERSION_MATCH VERSION_VAR QWT_VERSION_STRING )
endif ()
mark_as_advanced (
QWT_LIBRARY
QWT_LIBRARIES
QWT_INCLUDE_DIR
QWT_INCLUDE_DIRS
QWT_MAJOR_VERSION
QWT_MINOR_VERSION
QWT_PATCH_VERSION
QWT_VERSION_STRING
QWT_ROOT_DIR
)

167
cmake/FindROOT.cmake Normal file
View File

@@ -0,0 +1,167 @@
# - Finds ROOT instalation
# This module sets up ROOT information
# It defines:
# ROOT_FOUND If the ROOT is found
# ROOT_INCLUDE_DIR PATH to the include directory
# ROOT_LIBRARIES Most common libraries
# ROOT_GUI_LIBRARIES Most common libraries + GUI
# ROOT_LIBRARY_DIR PATH to the library directory
find_program(ROOT_CONFIG_EXECUTABLE root-config
PATHS $ENV{ROOTSYS}/bin)
if(NOT ROOT_CONFIG_EXECUTABLE)
set(ROOT_FOUND FALSE)
else()
set(ROOT_FOUND TRUE)
execute_process(
COMMAND ${ROOT_CONFIG_EXECUTABLE} --prefix
OUTPUT_VARIABLE ROOTSYS
OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(
COMMAND ${ROOT_CONFIG_EXECUTABLE} --version
OUTPUT_VARIABLE ROOT_VERSION
OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(
COMMAND ${ROOT_CONFIG_EXECUTABLE} --incdir
OUTPUT_VARIABLE ROOT_INCLUDE_DIR
OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(
COMMAND ${ROOT_CONFIG_EXECUTABLE} --libs
OUTPUT_VARIABLE ROOT_LIBRARIES
OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(
COMMAND ${ROOT_CONFIG_EXECUTABLE} --glibs
OUTPUT_VARIABLE ROOT_GUI_LIBRARIES
OUTPUT_STRIP_TRAILING_WHITESPACE)
#set(ROOT_LIBRARIES ${ROOT_LIBRARIES} -lThread -lMinuit -lHtml -lVMC -lEG -lGeom -lTreePlayer -lXMLIO -lProof)
#set(ROOT_LIBRARIES ${ROOT_LIBRARIES} -lProofPlayer -lMLP -lSpectrum -lEve -lRGL -lGed -lXMLParser -lPhysics)
set(ROOT_LIBRARY_DIR ${ROOTSYS}/lib)
# Make variables changeble to the advanced user
mark_as_advanced(ROOT_CONFIG_EXECUTABLE)
if(NOT ROOT_FIND_QUIETLY)
message(STATUS "Found ROOT ${ROOT_VERSION} in ${ROOTSYS}")
endif()
endif()
include(CMakeParseArguments)
find_program(ROOTCINT_EXECUTABLE rootcint PATHS $ENV{ROOTSYS}/bin)
find_program(GENREFLEX_EXECUTABLE genreflex PATHS $ENV{ROOTSYS}/bin)
find_package(GCCXML)
#----------------------------------------------------------------------------
# function ROOT_GENERATE_DICTIONARY( dictionary
# header1 header2 ...
# LINKDEF linkdef1 ...
# OPTIONS opt1...)
function(ROOT_GENERATE_DICTIONARY dictionary)
CMAKE_PARSE_ARGUMENTS(ARG "" "" "LINKDEF;OPTIONS" "" ${ARGN})
#---Get the list of header files-------------------------
set(headerfiles)
foreach(fp ${ARG_UNPARSED_ARGUMENTS})
file(GLOB files ${fp})
if(files)
foreach(f ${files})
if(NOT f MATCHES LinkDef)
set(headerfiles ${headerfiles} ${f})
endif()
endforeach()
else()
set(headerfiles ${headerfiles} ${fp})
endif()
endforeach()
#---Get the list of include directories------------------
get_directory_property(incdirs INCLUDE_DIRECTORIES)
set(includedirs)
foreach( d ${incdirs})
set(includedirs ${includedirs} -I${d})
endforeach()
#---Get LinkDef.h file------------------------------------
set(linkdefs)
foreach( f ${ARG_LINKDEF})
if( IS_ABSOLUTE ${f})
set(linkdefs ${linkdefs} ${f})
else()
if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/inc/${f})
set(linkdefs ${linkdefs} ${CMAKE_CURRENT_SOURCE_DIR}/inc/${f})
else()
set(linkdefs ${linkdefs} ${CMAKE_CURRENT_SOURCE_DIR}/${f})
endif()
endif()
endforeach()
#---call rootcint------------------------------------------
add_custom_command(OUTPUT ${dictionary}.cxx ${dictionary}.h
COMMAND ${ROOTCINT_EXECUTABLE} -cint -f ${dictionary}.cxx
-c ${ARG_OPTIONS} ${includedirs} ${headerfiles} ${linkdefs}
DEPENDS ${headerfiles} ${linkdefs})
endfunction()
#----------------------------------------------------------------------------
# function REFLEX_GENERATE_DICTIONARY(dictionary
# header1 header2 ...
# SELECTION selectionfile ...
# OPTIONS opt1...)
function(REFLEX_GENERATE_DICTIONARY dictionary)
CMAKE_PARSE_ARGUMENTS(ARG "" "" "SELECTION;OPTIONS" "" ${ARGN})
#---Get the list of header files-------------------------
set(headerfiles)
foreach(fp ${ARG_UNPARSED_ARGUMENTS})
file(GLOB files ${fp})
if(files)
foreach(f ${files})
set(headerfiles ${headerfiles} ${f})
endforeach()
else()
set(headerfiles ${headerfiles} ${fp})
endif()
endforeach()
#---Get Selection file------------------------------------
if(IS_ABSOLUTE ${ARG_SELECTION})
set(selectionfile ${ARG_SELECTION})
else()
set(selectionfile ${CMAKE_CURRENT_SOURCE_DIR}/${ARG_SELECTION})
endif()
#---Get the list of include directories------------------
get_directory_property(incdirs INCLUDE_DIRECTORIES)
set(includedirs)
foreach( d ${incdirs})
set(includedirs ${includedirs} -I${d})
endforeach()
#---Get preprocessor definitions--------------------------
get_directory_property(defs COMPILE_DEFINITIONS)
foreach( d ${defs})
set(definitions ${definitions} -D${d})
endforeach()
#---Nanes and others---------------------------------------
set(gensrcdict ${dictionary}.cpp)
if(MSVC)
set(gccxmlopts "--gccxmlopt=\"--gccxml-compiler cl\"")
else()
#set(gccxmlopts "--gccxmlopt=\'--gccxml-cxxflags -m64 \'")
set(gccxmlopts)
endif()
#set(rootmapname ${dictionary}Dict.rootmap)
#set(rootmapopts --rootmap=${rootmapname} --rootmap-lib=${libprefix}${dictionary}Dict)
#---Check GCCXML and get path-----------------------------
if(GCCXML)
get_filename_component(gccxmlpath ${GCCXML} PATH)
else()
message(WARNING "GCCXML not found. Install and setup your environment to find 'gccxml' executable")
endif()
#---Actual command----------------------------------------
add_custom_command(OUTPUT ${gensrcdict} ${rootmapname}
COMMAND ${GENREFLEX_EXECUTABLE} ${headerfiles} -o ${gensrcdict} ${gccxmlopts} ${rootmapopts} --select=${selectionfile}
--gccxmlpath=${gccxmlpath} ${ARG_OPTIONS} ${includedirs} ${definitions}
DEPENDS ${headerfiles} ${selectionfile})
endfunction()

112
cmake/FindZeroMQ.cmake Normal file
View 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()

View 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 ()

View 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@")

View 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
View 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)

View 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

205
cmk.sh Executable file
View File

@@ -0,0 +1,205 @@
#!/bin/bash
BUILDDIR="build"
HDF5DIR="/opt/hdf5v1.10.0"
HDF5=0
COMPILERTHREADS=0
TEXTCLIENT=0
RECEIVER=0
GUI=0
DEBUG=0
CLEAN=0
REBUILD=0
CMAKE_PRE=""
CMAKE_POST=""
usage() { echo -e "
Usage: $0 [-c] [-b] [-h] [-d <HDF5 directory>] [-j]
-[no option]: only make
-c: Clean
-b: Builds/Rebuilds CMake files normal mode
-h: Builds/Rebuilds Cmake files with HDF5 package
-d: HDF5 Custom Directory
-t: Build/Rebuilds only text client
-r: Build/Rebuilds only receiver
-g: Build/Rebuilds only gui
-j: Number of threads to compile through
-e: Debug mode
For only make:
./cmk.sh
For make clean;make:
./cmk.sh -c
For using hdf5 without default dir /opt/hdf5v1.10.0:
./cmk.sh -h
For using hdf5 without custom dir /blabla:
./cmk.sh -h -d /blabla
For rebuilding cmake without hdf5 (Use this if you had previously run with hdf5 and now you dont want it)
./cmk.sh -b
For using multiple cores to compile faster:
(all these options work)
./cmk.sh -j9
./cmk.sh -cj9 #with clean
./cmk.sh -hj9 #with hdf5
./cmk.sh -j9 -h #with hdf
For rebuilding only certain sections
./cmk.sh -tg #only text client and gui
./cmk.sh -r #only receiver
" ; exit 1; }
while getopts ":bchd:j:trge" opt ; do
case $opt in
b)
echo "Building of CMake files Required"
REBUILD=1
;;
c)
echo "Clean Required"
CLEAN=1
;;
h)
echo "Building of CMake files with HDF5 option Required"
HDF5=1
REBUILD=1
;;
d)
echo "New HDF5 directory: $OPTARG"
HDF5DIR=$OPTARG
;;
j)
echo "Number of compiler threads: $OPTARG"
COMPILERTHREADS=$OPTARG
;;
t)
echo "Compiling Options: Text Client"
TEXTCLIENT=1
REBUILD=1
;;
r)
echo "Compiling Options: Receiver"
RECEIVER=1
REBUILD=1
;;
g)
echo "Compiling Options: GUI"
GUI=1
REBUILD=1
;;
e)
echo "Compiling Options: Debug"
DEBUG=1
;;
\?)
echo "Invalid option: -$OPTARG"
usage
exit 1
;;
:)
echo "Option -$OPTARG requires an argument."
usage
exit 1
;;
esac
done
if [ $TEXTCLIENT -eq 0 ] && [ $RECEIVER -eq 0 ] && [ $GUI -eq 0 ]; then
# 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+=" -DSLS_USE_TEXTCLIENT=ON "
echo "Compile Option: TextClient"
fi
if [ $RECEIVER -eq 1 ]; then
CMAKE_POST+=" -DSLS_USE_RECEIVER=ON "
echo "Compile Option: Receiver"
fi
if [ $GUI -eq 1 ]; then
CMAKE_POST+=" -DSLS_USE_GUI=ON "
echo "Compile Option: GUI"
fi
fi
#build dir doesnt exist
if [ ! -d "$BUILDDIR" ] ; then
echo "No Build Directory. Building of Cmake files required"
mkdir $BUILDDIR;
REBUILD=1
else
#rebuild not requested, but no makefile
if [ $REBUILD -eq 0 ] && [ ! -f "$BUILDDIR/Makefile" ] ; then
echo "No Makefile. Building of Cmake files required"
REBUILD=1
fi
fi
#Debug
if [ $DEBUG -eq 1 ]; then
CMAKE_POST+=" -DCMAKE_BUILD_TYPE=Debug "
echo "Debug Option enabled"
fi
#hdf5 rebuild
if [ $HDF5 -eq 1 ]; then
CMAKE_PRE+="HDF5_ROOT="$HDF5DIR
CMAKE_POST+=" -DSLS_USE_HDF5=ON "
#normal mode rebuild
else
CMAKE_POST+=" -DSLS_USE_HDF5=OFF "
fi
#enter build dir
cd $BUILDDIR;
echo "in "$PWD
#cmake
if [ $REBUILD -eq 1 ]; then
rm -f CMakeCache.txt
BUILDCOMMAND="$CMAKE_PRE cmake $CMAKE_POST .."
echo $BUILDCOMMAND
eval $BUILDCOMMAND
fi
#make clean
if [ $CLEAN -eq 1 ]; then
make clean;
fi
#make
if [ $COMPILERTHREADS -gt 0 ]; then
BUILDCOMMAND="make -j$COMPILERTHREADS"
echo $BUILDCOMMAND
eval $BUILDCOMMAND
else
make
fi

15
conda-recepie/build.sh Normal file
View File

@@ -0,0 +1,15 @@
mkdir build
mkdir install
cd build
cmake .. \
-DCMAKE_PREFIX_PATH=$CONDA_PREFIX \
-DCMAKE_INSTALL_PREFIX=install \
-DSLS_USE_TEXTCLIENT=ON \
-DSLS_USE_RECEIVER=ON \
-DSLS_USE_GUI=OFF \
-DCMAKE_BUILD_TYPE=Release \
-DSLS_USE_HDF5=OFF\
cmake --build . -- -j10
cmake --build . --target install

15
conda-recepie/copy_gui.sh Normal file
View File

@@ -0,0 +1,15 @@
mkdir $PREFIX/lib
mkdir $PREFIX/bin
mkdir $PREFIX/include
#No libs for gui?
#Binaries
cp build/bin/gui_client $PREFIX/bin/.
cp build/bin/slsDetectorGui $PREFIX/bin/.
#Which headers do we need for development??
# cp include/some_lib.h $PREFIX/include/.

22
conda-recepie/copy_lib.sh Normal file
View File

@@ -0,0 +1,22 @@
mkdir $PREFIX/lib
mkdir $PREFIX/bin
mkdir $PREFIX/include
mkdir $PREFIX/include/slsDetectorPackage
#Shared and static libraries
cp build/bin/libSlsDetector.so $PREFIX/lib/.
cp build/bin/libSlsReceiver.so $PREFIX/lib/.
cp build/bin/libSlsSupport.so $PREFIX/lib/.
#Binaries
cp build/bin/sls_detector_acquire $PREFIX/bin/.
cp build/bin/sls_detector_get $PREFIX/bin/.
cp build/bin/sls_detector_put $PREFIX/bin/.
cp build/bin/sls_detector_help $PREFIX/bin/.
cp build/bin/slsReceiver $PREFIX/bin/.
cp build/bin/slsMultiReceiver $PREFIX/bin/.
#Which headers do we need for development??
cp build/install/include/* $PREFIX/include/slsDetectorPackage/
# cp include/some_lib.h $PREFIX/include/.

98
conda-recepie/meta.yaml Normal file
View File

@@ -0,0 +1,98 @@
package:
name: sls_detector_software
version: "refactor"
source:
- path: ..
build:
number: 0
rpaths:
- lib/
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]
host:
- libstdcxx-ng
- libgcc-ng
- libpng >=1.6.32,<1.6.35
- xorg-libx11
- xorg-libice
- xorg-libxext
- xorg-libsm
- xorg-libxau
- xorg-libxrender
- xorg-libxfixes
run:
- libstdcxx-ng
- libgcc-ng
outputs:
- name: sls_detector_lib
version: "refactor"
script: copy_lib.sh
requirements:
build:
- {{ compiler('c') }}
- {{compiler('cxx')}}
# - 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

58
configure vendored Executable file
View File

@@ -0,0 +1,58 @@
##!/bin/bash
: ${INSTALLROOT=$PWD}
read -p "Installation directory [default:\"$INSTALLROOT\"]:" -e t3
if [ -z "$t3" ]
then
echo
else
INSTALLROOT=$t3
fi
echo "INSTALLROOT will be \"$INSTALLROOT\""
export INSTALLROOT
: ${BINDIR="bin"}
read -p "Binaries directory [default:\"$BINDIR\"]:" -e t4
if [ -z "$t4" ]
then
BINDIR=$INSTALLROOT/$BINDIR
else
BINDIR=$INSTALLROOT/$t4
fi
echo "BINDIR will be \"$BINDIR\""
export BINDIR
: ${LIBDIR="bin"}
read -p "Libraries directory [default:\"$LIBDIR\"]:" -e t5
if [ -z "$t5" ]
then
LIBDIR=$INSTALLROOT/$LIBDIR
else
LIBDIR=$INSTALLROOT/$t5
fi
echo "LIBDIR will be \"$LIBDIR\""
export LIBDIR
: ${INCDIR="include"}
read -p "Includes directory [default:\"$INCDIR\"]:" -e t6
if [ -z "$t6" ]
then
INCDIR=$INSTALLROOT/$INCDIR
else
INCDIR=$INSTALLROOT/$t6
fi
echo "INCDIR will be \"$INCDIR\""
export INCDIR
: ${DOCDIR="doc"}
read -p "Documentation directory [default:\"$DOCDIR\"]:" -e t7
if [ -z "$t7" ]
then
DOCDIR=$INSTALLROOT/$DOCDIR
else
DOCDIR=$INSTALLROOT/$t7
fi
echo "DOCDIR will be \"$DOCDIR\""
export DOCDIR

View File

@@ -1 +0,0 @@
No implementation found for style `graphicx'

View File

@@ -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 */

View File

@@ -1,81 +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="next.png"></A>
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up_g.png">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="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>April 8, 2019</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
2019-04-08
</ADDRESS>
</BODY>
</HTML>

View File

@@ -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&nbsp;\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;

View File

@@ -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}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 195 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 185 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 206 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 157 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 331 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 314 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 176 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 242 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 271 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 352 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 234 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 428 B

View File

@@ -1,81 +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="next.png"></A>
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up_g.png">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="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>April 8, 2019</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
2019-04-08
</ADDRESS>
</BODY>
</HTML>

View File

@@ -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;

View File

@@ -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;

Binary file not shown.

Before

Width:  |  Height:  |  Size: 245 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 272 B

View File

@@ -1,180 +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="next.png"></A>
<A NAME="tex2html21"
HREF="angularCalibrationHowTo.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html15"
HREF="angularCalibrationHowTo.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="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&nbsp;<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&nbsp;mdeg at 12&nbsp;keV and 0.5&nbsp;mdeg at 30&nbsp;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&nbsp;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&nbsp;<IMG
WIDTH="14" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img11.png"
ALT="$\mu$">m capillary with the detector shifted in 5&nbsp;mdeg steps between 30.4 and 36.5 degrees. The 16&nbsp;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&nbsp;mdeg for the peak center and 0.22<IMG
WIDTH="17" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img12.png"
ALT="$\pm$">0.05&nbsp;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&nbsp;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="next.png"></A>
<A NAME="tex2html21"
HREF="angularCalibrationHowTo.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html15"
HREF="angularCalibrationHowTo.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="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
2019-04-08
</ADDRESS>
</BODY>
</HTML>

View File

@@ -1,211 +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="next.png"></A>
<A NAME="tex2html31"
HREF="angularCalibrationHowTo.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html25"
HREF="node1.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="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&nbsp;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&nbsp;s, and position shift
<PRE>
#setup angular calibration log mode
&gt; sls_detector_put angcallog 1
#set exposure time to 1s
&gt; sls_detector_put exptime 1.
#setup threshold scan
&gt; sls_detector_put scan0script position
#setup the precision for the scan variable in the file name
&gt; 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
&gt; sls_detector_put scan0range 20 -60 -0.1
#acquire the data
&gt; sls_detector_acquire
#unset angular calibration log mode
&gt; 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&nbsp;<A HREF="#fig:guiangcallog">1</A>) and setting up the motor position scan in the Actions tab (see figure&nbsp;<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="next.png"></A>
<A NAME="tex2html31"
HREF="angularCalibrationHowTo.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html25"
HREF="node1.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="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
2019-04-08
</ADDRESS>
</BODY>
</HTML>

View File

@@ -1,180 +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="next.png"></A>
<A NAME="tex2html42"
HREF="angularCalibrationHowTo.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html36"
HREF="node2.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="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>
&gt; ./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&nbsp;<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&nbsp;<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&nbsp;<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="next.png"></A>
<A NAME="tex2html42"
HREF="angularCalibrationHowTo.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html36"
HREF="node2.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="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
2019-04-08
</ADDRESS>
</BODY>
</HTML>

View File

@@ -1,65 +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="next.png"></A>
<A NAME="tex2html53"
HREF="angularCalibrationHowTo.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html47"
HREF="node3.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="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
2019-04-08
</ADDRESS>
</BODY>
</HTML>

View File

@@ -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>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="next_g.png">
<A NAME="tex2html61"
HREF="angularCalibrationHowTo.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html57"
HREF="node4.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="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 &#169; 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 &#169; 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>-local_icons -split 4 angularCalibrationHowTo.tex</TT>
<P>
The translation was initiated by Thattil Dhanya on 2019-04-08
<BR><HR>
<ADDRESS>
Thattil Dhanya
2019-04-08
</ADDRESS>
</BODY>
</HTML>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 279 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 327 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 211 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 231 B

View File

@@ -1 +0,0 @@
No implementation found for style `graphicx'

View File

@@ -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 */

View File

@@ -1,81 +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="next.png"></A>
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up_g.png">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="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>April 8, 2019</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
2019-04-08
</ADDRESS>
</BODY>
</HTML>

View File

@@ -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 &gt;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&gt;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;

View File

@@ -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}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 249 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 231 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 489 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 176 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 216 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 405 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 213 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 242 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 240 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 238 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 249 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 451 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 199 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 199 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 491 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 217 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 223 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 226 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 507 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 176 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 342 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 238 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 243 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 456 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 296 B

Some files were not shown because too many files have changed in this diff Show More