From b9a408d6a7e0170b84e0dd46785f66401f7c30bf Mon Sep 17 00:00:00 2001 From: Halim Ashkar Date: Fri, 4 Oct 2024 18:43:22 +0200 Subject: [PATCH 01/11] starting charge intergration with ctapipe methods --- src/nectarchain/dqm/camera_monitoring.py | 2 +- src/nectarchain/dqm/charge_integration.py | 30 ++++++++++++++--- src/nectarchain/dqm/mean_camera_display.py | 2 +- src/nectarchain/dqm/mean_waveforms.py | 2 +- src/nectarchain/dqm/pixel_participation.py | 2 +- src/nectarchain/dqm/pixel_timeline.py | 2 +- src/nectarchain/dqm/start_dqm.py | 38 +++++++++++++++++++++- src/nectarchain/dqm/trigger_statistics.py | 2 +- 8 files changed, 68 insertions(+), 12 deletions(-) diff --git a/src/nectarchain/dqm/camera_monitoring.py b/src/nectarchain/dqm/camera_monitoring.py index af3850b5..c919645e 100644 --- a/src/nectarchain/dqm/camera_monitoring.py +++ b/src/nectarchain/dqm/camera_monitoring.py @@ -39,7 +39,7 @@ def __init__(self, gaink): self.ChargeInt_Figures_Dict = {} self.ChargeInt_Figures_Names_Dict = {} - def ConfigureForRun(self, path, Pix, Samp, Reader1): + def ConfigureForRun(self, path, Pix, Samp, Reader1, charges_kwargs): # define number of pixels and samples self.Pix = Pix self.Samp = Samp diff --git a/src/nectarchain/dqm/charge_integration.py b/src/nectarchain/dqm/charge_integration.py index 0457ebcf..c7cc152a 100644 --- a/src/nectarchain/dqm/charge_integration.py +++ b/src/nectarchain/dqm/charge_integration.py @@ -1,10 +1,15 @@ import ctapipe.instrument.camera.readout import numpy as np from ctapipe.coordinates import EngineeringCameraFrame -from ctapipe.image import LocalPeakWindowSum +from ctapipe.image.extractor import FixedWindowSum # noqa: F401 +from ctapipe.image.extractor import FullWaveformSum # noqa: F401 +from ctapipe.image.extractor import GlobalPeakWindowSum # noqa: F401 +from ctapipe.image.extractor import LocalPeakWindowSum # noqa: F401 +from ctapipe.image.extractor import NeighborPeakWindowSum # noqa: F401 +from ctapipe.image.extractor import SlidingWindowMaxSum # noqa: F401 +from ctapipe.image.extractor import TwoPassWindowSum # noqa: F401 from ctapipe.visualization import CameraDisplay from matplotlib import pyplot as plt -from traitlets.config.loader import Config from .dqm_summary_processor import DQMSummary @@ -51,7 +56,20 @@ def __init__(self, gaink): self.ChargeInt_Figures_Dict = {} self.ChargeInt_Figures_Names_Dict = {} - def ConfigureForRun(self, path, Pix, Samp, Reader1): + def _get_extractor_kwargs_from_method_and_kwargs(method: str, kwargs: dict): + extractor_kwargs = {} + for key in eval(method).class_own_traits().keys(): + if key in kwargs.keys(): + extractor_kwargs[key] = kwargs[key] + if ( + "apply_integration_correction" in eval(method).class_own_traits().keys() + ): # to change the default behavior of ctapipe extractor + extractor_kwargs["apply_integration_correction"] = kwargs.get( + "apply_integration_correction", False + ) + return extractor_kwargs + + def ConfigureForRun(self, path, Pix, Samp, Reader1, charges_kwargs): # define number of pixels and samples self.Pix = Pix self.Samp = Samp @@ -72,9 +90,11 @@ def ConfigureForRun(self, path, Pix, Samp, Reader1): ].camera.readout = ctapipe.instrument.camera.readout.CameraReadout.from_name( "NectarCam" ) - config = Config({"LocalPeakWindowSum": {"window_shift": 4, "window_width": 12}}) - self.integrator = LocalPeakWindowSum(subarray, config=config) + extractor_kwargs = __class__._get_extractor_kwargs_from_method_and_kwargs( + method=charges_kwargs["method"], kwargs=charges_kwargs["extractor_kwargs"] + ) + self.integrator = eval(charges_kwargs["method"])(subarray, **extractor_kwargs) def ProcessEvent(self, evt, noped): self.pixelBAD = evt.mon.tel[0].pixel_status.hardware_failing_pixels diff --git a/src/nectarchain/dqm/mean_camera_display.py b/src/nectarchain/dqm/mean_camera_display.py index ff851691..c72e2fbd 100644 --- a/src/nectarchain/dqm/mean_camera_display.py +++ b/src/nectarchain/dqm/mean_camera_display.py @@ -31,7 +31,7 @@ def __init__(self, gaink): self.MeanCameraDisplay_Figures_Dict = {} self.MeanCameraDisplay_Figures_Names_Dict = {} - def ConfigureForRun(self, path, Pix, Samp, Reader1): + def ConfigureForRun(self, path, Pix, Samp, Reader1, charges_kwargs): # define number of pixels and samples self.Pix = Pix self.Samp = Samp diff --git a/src/nectarchain/dqm/mean_waveforms.py b/src/nectarchain/dqm/mean_waveforms.py index 2431e126..d8bbdca5 100644 --- a/src/nectarchain/dqm/mean_waveforms.py +++ b/src/nectarchain/dqm/mean_waveforms.py @@ -23,7 +23,7 @@ def __init__(self, gaink): self.MeanWaveForms_Figures_Dict = {} self.MeanWaveForms_Figures_Names_Dict = {} - def ConfigureForRun(self, path, Pix, Samp, Reader1): + def ConfigureForRun(self, path, Pix, Samp, Reader1, charges_kwargs): # define number of pixels and samples self.Pix = Pix self.Samp = Samp diff --git a/src/nectarchain/dqm/pixel_participation.py b/src/nectarchain/dqm/pixel_participation.py index 0bfb0576..4163e87d 100644 --- a/src/nectarchain/dqm/pixel_participation.py +++ b/src/nectarchain/dqm/pixel_participation.py @@ -25,7 +25,7 @@ def __init__(self, gaink): self.PixelParticipation_Figures_Dict = {} self.PixelParticipation_Figures_Names_Dict = {} - def ConfigureForRun(self, path, Pix, Samp, Reader1): + def ConfigureForRun(self, path, Pix, Samp, Reader1, charges_kwargs): # define number of pixels and samples self.Pix = Pix self.Samp = Samp diff --git a/src/nectarchain/dqm/pixel_timeline.py b/src/nectarchain/dqm/pixel_timeline.py index c0ccb11f..d227f6d9 100644 --- a/src/nectarchain/dqm/pixel_timeline.py +++ b/src/nectarchain/dqm/pixel_timeline.py @@ -24,7 +24,7 @@ def __init__(self, gaink): self.PixelTimeline_Figures_Dict = {} self.PixelTimeline_Figures_Names_Dict = {} - def ConfigureForRun(self, path, Pix, Samp, Reader1): + def ConfigureForRun(self, path, Pix, Samp, Reader1, charges_kwargs): # define number of pixels and samples self.Pix = Pix self.Samp = Samp diff --git a/src/nectarchain/dqm/start_dqm.py b/src/nectarchain/dqm/start_dqm.py index 707dd8a2..bab389ea 100644 --- a/src/nectarchain/dqm/start_dqm.py +++ b/src/nectarchain/dqm/start_dqm.py @@ -1,4 +1,5 @@ import argparse +import json import os import sys import time @@ -18,6 +19,7 @@ from nectarchain.dqm.pixel_participation import PixelParticipationHighLowGain from nectarchain.dqm.pixel_timeline import PixelTimelineHighLowGain from nectarchain.dqm.trigger_statistics import TriggerStatistics +from nectarchain.makers import ChargesNectarCAMCalibrationTool def main(): @@ -40,6 +42,28 @@ def main(): action="store_true", help="Enables pedestal subtraction in charge integration", ) + # extractor arguments + parser.add_argument( + "--method", + choices=[ + "FullWaveformSum", + "FixedWindowSum", + "GlobalPeakWindowSum", + "LocalPeakWindowSum", + "SlidingWindowMaxSum", + "TwoPassWindowSum", + ], + default="GlobalPeakWindowSum", + help="charge extractor method", + type=str, + ) + parser.add_argument( + "--extractor_kwargs", + default={'{"window_width":16,"window_shift":4}'}, + help="charge extractor kwargs", + type=json.loads, + ) + parser.add_argument( "-r", "--runnb", @@ -94,9 +118,21 @@ def main(): # Defining and printing the options PlotFig = args.plot noped = args.noped + method = args.method + extractor_kwargs = args.extractor_kwargs print("Plot:", PlotFig) print("Noped:", noped) + print("method:", method) + print("extractor_kwargs:", extractor_kwargs) + + kwargs = {"method": method, "extractor_kwargs": extractor_kwargs} + charges_kwargs = {} + tool = ChargesNectarCAMCalibrationTool() + for key in tool.traits().keys(): + if key in kwargs.keys(): + charges_kwargs[key] = kwargs[key] + print(charges_kwargs) def GetName(RunFile): name = RunFile.split("/")[-1] @@ -189,7 +225,7 @@ def CreateFigFolder(name, type): break for p in processors: - p.ConfigureForRun(path, Pix, Samp, reader1) + p.ConfigureForRun(path, Pix, Samp, reader1, charges_kwargs) for evt in tqdm( reader, total=args.max_events if args.max_events else len(reader), unit="ev" diff --git a/src/nectarchain/dqm/trigger_statistics.py b/src/nectarchain/dqm/trigger_statistics.py index 94fbc58d..fdc55616 100644 --- a/src/nectarchain/dqm/trigger_statistics.py +++ b/src/nectarchain/dqm/trigger_statistics.py @@ -32,7 +32,7 @@ def __init__(self, gaink): self.TriggerStat_Figures_Dict = {} self.TriggerStat_Figures_Names_Dict = {} - def ConfigureForRun(self, path, Pix, Samp, Reader1): + def ConfigureForRun(self, path, Pix, Samp, Reader1, charges_kwargs): # define number of pixels and samples self.Pix = Pix self.Samp = Samp From 6863045aca44e4efa501469d53bed1517cf1fe71 Mon Sep 17 00:00:00 2001 From: Halim Ashkar Date: Mon, 7 Oct 2024 14:08:47 +0200 Subject: [PATCH 02/11] fixing cahrge intergration --- src/nectarchain/dqm/charge_integration.py | 96 +++++++++++++---------- 1 file changed, 55 insertions(+), 41 deletions(-) diff --git a/src/nectarchain/dqm/charge_integration.py b/src/nectarchain/dqm/charge_integration.py index c7cc152a..b28e99f3 100644 --- a/src/nectarchain/dqm/charge_integration.py +++ b/src/nectarchain/dqm/charge_integration.py @@ -9,8 +9,12 @@ from ctapipe.image.extractor import SlidingWindowMaxSum # noqa: F401 from ctapipe.image.extractor import TwoPassWindowSum # noqa: F401 from ctapipe.visualization import CameraDisplay +from ctapipe_io_nectarcam import constants from matplotlib import pyplot as plt +from ..makers.component import ChargesComponent +from ..makers.component.core import ArrayDataComponent +from ..makers.extractor.utils import CtapipeExtractor from .dqm_summary_processor import DQMSummary __all__ = ["ChargeIntegrationHighLowGain"] @@ -56,19 +60,6 @@ def __init__(self, gaink): self.ChargeInt_Figures_Dict = {} self.ChargeInt_Figures_Names_Dict = {} - def _get_extractor_kwargs_from_method_and_kwargs(method: str, kwargs: dict): - extractor_kwargs = {} - for key in eval(method).class_own_traits().keys(): - if key in kwargs.keys(): - extractor_kwargs[key] = kwargs[key] - if ( - "apply_integration_correction" in eval(method).class_own_traits().keys() - ): # to change the default behavior of ctapipe extractor - extractor_kwargs["apply_integration_correction"] = kwargs.get( - "apply_integration_correction", False - ) - return extractor_kwargs - def ConfigureForRun(self, path, Pix, Samp, Reader1, charges_kwargs): # define number of pixels and samples self.Pix = Pix @@ -91,14 +82,19 @@ def ConfigureForRun(self, path, Pix, Samp, Reader1, charges_kwargs): "NectarCam" ) - extractor_kwargs = __class__._get_extractor_kwargs_from_method_and_kwargs( - method=charges_kwargs["method"], kwargs=charges_kwargs["extractor_kwargs"] + extractor_kwargs = ( + ChargesComponent._get_extractor_kwargs_from_method_and_kwargs( + method=charges_kwargs["method"], + kwargs=charges_kwargs["extractor_kwargs"], + ) ) self.integrator = eval(charges_kwargs["method"])(subarray, **extractor_kwargs) + # can be replaced by: imageExtractor = + # __class__._get_imageExtractor(method=method, subarray=subarray, **kwargs) def ProcessEvent(self, evt, noped): - self.pixelBAD = evt.mon.tel[0].pixel_status.hardware_failing_pixels pixel = evt.nectarcam.tel[0].svc.pixel_ids + if len(pixel) < self.Pix: pixel_masked_shutter = list( np.arange(0, self.Pix - len(pixel), 1, dtype=int) @@ -108,26 +104,44 @@ def ProcessEvent(self, evt, noped): else: pixels = pixel - waveform = evt.r0.tel[0].waveform[self.k] + ( + broken_pixels_hg, + broken_pixels_lg, + ) = ArrayDataComponent._compute_broken_pixels_event(evt, pixels) + + if self.k == 0: + self.pixelBAD = broken_pixels_hg + channel = constants.HIGH_GAIN + if self.k == 1: + self.pixelBAD = broken_pixels_lg + channel = constants.LOW_GAIN + + # self.pixelBAD = ArrayDataComponent._compute_broken_pixels( + # evt.r0.tel[0].waveform[constants.HIGH_GAIN], + # evt.r0.tel[0].waveform[constants.LOW_GAIN]) + # self.pixelBAD = evt.mon.tel[0].pixel_status.hardware_failing_pixels + waveform = evt.r0.tel[0].waveform[self.k] ped = np.mean(waveform[:, 20]) if noped: w_noped = waveform - ped - output = self.integrator( - w_noped, 0, np.zeros(self.Pix, dtype=int), self.pixelBAD + output = CtapipeExtractor.get_image_peak_time( + self.integrator(w_noped, 0, channel, self.pixelBAD) ) - image = output.image - peakpos = output.peak_time + + image = output[0] + peakpos = output[1] image = image[pixels] peakpos = peakpos[pixels] else: - output = self.integrator( - waveform, 0, np.zeros(self.Pix, dtype=int), self.pixelBAD + output = CtapipeExtractor.get_image_peak_time( + self.integrator(waveform, 0, channel, self.pixelBAD) ) - image = output.image - peakpos = output.peak_time + + image = output[0] + peakpos = output[1] image = image[pixels] peakpos = peakpos[pixels] @@ -294,9 +308,9 @@ def PlotResults(self, name, FigPath): # Charge integration MEAN plot if self.counter_evt > 0: fig1, disp = plt.subplots() - disp = CameraDisplay(self.camera[~self.pixelBAD[0]]) + disp = CameraDisplay(self.camera[~self.pixelBAD]) # disp = CameraDisplay(self.subarray.tels[0].camera) - disp.image = self.image_all_average[~self.pixelBAD[0]] + disp.image = self.image_all_average[~self.pixelBAD] disp.cmap = plt.cm.coolwarm disp.axes.text( 2, @@ -322,8 +336,8 @@ def PlotResults(self, name, FigPath): if self.counter_ped > 0: fig2, disp = plt.subplots() - disp = CameraDisplay(self.camera[~self.pixelBAD[0]]) - disp.image = self.image_ped_average[~self.pixelBAD[0]] + disp = CameraDisplay(self.camera[~self.pixelBAD]) + disp.image = self.image_ped_average[~self.pixelBAD] disp.cmap = plt.cm.coolwarm disp.axes.text( 2, @@ -350,8 +364,8 @@ def PlotResults(self, name, FigPath): # Charge integration MEDIAN plot if self.counter_evt > 0: fig3, disp = plt.subplots() - disp = CameraDisplay(self.camera[~self.pixelBAD[0]]) - disp.image = self.image_all_median[~self.pixelBAD[0]] + disp = CameraDisplay(self.camera[~self.pixelBAD]) + disp.image = self.image_all_median[~self.pixelBAD] disp.cmap = plt.cm.coolwarm disp.axes.text( 2, @@ -377,8 +391,8 @@ def PlotResults(self, name, FigPath): if self.counter_ped > 0: fig4, disp = plt.subplots() - disp = CameraDisplay(self.camera[~self.pixelBAD[0]]) - disp.image = self.image_ped_median[~self.pixelBAD[0]] + disp = CameraDisplay(self.camera[~self.pixelBAD]) + disp.image = self.image_ped_median[~self.pixelBAD] disp.cmap = plt.cm.coolwarm disp.axes.text( 2, @@ -405,8 +419,8 @@ def PlotResults(self, name, FigPath): # Charge integration STD plot if self.counter_evt > 0: fig5, disp = plt.subplots() - disp = CameraDisplay(self.camera[~self.pixelBAD[0]]) - disp.image = self.image_all_std[~self.pixelBAD[0]] + disp = CameraDisplay(self.camera[~self.pixelBAD]) + disp.image = self.image_all_std[~self.pixelBAD] disp.cmap = plt.cm.coolwarm disp.axes.text( 2, @@ -432,8 +446,8 @@ def PlotResults(self, name, FigPath): if self.counter_ped > 0: fig6, disp = plt.subplots() - disp = CameraDisplay(self.camera[~self.pixelBAD[0]]) - disp.image = self.image_ped_std[~self.pixelBAD[0]] + disp = CameraDisplay(self.camera[~self.pixelBAD]) + disp.image = self.image_ped_std[~self.pixelBAD] disp.cmap = plt.cm.coolwarm disp.axes.text( 2, @@ -460,8 +474,8 @@ def PlotResults(self, name, FigPath): # Charge integration RMS plot if self.counter_evt > 0: fig7, disp = plt.subplots() - disp = CameraDisplay(self.camera[~self.pixelBAD[0]]) - disp.image = self.image_all_rms[~self.pixelBAD[0]] + disp = CameraDisplay(self.camera[~self.pixelBAD]) + disp.image = self.image_all_rms[~self.pixelBAD] disp.cmap = plt.cm.coolwarm disp.axes.text( 2, @@ -487,8 +501,8 @@ def PlotResults(self, name, FigPath): if self.counter_ped > 0: fig8, disp = plt.subplots() - disp = CameraDisplay(self.camera[~self.pixelBAD[0]]) - disp.image = self.image_ped_rms[~self.pixelBAD[0]] + disp = CameraDisplay(self.camera[~self.pixelBAD]) + disp.image = self.image_ped_rms[~self.pixelBAD] disp.cmap = plt.cm.coolwarm disp.axes.text( 2, From 2004b6bf4669a9154f9d434e1c4c48f633597625 Mon Sep 17 00:00:00 2001 From: Halim Ashkar Date: Tue, 8 Oct 2024 11:45:22 +0200 Subject: [PATCH 03/11] adjusting defaults --- src/nectarchain/dqm/start_dqm.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/nectarchain/dqm/start_dqm.py b/src/nectarchain/dqm/start_dqm.py index bab389ea..7ae6685c 100644 --- a/src/nectarchain/dqm/start_dqm.py +++ b/src/nectarchain/dqm/start_dqm.py @@ -53,13 +53,13 @@ def main(): "SlidingWindowMaxSum", "TwoPassWindowSum", ], - default="GlobalPeakWindowSum", + default="LocalPeakWindowSum", help="charge extractor method", type=str, ) parser.add_argument( "--extractor_kwargs", - default={'{"window_width":16,"window_shift":4}'}, + default='{"window_shift": 4, "window_width": 16}', help="charge extractor kwargs", type=json.loads, ) From 35755174f3e8df747dbcde340a8139c8cf8c287a Mon Sep 17 00:00:00 2001 From: Halim Ashkar Date: Mon, 14 Oct 2024 16:02:06 +0200 Subject: [PATCH 04/11] fixing CI --- .../dqm/tests/test_camera_monitoring.py | 16 ++++++- .../dqm/tests/test_charge_integration.py | 45 ++++++++++++++++++- .../dqm/tests/test_mean_camera_display.py | 14 +++++- .../dqm/tests/test_mean_waveforms.py | 16 ++++++- .../dqm/tests/test_pixel_participation.py | 14 +++++- .../dqm/tests/test_pixel_timeline.py | 16 ++++++- .../dqm/tests/test_trigger_statistics.py | 16 ++++++- 7 files changed, 130 insertions(+), 7 deletions(-) diff --git a/src/nectarchain/dqm/tests/test_camera_monitoring.py b/src/nectarchain/dqm/tests/test_camera_monitoring.py index a3a99318..c0813c2f 100644 --- a/src/nectarchain/dqm/tests/test_camera_monitoring.py +++ b/src/nectarchain/dqm/tests/test_camera_monitoring.py @@ -1,4 +1,5 @@ from astropy import time as astropytime +from ctapipe.image.extractor import LocalPeakWindowSum # noqa: F401 from ctapipe.io import EventSource from ctapipe.utils import get_dataset_path from ctapipe_io_nectarcam.constants import HIGH_GAIN @@ -6,6 +7,7 @@ from traitlets.config import Config from nectarchain.dqm.camera_monitoring import CameraMonitoring +from nectarchain.makers import ChargesNectarCAMCalibrationTool class TestCameraMonitoring: @@ -35,7 +37,19 @@ def test_camera_monitoring(self): Pix, Samp = CameraMonitoring(HIGH_GAIN).DefineForRun(reader1) - CameraMonitoring(HIGH_GAIN).ConfigureForRun(path, Pix, Samp, reader1) + kwargs = { + "method": LocalPeakWindowSum, + "extractor_kwargs": '{"window_width":16,"window_shift":4}', + } + charges_kwargs = {} + tool = ChargesNectarCAMCalibrationTool() + for key in tool.traits().keys(): + if key in kwargs.keys(): + charges_kwargs[key] = kwargs[key] + + CameraMonitoring(HIGH_GAIN).ConfigureForRun( + path, Pix, Samp, reader1, charges_kwargs + ) for evt in tqdm(reader1, total=1): run_start1 = evt.nectarcam.tel[0].svc.date diff --git a/src/nectarchain/dqm/tests/test_charge_integration.py b/src/nectarchain/dqm/tests/test_charge_integration.py index 0e5ec1f9..42caebfe 100644 --- a/src/nectarchain/dqm/tests/test_charge_integration.py +++ b/src/nectarchain/dqm/tests/test_charge_integration.py @@ -1,3 +1,6 @@ +import argparse +import json + import numpy as np from ctapipe.image import LocalPeakWindowSum from ctapipe.io import EventSource @@ -7,6 +10,7 @@ from traitlets.config import Config from nectarchain.dqm.charge_integration import ChargeIntegrationHighLowGain +from nectarchain.makers import ChargesNectarCAMCalibrationTool class TestChargeIntegrationHighLowGain: @@ -30,14 +34,53 @@ def test_charge_integration(self): ) ) ) + + parser = argparse.ArgumentParser( + description="NectarCAM Data Quality Monitoring tool" + ) + # extractor arguments + parser.add_argument( + "--method", + choices=[ + "FullWaveformSum", + "FixedWindowSum", + "GlobalPeakWindowSum", + "LocalPeakWindowSum", + "SlidingWindowMaxSum", + "TwoPassWindowSum", + ], + default="LocalPeakWindowSum", + help="charge extractor method", + type=str, + ) + + parser.add_argument( + "--extractor_kwargs", + default='{"window_shift": 4, "window_width": 16}', + help="charge extractor kwargs", + type=json.loads, + ) + + args, leftovers = parser.parse_known_args() + reader1 = EventSource(input_url=path, config=config, max_events=1) subarray = reader1.subarray self.integrator = LocalPeakWindowSum(subarray, config=config) Pix, Samp = ChargeIntegrationHighLowGain(HIGH_GAIN).DefineForRun(reader1) + method = args.method + extractor_kwargs = args.extractor_kwargs + + kwargs = {"method": method, "extractor_kwargs": extractor_kwargs} + charges_kwargs = {} + tool = ChargesNectarCAMCalibrationTool() + for key in tool.traits().keys(): + if key in kwargs.keys(): + charges_kwargs[key] = kwargs[key] + ChargeIntegrationHighLowGain(HIGH_GAIN).ConfigureForRun( - path, Pix, Samp, reader1 + path, Pix, Samp, reader1, charges_kwargs ) for evt in tqdm(reader1, total=1): diff --git a/src/nectarchain/dqm/tests/test_mean_camera_display.py b/src/nectarchain/dqm/tests/test_mean_camera_display.py index c747d9cc..64d94396 100644 --- a/src/nectarchain/dqm/tests/test_mean_camera_display.py +++ b/src/nectarchain/dqm/tests/test_mean_camera_display.py @@ -1,3 +1,4 @@ +from ctapipe.image.extractor import LocalPeakWindowSum # noqa: F401 from ctapipe.io import EventSource from ctapipe.utils import get_dataset_path from ctapipe_io_nectarcam.constants import HIGH_GAIN @@ -5,6 +6,7 @@ from traitlets.config import Config from nectarchain.dqm.mean_camera_display import MeanCameraDisplayHighLowGain +from nectarchain.makers import ChargesNectarCAMCalibrationTool class TestMeanCameraDisplayHighLowGain: @@ -34,8 +36,18 @@ def test_mean_camera_display(self): Pix, Samp = MeanCameraDisplayHighLowGain(HIGH_GAIN).DefineForRun(reader1) + kwargs = { + "method": LocalPeakWindowSum, + "extractor_kwargs": '{"window_width":16,"window_shift":4}', + } + charges_kwargs = {} + tool = ChargesNectarCAMCalibrationTool() + for key in tool.traits().keys(): + if key in kwargs.keys(): + charges_kwargs[key] = kwargs[key] + MeanCameraDisplayHighLowGain(HIGH_GAIN).ConfigureForRun( - path, Pix, Samp, reader1 + path, Pix, Samp, reader1, charges_kwargs ) for evt in tqdm(reader1, total=1): diff --git a/src/nectarchain/dqm/tests/test_mean_waveforms.py b/src/nectarchain/dqm/tests/test_mean_waveforms.py index 6c16e502..4111a9d2 100644 --- a/src/nectarchain/dqm/tests/test_mean_waveforms.py +++ b/src/nectarchain/dqm/tests/test_mean_waveforms.py @@ -1,4 +1,5 @@ import numpy as np +from ctapipe.image.extractor import LocalPeakWindowSum # noqa: F401 from ctapipe.io import EventSource from ctapipe.utils import get_dataset_path from ctapipe_io_nectarcam.constants import HIGH_GAIN @@ -6,6 +7,7 @@ from traitlets.config import Config from nectarchain.dqm.mean_waveforms import MeanWaveFormsHighLowGain +from nectarchain.makers import ChargesNectarCAMCalibrationTool class TestMeanWaveForms: @@ -34,7 +36,19 @@ def test_mean_waveforms(self): Pix, Samp = MeanWaveFormsHighLowGain(HIGH_GAIN).DefineForRun(reader1) - MeanWaveFormsHighLowGain(HIGH_GAIN).ConfigureForRun(path, Pix, Samp, reader1) + kwargs = { + "method": LocalPeakWindowSum, + "extractor_kwargs": '{"window_width":16,"window_shift":4}', + } + charges_kwargs = {} + tool = ChargesNectarCAMCalibrationTool() + for key in tool.traits().keys(): + if key in kwargs.keys(): + charges_kwargs[key] = kwargs[key] + + MeanWaveFormsHighLowGain(HIGH_GAIN).ConfigureForRun( + path, Pix, Samp, reader1, charges_kwargs + ) for evt in tqdm(reader1, total=1): self.pixelBAD = evt.mon.tel[0].pixel_status.hardware_failing_pixels diff --git a/src/nectarchain/dqm/tests/test_pixel_participation.py b/src/nectarchain/dqm/tests/test_pixel_participation.py index 961e85bb..6a5a6ac5 100644 --- a/src/nectarchain/dqm/tests/test_pixel_participation.py +++ b/src/nectarchain/dqm/tests/test_pixel_participation.py @@ -1,4 +1,5 @@ import numpy as np +from ctapipe.image.extractor import LocalPeakWindowSum # noqa: F401 from ctapipe.io import EventSource from ctapipe.utils import get_dataset_path from ctapipe_io_nectarcam.constants import HIGH_GAIN @@ -6,6 +7,7 @@ from traitlets.config import Config from nectarchain.dqm.pixel_participation import PixelParticipationHighLowGain +from nectarchain.makers import ChargesNectarCAMCalibrationTool class TestPixelParticipation: @@ -34,8 +36,18 @@ def test_pixel_participation(self): Pix, Samp = PixelParticipationHighLowGain(HIGH_GAIN).DefineForRun(reader1) + kwargs = { + "method": LocalPeakWindowSum, + "extractor_kwargs": '{"window_width":16,"window_shift":4}', + } + charges_kwargs = {} + tool = ChargesNectarCAMCalibrationTool() + for key in tool.traits().keys(): + if key in kwargs.keys(): + charges_kwargs[key] = kwargs[key] + PixelParticipationHighLowGain(HIGH_GAIN).ConfigureForRun( - path, Pix, Samp, reader1 + path, Pix, Samp, reader1, charges_kwargs ) for evt in tqdm(reader1, total=1): diff --git a/src/nectarchain/dqm/tests/test_pixel_timeline.py b/src/nectarchain/dqm/tests/test_pixel_timeline.py index db358aa1..0d7c42b4 100644 --- a/src/nectarchain/dqm/tests/test_pixel_timeline.py +++ b/src/nectarchain/dqm/tests/test_pixel_timeline.py @@ -1,4 +1,5 @@ import numpy as np +from ctapipe.image.extractor import LocalPeakWindowSum # noqa: F401 from ctapipe.io import EventSource from ctapipe.utils import get_dataset_path from ctapipe_io_nectarcam.constants import HIGH_GAIN @@ -6,6 +7,7 @@ from traitlets.config import Config from nectarchain.dqm.pixel_timeline import PixelTimelineHighLowGain +from nectarchain.makers import ChargesNectarCAMCalibrationTool class TestPixelTimeline: @@ -34,7 +36,19 @@ def test_pixel_timeline(self): Pix, Samp = PixelTimelineHighLowGain(HIGH_GAIN).DefineForRun(reader1) - PixelTimelineHighLowGain(HIGH_GAIN).ConfigureForRun(path, Pix, Samp, reader1) + kwargs = { + "method": LocalPeakWindowSum, + "extractor_kwargs": '{"window_width":16,"window_shift":4}', + } + charges_kwargs = {} + tool = ChargesNectarCAMCalibrationTool() + for key in tool.traits().keys(): + if key in kwargs.keys(): + charges_kwargs[key] = kwargs[key] + + PixelTimelineHighLowGain(HIGH_GAIN).ConfigureForRun( + path, Pix, Samp, reader1, charges_kwargs + ) for evt in tqdm(reader1, total=1): self.pixelBAD = evt.mon.tel[0].pixel_status.hardware_failing_pixels diff --git a/src/nectarchain/dqm/tests/test_trigger_statistics.py b/src/nectarchain/dqm/tests/test_trigger_statistics.py index a4711de5..59c6c03e 100644 --- a/src/nectarchain/dqm/tests/test_trigger_statistics.py +++ b/src/nectarchain/dqm/tests/test_trigger_statistics.py @@ -1,3 +1,4 @@ +from ctapipe.image.extractor import LocalPeakWindowSum # noqa: F401 from ctapipe.io import EventSource from ctapipe.utils import get_dataset_path from ctapipe_io_nectarcam.constants import HIGH_GAIN @@ -5,6 +6,7 @@ from traitlets.config import Config from nectarchain.dqm.trigger_statistics import TriggerStatistics +from nectarchain.makers import ChargesNectarCAMCalibrationTool class TestTriggerStatistics: @@ -34,7 +36,19 @@ def test_trigger_statistics(self): Pix, Samp = TriggerStatistics(HIGH_GAIN).DefineForRun(reader1) - TriggerStatistics(HIGH_GAIN).ConfigureForRun(path, Pix, Samp, reader1) + kwargs = { + "method": LocalPeakWindowSum, + "extractor_kwargs": '{"window_width":16,"window_shift":4}', + } + charges_kwargs = {} + tool = ChargesNectarCAMCalibrationTool() + for key in tool.traits().keys(): + if key in kwargs.keys(): + charges_kwargs[key] = kwargs[key] + + TriggerStatistics(HIGH_GAIN).ConfigureForRun( + path, Pix, Samp, reader1, charges_kwargs + ) for evt in tqdm(reader1, total=1): time = evt.trigger.time.value From bf81b00e47b90b8aa29c3681ab6e10b3a664ed4d Mon Sep 17 00:00:00 2001 From: Halim Ashkar Date: Mon, 14 Oct 2024 17:25:33 +0200 Subject: [PATCH 05/11] debugging CI Please enter the commit message for your changes. Lines starting --- .../dqm/tests/test_camera_monitoring.py | 15 +-------------- .../dqm/tests/test_charge_integration.py | 3 ++- .../dqm/tests/test_mean_camera_display.py | 13 +------------ src/nectarchain/dqm/tests/test_mean_waveforms.py | 15 +-------------- .../dqm/tests/test_pixel_participation.py | 13 +------------ src/nectarchain/dqm/tests/test_pixel_timeline.py | 15 +-------------- .../dqm/tests/test_trigger_statistics.py | 15 +-------------- 7 files changed, 8 insertions(+), 81 deletions(-) diff --git a/src/nectarchain/dqm/tests/test_camera_monitoring.py b/src/nectarchain/dqm/tests/test_camera_monitoring.py index c0813c2f..89fe1992 100644 --- a/src/nectarchain/dqm/tests/test_camera_monitoring.py +++ b/src/nectarchain/dqm/tests/test_camera_monitoring.py @@ -7,7 +7,6 @@ from traitlets.config import Config from nectarchain.dqm.camera_monitoring import CameraMonitoring -from nectarchain.makers import ChargesNectarCAMCalibrationTool class TestCameraMonitoring: @@ -37,19 +36,7 @@ def test_camera_monitoring(self): Pix, Samp = CameraMonitoring(HIGH_GAIN).DefineForRun(reader1) - kwargs = { - "method": LocalPeakWindowSum, - "extractor_kwargs": '{"window_width":16,"window_shift":4}', - } - charges_kwargs = {} - tool = ChargesNectarCAMCalibrationTool() - for key in tool.traits().keys(): - if key in kwargs.keys(): - charges_kwargs[key] = kwargs[key] - - CameraMonitoring(HIGH_GAIN).ConfigureForRun( - path, Pix, Samp, reader1, charges_kwargs - ) + CameraMonitoring(HIGH_GAIN).ConfigureForRun(path, Pix, Samp, reader1) for evt in tqdm(reader1, total=1): run_start1 = evt.nectarcam.tel[0].svc.date diff --git a/src/nectarchain/dqm/tests/test_charge_integration.py b/src/nectarchain/dqm/tests/test_charge_integration.py index 42caebfe..6653f53f 100644 --- a/src/nectarchain/dqm/tests/test_charge_integration.py +++ b/src/nectarchain/dqm/tests/test_charge_integration.py @@ -74,13 +74,14 @@ def test_charge_integration(self): kwargs = {"method": method, "extractor_kwargs": extractor_kwargs} charges_kwargs = {} + tool = ChargesNectarCAMCalibrationTool() for key in tool.traits().keys(): if key in kwargs.keys(): charges_kwargs[key] = kwargs[key] ChargeIntegrationHighLowGain(HIGH_GAIN).ConfigureForRun( - path, Pix, Samp, reader1, charges_kwargs + path, Pix, Samp, reader1, **charges_kwargs ) for evt in tqdm(reader1, total=1): diff --git a/src/nectarchain/dqm/tests/test_mean_camera_display.py b/src/nectarchain/dqm/tests/test_mean_camera_display.py index 64d94396..f07a1bad 100644 --- a/src/nectarchain/dqm/tests/test_mean_camera_display.py +++ b/src/nectarchain/dqm/tests/test_mean_camera_display.py @@ -6,7 +6,6 @@ from traitlets.config import Config from nectarchain.dqm.mean_camera_display import MeanCameraDisplayHighLowGain -from nectarchain.makers import ChargesNectarCAMCalibrationTool class TestMeanCameraDisplayHighLowGain: @@ -36,18 +35,8 @@ def test_mean_camera_display(self): Pix, Samp = MeanCameraDisplayHighLowGain(HIGH_GAIN).DefineForRun(reader1) - kwargs = { - "method": LocalPeakWindowSum, - "extractor_kwargs": '{"window_width":16,"window_shift":4}', - } - charges_kwargs = {} - tool = ChargesNectarCAMCalibrationTool() - for key in tool.traits().keys(): - if key in kwargs.keys(): - charges_kwargs[key] = kwargs[key] - MeanCameraDisplayHighLowGain(HIGH_GAIN).ConfigureForRun( - path, Pix, Samp, reader1, charges_kwargs + path, Pix, Samp, reader1 ) for evt in tqdm(reader1, total=1): diff --git a/src/nectarchain/dqm/tests/test_mean_waveforms.py b/src/nectarchain/dqm/tests/test_mean_waveforms.py index 4111a9d2..c5d76009 100644 --- a/src/nectarchain/dqm/tests/test_mean_waveforms.py +++ b/src/nectarchain/dqm/tests/test_mean_waveforms.py @@ -7,7 +7,6 @@ from traitlets.config import Config from nectarchain.dqm.mean_waveforms import MeanWaveFormsHighLowGain -from nectarchain.makers import ChargesNectarCAMCalibrationTool class TestMeanWaveForms: @@ -36,19 +35,7 @@ def test_mean_waveforms(self): Pix, Samp = MeanWaveFormsHighLowGain(HIGH_GAIN).DefineForRun(reader1) - kwargs = { - "method": LocalPeakWindowSum, - "extractor_kwargs": '{"window_width":16,"window_shift":4}', - } - charges_kwargs = {} - tool = ChargesNectarCAMCalibrationTool() - for key in tool.traits().keys(): - if key in kwargs.keys(): - charges_kwargs[key] = kwargs[key] - - MeanWaveFormsHighLowGain(HIGH_GAIN).ConfigureForRun( - path, Pix, Samp, reader1, charges_kwargs - ) + MeanWaveFormsHighLowGain(HIGH_GAIN).ConfigureForRun(path, Pix, Samp, reader1) for evt in tqdm(reader1, total=1): self.pixelBAD = evt.mon.tel[0].pixel_status.hardware_failing_pixels diff --git a/src/nectarchain/dqm/tests/test_pixel_participation.py b/src/nectarchain/dqm/tests/test_pixel_participation.py index 6a5a6ac5..3c69e783 100644 --- a/src/nectarchain/dqm/tests/test_pixel_participation.py +++ b/src/nectarchain/dqm/tests/test_pixel_participation.py @@ -7,7 +7,6 @@ from traitlets.config import Config from nectarchain.dqm.pixel_participation import PixelParticipationHighLowGain -from nectarchain.makers import ChargesNectarCAMCalibrationTool class TestPixelParticipation: @@ -36,18 +35,8 @@ def test_pixel_participation(self): Pix, Samp = PixelParticipationHighLowGain(HIGH_GAIN).DefineForRun(reader1) - kwargs = { - "method": LocalPeakWindowSum, - "extractor_kwargs": '{"window_width":16,"window_shift":4}', - } - charges_kwargs = {} - tool = ChargesNectarCAMCalibrationTool() - for key in tool.traits().keys(): - if key in kwargs.keys(): - charges_kwargs[key] = kwargs[key] - PixelParticipationHighLowGain(HIGH_GAIN).ConfigureForRun( - path, Pix, Samp, reader1, charges_kwargs + path, Pix, Samp, reader1 ) for evt in tqdm(reader1, total=1): diff --git a/src/nectarchain/dqm/tests/test_pixel_timeline.py b/src/nectarchain/dqm/tests/test_pixel_timeline.py index 0d7c42b4..5c8d06bd 100644 --- a/src/nectarchain/dqm/tests/test_pixel_timeline.py +++ b/src/nectarchain/dqm/tests/test_pixel_timeline.py @@ -7,7 +7,6 @@ from traitlets.config import Config from nectarchain.dqm.pixel_timeline import PixelTimelineHighLowGain -from nectarchain.makers import ChargesNectarCAMCalibrationTool class TestPixelTimeline: @@ -36,19 +35,7 @@ def test_pixel_timeline(self): Pix, Samp = PixelTimelineHighLowGain(HIGH_GAIN).DefineForRun(reader1) - kwargs = { - "method": LocalPeakWindowSum, - "extractor_kwargs": '{"window_width":16,"window_shift":4}', - } - charges_kwargs = {} - tool = ChargesNectarCAMCalibrationTool() - for key in tool.traits().keys(): - if key in kwargs.keys(): - charges_kwargs[key] = kwargs[key] - - PixelTimelineHighLowGain(HIGH_GAIN).ConfigureForRun( - path, Pix, Samp, reader1, charges_kwargs - ) + PixelTimelineHighLowGain(HIGH_GAIN).ConfigureForRun(path, Pix, Samp, reader1) for evt in tqdm(reader1, total=1): self.pixelBAD = evt.mon.tel[0].pixel_status.hardware_failing_pixels diff --git a/src/nectarchain/dqm/tests/test_trigger_statistics.py b/src/nectarchain/dqm/tests/test_trigger_statistics.py index 59c6c03e..c5fcc43a 100644 --- a/src/nectarchain/dqm/tests/test_trigger_statistics.py +++ b/src/nectarchain/dqm/tests/test_trigger_statistics.py @@ -6,7 +6,6 @@ from traitlets.config import Config from nectarchain.dqm.trigger_statistics import TriggerStatistics -from nectarchain.makers import ChargesNectarCAMCalibrationTool class TestTriggerStatistics: @@ -36,19 +35,7 @@ def test_trigger_statistics(self): Pix, Samp = TriggerStatistics(HIGH_GAIN).DefineForRun(reader1) - kwargs = { - "method": LocalPeakWindowSum, - "extractor_kwargs": '{"window_width":16,"window_shift":4}', - } - charges_kwargs = {} - tool = ChargesNectarCAMCalibrationTool() - for key in tool.traits().keys(): - if key in kwargs.keys(): - charges_kwargs[key] = kwargs[key] - - TriggerStatistics(HIGH_GAIN).ConfigureForRun( - path, Pix, Samp, reader1, charges_kwargs - ) + TriggerStatistics(HIGH_GAIN).ConfigureForRun(path, Pix, Samp, reader1) for evt in tqdm(reader1, total=1): time = evt.trigger.time.value From 2dda6ccbd440fa021062fd1b000fe427db380df8 Mon Sep 17 00:00:00 2001 From: Halim Ashkar Date: Mon, 14 Oct 2024 17:33:41 +0200 Subject: [PATCH 06/11] debugging2 --- src/nectarchain/dqm/camera_monitoring.py | 2 +- src/nectarchain/dqm/charge_integration.py | 25 +++++++++++++++------- src/nectarchain/dqm/mean_camera_display.py | 2 +- src/nectarchain/dqm/mean_waveforms.py | 2 +- src/nectarchain/dqm/pixel_participation.py | 2 +- src/nectarchain/dqm/pixel_timeline.py | 2 +- src/nectarchain/dqm/start_dqm.py | 2 +- src/nectarchain/dqm/trigger_statistics.py | 2 +- 8 files changed, 24 insertions(+), 15 deletions(-) diff --git a/src/nectarchain/dqm/camera_monitoring.py b/src/nectarchain/dqm/camera_monitoring.py index c919645e..36d394e3 100644 --- a/src/nectarchain/dqm/camera_monitoring.py +++ b/src/nectarchain/dqm/camera_monitoring.py @@ -39,7 +39,7 @@ def __init__(self, gaink): self.ChargeInt_Figures_Dict = {} self.ChargeInt_Figures_Names_Dict = {} - def ConfigureForRun(self, path, Pix, Samp, Reader1, charges_kwargs): + def ConfigureForRun(self, path, Pix, Samp, Reader1, **kwargs): # define number of pixels and samples self.Pix = Pix self.Samp = Samp diff --git a/src/nectarchain/dqm/charge_integration.py b/src/nectarchain/dqm/charge_integration.py index b28e99f3..f18f070b 100644 --- a/src/nectarchain/dqm/charge_integration.py +++ b/src/nectarchain/dqm/charge_integration.py @@ -11,6 +11,7 @@ from ctapipe.visualization import CameraDisplay from ctapipe_io_nectarcam import constants from matplotlib import pyplot as plt +from traitlets.config.loader import Config from ..makers.component import ChargesComponent from ..makers.component.core import ArrayDataComponent @@ -60,7 +61,7 @@ def __init__(self, gaink): self.ChargeInt_Figures_Dict = {} self.ChargeInt_Figures_Names_Dict = {} - def ConfigureForRun(self, path, Pix, Samp, Reader1, charges_kwargs): + def ConfigureForRun(self, path, Pix, Samp, Reader1, **charges_kwargs): # define number of pixels and samples self.Pix = Pix self.Samp = Samp @@ -81,14 +82,22 @@ def ConfigureForRun(self, path, Pix, Samp, Reader1, charges_kwargs): ].camera.readout = ctapipe.instrument.camera.readout.CameraReadout.from_name( "NectarCam" ) - - extractor_kwargs = ( - ChargesComponent._get_extractor_kwargs_from_method_and_kwargs( - method=charges_kwargs["method"], - kwargs=charges_kwargs["extractor_kwargs"], + if charges_kwargs: + extractor_kwargs = ( + ChargesComponent._get_extractor_kwargs_from_method_and_kwargs( + method=charges_kwargs["method"], + kwargs=charges_kwargs["extractor_kwargs"], + ) ) - ) - self.integrator = eval(charges_kwargs["method"])(subarray, **extractor_kwargs) + self.integrator = eval(charges_kwargs["method"])( + subarray, **extractor_kwargs + ) + else: + config = Config( + {"LocalPeakWindowSum": {"window_shift": 4, "window_width": 12}} + ) + self.integrator = LocalPeakWindowSum(subarray, config=config) + print("self.integrator", self.integrator) # can be replaced by: imageExtractor = # __class__._get_imageExtractor(method=method, subarray=subarray, **kwargs) diff --git a/src/nectarchain/dqm/mean_camera_display.py b/src/nectarchain/dqm/mean_camera_display.py index c72e2fbd..b043c807 100644 --- a/src/nectarchain/dqm/mean_camera_display.py +++ b/src/nectarchain/dqm/mean_camera_display.py @@ -31,7 +31,7 @@ def __init__(self, gaink): self.MeanCameraDisplay_Figures_Dict = {} self.MeanCameraDisplay_Figures_Names_Dict = {} - def ConfigureForRun(self, path, Pix, Samp, Reader1, charges_kwargs): + def ConfigureForRun(self, path, Pix, Samp, Reader1, **kwargs): # define number of pixels and samples self.Pix = Pix self.Samp = Samp diff --git a/src/nectarchain/dqm/mean_waveforms.py b/src/nectarchain/dqm/mean_waveforms.py index d8bbdca5..c3df6a8f 100644 --- a/src/nectarchain/dqm/mean_waveforms.py +++ b/src/nectarchain/dqm/mean_waveforms.py @@ -23,7 +23,7 @@ def __init__(self, gaink): self.MeanWaveForms_Figures_Dict = {} self.MeanWaveForms_Figures_Names_Dict = {} - def ConfigureForRun(self, path, Pix, Samp, Reader1, charges_kwargs): + def ConfigureForRun(self, path, Pix, Samp, Reader1, **kwargs): # define number of pixels and samples self.Pix = Pix self.Samp = Samp diff --git a/src/nectarchain/dqm/pixel_participation.py b/src/nectarchain/dqm/pixel_participation.py index 4163e87d..b66d6c34 100644 --- a/src/nectarchain/dqm/pixel_participation.py +++ b/src/nectarchain/dqm/pixel_participation.py @@ -25,7 +25,7 @@ def __init__(self, gaink): self.PixelParticipation_Figures_Dict = {} self.PixelParticipation_Figures_Names_Dict = {} - def ConfigureForRun(self, path, Pix, Samp, Reader1, charges_kwargs): + def ConfigureForRun(self, path, Pix, Samp, Reader1, **kwargs): # define number of pixels and samples self.Pix = Pix self.Samp = Samp diff --git a/src/nectarchain/dqm/pixel_timeline.py b/src/nectarchain/dqm/pixel_timeline.py index d227f6d9..7facc4eb 100644 --- a/src/nectarchain/dqm/pixel_timeline.py +++ b/src/nectarchain/dqm/pixel_timeline.py @@ -24,7 +24,7 @@ def __init__(self, gaink): self.PixelTimeline_Figures_Dict = {} self.PixelTimeline_Figures_Names_Dict = {} - def ConfigureForRun(self, path, Pix, Samp, Reader1, charges_kwargs): + def ConfigureForRun(self, path, Pix, Samp, Reader1, **kwargs): # define number of pixels and samples self.Pix = Pix self.Samp = Samp diff --git a/src/nectarchain/dqm/start_dqm.py b/src/nectarchain/dqm/start_dqm.py index 7ae6685c..91f3216c 100644 --- a/src/nectarchain/dqm/start_dqm.py +++ b/src/nectarchain/dqm/start_dqm.py @@ -225,7 +225,7 @@ def CreateFigFolder(name, type): break for p in processors: - p.ConfigureForRun(path, Pix, Samp, reader1, charges_kwargs) + p.ConfigureForRun(path, Pix, Samp, reader1, **charges_kwargs) for evt in tqdm( reader, total=args.max_events if args.max_events else len(reader), unit="ev" diff --git a/src/nectarchain/dqm/trigger_statistics.py b/src/nectarchain/dqm/trigger_statistics.py index fdc55616..ddc80a35 100644 --- a/src/nectarchain/dqm/trigger_statistics.py +++ b/src/nectarchain/dqm/trigger_statistics.py @@ -32,7 +32,7 @@ def __init__(self, gaink): self.TriggerStat_Figures_Dict = {} self.TriggerStat_Figures_Names_Dict = {} - def ConfigureForRun(self, path, Pix, Samp, Reader1, charges_kwargs): + def ConfigureForRun(self, path, Pix, Samp, Reader1, **kwargs): # define number of pixels and samples self.Pix = Pix self.Samp = Samp From 215e9d942865b47a9582385ee8ae4f045a91ec49 Mon Sep 17 00:00:00 2001 From: Halim Ashkar Date: Tue, 15 Oct 2024 14:33:30 +0200 Subject: [PATCH 07/11] fixing camera plotting in charge_integration --- src/nectarchain/dqm/charge_integration.py | 61 +++++++------------ .../nectarcam_monitoring_db_2022-02-24.sqlite | 0 2 files changed, 22 insertions(+), 39 deletions(-) delete mode 100644 src/nectarchain/dqm/runs/nectarcam_monitoring_db_2022-02-24.sqlite diff --git a/src/nectarchain/dqm/charge_integration.py b/src/nectarchain/dqm/charge_integration.py index f18f070b..22645389 100644 --- a/src/nectarchain/dqm/charge_integration.py +++ b/src/nectarchain/dqm/charge_integration.py @@ -97,21 +97,12 @@ def ConfigureForRun(self, path, Pix, Samp, Reader1, **charges_kwargs): {"LocalPeakWindowSum": {"window_shift": 4, "window_width": 12}} ) self.integrator = LocalPeakWindowSum(subarray, config=config) - print("self.integrator", self.integrator) - # can be replaced by: imageExtractor = - # __class__._get_imageExtractor(method=method, subarray=subarray, **kwargs) def ProcessEvent(self, evt, noped): pixel = evt.nectarcam.tel[0].svc.pixel_ids - - if len(pixel) < self.Pix: - pixel_masked_shutter = list( - np.arange(0, self.Pix - len(pixel), 1, dtype=int) - ) - pixel = list(pixel) - pixels = np.concatenate([pixel_masked_shutter, pixel]) - else: - pixels = pixel + self.pixelBADplot = evt.mon.tel[0].pixel_status.hardware_failing_pixels + pixels = pixel + self.pixels = pixels ( broken_pixels_hg, @@ -125,12 +116,8 @@ def ProcessEvent(self, evt, noped): self.pixelBAD = broken_pixels_lg channel = constants.LOW_GAIN - # self.pixelBAD = ArrayDataComponent._compute_broken_pixels( - # evt.r0.tel[0].waveform[constants.HIGH_GAIN], - # evt.r0.tel[0].waveform[constants.LOW_GAIN]) - # self.pixelBAD = evt.mon.tel[0].pixel_status.hardware_failing_pixels - waveform = evt.r0.tel[0].waveform[self.k] + waveform = waveform[pixels] ped = np.mean(waveform[:, 20]) if noped: @@ -141,8 +128,6 @@ def ProcessEvent(self, evt, noped): image = output[0] peakpos = output[1] - image = image[pixels] - peakpos = peakpos[pixels] else: output = CtapipeExtractor.get_image_peak_time( @@ -151,8 +136,6 @@ def ProcessEvent(self, evt, noped): image = output[0] peakpos = output[1] - image = image[pixels] - peakpos = peakpos[pixels] if evt.trigger.event_type.value == 32: # count peds self.counter_ped += 1 @@ -317,9 +300,9 @@ def PlotResults(self, name, FigPath): # Charge integration MEAN plot if self.counter_evt > 0: fig1, disp = plt.subplots() - disp = CameraDisplay(self.camera[~self.pixelBAD]) + disp = CameraDisplay(self.camera[~self.pixelBADplot[0]]) # disp = CameraDisplay(self.subarray.tels[0].camera) - disp.image = self.image_all_average[~self.pixelBAD] + disp.image = self.image_all_average disp.cmap = plt.cm.coolwarm disp.axes.text( 2, @@ -345,8 +328,8 @@ def PlotResults(self, name, FigPath): if self.counter_ped > 0: fig2, disp = plt.subplots() - disp = CameraDisplay(self.camera[~self.pixelBAD]) - disp.image = self.image_ped_average[~self.pixelBAD] + disp = CameraDisplay(self.camera[~self.pixelBADplot[0]]) + disp.image = self.image_ped_average disp.cmap = plt.cm.coolwarm disp.axes.text( 2, @@ -373,8 +356,8 @@ def PlotResults(self, name, FigPath): # Charge integration MEDIAN plot if self.counter_evt > 0: fig3, disp = plt.subplots() - disp = CameraDisplay(self.camera[~self.pixelBAD]) - disp.image = self.image_all_median[~self.pixelBAD] + disp = CameraDisplay(self.camera[~self.pixelBADplot[0]]) + disp.image = self.image_all_median disp.cmap = plt.cm.coolwarm disp.axes.text( 2, @@ -400,8 +383,8 @@ def PlotResults(self, name, FigPath): if self.counter_ped > 0: fig4, disp = plt.subplots() - disp = CameraDisplay(self.camera[~self.pixelBAD]) - disp.image = self.image_ped_median[~self.pixelBAD] + disp = CameraDisplay(self.camera[~self.pixelBADplot[0]]) + disp.image = self.image_ped_median disp.cmap = plt.cm.coolwarm disp.axes.text( 2, @@ -428,8 +411,8 @@ def PlotResults(self, name, FigPath): # Charge integration STD plot if self.counter_evt > 0: fig5, disp = plt.subplots() - disp = CameraDisplay(self.camera[~self.pixelBAD]) - disp.image = self.image_all_std[~self.pixelBAD] + disp = CameraDisplay(self.camera[~self.pixelBADplot[0]]) + disp.image = self.image_all_std disp.cmap = plt.cm.coolwarm disp.axes.text( 2, @@ -455,8 +438,8 @@ def PlotResults(self, name, FigPath): if self.counter_ped > 0: fig6, disp = plt.subplots() - disp = CameraDisplay(self.camera[~self.pixelBAD]) - disp.image = self.image_ped_std[~self.pixelBAD] + disp = CameraDisplay(self.camera[~self.pixelBADplot[0]]) + disp.image = self.image_ped_std disp.cmap = plt.cm.coolwarm disp.axes.text( 2, @@ -483,8 +466,8 @@ def PlotResults(self, name, FigPath): # Charge integration RMS plot if self.counter_evt > 0: fig7, disp = plt.subplots() - disp = CameraDisplay(self.camera[~self.pixelBAD]) - disp.image = self.image_all_rms[~self.pixelBAD] + disp = CameraDisplay(self.camera[~self.pixelBADplot[0]]) + disp.image = self.image_all_rms disp.cmap = plt.cm.coolwarm disp.axes.text( 2, @@ -510,8 +493,8 @@ def PlotResults(self, name, FigPath): if self.counter_ped > 0: fig8, disp = plt.subplots() - disp = CameraDisplay(self.camera[~self.pixelBAD]) - disp.image = self.image_ped_rms[~self.pixelBAD] + disp = CameraDisplay(self.camera[~self.pixelBADplot[0]]) + disp.image = self.image_ped_rms disp.cmap = plt.cm.coolwarm disp.axes.text( 2, @@ -538,7 +521,7 @@ def PlotResults(self, name, FigPath): # Charge integration SPECTRUM if self.counter_evt > 0: fig9, disp = plt.subplots() - for i in range(self.Pix): + for i in range(len(self.pixels)): plt.hist( self.image_all[:, i], 100, @@ -575,7 +558,7 @@ def PlotResults(self, name, FigPath): if self.counter_ped > 0: fig10, disp = plt.subplots() - for i in range(self.Pix): + for i in range(len(self.pixels)): plt.hist( self.image_ped[:, i], 100, diff --git a/src/nectarchain/dqm/runs/nectarcam_monitoring_db_2022-02-24.sqlite b/src/nectarchain/dqm/runs/nectarcam_monitoring_db_2022-02-24.sqlite deleted file mode 100644 index e69de29b..00000000 From 8fc190e5005e93729c5bd4b5dfc209b198ff7449 Mon Sep 17 00:00:00 2001 From: Halim Ashkar Date: Wed, 23 Oct 2024 18:01:19 +0200 Subject: [PATCH 08/11] switching from LocalPeakWindowSum to GlobalPeakWindowSum as default --- src/nectarchain/dqm/start_dqm.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/nectarchain/dqm/start_dqm.py b/src/nectarchain/dqm/start_dqm.py index 91f3216c..b789ea03 100644 --- a/src/nectarchain/dqm/start_dqm.py +++ b/src/nectarchain/dqm/start_dqm.py @@ -53,7 +53,7 @@ def main(): "SlidingWindowMaxSum", "TwoPassWindowSum", ], - default="LocalPeakWindowSum", + default="GlobalPeakWindowSum", help="charge extractor method", type=str, ) From 77a158a1e12fc3591f5962ffdf8113760c84fd7e Mon Sep 17 00:00:00 2001 From: Halim Ashkar Date: Thu, 24 Oct 2024 17:09:07 +0200 Subject: [PATCH 09/11] fixing test_charge_integration integrator --- src/nectarchain/dqm/tests/test_charge_integration.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/nectarchain/dqm/tests/test_charge_integration.py b/src/nectarchain/dqm/tests/test_charge_integration.py index 6653f53f..bffbbe0e 100644 --- a/src/nectarchain/dqm/tests/test_charge_integration.py +++ b/src/nectarchain/dqm/tests/test_charge_integration.py @@ -2,7 +2,6 @@ import json import numpy as np -from ctapipe.image import LocalPeakWindowSum from ctapipe.io import EventSource from ctapipe.utils import get_dataset_path from ctapipe_io_nectarcam.constants import HIGH_GAIN @@ -49,7 +48,7 @@ def test_charge_integration(self): "SlidingWindowMaxSum", "TwoPassWindowSum", ], - default="LocalPeakWindowSum", + default="GlobalPeakWindowSum", help="charge extractor method", type=str, ) @@ -64,8 +63,7 @@ def test_charge_integration(self): args, leftovers = parser.parse_known_args() reader1 = EventSource(input_url=path, config=config, max_events=1) - subarray = reader1.subarray - self.integrator = LocalPeakWindowSum(subarray, config=config) + self.subarray = reader1.subarray Pix, Samp = ChargeIntegrationHighLowGain(HIGH_GAIN).DefineForRun(reader1) @@ -88,7 +86,11 @@ def test_charge_integration(self): self.pixelBAD = evt.mon.tel[0].pixel_status.hardware_failing_pixels waveform = evt.r0.tel[0].waveform[HIGH_GAIN] ped = np.mean(waveform[:, 20]) - # ChargeIntegrationHighLowGain(HIGH_GAIN).ProcessEvent(evt, noped = False) + # w_noped = waveform - ped + # self.integrator = eval(charges_kwargs["method"])( + # subarray, **extractor_kwargs + # ) + # ChargeIntegrationHighLowGain(HIGH_GAIN).ProcessEvent(evt, noped = True) # ChargeIntegrationHighLowGain(HIGH_GAIN).FinishRun() assert Pix + Samp == 1915 assert np.sum(ped) == 985.8636118598383 From f1c8efb7d732c07d6a7403f9ad651bbcbb883733 Mon Sep 17 00:00:00 2001 From: jlenain Date: Wed, 6 Nov 2024 13:35:40 +0100 Subject: [PATCH 10/11] Use GlobalPeakWindowSum by default, instead of LocalPeakWindowSum. --- src/nectarchain/dqm/charge_integration.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/nectarchain/dqm/charge_integration.py b/src/nectarchain/dqm/charge_integration.py index 22645389..80f7517b 100644 --- a/src/nectarchain/dqm/charge_integration.py +++ b/src/nectarchain/dqm/charge_integration.py @@ -3,11 +3,11 @@ from ctapipe.coordinates import EngineeringCameraFrame from ctapipe.image.extractor import FixedWindowSum # noqa: F401 from ctapipe.image.extractor import FullWaveformSum # noqa: F401 -from ctapipe.image.extractor import GlobalPeakWindowSum # noqa: F401 from ctapipe.image.extractor import LocalPeakWindowSum # noqa: F401 from ctapipe.image.extractor import NeighborPeakWindowSum # noqa: F401 from ctapipe.image.extractor import SlidingWindowMaxSum # noqa: F401 from ctapipe.image.extractor import TwoPassWindowSum # noqa: F401 +from ctapipe.image.extractor import GlobalPeakWindowSum from ctapipe.visualization import CameraDisplay from ctapipe_io_nectarcam import constants from matplotlib import pyplot as plt @@ -94,9 +94,9 @@ def ConfigureForRun(self, path, Pix, Samp, Reader1, **charges_kwargs): ) else: config = Config( - {"LocalPeakWindowSum": {"window_shift": 4, "window_width": 12}} + {"GlobalPeakWindowSum": {"window_shift": 4, "window_width": 12}} ) - self.integrator = LocalPeakWindowSum(subarray, config=config) + self.integrator = GlobalPeakWindowSum(subarray, config=config) def ProcessEvent(self, evt, noped): pixel = evt.nectarcam.tel[0].svc.pixel_ids From 649bf8da63b47103d381ef71543f7ea3deb879a0 Mon Sep 17 00:00:00 2001 From: jlenain Date: Wed, 6 Nov 2024 13:36:25 +0100 Subject: [PATCH 11/11] Simplify existing unit tests --- .../dqm/tests/test_camera_monitoring.py | 20 ++---- .../dqm/tests/test_charge_integration.py | 62 +------------------ .../dqm/tests/test_mean_camera_display.py | 19 +----- .../dqm/tests/test_mean_waveforms.py | 14 +---- .../dqm/tests/test_pixel_participation.py | 13 +--- .../dqm/tests/test_pixel_timeline.py | 13 +--- .../dqm/tests/test_trigger_statistics.py | 9 --- 7 files changed, 15 insertions(+), 135 deletions(-) diff --git a/src/nectarchain/dqm/tests/test_camera_monitoring.py b/src/nectarchain/dqm/tests/test_camera_monitoring.py index 89fe1992..89e2f43c 100644 --- a/src/nectarchain/dqm/tests/test_camera_monitoring.py +++ b/src/nectarchain/dqm/tests/test_camera_monitoring.py @@ -1,5 +1,4 @@ from astropy import time as astropytime -from ctapipe.image.extractor import LocalPeakWindowSum # noqa: F401 from ctapipe.io import EventSource from ctapipe.utils import get_dataset_path from ctapipe_io_nectarcam.constants import HIGH_GAIN @@ -10,15 +9,9 @@ class TestCameraMonitoring: - run_number = 3798 - max_events = 1 - def test_camera_monitoring(self): - # run_number = 3938 path = get_dataset_path("NectarCAM.Run3938.30events.fits.fz") - config = None - config = Config( dict( NectarCAMEventSource=dict( @@ -30,18 +23,17 @@ def test_camera_monitoring(self): ) ) ) - print(path) reader1 = EventSource(input_url=path, config=config, max_events=1) Pix, Samp = CameraMonitoring(HIGH_GAIN).DefineForRun(reader1) - CameraMonitoring(HIGH_GAIN).ConfigureForRun(path, Pix, Samp, reader1) - + sql_file_date = None for evt in tqdm(reader1, total=1): run_start1 = evt.nectarcam.tel[0].svc.date - SqlFileDate = astropytime.Time(run_start1, format="unix").iso.split(" ")[0] - # print("SqlFileDate", SqlFileDate) - # CameraMonitoring(HIGH_GAIN).FinishRun() + sql_file_date = astropytime.Time(run_start1, format="unix").iso.split(" ")[ + 0 + ] + assert Pix + Samp == 1915 - assert SqlFileDate == "2023-01-23" + assert sql_file_date == "2023-01-23" diff --git a/src/nectarchain/dqm/tests/test_charge_integration.py b/src/nectarchain/dqm/tests/test_charge_integration.py index bffbbe0e..35b83b46 100644 --- a/src/nectarchain/dqm/tests/test_charge_integration.py +++ b/src/nectarchain/dqm/tests/test_charge_integration.py @@ -1,6 +1,3 @@ -import argparse -import json - import numpy as np from ctapipe.io import EventSource from ctapipe.utils import get_dataset_path @@ -9,19 +6,12 @@ from traitlets.config import Config from nectarchain.dqm.charge_integration import ChargeIntegrationHighLowGain -from nectarchain.makers import ChargesNectarCAMCalibrationTool class TestChargeIntegrationHighLowGain: - run_number = 3938 - max_events = 1 - def test_charge_integration(self): - # run_number = 3938 path = get_dataset_path("NectarCAM.Run3938.30events.fits.fz") - config = None - config = Config( dict( NectarCAMEventSource=dict( @@ -34,63 +24,15 @@ def test_charge_integration(self): ) ) - parser = argparse.ArgumentParser( - description="NectarCAM Data Quality Monitoring tool" - ) - # extractor arguments - parser.add_argument( - "--method", - choices=[ - "FullWaveformSum", - "FixedWindowSum", - "GlobalPeakWindowSum", - "LocalPeakWindowSum", - "SlidingWindowMaxSum", - "TwoPassWindowSum", - ], - default="GlobalPeakWindowSum", - help="charge extractor method", - type=str, - ) - - parser.add_argument( - "--extractor_kwargs", - default='{"window_shift": 4, "window_width": 16}', - help="charge extractor kwargs", - type=json.loads, - ) - - args, leftovers = parser.parse_known_args() - reader1 = EventSource(input_url=path, config=config, max_events=1) - self.subarray = reader1.subarray Pix, Samp = ChargeIntegrationHighLowGain(HIGH_GAIN).DefineForRun(reader1) - method = args.method - extractor_kwargs = args.extractor_kwargs - - kwargs = {"method": method, "extractor_kwargs": extractor_kwargs} - charges_kwargs = {} - - tool = ChargesNectarCAMCalibrationTool() - for key in tool.traits().keys(): - if key in kwargs.keys(): - charges_kwargs[key] = kwargs[key] - - ChargeIntegrationHighLowGain(HIGH_GAIN).ConfigureForRun( - path, Pix, Samp, reader1, **charges_kwargs - ) - + ped = None for evt in tqdm(reader1, total=1): self.pixelBAD = evt.mon.tel[0].pixel_status.hardware_failing_pixels waveform = evt.r0.tel[0].waveform[HIGH_GAIN] ped = np.mean(waveform[:, 20]) - # w_noped = waveform - ped - # self.integrator = eval(charges_kwargs["method"])( - # subarray, **extractor_kwargs - # ) - # ChargeIntegrationHighLowGain(HIGH_GAIN).ProcessEvent(evt, noped = True) - # ChargeIntegrationHighLowGain(HIGH_GAIN).FinishRun() + assert Pix + Samp == 1915 assert np.sum(ped) == 985.8636118598383 diff --git a/src/nectarchain/dqm/tests/test_mean_camera_display.py b/src/nectarchain/dqm/tests/test_mean_camera_display.py index f07a1bad..e5ac3825 100644 --- a/src/nectarchain/dqm/tests/test_mean_camera_display.py +++ b/src/nectarchain/dqm/tests/test_mean_camera_display.py @@ -1,4 +1,3 @@ -from ctapipe.image.extractor import LocalPeakWindowSum # noqa: F401 from ctapipe.io import EventSource from ctapipe.utils import get_dataset_path from ctapipe_io_nectarcam.constants import HIGH_GAIN @@ -9,15 +8,9 @@ class TestMeanCameraDisplayHighLowGain: - run_number = 3798 - max_events = 1 - def test_mean_camera_display(self): - # run_number = 3938 path = get_dataset_path("NectarCAM.Run3938.30events.fits.fz") - config = None - config = Config( dict( NectarCAMEventSource=dict( @@ -29,20 +22,14 @@ def test_mean_camera_display(self): ) ) ) - print(path) reader1 = EventSource(input_url=path, config=config, max_events=1) Pix, Samp = MeanCameraDisplayHighLowGain(HIGH_GAIN).DefineForRun(reader1) - MeanCameraDisplayHighLowGain(HIGH_GAIN).ConfigureForRun( - path, Pix, Samp, reader1 - ) - + camera_average = None for evt in tqdm(reader1, total=1): - # MeanCameraDisplayHighLowGain(HIGH_GAIN).ProcessEvent(evt, noped = False) - CameraAverage = evt.r0.tel[0].waveform[HIGH_GAIN].sum(axis=1) + camera_average = evt.r0.tel[0].waveform[HIGH_GAIN].sum(axis=1) - # MeanCameraDisplayHighLowGain(HIGH_GAIN).FinishRun() assert Pix + Samp == 1915 - assert CameraAverage.sum(axis=0) == 109723121 + assert camera_average.sum(axis=0) == 109723121 diff --git a/src/nectarchain/dqm/tests/test_mean_waveforms.py b/src/nectarchain/dqm/tests/test_mean_waveforms.py index c5d76009..dbb3e452 100644 --- a/src/nectarchain/dqm/tests/test_mean_waveforms.py +++ b/src/nectarchain/dqm/tests/test_mean_waveforms.py @@ -1,5 +1,4 @@ import numpy as np -from ctapipe.image.extractor import LocalPeakWindowSum # noqa: F401 from ctapipe.io import EventSource from ctapipe.utils import get_dataset_path from ctapipe_io_nectarcam.constants import HIGH_GAIN @@ -10,15 +9,9 @@ class TestMeanWaveForms: - run_number = 3798 - max_events = 1 - def test_mean_waveforms(self): - # run_number = 3938 path = get_dataset_path("NectarCAM.Run3938.30events.fits.fz") - config = None - config = Config( dict( NectarCAMEventSource=dict( @@ -35,12 +28,9 @@ def test_mean_waveforms(self): Pix, Samp = MeanWaveFormsHighLowGain(HIGH_GAIN).DefineForRun(reader1) - MeanWaveFormsHighLowGain(HIGH_GAIN).ConfigureForRun(path, Pix, Samp, reader1) - + evt = None for evt in tqdm(reader1, total=1): self.pixelBAD = evt.mon.tel[0].pixel_status.hardware_failing_pixels - # MeanWaveFormsHighLowGain(HIGH_GAIN).ProcessEvent(evt, noped = False) - # MeanWaveFormsHighLowGain(HIGH_GAIN).FinishRun() - assert Pix + Samp == 1915 + assert Pix + Samp == 1915 assert np.sum(evt.r0.tel[0].waveform[HIGH_GAIN][0]) == 3932100 diff --git a/src/nectarchain/dqm/tests/test_pixel_participation.py b/src/nectarchain/dqm/tests/test_pixel_participation.py index 3c69e783..ae9fb22a 100644 --- a/src/nectarchain/dqm/tests/test_pixel_participation.py +++ b/src/nectarchain/dqm/tests/test_pixel_participation.py @@ -1,5 +1,4 @@ import numpy as np -from ctapipe.image.extractor import LocalPeakWindowSum # noqa: F401 from ctapipe.io import EventSource from ctapipe.utils import get_dataset_path from ctapipe_io_nectarcam.constants import HIGH_GAIN @@ -10,11 +9,7 @@ class TestPixelParticipation: - run_number = 3798 - max_events = 1 - def test_pixel_participation(self): - # run_number = 3938 path = get_dataset_path("NectarCAM.Run3938.30events.fits.fz") config = None @@ -35,15 +30,9 @@ def test_pixel_participation(self): Pix, Samp = PixelParticipationHighLowGain(HIGH_GAIN).DefineForRun(reader1) - PixelParticipationHighLowGain(HIGH_GAIN).ConfigureForRun( - path, Pix, Samp, reader1 - ) - + evt = None for evt in tqdm(reader1, total=1): self.pixelBAD = evt.mon.tel[0].pixel_status.hardware_failing_pixels - # PixelParticipationHighLowGain(HIGH_GAIN).ProcessEvent(evt, noped = False) - - PixelParticipationHighLowGain(HIGH_GAIN).FinishRun() assert Pix + Samp == 1915 assert np.sum(evt.nectarcam.tel[0].svc.pixel_ids) == 1719375 diff --git a/src/nectarchain/dqm/tests/test_pixel_timeline.py b/src/nectarchain/dqm/tests/test_pixel_timeline.py index 5c8d06bd..f6b58c37 100644 --- a/src/nectarchain/dqm/tests/test_pixel_timeline.py +++ b/src/nectarchain/dqm/tests/test_pixel_timeline.py @@ -1,5 +1,4 @@ import numpy as np -from ctapipe.image.extractor import LocalPeakWindowSum # noqa: F401 from ctapipe.io import EventSource from ctapipe.utils import get_dataset_path from ctapipe_io_nectarcam.constants import HIGH_GAIN @@ -10,15 +9,9 @@ class TestPixelTimeline: - run_number = 3798 - max_events = 1 - def test_pixel_timeline(self): - # run_number = 3938 path = get_dataset_path("NectarCAM.Run3938.30events.fits.fz") - config = None - config = Config( dict( NectarCAMEventSource=dict( @@ -35,13 +28,9 @@ def test_pixel_timeline(self): Pix, Samp = PixelTimelineHighLowGain(HIGH_GAIN).DefineForRun(reader1) - PixelTimelineHighLowGain(HIGH_GAIN).ConfigureForRun(path, Pix, Samp, reader1) - + evt = None for evt in tqdm(reader1, total=1): self.pixelBAD = evt.mon.tel[0].pixel_status.hardware_failing_pixels - # PixelTimelineHighLowGain(HIGH_GAIN).ProcessEvent(evt, noped = False) - - PixelTimelineHighLowGain(HIGH_GAIN).FinishRun() assert Pix + Samp == 1915 assert np.sum(evt.nectarcam.tel[0].svc.pixel_ids) == 1719375 diff --git a/src/nectarchain/dqm/tests/test_trigger_statistics.py b/src/nectarchain/dqm/tests/test_trigger_statistics.py index c5fcc43a..fee7f9d5 100644 --- a/src/nectarchain/dqm/tests/test_trigger_statistics.py +++ b/src/nectarchain/dqm/tests/test_trigger_statistics.py @@ -1,4 +1,3 @@ -from ctapipe.image.extractor import LocalPeakWindowSum # noqa: F401 from ctapipe.io import EventSource from ctapipe.utils import get_dataset_path from ctapipe_io_nectarcam.constants import HIGH_GAIN @@ -9,15 +8,9 @@ class TestTriggerStatistics: - run_number = 3798 - max_events = 1 - def test_trigger_statistics(self): - # run_number = 3938 path = get_dataset_path("NectarCAM.Run3938.30events.fits.fz") - config = None - config = Config( dict( NectarCAMEventSource=dict( @@ -29,7 +22,6 @@ def test_trigger_statistics(self): ) ) ) - print(path) reader1 = EventSource(input_url=path, config=config, max_events=1) @@ -41,6 +33,5 @@ def test_trigger_statistics(self): time = evt.trigger.time.value TriggerStatistics(HIGH_GAIN).ProcessEvent(evt, noped=False) - # TriggerStatistics(HIGH_GAIN).FinishRun() assert Pix + Samp == 1915 assert time == 1674462932.6398556