2 {-# LANGUAGE OverloadedStrings #-}
7 import Control
.Concurrent
.Async
(mapConcurrently
)
8 import Data
.Array.Repa
(DIM1
, ix1
)
9 -- import Data.Char (toUpper)
10 import Numeric
.LinearAlgebra
(ident
)
11 import System
.FilePath ((</>))
12 import Text
.Printf
(printf
)
14 import Prelude
hiding (concat, lookup, readFile, writeFile)
17 import Hkl
.PyFAI
.PoniExt
25 project
= "/home/experiences/instrumentation/picca/data/d2am"
26 -- project = "/nfs/ruche-diffabs/diffabs-soleil/com-diffabs/"
29 published
= project
</> "published-data"
32 sampleRef
= XRDRef
"reference"
33 (published
</> "calibration")
35 (project
</> "16Dec08D5_0268-rsz.edf")
36 (project
</> "16Dec08D5_0268-rsz.poni")
39 sampleCalibration
:: XRDCalibration
40 sampleCalibration
= XRDCalibration
{ xrdCalibrationName
= "calibration"
41 , xrdCalibrationOutputDir
= published
</> "calibration" -- TODO pourquoi ce output
42 , xrdCalibrationEntries
= entries
47 idxs
= [268, 271, 285, 295]
49 entry
:: Int -> XRDCalibrationEntry
50 entry idx
= XRDCalibrationEntryEdf
51 { xrdCalibrationEntryEdf
'Edf
= project
</> printf
"16Dec08D5_%04d-rsz.edf" idx
52 , xrdCalibrationEntryEdf
'NptPath
= project
</> printf
"16Dec08D5_%04d-rsz.npt" idx
55 entries
:: [XRDCalibrationEntry
]
56 entries
= [ entry idx | idx
<- idxs
]
64 threshold
:: Threshold
65 threshold
= Threshold
5000
68 lab6
= XRDSample
"test"
69 (published
</> "test")
70 [XrdNxs bins multibins threshold entries
]
73 idxs
= [268, 271, 285, 295]
75 entry
:: Int -> FilePath
76 entry idx
= project
</> printf
"16Dec08D5_%04d-rsz.edf" idx
79 entries
= XrdSourceEdf
[entry idx | idx
<- idxs
]
87 p
<- getPoniExtRef sampleRef
89 -- let poniextref = setPose (Hkl.PyFAI.PoniExt.flip p) (MyMatrix HklB (ident 3))
90 let poniextref
= setPose p
(MyMatrix HklB
(ident
3))
93 poniextref
' <- calibrate sampleCalibration poniextref Xpad32
98 -- integrate each step of the scan
99 _
<- mapConcurrently
(integrateMulti poniextref
') samples