CFEL - ASG Software Suite  2.5.0
CASS
singleParticle.ini
;/** @example singleParticle.ini */
;;
;; single particle detection on a pnCCD detector
;;
; ---------------------the processors--------------------------
;------------------------the raw images ---------------------------
; The rear detector image
RearPnCCDRaw/ID = 105
RearPnCCDRaw/Detector = RearPnCCD
RearPnCCDRaw/Hide = false
; The front detector image
FrontPnCCDRaw/ID = 105
FrontPnCCDRaw/Detector = FrontPnCCD
FrontPnCCDRaw/Hide = false
; ---------- definition of acutal light in the chamber ---------
; pull the f11enrc gasdet value from the machine data and set a threshold on
; this value.
GasDetector/ID = 120
GasDetector/VariableName = f_11_ENRC
GasDetector/Hide = true
GasDetectorHistory/ID = 64
GasDetectorHistory/HistName = GasDetector
GasDetectorHistory/Size = 2400
GasDetectorHistory/Hide = false
IsLight/ID = 9
IsLight/HistName = GasDetector
IsLight/UpperLimit = 1e20
IsLight/LowerLimit = 0.05
IsLight/Hide = true
EBeamL3Energy/ID = 120
EBeamL3Energy/VariableName = "EbeamL3Energy"
EBeamL3Energy/Hide = true
EBeamL3EnergyHistory/ID = 64
EBeamL3EnergyHistory/HistName = EBeamL3Energy
EBeamL3EnergyHistory/Size = 2400
EBeamL3EnergyHistory/Hide = false
;------------- definitions of when a hit is found------------------
; an integral over a certain region of the rear detector
; substract the median of the integral from the integral and use
; the substracted to find the hit
;RearPnCCDArea/ID = 70
;RearPnCCDArea/HistName = RearPnCCDRaw
;RearPnCCDArea/XLow = 700
;RearPnCCDArea/XUp = 850
;RearPnCCDArea/YLow = 150
;RearPnCCDArea/YUp = 300
;RearPnCCDArea/Hide = true
Mask/ID = 302
Mask/BinaryFile = "/reg/neh/home1/lutz/analysis/amob3313/mask.bin"
Mask/SizeX = 1024
Mask/SizeY = 1024
Mask/Hide = true
MaskedRear/ID = 1
MaskedRear/HistOne = RearPnCCDRaw
MaskedRear/HistTwo = Mask
MaskedRear/Operation = *
MaskedRear/Hide = true
RearPnCCDAreaIntegral/ID = 82
;RearPnCCDAreaIntegral/HistName = RearPnCCDArea
RearPnCCDAreaIntegral/HistName = MaskedRear
RearPnCCDAreaIntegral/Statistics = sum
RearPnCCDAreaIntegral/Hide = true
RearPnCCDIntegralMedian/ID = 301
RearPnCCDIntegralMedian/MedianSize = 10
RearPnCCDIntegralMedian/HistName = RearPnCCDAreaIntegral
RearPnCCDIntegralMedian/Hide = true
RearPnCCDIntegralDeviation/ID = 1
RearPnCCDIntegralDeviation/HistOne = RearPnCCDAreaIntegral
RearPnCCDIntegralDeviation/HistTwo = RearPnCCDIntegralMedian
RearPnCCDIntegralDeviation/Operation = "-"
RearPnCCDIntegralDeviation/Hide = true
RearPnCCDHitfinder/ID = 9
RearPnCCDHitfinder/HistName = RearPnCCDIntegralDeviation
RearPnCCDHitfinder/UpperLimit = 1e20
RearPnCCDHitfinder/LowerLimit = 200000
RearPnCCDHitfinder/Hide = true
RearPnCCDIntegralDeviationHistory/ID = 64
RearPnCCDIntegralDeviationHistory/HistName = RearPnCCDIntegralDeviation
RearPnCCDIntegralDeviationHistory/Size = 5000
; define which of the hitfinders defined above will be used as hit
; identification for the later Processors by ANDing this with
; true. Then one can use the IsHit Processor later on, by only
; chaning here which condition to use.
IsHit/ID = 1
IsHit/HistOne = DefaultTrueHist
IsHit/HistTwo = RearPnCCDHitfinder
IsHit/Operation = "AND"
IsHit/Hide = true
IsNotHit/ID = 4
IsNotHit/HistName = IsHit
IsNotHit/Hide = true
; display the real hit rate: average of the isHit over so many shots
HitRate/ID = 61
HitRate/HistName = IsHit
HitRate/NbrOfAverages = 50
HitRate/Hide = true
HitRateHistory/ID = 64
HitRateHistory/HistName = HitRate
HitRateHistory/Size = 2400
HitRateHistory/Hide = false
; display the hit rate of good shots: average of the isHit over so many shots,
; but only when there was light in the chamber
HitRateLight/ID = 61
HitRateLight/HistName = IsHit
HitRateLight/ConditionName = IsLight
HitRateLight/NbrOfAverages = 600
HitRateLight/Hide = true
HitRateLightHistory/ID = 64
HitRateLightHistory/HistName = HitRateLight
HitRateLightHistory/ConditionName = IsLight
HitRateLightHistory/Size = 2400
HitRateLightHistory/Hide = false
; check if Hit is saturated
SaturatedImage/ID = 40
SaturatedImage/HistName = RearPnCCDRaw
SaturatedImage/Threshold = 9000
SaturatedImage/ConditionName = IsHit
IsSaturatedImage/ID = 82
IsSaturatedImage/HistName = SaturatedImage
IsSaturatedImage/Statistics = sum
IsSaturatedImage/ConditionName = IsHit
IsSaturatedImage/Hide = true
UnSaturatedImage/ID = 4
UnSaturatedImage/HistName = IsSaturatedImage
UnSaturatedImage/ConditionName = IsHit
UnSaturatedImage/Hide = true
IsUnSaturatedHit/ID = 1
IsUnSaturatedHit/HistOne = IsHit
IsUnSaturatedHit/HistTwo = UnSaturatedImage
IsUnSaturatedHit/Operation = "AND"
IsUnSaturatedHit/Hide = true
; unsaturated hit rate
UnSaturatedHitRate/ID = 61
UnSaturatedHitRate/HistName = IsUnSaturatedHit
UnSaturatedHitRate/NbrOfAverages = 50
UnSaturatedHitRate/Hide = true
UnSaturatedHitRateHistory/ID = 64
UnSaturatedHitRateHistory/HistName = UnSaturatedHitRate
UnSaturatedHitRateHistory/Size = 2400
UnSaturatedHitRateHistory/Hide = false
;------- Things done when there is a hit ----------------
; The front detector image in the lab frame when there is a hit
FrontPnCCD/ID = 1602
FrontPnCCD/HistName = RearPnCCDRaw
FrontPnCCD/GeometryFilename = /reg/neh/home1/lutz/analysis/amob3313/front-pnccd.geom
FrontPnCCD/ConvertCheetahToCASSLayout = false
;remember the hit of the previous events
FrontPnCCDMinus1/ID = 56
FrontPnCCDMinus1/HistName = FrontPnCCD
FrontPnCCDMinus1/ConditionName = IsHit
FrontPnCCDMinus1/Hide = false
FrontPnCCDMinus2/ID = 56
FrontPnCCDMinus2/HistName = FrontPnCCDMinus1
FrontPnCCDMinus2/ConditionName = IsHit
FrontPnCCDMinus2/Hide = false
FrontPnCCDMinus3/ID = 56
FrontPnCCDMinus3/HistName = FrontPnCCDMinus2
FrontPnCCDMinus3/ConditionName = IsHit
FrontPnCCDMinus3/Hide = false
FrontPnCCDMinus4/ID = 56
FrontPnCCDMinus4/HistName = FrontPnCCDMinus3
FrontPnCCDMinus4/ConditionName = IsHit
FrontPnCCDMinus4/Hide = false
FrontPnCCDMinus5/ID = 56
FrontPnCCDMinus5/HistName = FrontPnCCDMinus4
FrontPnCCDMinus5/ConditionName = IsHit
FrontPnCCDMinus5/Hide = false
; The rear detector image in the lab frame when there is a hit
RearPnCCD/ID = 1602
RearPnCCD/HistName = RearPnCCDRaw
RearPnCCD/ConditionName = IsHit
RearPnCCD/GeometryFilename = /reg/neh/home1/lutz/analysis/amob3313/rear-pnccd.geom
RearPnCCD/ConvertCheetahToCASSLayout = false
RearPnCCD/Hide = false
; The rear detector image in the lab frame when there is a unsaturaded hit
RearPnCCDUnSaturated/ID = 1602
RearPnCCDUnSaturated/HistName = RearPnCCDRaw
RearPnCCDUnSaturated/ConditionName = IsUnSaturatedHit
RearPnCCDUnSaturated/GeometryFilename = /reg/neh/home1/lutz/analysis/amob3313/rear-pnccd.geom
RearPnCCDUnSaturated/ConvertCheetahToCASSLayout = false
RearPnCCDUnSaturated/Hide = false
; The rear detector image in the lab frame when there is a unsaturaded single particle hit
RearPnCCDSingleParticle/ID = 1602
RearPnCCDSingleParticle/HistName = RearPnCCDRaw
RearPnCCDSingleParticle/ConditionName = IsSingleParticleHit
RearPnCCDSingleParticle/GeometryFilename = /reg/neh/home1/lutz/analysis/amob3313/rear-pnccd.geom
RearPnCCDSingleParticle/ConvertCheetahToCASSLayout = false
RearPnCCDSingleParticle/Hide = false
;remember the hit of the previous events
RearPnCCDMinus1/ID = 56
RearPnCCDMinus1/HistName = RearPnCCD
RearPnCCDMinus1/ConditionName = IsHit
RearPnCCDMinus1/Hide = false
RearPnCCDMinus2/ID = 56
RearPnCCDMinus2/HistName = RearPnCCDMinus1
RearPnCCDMinus2/ConditionName = IsHit
RearPnCCDMinus2/Hide = false
RearPnCCDMinus3/ID = 56
RearPnCCDMinus3/HistName = RearPnCCDMinus2
RearPnCCDMinus3/ConditionName = IsHit
RearPnCCDMinus3/Hide = false
RearPnCCDMinus4/ID = 56
RearPnCCDMinus4/HistName = RearPnCCDMinus3
RearPnCCDMinus4/ConditionName = IsHit
RearPnCCDMinus4/Hide = false
RearPnCCDMinus5/ID = 56
RearPnCCDMinus5/HistName = RearPnCCDMinus4
RearPnCCDMinus5/ConditionName = IsHit
RearPnCCDMinus5/Hide = false
; ---------particle size-------------
;radial average of Q-values
QAverage/ID = 90
QAverage/HistName = RearPnCCDRaw
QAverage/ConditionName = IsUnSaturatedHit
QAverage/GeometryFilename = /reg/neh/home1/lutz/analysis/amob3313/rear-pnccd.geom
QAverage/ConvertCheetahToCASSLayout = false
;QAverage/Wavelength_A = 10.333
QAverage/DetectorDistance_m = 72e-2
QAverage/Wavelength_A = photon_wavelength_A
;QAverage/DetectorDistance_m = detectordistance_m
QAverage/PixelSize_m = 75e-6
QAverage/XNbrBins = 1000
QAverage/XLow = 0
QAverage/XUp = 0.02
QAverage/XTitle = "Q [1/A]"
QAverage/Hide = false
; determine the particle size by the distance between the first 2 minima of the q-average
; retrieve a list of local minima of the q-average
MinimaTable/ID = 91
MinimaTable/HistName = QAverage
MinimaTable/Range = 10
MinimaTable/ConditionName = IsUnSaturatedHit
MinimaTable/Hide = true
; find out how many rows the list has
nMinimaTableRows/ID = 88
nMinimaTableRows/HistName = MinimaTable
nMinimaTableRows/AxisParameter = YNbrBins
nMinimaTableRows/ConditionName = IsUnSaturatedHit
nMinimaTableRows/Hide = true
; ensure that the list has at least 2 entries
MinimaTableHasEnoughRows/ID = 9
MinimaTableHasEnoughRows/HistName = nMinimaTableRows
MinimaTableHasEnoughRows/UpperLimit = 1e20
MinimaTableHasEnoughRows/LowerLimit = 1
MinimaTableHasEnoughRows/ConditionName = IsUnSaturatedHit
MinimaTableHasEnoughRows/Hide = true
HasEnoughRowsUnsaturated/ID = 1
HasEnoughRowsUnsaturated/HistOne = IsUnSaturatedHit
HasEnoughRowsUnsaturated/HistTwo = MinimaTableHasEnoughRows
HasEnoughRowsUnsaturated/Operation = "AND"
HasEnoughRowsUnsaturated/Hide = true
; retrieve the ions of the first and second row
FirstPosition/ID = 74
FirstPosition/TableName = MinimaTable
FirstPosition/ColumnIndex = 1
FirstPosition/RowIndex = 0
FirstPosition/ConditionName = HasEnoughRowsUnsaturated
FirstPosition/Hide = true
SecondPosition/ID = 74
SecondPosition/TableName = MinimaTable
SecondPosition/ColumnIndex = 1
SecondPosition/RowIndex = 1
SecondPosition/ConditionName = HasEnoughRowsUnsaturated
SecondPosition/Hide = true
; take the difference between the position values
Distance/ID = 1
Distance/HistOne = SecondPosition
Distance/HistTwo = FirstPosition
Distance/Operation = "-"
Distance/ConditionName = HasEnoughRowsUnsaturated
Distance/Hide = true
; put the difference in a histogram
ParticleSizeHist/ID = 60
ParticleSizeHist/HistName = Distance
ParticleSizeHist/XNbrBins = 100
ParticleSizeHist/XLow = 0
ParticleSizeHist/XUp = 0.01
ParticleSizeHist/XTitle = "size [arb. units]"
ParticleSizeHist/ConditionName = HasEnoughRowsUnsaturated
ParticleSizeHist/Hide = true
;sum up histogram
ParticleSizeHistSum/ID = 62
ParticleSizeHistSum/HistName = ParticleSizeHist
ParticleSizeHistSum/ConditionName = HasEnoughRowsUnsaturated
ParticleSizeHistSum/Hide = false
; retrieve the Position column of the list
MinimaTablePositionColumn/ID = 72
MinimaTablePositionColumn/TableName = MinimaTable
MinimaTablePositionColumn/ColumnIndex = 1
MinimaTablePositionColumn/ConditionName = IsUnSaturatedHit
MinimaTablePositionColumn/Hide = true
; put the Positions into a histogram with the same dimensions as the q-average
MinimaPositions/ID = 60
MinimaPositions/HistName = MinimaTablePositionColumn
MinimaPositions/XNbrBins = 1000
MinimaPositions/XLow = 0
MinimaPositions/XUp = 0.02
MinimaPositions/XTitle = "Q [1/A]"
MinimaPositions/ConditionName = IsUnSaturatedHit
MinimaPositions/Hide = true
; get the maximum value of the q-average
QAverageMaxValue/ID = 71
QAverageMaxValue/HistName = QAverage
QAverageMaxValue/RetrieveType = max
QAverageMaxValue/ConditionName = IsUnSaturatedHit
QAverageMaxValue/Hide = true
; multiply the histogram with the maximum value of the q-average
ScaledMinimaPositions/ID = 2
ScaledMinimaPositions/HistName = MinimaPositions
;ScaledMinimaPositions/ValueName = QAverageMaxValue
ScaledMinimaPositions/Value = 10000
ScaledMinimaPositions/Operation = "*"
ScaledMinimaPositions/ValuePos = "second"
ScaledMinimaPositions/ConditionName = IsUnSaturatedHit
ScaledMinimaPositions/Hide = true
; add the histogram with the q-average to mark where the minima where found
QAverageNodes/ID = 1
QAverageNodes/HistOne = QAverage
QAverageNodes/HistTwo = ScaledMinimaPositions
QAverageNodes/Operation = "+"
QAverageNodes/ConditionName = IsUnSaturatedHit
QAverageNodes/Hide = false
; particle size as filter for real single particle hits
SingleParticle/ID = 9
SingleParticle/HistName = Distance
SingleParticle/UpperLimit = 0.01
SingleParticle/LowerLimit = 0.0015
SingleParticle/ConditionName = IsUnSaturatedHit
SingleParticle/Hide = true
IsSingleParticleHit/ID = 1
IsSingleParticleHit/HistOne = SingleParticle
IsSingleParticleHit/HistTwo = IsUnSaturatedHit
IsSingleParticleHit/Operation = "AND"
IsSingleParticleHit/Hide = true
; single particle hit rate
SingleParticleHitRate/ID = 61
SingleParticleHitRate/HistName = IsSingleParticleHit
SingleParticleHitRate/NbrOfAverages = 50
SingleParticleHitRate/Hide = true
SingleParticleHitRateHistory/ID = 64
SingleParticleHitRateHistory/HistName = SingleParticleHitRate
SingleParticleHitRateHistory/Size = 2400
SingleParticleHitRateHistory/Hide = false
;---------- Intensity distribution -------------
; Integral of the rear image
RearPnCCDSub/ID = 70
RearPnCCDSub/HistName = RearPnCCDRaw
RearPnCCDSub/XLow = 512
RearPnCCDSub/XUp = 650
RearPnCCDSub/YLow = 512
RearPnCCDSub/YUp = 650
RearPnCCDSub/ConditionName = IsUnSaturatedHit
RearPnCCDSub/Hide = true
RearPnCCDSubIntegral/ID = 82
RearPnCCDSubIntegral/HistName = RearPnCCDSub
RearPnCCDSubIntegral/Statistics = sum
RearPnCCDSubIntegral/ConditionName = IsUnSaturatedHit
RearPnCCDSubIntegral/Hide = false
; Histogram of the integral values
RearPnCCDIntegralHist/ID = 60
RearPnCCDIntegralHist/HistName = RearPnCCDSubIntegral
RearPnCCDIntegralHist/XNbrBins = 100
RearPnCCDIntegralHist/XLow = 1e5
RearPnCCDIntegralHist/XUp = 1e6
RearPnCCDIntegralHist/XTitle = "size [arb. units]"
RearPnCCDIntegralHist/ConditionName = IsUnSaturatedHit
RearPnCCDIntegralHist/Hide = true
;sum up histogram
RearPnCCDIntegralHistSum/ID = 62
RearPnCCDIntegralHistSum/HistName = RearPnCCDIntegralHist
RearPnCCDIntegralHistSum/ConditionName = IsUnSaturatedHit
RearPnCCDIntegralHistSum/Hide = false
;--------------statistics-------------------------
; the total number of triggers that were in the files processed
nTrigger/ID = 78
nTrigger/Hide = true
; the number of triggers that contained light (shots)
nShots/ID = 78
nShots/ConditionName = IsLight
nShots/Hide = true
; the number of identified hits
nHits/ID = 78
nHits/ConditionName = IsHit
nHits/Hide = true
; the number of unsaturated hits
nUnSaturatedHits/ID = 78
nUnSaturatedHits/ConditionName = IsUnSaturatedHit
nUnSaturatedHits/Hide = true
; the number of single particle hits
nSingleParticleHits/ID = 78
nSingleParticleHits/ConditionName = IsSingleParticleHit
nSingleParticleHits/Hide = true
;---------------------- Misc ---------------------------
photon_energy_eV/ID = 230
photon_energy_eV/ConditionName = IsHit
photon_energy_eV/Hide = true
photon_wavelength_A/ID = 2
photon_wavelength_A/ConditionName = IsHit
photon_wavelength_A/Value = 12398
photon_wavelength_A/HistName = photon_energy_eV
photon_wavelength_A/ValuePos = first
photon_wavelength_A/Operation = "/"
photon_wavelength_A/Hide = true
f_11_ENRC/ID = 120
f_11_ENRC/ConditionName = IsHit
f_11_ENRC/VariableName = "f_11_ENRC"
f_11_ENRC/Hide = true
f_12_ENRC/ID = 120
f_12_ENRC/ConditionName = IsHit
f_12_ENRC/VariableName = "f_12_ENRC"
f_12_ENRC/Hide = true
f_21_ENRC/ID = 120
f_21_ENRC/ConditionName = IsHit
f_21_ENRC/VariableName = "f_21_ENRC"
f_21_ENRC/Hide = true
f_22_ENRC/ID = 120
f_22_ENRC/ConditionName = IsHit
f_22_ENRC/VariableName = "f_22_ENRC"
f_22_ENRC/Hide = true
EBeamCharge/ID = 120
EBeamCharge/ConditionName = IsHit
EBeamCharge/VariableName = "EbeamCharge"
EBeamCharge/Hide = true
EbeamPkCurrBC2/ID = 120
EbeamPkCurrBC2/ConditionName = IsHit
EbeamPkCurrBC2/VariableName = "EbeamPkCurrBC2"
EbeamPkCurrBC2/Hide = true
FrontPnCCDPosX/ID = 130
FrontPnCCDPosX/ConditionName = IsHit
FrontPnCCDPosX/VariableName = "AMO:LMP:MMS:09.RBV"
FrontPnCCDPosX/Hide = true
FrontPnCCDPosZ/ID = 130
FrontPnCCDPosZ/ConditionName = IsHit
FrontPnCCDPosZ/VariableName = "AMO:LMP:MMS:10.ERBV"
FrontPnCCDPosZ/Hide = true
FrontPnCCDTopPosY/ID = 130
FrontPnCCDTopPosY/ConditionName = IsHit
FrontPnCCDTopPosY/VariableName = "AMO:LMP:MMS:07.ERBV"
FrontPnCCDTopPosY/Hide = true
FrontPnCCDBottomPosY/ID = 130
FrontPnCCDBottomPosY/ConditionName = IsHit
FrontPnCCDBottomPosY/VariableName = "AMO:LMP:MMS:08.ERBV"
FrontPnCCDBottomPosY/Hide = true
;------------------------------- output----------------------------
H5Dump/ID = 1002
H5Dump/CompressLevel = 0
H5Dump/ConditionName = IsHit
H5Dump/FileBaseName = outfilename
H5Dump/MaximumNbrFilesPerDir = 1000
H5Dump/Processor/size = 20
;--
H5Dump/Processor/1/Name = photon_energy_eV
H5Dump/Processor/1/GroupName = /LCLS/
;--
H5Dump/Processor/2/Name = photon_wavelength_A
H5Dump/Processor/2/GroupName = /LCLS
;--
H5Dump/Processor/3/Name = RearPnCCDRaw
;--
H5Dump/Processor/4/Name = FrontPnCCDRaw
;--
H5Dump/Processor/5/Name = f_11_ENRC
H5Dump/Processor/5/GroupName = /LCLS
;--
H5Dump/Processor/6/Name = f_12_ENRC
H5Dump/Processor/6/GroupName = /LCLS
;--
H5Dump/Processor/7/Name = f_21_ENRC
H5Dump/Processor/7/GroupName = /LCLS
;--
H5Dump/Processor/8/Name = f_22_ENRC
H5Dump/Processor/8/GroupName = /LCLS
;--
H5Dump/Processor/9/Name = EBeamCharge
H5Dump/Processor/9/GroupName = /LCLS
;--
H5Dump/Processor/10/Name = EbeamPkCurrBC2
H5Dump/Processor/10/GroupName = /LCLS
;--
H5Dump/Processor/11/Name = FrontPnCCDPosX
H5Dump/Processor/11/GroupName = /LCLS
;--
H5Dump/Processor/12/Name = FrontPnCCDPosZ
H5Dump/Processor/12/GroupName = /LCLS
;--
H5Dump/Processor/13/Name = FrontPnCCDTopPosY
H5Dump/Processor/13/GroupName = /LCLS
;--
H5Dump/Processor/14/Name = FrontPnCCDBottomPosY
H5Dump/Processor/14/GroupName = /LCLS
;things written only at end of run
H5Dump/ProcessorSummary/size = 20
;--
H5Dump/ProcessorSummary/1/Name = FrontPnCCDPosX
H5Dump/ProcessorSummary/1/GroupName = /LCLS
;--
H5Dump/ProcessorSummary/2/Name = FrontPnCCDPosZ
H5Dump/ProcessorSummary/2/GroupName = /LCLS
;--
H5Dump/ProcessorSummary/3/Name = FrontPnCCDTopPosY
H5Dump/ProcessorSummary/3/GroupName = /LCLS
;--
H5Dump/ProcessorSummary/4/Name = FrontPnCCDBottomPosY
H5Dump/ProcessorSummary/4/GroupName = /LCLS
;--
H5Dump/ProcessorSummary/5/Name = nTrigger
H5Dump/ProcessorSummary/5/GroupName = /statistics
H5Dump/ProcessorSummary/5/ValName = NumberOfTriggers
;--
H5Dump/ProcessorSummary/6/Name = nShots
H5Dump/ProcessorSummary/6/GroupName = /statistics
H5Dump/ProcessorSummary/6/ValName = NumberOfShots
;--
H5Dump/ProcessorSummary/8/Name = nHits
H5Dump/ProcessorSummary/8/GroupName = /statistics
H5Dump/ProcessorSummary/8/ValName = NumberOfHits
;--
H5Dump/ProcessorSummary/9/Name = nUnSaturatedHits
H5Dump/ProcessorSummary/9/GroupName = /statistics
H5Dump/ProcessorSummary/9/ValName = NumberOfUnsaturatedHits
;--
H5Dump/ProcessorSummary/10/Name = nSingleParticleHits
H5Dump/ProcessorSummary/10/GroupName = /statistics
H5Dump/ProcessorSummary/10/ValName = NumberOfSingleParticleHits
;-------------------program control and setup----------------------
;disable the pre analyzers as their functionality is ported to the new framework
[PreAnalyzer]
usepnCCDAnalyzer = false
; only extract pnCCD, other camera data and machine data from the stream
[Converter]
LCLSPixelDetectors/size = 5
LCLSPixelDetectors/1/Typename = pnCCDframe
LCLSPixelDetectors/1/DetectorName = Camp
LCLSPixelDetectors/1/DetectorID = 0
LCLSPixelDetectors/1/DeviceName = pnCCD
LCLSPixelDetectors/1/DeviceID = 0
LCLSPixelDetectors/1/CASSID = 0
LCLSPixelDetectors/2/Typename = pnCCDconfig
LCLSPixelDetectors/2/DetectorName = Camp
LCLSPixelDetectors/2/DetectorID = 0
LCLSPixelDetectors/2/DeviceName = pnCCD
LCLSPixelDetectors/2/DeviceID = 0
LCLSPixelDetectors/2/CASSID = 0
LCLSPixelDetectors/3/Typename = pnCCDframe
LCLSPixelDetectors/3/DetectorName = Camp
LCLSPixelDetectors/3/DetectorID = 0
LCLSPixelDetectors/3/DeviceName = pnCCD
LCLSPixelDetectors/3/DeviceID = 1
LCLSPixelDetectors/3/CASSID = 1
LCLSPixelDetectors/4/Typename = pnCCDconfig
LCLSPixelDetectors/4/DetectorName = Camp
LCLSPixelDetectors/4/DetectorID = 0
LCLSPixelDetectors/4/DeviceName = pnCCD
LCLSPixelDetectors/4/DeviceID = 1
LCLSPixelDetectors/4/CASSID = 1
; what output level should be written into the log file
[Log]
Directory = "logfiledir"
Filename = "logfilename.log"
;------------------definition of the Front detector----------------
[PixelDetectors]
; set up the hll like processing (removes offset and applies the mask)
; set up the common mode correction
FrontPnCCD/HLLProcessing/CommonModeCalculationType = "none"
;FrontPnCCD/HLLProcessing/CommonModeCalculationType = "simpleMean"
FrontPnCCD/HLLProcessing/CommonModeCorrection/Width = 128
FrontPnCCD/HLLProcessing/CommonModeCorrection/Multiplier = 4
FrontPnCCD/HLLProcessing/SimpleMeanCommonMode/MinNbrPixels = 20
; set up how to create the noise, offset map
FrontPnCCD/CorrectionMaps/NoisyPixelThreshold = -1
FrontPnCCD/CorrectionMaps/MapCreatorType = "onlinecommonmode"
;FrontPnCCD/CorrectionMaps/FixedOnlineCreatorCommonMode/StartInstantly = true
FrontPnCCD/CorrectionMaps/FixedOnlineCreatorCommonMode/NbrFrames = 200
FrontPnCCD/CorrectionMaps/FixedOnlineCreatorCommonMode/WriteMaps = true
FrontPnCCD/CorrectionMaps/FixedOnlineCreatorCommonMode/Multiplier = 4
FrontPnCCD/CorrectionMaps/FixedOnlineCreatorCommonMode/CommonModeCalculationType = "none"
FrontPnCCD/CorrectionMaps/InputOffsetNoiseFiletype = "cass"
FrontPnCCD/CorrectionMaps/InputOffsetNoiseFilename = "darkcal_0.lnk"
FrontPnCCD/CorrectionMaps/OutputOffsetNoiseFiletype = "cass"
;FrontPnCCD/CorrectionMaps/OutputOffsetNoiseFilename = "darkcal_0.cal"
;the mask elements
FrontPnCCD/CorrectionMaps/Mask/size = 1
; the cut part of the ccd
FrontPnCCD/CorrectionMaps/Mask/1/MaskElementType = "square"
FrontPnCCD/CorrectionMaps/Mask/1/LowerLeftX = 488
FrontPnCCD/CorrectionMaps/Mask/1/LowerLeftY = 480
FrontPnCCD/CorrectionMaps/Mask/1/UpperRightX = 533
FrontPnCCD/CorrectionMaps/Mask/1/UpperRightY = 541
;example mask types
;FrontPnCCD/CorrectionMaps/Mask/1/MaskElementType = "circle"
;FrontPnCCD/CorrectionMaps/Mask/1/CenterX = 500
;FrontPnCCD/CorrectionMaps/Mask/1/CenterY = 500
;FrontPnCCD/CorrectionMaps/Mask/1/Radius = 100
;FrontPnCCD/CorrectionMaps/Mask/2/MaskElementType = "square"
;FrontPnCCD/CorrectionMaps/Mask/2/LowerLeftX = 10
;FrontPnCCD/CorrectionMaps/Mask/2/LowerLeftY = 10
;FrontPnCCD/CorrectionMaps/Mask/2/UpperRightX = 90
;FrontPnCCD/CorrectionMaps/Mask/2/UpperRightY = 90
;FrontPnCCD/CorrectionMaps/Mask/3/MaskElementType = "ellipse"
;FrontPnCCD/CorrectionMaps/Mask/3/CenterX = 500
;FrontPnCCD/CorrectionMaps/Mask/3/CenterY = 500
;FrontPnCCD/CorrectionMaps/Mask/3/SemiAxisX = 50
;FrontPnCCD/CorrectionMaps/Mask/3/SemiAxisY = 10
;FrontPnCCD/CorrectionMaps/Mask/4/MaskElementType = "triangle"
;FrontPnCCD/CorrectionMaps/Mask/4/PointA_X = 10
;FrontPnCCD/CorrectionMaps/Mask/4/PointA_Y = 10
;FrontPnCCD/CorrectionMaps/Mask/4/PointB_X = 20
;FrontPnCCD/CorrectionMaps/Mask/4/PointB_Y = 10
;FrontPnCCD/CorrectionMaps/Mask/4/PointC_X = 10
;FrontPnCCD/CorrectionMaps/Mask/4/PointC_Y = 20
;------------------definition of the rear detector-----------------
[PixelDetectors]
RearPnCCD/Detector = 1
; set up the hll like processing (removes offset and applies the mask)
RearPnCCD/FrameProcessorType = "hll"
; set up the common mode correction
RearPnCCD/HLLProcessing/CommonModeCalculationType = "none"
;RearPnCCD/HLLProcessing/CommonModeCalculationType = "simpleMean"
RearPnCCD/HLLProcessing/CommonModeCorrection/Width = 128
RearPnCCD/HLLProcessing/CommonModeCorrection/Multiplier = 4
RearPnCCD/HLLProcessing/SimpleMeanCommonMode/MinNbrPixels = 20
; set up how to create the noise, offset map
RearPnCCD/CorrectionMaps/NoisyPixelThreshold = -1
;RearPnCCD/CorrectionMaps/NoisyPixelThreshold = 1e20
;RearPnCCD/CorrectionMaps/LowerNoisyPixelThreshold = -1e20
RearPnCCD/CorrectionMaps/MapCreatorType = "onlinecommonmode"
;RearPnCCD/CorrectionMaps/FixedOnlineCreatorCommonMode/StartInstantly = true
RearPnCCD/CorrectionMaps/FixedOnlineCreatorCommonMode/NbrFrames = 200
RearPnCCD/CorrectionMaps/FixedOnlineCreatorCommonMode/WriteMaps = true
RearPnCCD/CorrectionMaps/FixedOnlineCreatorCommonMode/Multiplier = 4
RearPnCCD/CorrectionMaps/FixedOnlineCreatorCommonMode/CommonModeCalculationType = "none"
RearPnCCD/CorrectionMaps/InputOffsetNoiseFiletype = "cass"
RearPnCCD/CorrectionMaps/InputOffsetNoiseFilename = "darkcal_1.lnk"
RearPnCCD/CorrectionMaps/OutputOffsetNoiseFiletype = "cass"
;RearPnCCD/CorrectionMaps/OutputOffsetNoiseFilename = "darkcal_1.cal"
;the mask elements
RearPnCCD/CorrectionMaps/Mask/size = 1
; the center of the detector
RearPnCCD/CorrectionMaps/Mask/1/MaskElementType = "square"
RearPnCCD/CorrectionMaps/Mask/1/LowerLeftX = 488
RearPnCCD/CorrectionMaps/Mask/1/LowerLeftY = 480
RearPnCCD/CorrectionMaps/Mask/1/UpperRightX = 533
RearPnCCD/CorrectionMaps/Mask/1/UpperRightY = 541
;example mask types
;RearPnCCD/CorrectionMaps/Mask/1/MaskElementType = "circle"
;RearPnCCD/CorrectionMaps/Mask/1/CenterX = 500
;RearPnCCD/CorrectionMaps/Mask/1/CenterY = 500
;RearPnCCD/CorrectionMaps/Mask/1/Radius = 100
;RearPnCCD/CorrectionMaps/Mask/2/MaskElementType = "square"
;RearPnCCD/CorrectionMaps/Mask/2/LowerLeftX = 10
;RearPnCCD/CorrectionMaps/Mask/2/LowerLeftY = 10
;RearPnCCD/CorrectionMaps/Mask/2/UpperRightX = 90
;RearPnCCD/CorrectionMaps/Mask/2/UpperRightY = 90
;RearPnCCD/CorrectionMaps/Mask/3/MaskElementType = "ellipse"
;RearPnCCD/CorrectionMaps/Mask/3/CenterX = 500
;RearPnCCD/CorrectionMaps/Mask/3/CenterY = 500
;RearPnCCD/CorrectionMaps/Mask/3/SemiAxisX = 50
;RearPnCCD/CorrectionMaps/Mask/3/SemiAxisY = 10
;RearPnCCD/CorrectionMaps/Mask/4/MaskElementType = "triangle"
;RearPnCCD/CorrectionMaps/Mask/4/PointA_X = 10
;RearPnCCD/CorrectionMaps/Mask/4/PointA_Y = 10
;RearPnCCD/CorrectionMaps/Mask/4/PointB_X = 20
;RearPnCCD/CorrectionMaps/Mask/4/PointB_Y = 10
;RearPnCCD/CorrectionMaps/Mask/4/PointC_X = 10
;RearPnCCD/CorrectionMaps/Mask/4/PointC_Y = 20