mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2026-05-14 15:15:37 +02:00
93 lines
2.1 KiB
Python
93 lines
2.1 KiB
Python
# SPDX-License-Identifier: LGPL-3.0-or-other
|
|
# Copyright (C) 2021 Contributors to the SLS Detector Package
|
|
from .detector import Detector, freeze
|
|
from .utils import element_if_equal
|
|
from .dacs import NamedDacs
|
|
from .powers import NamedPowers
|
|
from .proxy import SlowAdcProxy
|
|
from . import _slsdet
|
|
dacIndex = _slsdet.slsDetectorDefs.dacIndex
|
|
from .detector_property import DetectorProperty
|
|
|
|
import numpy as np
|
|
|
|
|
|
from .utils import element
|
|
@freeze
|
|
class Ctb(Detector):
|
|
def __init__(self, id = 0):
|
|
super().__init__(id)
|
|
self._frozen = False
|
|
self._dacs = NamedDacs(self)
|
|
self._powers = NamedPowers(self)
|
|
|
|
@property
|
|
def dacs(self):
|
|
return self._dacs
|
|
|
|
@property
|
|
def powers(self):
|
|
return self._powers
|
|
|
|
@property
|
|
def powerlist(self):
|
|
return self.getPowerNames()
|
|
|
|
@powerlist.setter
|
|
def powerlist(self, value):
|
|
self.setPowerNames(value)
|
|
|
|
|
|
@property
|
|
def adclist(self):
|
|
return self.getAdcNames()
|
|
|
|
@adclist.setter
|
|
def adclist(self, value):
|
|
self.setAdcNames(value)
|
|
|
|
@property
|
|
def signallist(self):
|
|
return self.getSignalNames()
|
|
|
|
@signallist.setter
|
|
def signallist(self, value):
|
|
self.setSignalNames(value)
|
|
|
|
@property
|
|
def slowadc(self):
|
|
"""
|
|
[Ctb] Slow ADC channel in uV of all channels or specific ones from 0-7.
|
|
|
|
Example
|
|
-------
|
|
>>> d.slowadc
|
|
0: 0 uV
|
|
1: 0 uV
|
|
2: 0 uV
|
|
3: 0 uV
|
|
4: 0 uV
|
|
5: 0 uV
|
|
6: 0 uV
|
|
7: 0 uV
|
|
>>> d.slowadc[3]
|
|
0
|
|
"""
|
|
return SlowAdcProxy(self)
|
|
|
|
@property
|
|
def slowadclist(self):
|
|
return self.getSlowADCNames()
|
|
|
|
@slowadclist.setter
|
|
def slowadclist(self, value):
|
|
self.setSlowADCNames(value)
|
|
|
|
@property
|
|
def slowadcvalues(self):
|
|
"""[Chiptestboard][Xilinx CTB] Gets the slow adc values for every slow adc for this detector."""
|
|
return {
|
|
slowadc.name.lower(): element_if_equal(np.array(self.getSlowADC(slowadc)))
|
|
for slowadc in self.getSlowADCList()
|
|
}
|