DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
rawdatautils.unpack.utils.DAPHNEUnpacker Class Reference
Inheritance diagram for rawdatautils.unpack.utils.DAPHNEUnpacker:
[legend]
Collaboration diagram for rawdatautils.unpack.utils.DAPHNEUnpacker:
[legend]

Public Member Functions

 get_n_obj (self, frag)
 
 get_daq_header_version (self, frag)
 
 get_timestamp_first (self, frag)
 
 get_det_data_version (self, frag)
 
 get_det_crate_slot_stream (self, frag)
 
 get_det_header_data (self, frag)
 
 get_det_data_all (self, frag)
 
- Public Member Functions inherited from rawdatautils.unpack.utils.DetectorFragmentUnpacker
 __init__ (self, channel_map=None, ana_data_prescale=1, wvfm_data_prescale=None)
 
 get_daq_header_data (self, frag)
 
 get_det_data (self, frag)
 
- Public Member Functions inherited from rawdatautils.unpack.utils.FragmentUnpacker
 get_trg_data (self, in_data)
 
 get_frh_data (self, frag)
 
 get_all_data (self, in_data)
 
- Public Member Functions inherited from rawdatautils.unpack.utils.Unpacker

Static Public Attributes

 unpacker = rawdatautils.unpack.daphne
 
 frame_obj = fddetdataformats.DAPHNEFrame
 
int SAMPLING_PERIOD = 1
 
int N_CHANNELS_PER_FRAME = 1
 
- Static Public Attributes inherited from rawdatautils.unpack.utils.DetectorFragmentUnpacker
bool is_detector_unpacker = True
 
- Static Public Attributes inherited from rawdatautils.unpack.utils.FragmentUnpacker
bool is_fragment_unpacker = True
 
bool is_detector_unpacker = False
 
bool is_trigger_unpacker = False
 
- Static Public Attributes inherited from rawdatautils.unpack.utils.Unpacker
bool is_fragment_unpacker = False
 
bool is_detector_unpacker = False
 
bool is_trigger_unpacker = False
 

Additional Inherited Members

- Public Attributes inherited from rawdatautils.unpack.utils.DetectorFragmentUnpacker
 ana_data_prescale = None if not ana_data_prescale else int(ana_data_prescale)
 
 wvfm_data_prescale = None if not wvfm_data_prescale else int(wvfm_data_prescale)
 
 channel_map = NullChannelMap
 
- Public Attributes inherited from rawdatautils.unpack.utils.Unpacker
 index = index
 

Detailed Description

Definition at line 810 of file utils.py.

Member Function Documentation

◆ get_daq_header_version()

rawdatautils.unpack.utils.DAPHNEUnpacker.get_daq_header_version ( self,
frag )

Reimplemented from rawdatautils.unpack.utils.DetectorFragmentUnpacker.

Definition at line 821 of file utils.py.

821 def get_daq_header_version(self,frag):
822 return self.frame_obj(frag.get_data()).get_daqheader().version
823

◆ get_det_crate_slot_stream()

rawdatautils.unpack.utils.DAPHNEUnpacker.get_det_crate_slot_stream ( self,
frag )

Reimplemented from rawdatautils.unpack.utils.DetectorFragmentUnpacker.

Definition at line 830 of file utils.py.

830 def get_det_crate_slot_stream(self,frag):
831 dh = self.frame_obj(frag.get_data()).get_daqheader()
832 return dh.det_id, dh.crate_id, dh.slot_id, dh.link_id
833

◆ get_det_data_all()

rawdatautils.unpack.utils.DAPHNEUnpacker.get_det_data_all ( self,
frag )

Reimplemented from rawdatautils.unpack.utils.DetectorFragmentUnpacker.

Definition at line 837 of file utils.py.

837 def get_det_data_all(self,frag):
838 frh = frag.get_header()
839 trigger_number = frh.trigger_number
840 wvfm_data = None
841 ana_data = None
842
843 get_ana_data = (self.ana_data_prescale is not None and (trigger_number % self.ana_data_prescale)==0)
844 get_wvfm_data = (self.wvfm_data_prescale is not None and (trigger_number % self.wvfm_data_prescale)==0)
845
846 if not (get_ana_data or get_wvfm_data):
847 return None,None
848
849 n_frames = self.get_n_obj(frag)
850 adcs = self.unpacker.np_array_adc(frag)
851
852 daphne_headers = [ self.frame_obj(frag.get_data(iframe*self.frame_obj.sizeof())).get_header() for iframe in range(n_frames) ]
853 timestamp = self.unpacker.np_array_timestamp(frag)
854
855 if (len(adcs)) == 0:
856 return None, None
857
858 det, crate, slot, stream = self.get_det_crate_slot_stream(frag)
859
860 if get_ana_data:
861 ax = 1
862 adc_mean = np.mean(adcs,axis=ax)
863 adc_rms = np.std(adcs,axis=ax)
864 adc_max = np.max(adcs,axis=ax)
865 adc_min = np.min(adcs,axis=ax)
866 adc_median = np.median(adcs,axis=ax)
867 ts_max = np.argmax(adcs,axis=ax)*self.SAMPLING_PERIOD + timestamp
868 ts_min = np.argmin(adcs,axis=ax)*self.SAMPLING_PERIOD + timestamp
869
870 ana_data = [ DAPHNEAnalysisData(run=frh.run_number,
871 trigger=frh.trigger_number,
872 sequence=frh.sequence_number,
873 src_id=frh.element_id.id,
874 channel=self.channel_map.get_offline_channel_from_det_crate_slot_stream_chan(det, crate, slot, stream, daphne_headers[iframe].channel),
875 daphne_chan=daphne_headers[iframe].channel,
876 timestamp_dts=timestamp[iframe],
877 trigger_sample_value=daphne_headers[iframe].trigger_sample_value,
878 threshold=daphne_headers[iframe].threshold,
879 baseline=daphne_headers[iframe].baseline,
880 adc_mean=adc_mean[iframe],
881 adc_rms=adc_rms[iframe],
882 adc_max=adc_max[iframe],
883 adc_min=adc_min[iframe],
884 adc_median=adc_median[iframe],
885 timestamp_max_dts=ts_max[iframe],
886 timestamp_min_dts=ts_min[iframe]) for iframe in range(n_frames) ]
887
888
889 if get_wvfm_data:
890
891 wvfm_data = [ DAPHNEWaveformData(run=frh.run_number,
892 trigger=frh.trigger_number,
893 sequence=frh.sequence_number,
894 src_id=frh.element_id.id,
895 channel=self.channel_map.get_offline_channel_from_det_crate_slot_stream_chan(det, crate, slot, stream, daphne_headers[iframe].channel),
896 daphne_chan=daphne_headers[iframe].channel,
897 timestamp_dts=timestamp[iframe],
898 timestamps=np.arange(np.size(adcs[iframe,:]))*self.SAMPLING_PERIOD+timestamp[iframe],
899 adcs=adcs[iframe,:]) for iframe in range(n_frames) ]
900
901 return ana_data, wvfm_data
902
903
904

◆ get_det_data_version()

rawdatautils.unpack.utils.DAPHNEUnpacker.get_det_data_version ( self,
frag )

Reimplemented from rawdatautils.unpack.utils.DetectorFragmentUnpacker.

Definition at line 827 of file utils.py.

827 def get_det_data_version(self,frag):
828 return 0
829

◆ get_det_header_data()

rawdatautils.unpack.utils.DAPHNEUnpacker.get_det_header_data ( self,
frag )

Reimplemented from rawdatautils.unpack.utils.DetectorFragmentUnpacker.

Definition at line 834 of file utils.py.

834 def get_det_header_data(self,frag):
835 return None
836

◆ get_n_obj()

rawdatautils.unpack.utils.DAPHNEUnpacker.get_n_obj ( self,
frag )

Reimplemented from rawdatautils.unpack.utils.FragmentUnpacker.

Definition at line 818 of file utils.py.

818 def get_n_obj(self,frag):
819 return self.unpacker.get_n_frames(frag)
820

◆ get_timestamp_first()

rawdatautils.unpack.utils.DAPHNEUnpacker.get_timestamp_first ( self,
frag )

Reimplemented from rawdatautils.unpack.utils.DetectorFragmentUnpacker.

Definition at line 824 of file utils.py.

824 def get_timestamp_first(self,frag):
825 return self.frame_obj(frag.get_data()).get_timestamp()
826

Member Data Documentation

◆ frame_obj

rawdatautils.unpack.utils.DAPHNEUnpacker.frame_obj = fddetdataformats.DAPHNEFrame
static

Definition at line 813 of file utils.py.

◆ N_CHANNELS_PER_FRAME

int rawdatautils.unpack.utils.DAPHNEUnpacker.N_CHANNELS_PER_FRAME = 1
static

Definition at line 816 of file utils.py.

◆ SAMPLING_PERIOD

int rawdatautils.unpack.utils.DAPHNEUnpacker.SAMPLING_PERIOD = 1
static

Definition at line 815 of file utils.py.

◆ unpacker

rawdatautils.unpack.utils.DAPHNEUnpacker.unpacker = rawdatautils.unpack.daphne
static

Definition at line 812 of file utils.py.


The documentation for this class was generated from the following file: