From 12bca9a71ac2292a55fa5cc6ee397f1fa99c00c6 Mon Sep 17 00:00:00 2001 From: Laura Paulucci Date: Tue, 27 Jan 2026 03:26:27 -0600 Subject: [PATCH 1/5] New PDVD OpHit calibrator --- .../PhotonCalibratorProtoDUNEVD.cc | 54 +++++++++++++++ .../PhotonCalibratorProtoDUNEVD.fcl | 30 ++++++++ .../PhotonCalibratorProtoDUNEVD.h | 51 ++++++++++++++ .../PhotonCalibratorServiceProtoDUNEVD.h | 68 +++++++++++++++++++ ...tonCalibratorServiceProtoDUNEVD_service.cc | 9 +++ 5 files changed, 212 insertions(+) create mode 100644 duneopdet/OpticalDetector/PhotonCalibratorProtoDUNEVD.cc create mode 100644 duneopdet/OpticalDetector/PhotonCalibratorProtoDUNEVD.fcl create mode 100644 duneopdet/OpticalDetector/PhotonCalibratorProtoDUNEVD.h create mode 100644 duneopdet/OpticalDetector/PhotonCalibratorServiceProtoDUNEVD.h create mode 100644 duneopdet/OpticalDetector/PhotonCalibratorServiceProtoDUNEVD_service.cc diff --git a/duneopdet/OpticalDetector/PhotonCalibratorProtoDUNEVD.cc b/duneopdet/OpticalDetector/PhotonCalibratorProtoDUNEVD.cc new file mode 100644 index 00000000..d69a9337 --- /dev/null +++ b/duneopdet/OpticalDetector/PhotonCalibratorProtoDUNEVD.cc @@ -0,0 +1,54 @@ +// dunetpc includes +#include "duneopdet/OpticalDetector/PhotonCalibratorProtoDUNEVD.h" + +// LArSoft Includes +#include "larreco/Calibrator/IPhotonCalibrator.h" +#include "larcore/Geometry/Geometry.h" +#include "larcore/CoreUtils/ServiceUtil.h" // lar::providerFrom() +#include "larcore/Geometry/WireReadout.h" + +// ART includes +#include "fhiclcpp/ParameterSet.h" +#include "art/Framework/Services/Registry/ActivityRegistry.h" +#include "art/Framework/Services/Registry/ServiceHandle.h" +#include "art/Framework/Services/Registry/ServiceMacros.h" +#include "messagefacility/MessageLogger/MessageLogger.h" + +#include +#include +#include + +namespace calib { + + PhotonCalibratorProtoDUNEVD::PhotonCalibratorProtoDUNEVD(fhicl::ParameterSet const& pset, art::ActivityRegistry& reg) + { + + fBadChannels = pset.get >("BadChannels"); + fHdwChannels = pset.get >("HdwChannels"); + fSPEAreas = pset.get >("SPEAreas"); + fSPEShifts = pset.get >("SPEShifts"); + + //Map for associating each hardware channel with its correspondent SPE area + for(size_t i=0; isecond; + auto entry2 = fShiftMap.find(opchannel); + float shift = entry2->second; + return adcs/area + shift; + } + +} + +//DEFINE_ART_SERVICE_INTERFACE_IMPL(calib::PhotonCalibratorProtoDUNEVD, calib::IPhotonCalibrator) diff --git a/duneopdet/OpticalDetector/PhotonCalibratorProtoDUNEVD.fcl b/duneopdet/OpticalDetector/PhotonCalibratorProtoDUNEVD.fcl new file mode 100644 index 00000000..f89f4cbf --- /dev/null +++ b/duneopdet/OpticalDetector/PhotonCalibratorProtoDUNEVD.fcl @@ -0,0 +1,30 @@ +BEGIN_PROLOG + +# +# Applies channel-by-channel PE calibrations +# + +protodunevd_photoncalibrator_config1: #Data taken between ??? +{ + service_provider: PhotonCalibratorServiceProtoDUNEVD + BadChannels: [ ] + HdwChannels: [ 1010, 1011, 1020, 1021, 1030, 1031, 1040, 1041, 1050, 1051, 1060, 1061, 1070, 1071, 1080, 1081, 2010, 2011, 2020, 2021, 2030, 2031, 2040, 2041, 2050, 2051, 2060, 2061, 2070, 2071, 2080, 2081, 3010, 3020, 3030, 3040, 3050, 3060, 3070, 3080, 3090, 3100, 3110, 3120, 3130, 3140, 3150, 3160, 3170, 3180, 3190, 3200, 3210, 3220, 3230, 3240 ] #hardware channels as in the PDVD_PDS_Mapping (in dunecore/ChannelMap) + SPEShifts: [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] + SPEAreas: [ 3482.9, 1893.97, 2148.87, 4332.16, 2063.53, 2000, 2257.92, 2530.51, 5225.09, 5185.5, 2426.86, 2685.4, 3831.38, 3567.7, 1526.98, 1258.39, 2000, 2000, 2000, 2000, 3147.79, 3278.53, 1380.77, 2205.66, 4364.88, 4221.51, 3058.11, 3009.3, 2634.38, 2557.6, 3771.75, 3723.89, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100 ] #channel correspondence can be found in the PDVD_PDS_Mapping found in dunecore/ChannelMap. Values from waffles/np02_data/calibration_data --> STILL TO BE OBTAINED. DO NOT USE + +} + +#Data taken between July 10th - 16th +protodunevd_photoncalibrator_config2: @local::protodunevd_photoncalibrator_config1 +protodunevd_photoncalibrator_config2.SPEAreas: [ 3450.06, 1950.04, 2138.67, 4251.92, 2063.53, 2000, 2336.25, 2197.08, 5225.09, 5185.5, 2426.86, 2685.4, 3831.38, 3567.7, 1526.98, 1258.39, 2000, 2000, 2000, 2000, 2794.99, 2732.12, 2073.26, 1948.84, 4302.94, 4255.39, 2900.88, 2826.3, 3238.6, 3074.78, 3669.16, 3723.37, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100 ] #Values from waffles/np02_data/calibration_data/ --> STILL TO BE OBTAINED. DO NOT USE + +#Data taken between August 2nd - 8th +protodunevd_photoncalibrator_config3: @local::protodunevd_photoncalibrator_config1 +protodunevd_photoncalibrator_config3.SPEAreas: [ 3450.06, 1950.04, 2138.67, 4251.92, 2063.53, 2000, 2336.25, 2197.08, 5225.09, 5185.5, 2426.86, 2685.4, 3831.38, 3567.7, 1526.98, 1258.39, 2000, 2000, 2000, 2000, 2794.99, 2732.12, 2073.26, 1948.84, 4302.94, 4255.39, 2900.88, 2826.3, 3238.6, 3074.78, 3669.16, 3723.37, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100 ] #Values from waffles/np02_data/calibration_data/np02-config-v3.0.0.csv + +#Data taken from August 10th on +protodunevd_photoncalibrator_config3: @local::protodunevd_photoncalibrator_config1 +protodunevd_photoncalibrator_config3.SPEAreas: [ 3482.9, 1893.97, 2148.87, 4332.16, 2063.53, 2000, 2257.92, 2530.51, 5225.09, 5185.5, 2426.86, 2685.4, 3831.38, 3567.7, 1526.98, 1258.39, 2000, 2000, 2000, 2000, 3147.79, 3278.53, 1380.77, 2205.66, 4364.88, 4221.51, 3058.11, 3009.3, 2634.38, 2557.6, 3771.75, 3723.89, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100 ] #Values from waffles/np02_data/calibration_data/np02-config-v4.0.0.csv + + +END_PROLOG diff --git a/duneopdet/OpticalDetector/PhotonCalibratorProtoDUNEVD.h b/duneopdet/OpticalDetector/PhotonCalibratorProtoDUNEVD.h new file mode 100644 index 00000000..b50aa20b --- /dev/null +++ b/duneopdet/OpticalDetector/PhotonCalibratorProtoDUNEVD.h @@ -0,0 +1,51 @@ +//////////////////////////////////////////////////////////////////////// +// \file PhotonCalibratorProtoDUNEVD.h +// +// \brief ProtoDUNEVD service provider applying a channel based scale factor to optical hits. +// +// \author lpaulucc@fnal.gov based on PhotonCalibratorProtoduneSP by ahimmel +// +//////////////////////////////////////////////////////////////////////// + + +#ifndef PHOTONCALIBRATORPROTODUNEVD_H +#define PHOTONCALIBRATORPROTODUNEVD_H + +#include "larreco/Calibrator/IPhotonCalibrator.h" + +// ART includes +#include "fhiclcpp/ParameterSet.h" +#include "art/Framework/Services/Registry/ActivityRegistry.h" +#include "art/Framework/Services/Registry/ServiceHandle.h" +#include "art/Framework/Services/Registry/ServiceMacros.h" + + +namespace calib { + + class PhotonCalibratorProtoDUNEVD : public IPhotonCalibrator + { + public: + PhotonCalibratorProtoDUNEVD(fhicl::ParameterSet const& pset, art::ActivityRegistry& reg); + + // Override base class functions + double PE(double adcs, int opchannel) const override; + bool UseArea() const override { return true; } // ProtoDUNE always uses area + + /// Need a 3D position because result depends on position along length of + /// bar. This is going to be pretty imprecise even so. + // virtual double GeV(double PE, int opchannel, TVector3 pos) override; + + private: + std::vector fHdwChannels; + std::vector fSPEAreas; + std::vector fSPEShifts; + std::vector fBadChannels; + std::map fAreaMap; + std::map fShiftMap; + }; // class PhotonCalibratorProtoDUNEVD +} + +//DECLARE_ART_SERVICE_INTERFACE_IMPL(calib::PhotonCalibratorProtoDUNEVD, calib::IPhotonCalibrator, LEGACY) + + +#endif diff --git a/duneopdet/OpticalDetector/PhotonCalibratorServiceProtoDUNEVD.h b/duneopdet/OpticalDetector/PhotonCalibratorServiceProtoDUNEVD.h new file mode 100644 index 00000000..58e77c3d --- /dev/null +++ b/duneopdet/OpticalDetector/PhotonCalibratorServiceProtoDUNEVD.h @@ -0,0 +1,68 @@ +//////////////////////////////////////////////////////////////////////// +// \file PhotonCalibratorServiceProtoDUNEVD.h +// +// \brief Framework interface to PhotonCalibratorProtoDUNEVD +// +// \author lpaulucc@fnal.gov based on PhotonCalibratorServiceProtuDUNESP by ahimmel@fnal.gov +// +//////////////////////////////////////////////////////////////////////// + + +#ifndef PHOTONCALIBRATORSERVICEPROTODUNEVD +#define PHOTONCALIBRATORSERVICEPROTODUNEVD + +// LArSoft Includes +#include "duneopdet/OpticalDetector/PhotonCalibratorProtoDUNEVD.h" +#include "larreco/Calibrator/IPhotonCalibratorService.h" + + +// ART Includes +#include "fhiclcpp/ParameterSet.h" +#include "fhiclcpp/types/Atom.h" +#include "fhiclcpp/types/Sequence.h" +#include "art/Framework/Services/Registry/ActivityRegistry.h" +#include "art/Framework/Services/Registry/ServiceHandle.h" +#include "art/Framework/Services/Registry/ServiceMacros.h" +#include "art/Framework/Services/Registry/ServiceTable.h" +#include "art/Framework/Principal/Run.h" + + +#include + +namespace calib { + + + class PhotonCalibratorServiceProtoDUNEVD : public IPhotonCalibratorService + { + public: + using provider_type = PhotonCalibratorProtoDUNEVD; + + struct ServiceConfiguration_t + { + fhicl::Sequence HdwChannels { fhicl::Name("HdwChannels") }; + fhicl::Sequence SPEAreas { fhicl::Name("SPEAreas") }; + fhicl::Sequence SPEShifts { fhicl::Name("SPEShifts") }; + fhicl::Sequence BadChannels { fhicl::Name("BadChannels"), fhicl::Comment("Channels to remove from reconstruction") }; + }; + + using Parameters = art::ServiceTable; + + public: + PhotonCalibratorServiceProtoDUNEVD(Parameters const & config, + art::ActivityRegistry& aReg) + : fProvider( new PhotonCalibratorProtoDUNEVD(config.get_PSet(), aReg) ) + { } + + provider_type const* provider() const override { return fProvider.get(); } + + private: + std::unique_ptr fProvider; + }; + +} + +DECLARE_ART_SERVICE_INTERFACE_IMPL(calib::PhotonCalibratorServiceProtoDUNEVD, + calib::IPhotonCalibratorService, + LEGACY) + +#endif // PHOTONCALIBRATORSERVICEPROTODUNEVD diff --git a/duneopdet/OpticalDetector/PhotonCalibratorServiceProtoDUNEVD_service.cc b/duneopdet/OpticalDetector/PhotonCalibratorServiceProtoDUNEVD_service.cc new file mode 100644 index 00000000..009866a9 --- /dev/null +++ b/duneopdet/OpticalDetector/PhotonCalibratorServiceProtoDUNEVD_service.cc @@ -0,0 +1,9 @@ +/** + * Required minimal implementation file for calibrator service + * which only returns a provider. + */ +#include "duneopdet/OpticalDetector/PhotonCalibratorServiceProtoDUNEVD.h" +#include "art/Framework/Services/Registry/ServiceDefinitionMacros.h" + +DEFINE_ART_SERVICE_INTERFACE_IMPL(calib::PhotonCalibratorServiceProtoDUNEVD, + calib::IPhotonCalibratorService) From d0bc3c0deced3b37de40da195e0461295cc0221f Mon Sep 17 00:00:00 2001 From: Laura Paulucci Date: Tue, 27 Jan 2026 09:02:30 -0600 Subject: [PATCH 2/5] Typo fix --- duneopdet/OpticalDetector/PhotonCalibratorProtoDUNEVD.fcl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/duneopdet/OpticalDetector/PhotonCalibratorProtoDUNEVD.fcl b/duneopdet/OpticalDetector/PhotonCalibratorProtoDUNEVD.fcl index f89f4cbf..e01aa3f0 100644 --- a/duneopdet/OpticalDetector/PhotonCalibratorProtoDUNEVD.fcl +++ b/duneopdet/OpticalDetector/PhotonCalibratorProtoDUNEVD.fcl @@ -23,8 +23,8 @@ protodunevd_photoncalibrator_config3: @local::protodunevd_photoncalibra protodunevd_photoncalibrator_config3.SPEAreas: [ 3450.06, 1950.04, 2138.67, 4251.92, 2063.53, 2000, 2336.25, 2197.08, 5225.09, 5185.5, 2426.86, 2685.4, 3831.38, 3567.7, 1526.98, 1258.39, 2000, 2000, 2000, 2000, 2794.99, 2732.12, 2073.26, 1948.84, 4302.94, 4255.39, 2900.88, 2826.3, 3238.6, 3074.78, 3669.16, 3723.37, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100 ] #Values from waffles/np02_data/calibration_data/np02-config-v3.0.0.csv #Data taken from August 10th on -protodunevd_photoncalibrator_config3: @local::protodunevd_photoncalibrator_config1 -protodunevd_photoncalibrator_config3.SPEAreas: [ 3482.9, 1893.97, 2148.87, 4332.16, 2063.53, 2000, 2257.92, 2530.51, 5225.09, 5185.5, 2426.86, 2685.4, 3831.38, 3567.7, 1526.98, 1258.39, 2000, 2000, 2000, 2000, 3147.79, 3278.53, 1380.77, 2205.66, 4364.88, 4221.51, 3058.11, 3009.3, 2634.38, 2557.6, 3771.75, 3723.89, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100 ] #Values from waffles/np02_data/calibration_data/np02-config-v4.0.0.csv +protodunevd_photoncalibrator_config4: @local::protodunevd_photoncalibrator_config1 +protodunevd_photoncalibrator_config4.SPEAreas: [ 3482.9, 1893.97, 2148.87, 4332.16, 2063.53, 2000, 2257.92, 2530.51, 5225.09, 5185.5, 2426.86, 2685.4, 3831.38, 3567.7, 1526.98, 1258.39, 2000, 2000, 2000, 2000, 3147.79, 3278.53, 1380.77, 2205.66, 4364.88, 4221.51, 3058.11, 3009.3, 2634.38, 2557.6, 3771.75, 3723.89, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100 ] #Values from waffles/np02_data/calibration_data/np02-config-v4.0.0.csv END_PROLOG From 988c7f5b93d7942a339e5ed388b0180d2e9680a1 Mon Sep 17 00:00:00 2001 From: Laura Paulucci Date: Mon, 2 Feb 2026 03:42:37 -0600 Subject: [PATCH 3/5] Updating calibration values --- .../PhotonCalibratorProtoDUNEVD.fcl | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/duneopdet/OpticalDetector/PhotonCalibratorProtoDUNEVD.fcl b/duneopdet/OpticalDetector/PhotonCalibratorProtoDUNEVD.fcl index e01aa3f0..acdb3969 100644 --- a/duneopdet/OpticalDetector/PhotonCalibratorProtoDUNEVD.fcl +++ b/duneopdet/OpticalDetector/PhotonCalibratorProtoDUNEVD.fcl @@ -4,7 +4,7 @@ BEGIN_PROLOG # Applies channel-by-channel PE calibrations # -protodunevd_photoncalibrator_config1: #Data taken between ??? +protodunevd_photoncalibrator_config-beam-v1.0.0: #Data taken between ??? { service_provider: PhotonCalibratorServiceProtoDUNEVD BadChannels: [ ] @@ -15,16 +15,16 @@ protodunevd_photoncalibrator_config1: #Data taken between ??? } #Data taken between July 10th - 16th -protodunevd_photoncalibrator_config2: @local::protodunevd_photoncalibrator_config1 -protodunevd_photoncalibrator_config2.SPEAreas: [ 3450.06, 1950.04, 2138.67, 4251.92, 2063.53, 2000, 2336.25, 2197.08, 5225.09, 5185.5, 2426.86, 2685.4, 3831.38, 3567.7, 1526.98, 1258.39, 2000, 2000, 2000, 2000, 2794.99, 2732.12, 2073.26, 1948.84, 4302.94, 4255.39, 2900.88, 2826.3, 3238.6, 3074.78, 3669.16, 3723.37, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100 ] #Values from waffles/np02_data/calibration_data/ --> STILL TO BE OBTAINED. DO NOT USE +protodunevd_photoncalibrator_config-beam-v2.0.0: @local::protodunevd_photoncalibrator_config-beam-v1.0.0 +protodunevd_photoncalibrator_config-beam-v2.0.0.SPEAreas: [ 3450.06, 1950.04, 2138.67, 4251.92, 2063.53, 2000, 2336.25, 2197.08, 5225.09, 5185.5, 2426.86, 2685.4, 3831.38, 3567.7, 1526.98, 1258.39, 2000, 2000, 2000, 2000, 2794.99, 2732.12, 2073.26, 1948.84, 4302.94, 4255.39, 2900.88, 2826.3, 3238.6, 3074.78, 3669.16, 3723.37, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100 ] #Values from waffles/np02_data/calibration_data/ --> STILL TO BE OBTAINED. DO NOT USE #Data taken between August 2nd - 8th -protodunevd_photoncalibrator_config3: @local::protodunevd_photoncalibrator_config1 -protodunevd_photoncalibrator_config3.SPEAreas: [ 3450.06, 1950.04, 2138.67, 4251.92, 2063.53, 2000, 2336.25, 2197.08, 5225.09, 5185.5, 2426.86, 2685.4, 3831.38, 3567.7, 1526.98, 1258.39, 2000, 2000, 2000, 2000, 2794.99, 2732.12, 2073.26, 1948.84, 4302.94, 4255.39, 2900.88, 2826.3, 3238.6, 3074.78, 3669.16, 3723.37, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100 ] #Values from waffles/np02_data/calibration_data/np02-config-v3.0.0.csv +protodunevd_photoncalibrator_config-beam-v3.0.0: @local::protodunevd_photoncalibrator_config-beam-v1.0.0 +protodunevd_photoncalibrator_config-beam-v3.0.0.SPEAreas: [ 215.63, 121.88, 133.67, 265.75, 128.97, 125.00, 146.02, 137.32, 326.57, 324.09, 151.68, 167.84, 239.46, 222.98, 95.44, 78.65, 125.00, 125.00, 125.00, 125.00, 174.69, 170.76, 129.58, 121.80, 268.93, 265.96, 181.31, 176.64, 202.41, 192.17, 229.32, 232.71, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100 ] #Values from waffles/np02_data/calibration_data/np02-config-v3.0.0.csv #Data taken from August 10th on -protodunevd_photoncalibrator_config4: @local::protodunevd_photoncalibrator_config1 -protodunevd_photoncalibrator_config4.SPEAreas: [ 3482.9, 1893.97, 2148.87, 4332.16, 2063.53, 2000, 2257.92, 2530.51, 5225.09, 5185.5, 2426.86, 2685.4, 3831.38, 3567.7, 1526.98, 1258.39, 2000, 2000, 2000, 2000, 3147.79, 3278.53, 1380.77, 2205.66, 4364.88, 4221.51, 3058.11, 3009.3, 2634.38, 2557.6, 3771.75, 3723.89, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100 ] #Values from waffles/np02_data/calibration_data/np02-config-v4.0.0.csv +protodunevd_photoncalibrator_config-beam-v4.0.0: @local::protodunevd_photoncalibrator_config-beam-v1.0.0 +protodunevd_photoncalibrator_config-beam-v4.0.0.SPEAreas: [ 217.68, 118.37, 134.30, 270.76, 128.97, 125.00, 141.12, 158.16, 326.57, 324.09, 151.68, 167.84, 239.46, 222.98, 95.44, 78.65, 125.00, 125.00, 125.00, 125.00, 196.74, 204.91, 86.30, 137.85, 272.81, 263.84, 191.13, 188.08, 164.65, 159.85, 235.73, 232.74, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100 ] #Values from waffles/np02_data/calibration_data/np02-config-v4.0.0.csv END_PROLOG From 5459bde9665496e10481fa5b6afe9fe9438470da Mon Sep 17 00:00:00 2001 From: Laura Paulucci Date: Tue, 3 Feb 2026 03:55:27 -0600 Subject: [PATCH 4/5] Name changing --- ...ProtoDUNEVD.cc => PhotonCalibratorDUNE.cc} | 10 +++---- .../OpticalDetector/PhotonCalibratorDUNE.fcl | 30 +++++++++++++++++++ ...orProtoDUNEVD.h => PhotonCalibratorDUNE.h} | 16 +++++----- .../PhotonCalibratorProtoDUNEVD.fcl | 30 ------------------- ...DUNEVD.h => PhotonCalibratorServiceDUNE.h} | 24 +++++++-------- ...=> PhotonCalibratorServiceDUNE_service.cc} | 4 +-- 6 files changed, 57 insertions(+), 57 deletions(-) rename duneopdet/OpticalDetector/{PhotonCalibratorProtoDUNEVD.cc => PhotonCalibratorDUNE.cc} (76%) create mode 100644 duneopdet/OpticalDetector/PhotonCalibratorDUNE.fcl rename duneopdet/OpticalDetector/{PhotonCalibratorProtoDUNEVD.h => PhotonCalibratorDUNE.h} (70%) delete mode 100644 duneopdet/OpticalDetector/PhotonCalibratorProtoDUNEVD.fcl rename duneopdet/OpticalDetector/{PhotonCalibratorServiceProtoDUNEVD.h => PhotonCalibratorServiceDUNE.h} (71%) rename duneopdet/OpticalDetector/{PhotonCalibratorServiceProtoDUNEVD_service.cc => PhotonCalibratorServiceDUNE_service.cc} (77%) diff --git a/duneopdet/OpticalDetector/PhotonCalibratorProtoDUNEVD.cc b/duneopdet/OpticalDetector/PhotonCalibratorDUNE.cc similarity index 76% rename from duneopdet/OpticalDetector/PhotonCalibratorProtoDUNEVD.cc rename to duneopdet/OpticalDetector/PhotonCalibratorDUNE.cc index d69a9337..a337f4c1 100644 --- a/duneopdet/OpticalDetector/PhotonCalibratorProtoDUNEVD.cc +++ b/duneopdet/OpticalDetector/PhotonCalibratorDUNE.cc @@ -1,5 +1,5 @@ // dunetpc includes -#include "duneopdet/OpticalDetector/PhotonCalibratorProtoDUNEVD.h" +#include "duneopdet/OpticalDetector/PhotonCalibratorDUNE.h" // LArSoft Includes #include "larreco/Calibrator/IPhotonCalibrator.h" @@ -20,7 +20,7 @@ namespace calib { - PhotonCalibratorProtoDUNEVD::PhotonCalibratorProtoDUNEVD(fhicl::ParameterSet const& pset, art::ActivityRegistry& reg) + PhotonCalibratorDUNE::PhotonCalibratorDUNE(fhicl::ParameterSet const& pset, art::ActivityRegistry& reg) { fBadChannels = pset.get >("BadChannels"); @@ -36,10 +36,10 @@ namespace calib { } - double PhotonCalibratorProtoDUNEVD::PE(double adcs, int opchannel) const + double PhotonCalibratorDUNE::PE(double adcs, int opchannel) const { if (std::find(fBadChannels.begin(), fBadChannels.end(), opchannel) != fBadChannels.end()) { - mf::LogDebug("PhotonCalibratorProtoDUNEVD") << "Skipping bad channel " << opchannel; + mf::LogDebug("PhotonCalibratorDUNE") << "Skipping bad channel " << opchannel; return 0; } auto entry = fAreaMap.find(opchannel); @@ -51,4 +51,4 @@ namespace calib { } -//DEFINE_ART_SERVICE_INTERFACE_IMPL(calib::PhotonCalibratorProtoDUNEVD, calib::IPhotonCalibrator) +//DEFINE_ART_SERVICE_INTERFACE_IMPL(calib::PhotonCalibratorDUNE, calib::IPhotonCalibrator) diff --git a/duneopdet/OpticalDetector/PhotonCalibratorDUNE.fcl b/duneopdet/OpticalDetector/PhotonCalibratorDUNE.fcl new file mode 100644 index 00000000..1b84e351 --- /dev/null +++ b/duneopdet/OpticalDetector/PhotonCalibratorDUNE.fcl @@ -0,0 +1,30 @@ +BEGIN_PROLOG + +# +# Applies channel-by-channel PE calibrations +# +#Data taken between ??? +protodunevd_photoncalibrator_config_beam_v100: +{ + service_provider: PhotonCalibratorServiceDUNE + BadChannels: [ ] + HdwChannels: [ 1010, 1011, 1020, 1021, 1030, 1031, 1040, 1041, 1050, 1051, 1060, 1061, 1070, 1071, 1080, 1081, 2010, 2011, 2020, 2021, 2030, 2031, 2040, 2041, 2050, 2051, 2060, 2061, 2070, 2071, 2080, 2081, 3010, 3020, 3030, 3040, 3050, 3060, 3070, 3080, 3090, 3100, 3110, 3120, 3130, 3140, 3150, 3160, 3170, 3180, 3190, 3200, 3210, 3220, 3230, 3240 ] #hardware channels as in the PDVD_PDS_Mapping (in dunecore/ChannelMap) + SPEShifts: [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] + SPEAreas: [ 3482.9, 1893.97, 2148.87, 4332.16, 2063.53, 2000, 2257.92, 2530.51, 5225.09, 5185.5, 2426.86, 2685.4, 3831.38, 3567.7, 1526.98, 1258.39, 2000, 2000, 2000, 2000, 3147.79, 3278.53, 1380.77, 2205.66, 4364.88, 4221.51, 3058.11, 3009.3, 2634.38, 2557.6, 3771.75, 3723.89, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100 ] #channel correspondence can be found in the PDVD_PDS_Mapping found in dunecore/ChannelMap. Values from waffles/np02_data/calibration_data --> STILL TO BE OBTAINED. DO NOT USE + +} + +#Data taken between July 10th - 16th +protodunevd_photoncalibrator_config_beam_v200: @local::protodunevd_photoncalibrator_config_beam_v100 +protodunevd_photoncalibrator_config_beam_v200.SPEAreas: [ 3450.06, 1950.04, 2138.67, 4251.92, 2063.53, 2000, 2336.25, 2197.08, 5225.09, 5185.5, 2426.86, 2685.4, 3831.38, 3567.7, 1526.98, 1258.39, 2000, 2000, 2000, 2000, 2794.99, 2732.12, 2073.26, 1948.84, 4302.94, 4255.39, 2900.88, 2826.3, 3238.6, 3074.78, 3669.16, 3723.37, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100 ] #Values from waffles/np02_data/calibration_data/ --> STILL TO BE OBTAINED. DO NOT USE + +#Data taken between August 2nd - 8th +protodunevd_photoncalibrator_config_beam_v300: @local::protodunevd_photoncalibrator_config_beam_v100 +protodunevd_photoncalibrator_config_beam_v300.SPEAreas: [ 215.63, 121.88, 133.67, 265.75, 128.97, 125.00, 146.02, 137.32, 326.57, 324.09, 151.68, 167.84, 239.46, 222.98, 95.44, 78.65, 125.00, 125.00, 125.00, 125.00, 174.69, 170.76, 129.58, 121.80, 268.93, 265.96, 181.31, 176.64, 202.41, 192.17, 229.32, 232.71, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100 ] #Values from waffles/np02_data/calibration_data/np02-config-v3.0.0.csv from finger plot (Henrique), values most likely underestimated by a factor 2-3 + +#Data taken from August 10th on +protodunevd_photoncalibrator_config_beam_v400: @local::protodunevd_photoncalibrator_config_beam_v100 +protodunevd_photoncalibrator_config_beam_v400.SPEAreas: [ 217.68, 118.37, 134.30, 270.76, 128.97, 125.00, 141.12, 158.16, 326.57, 324.09, 151.68, 167.84, 239.46, 222.98, 95.44, 78.65, 125.00, 125.00, 125.00, 125.00, 196.74, 204.91, 86.30, 137.85, 272.81, 263.84, 191.13, 188.08, 164.65, 159.85, 235.73, 232.74, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100 ] #Values from waffles/np02_data/calibration_data/np02-config-v4.0.0.csv from finger plot (Henrique), values most likely underestimated by a factor 2-3 + + +END_PROLOG diff --git a/duneopdet/OpticalDetector/PhotonCalibratorProtoDUNEVD.h b/duneopdet/OpticalDetector/PhotonCalibratorDUNE.h similarity index 70% rename from duneopdet/OpticalDetector/PhotonCalibratorProtoDUNEVD.h rename to duneopdet/OpticalDetector/PhotonCalibratorDUNE.h index b50aa20b..5a6945f5 100644 --- a/duneopdet/OpticalDetector/PhotonCalibratorProtoDUNEVD.h +++ b/duneopdet/OpticalDetector/PhotonCalibratorDUNE.h @@ -1,15 +1,15 @@ //////////////////////////////////////////////////////////////////////// -// \file PhotonCalibratorProtoDUNEVD.h +// \file PhotonCalibratorDUNE.h // -// \brief ProtoDUNEVD service provider applying a channel based scale factor to optical hits. +// \brief DUNE service provider applying a channel based scale factor to optical hits. // // \author lpaulucc@fnal.gov based on PhotonCalibratorProtoduneSP by ahimmel // //////////////////////////////////////////////////////////////////////// -#ifndef PHOTONCALIBRATORPROTODUNEVD_H -#define PHOTONCALIBRATORPROTODUNEVD_H +#ifndef PHOTONCALIBRATORDUNE_H +#define PHOTONCALIBRATORDUNE_H #include "larreco/Calibrator/IPhotonCalibrator.h" @@ -22,10 +22,10 @@ namespace calib { - class PhotonCalibratorProtoDUNEVD : public IPhotonCalibrator + class PhotonCalibratorDUNE : public IPhotonCalibrator { public: - PhotonCalibratorProtoDUNEVD(fhicl::ParameterSet const& pset, art::ActivityRegistry& reg); + PhotonCalibratorDUNE(fhicl::ParameterSet const& pset, art::ActivityRegistry& reg); // Override base class functions double PE(double adcs, int opchannel) const override; @@ -42,10 +42,10 @@ namespace calib { std::vector fBadChannels; std::map fAreaMap; std::map fShiftMap; - }; // class PhotonCalibratorProtoDUNEVD + }; // class PhotonCalibratorDUNE } -//DECLARE_ART_SERVICE_INTERFACE_IMPL(calib::PhotonCalibratorProtoDUNEVD, calib::IPhotonCalibrator, LEGACY) +//DECLARE_ART_SERVICE_INTERFACE_IMPL(calib::PhotonCalibratorDUNE, calib::IPhotonCalibrator, LEGACY) #endif diff --git a/duneopdet/OpticalDetector/PhotonCalibratorProtoDUNEVD.fcl b/duneopdet/OpticalDetector/PhotonCalibratorProtoDUNEVD.fcl deleted file mode 100644 index acdb3969..00000000 --- a/duneopdet/OpticalDetector/PhotonCalibratorProtoDUNEVD.fcl +++ /dev/null @@ -1,30 +0,0 @@ -BEGIN_PROLOG - -# -# Applies channel-by-channel PE calibrations -# - -protodunevd_photoncalibrator_config-beam-v1.0.0: #Data taken between ??? -{ - service_provider: PhotonCalibratorServiceProtoDUNEVD - BadChannels: [ ] - HdwChannels: [ 1010, 1011, 1020, 1021, 1030, 1031, 1040, 1041, 1050, 1051, 1060, 1061, 1070, 1071, 1080, 1081, 2010, 2011, 2020, 2021, 2030, 2031, 2040, 2041, 2050, 2051, 2060, 2061, 2070, 2071, 2080, 2081, 3010, 3020, 3030, 3040, 3050, 3060, 3070, 3080, 3090, 3100, 3110, 3120, 3130, 3140, 3150, 3160, 3170, 3180, 3190, 3200, 3210, 3220, 3230, 3240 ] #hardware channels as in the PDVD_PDS_Mapping (in dunecore/ChannelMap) - SPEShifts: [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] - SPEAreas: [ 3482.9, 1893.97, 2148.87, 4332.16, 2063.53, 2000, 2257.92, 2530.51, 5225.09, 5185.5, 2426.86, 2685.4, 3831.38, 3567.7, 1526.98, 1258.39, 2000, 2000, 2000, 2000, 3147.79, 3278.53, 1380.77, 2205.66, 4364.88, 4221.51, 3058.11, 3009.3, 2634.38, 2557.6, 3771.75, 3723.89, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100 ] #channel correspondence can be found in the PDVD_PDS_Mapping found in dunecore/ChannelMap. Values from waffles/np02_data/calibration_data --> STILL TO BE OBTAINED. DO NOT USE - -} - -#Data taken between July 10th - 16th -protodunevd_photoncalibrator_config-beam-v2.0.0: @local::protodunevd_photoncalibrator_config-beam-v1.0.0 -protodunevd_photoncalibrator_config-beam-v2.0.0.SPEAreas: [ 3450.06, 1950.04, 2138.67, 4251.92, 2063.53, 2000, 2336.25, 2197.08, 5225.09, 5185.5, 2426.86, 2685.4, 3831.38, 3567.7, 1526.98, 1258.39, 2000, 2000, 2000, 2000, 2794.99, 2732.12, 2073.26, 1948.84, 4302.94, 4255.39, 2900.88, 2826.3, 3238.6, 3074.78, 3669.16, 3723.37, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100 ] #Values from waffles/np02_data/calibration_data/ --> STILL TO BE OBTAINED. DO NOT USE - -#Data taken between August 2nd - 8th -protodunevd_photoncalibrator_config-beam-v3.0.0: @local::protodunevd_photoncalibrator_config-beam-v1.0.0 -protodunevd_photoncalibrator_config-beam-v3.0.0.SPEAreas: [ 215.63, 121.88, 133.67, 265.75, 128.97, 125.00, 146.02, 137.32, 326.57, 324.09, 151.68, 167.84, 239.46, 222.98, 95.44, 78.65, 125.00, 125.00, 125.00, 125.00, 174.69, 170.76, 129.58, 121.80, 268.93, 265.96, 181.31, 176.64, 202.41, 192.17, 229.32, 232.71, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100 ] #Values from waffles/np02_data/calibration_data/np02-config-v3.0.0.csv - -#Data taken from August 10th on -protodunevd_photoncalibrator_config-beam-v4.0.0: @local::protodunevd_photoncalibrator_config-beam-v1.0.0 -protodunevd_photoncalibrator_config-beam-v4.0.0.SPEAreas: [ 217.68, 118.37, 134.30, 270.76, 128.97, 125.00, 141.12, 158.16, 326.57, 324.09, 151.68, 167.84, 239.46, 222.98, 95.44, 78.65, 125.00, 125.00, 125.00, 125.00, 196.74, 204.91, 86.30, 137.85, 272.81, 263.84, 191.13, 188.08, 164.65, 159.85, 235.73, 232.74, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100 ] #Values from waffles/np02_data/calibration_data/np02-config-v4.0.0.csv - - -END_PROLOG diff --git a/duneopdet/OpticalDetector/PhotonCalibratorServiceProtoDUNEVD.h b/duneopdet/OpticalDetector/PhotonCalibratorServiceDUNE.h similarity index 71% rename from duneopdet/OpticalDetector/PhotonCalibratorServiceProtoDUNEVD.h rename to duneopdet/OpticalDetector/PhotonCalibratorServiceDUNE.h index 58e77c3d..5103d7de 100644 --- a/duneopdet/OpticalDetector/PhotonCalibratorServiceProtoDUNEVD.h +++ b/duneopdet/OpticalDetector/PhotonCalibratorServiceDUNE.h @@ -1,18 +1,18 @@ //////////////////////////////////////////////////////////////////////// -// \file PhotonCalibratorServiceProtoDUNEVD.h +// \file PhotonCalibratorServiceDUNE.h // -// \brief Framework interface to PhotonCalibratorProtoDUNEVD +// \brief Framework interface to PhotonCalibratorDUNE // // \author lpaulucc@fnal.gov based on PhotonCalibratorServiceProtuDUNESP by ahimmel@fnal.gov // //////////////////////////////////////////////////////////////////////// -#ifndef PHOTONCALIBRATORSERVICEPROTODUNEVD -#define PHOTONCALIBRATORSERVICEPROTODUNEVD +#ifndef PHOTONCALIBRATORSERVICEDUNE +#define PHOTONCALIBRATORSERVICEDUNE // LArSoft Includes -#include "duneopdet/OpticalDetector/PhotonCalibratorProtoDUNEVD.h" +#include "duneopdet/OpticalDetector/PhotonCalibratorDUNE.h" #include "larreco/Calibrator/IPhotonCalibratorService.h" @@ -32,10 +32,10 @@ namespace calib { - class PhotonCalibratorServiceProtoDUNEVD : public IPhotonCalibratorService + class PhotonCalibratorServiceDUNE : public IPhotonCalibratorService { public: - using provider_type = PhotonCalibratorProtoDUNEVD; + using provider_type = PhotonCalibratorDUNE; struct ServiceConfiguration_t { @@ -48,21 +48,21 @@ namespace calib { using Parameters = art::ServiceTable; public: - PhotonCalibratorServiceProtoDUNEVD(Parameters const & config, + PhotonCalibratorServiceDUNE(Parameters const & config, art::ActivityRegistry& aReg) - : fProvider( new PhotonCalibratorProtoDUNEVD(config.get_PSet(), aReg) ) + : fProvider( new PhotonCalibratorDUNE(config.get_PSet(), aReg) ) { } provider_type const* provider() const override { return fProvider.get(); } private: - std::unique_ptr fProvider; + std::unique_ptr fProvider; }; } -DECLARE_ART_SERVICE_INTERFACE_IMPL(calib::PhotonCalibratorServiceProtoDUNEVD, +DECLARE_ART_SERVICE_INTERFACE_IMPL(calib::PhotonCalibratorServiceDUNE, calib::IPhotonCalibratorService, LEGACY) -#endif // PHOTONCALIBRATORSERVICEPROTODUNEVD +#endif // PHOTONCALIBRATORSERVICEDUNE diff --git a/duneopdet/OpticalDetector/PhotonCalibratorServiceProtoDUNEVD_service.cc b/duneopdet/OpticalDetector/PhotonCalibratorServiceDUNE_service.cc similarity index 77% rename from duneopdet/OpticalDetector/PhotonCalibratorServiceProtoDUNEVD_service.cc rename to duneopdet/OpticalDetector/PhotonCalibratorServiceDUNE_service.cc index 009866a9..5e9c87ea 100644 --- a/duneopdet/OpticalDetector/PhotonCalibratorServiceProtoDUNEVD_service.cc +++ b/duneopdet/OpticalDetector/PhotonCalibratorServiceDUNE_service.cc @@ -2,8 +2,8 @@ * Required minimal implementation file for calibrator service * which only returns a provider. */ -#include "duneopdet/OpticalDetector/PhotonCalibratorServiceProtoDUNEVD.h" +#include "duneopdet/OpticalDetector/PhotonCalibratorServiceDUNE.h" #include "art/Framework/Services/Registry/ServiceDefinitionMacros.h" -DEFINE_ART_SERVICE_INTERFACE_IMPL(calib::PhotonCalibratorServiceProtoDUNEVD, +DEFINE_ART_SERVICE_INTERFACE_IMPL(calib::PhotonCalibratorServiceDUNE, calib::IPhotonCalibratorService) From 2103a014ef8b92885f0922ba392c67065c61a412 Mon Sep 17 00:00:00 2001 From: Laura Paulucci Date: Wed, 4 Feb 2026 06:59:01 -0600 Subject: [PATCH 5/5] Updated values for beam run 4 --- duneopdet/OpticalDetector/PhotonCalibratorDUNE.fcl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/duneopdet/OpticalDetector/PhotonCalibratorDUNE.fcl b/duneopdet/OpticalDetector/PhotonCalibratorDUNE.fcl index 1b84e351..0859dd50 100644 --- a/duneopdet/OpticalDetector/PhotonCalibratorDUNE.fcl +++ b/duneopdet/OpticalDetector/PhotonCalibratorDUNE.fcl @@ -24,7 +24,8 @@ protodunevd_photoncalibrator_config_beam_v300.SPEAreas: [ 215.63, 121.88, 133.67 #Data taken from August 10th on protodunevd_photoncalibrator_config_beam_v400: @local::protodunevd_photoncalibrator_config_beam_v100 -protodunevd_photoncalibrator_config_beam_v400.SPEAreas: [ 217.68, 118.37, 134.30, 270.76, 128.97, 125.00, 141.12, 158.16, 326.57, 324.09, 151.68, 167.84, 239.46, 222.98, 95.44, 78.65, 125.00, 125.00, 125.00, 125.00, 196.74, 204.91, 86.30, 137.85, 272.81, 263.84, 191.13, 188.08, 164.65, 159.85, 235.73, 232.74, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100 ] #Values from waffles/np02_data/calibration_data/np02-config-v4.0.0.csv from finger plot (Henrique), values most likely underestimated by a factor 2-3 +#protodunevd_photoncalibrator_config_beam_v400.SPEAreas: [ 217.68, 118.37, 134.30, 270.76, 128.97, 125.00, 141.12, 158.16, 326.57, 324.09, 151.68, 167.84, 239.46, 222.98, 95.44, 78.65, 125.00, 125.00, 125.00, 125.00, 196.74, 204.91, 86.30, 137.85, 272.81, 263.84, 191.13, 188.08, 164.65, 159.85, 235.73, 232.74, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100 ] #Values from waffles/np02_data/calibration_data/np02-config-v4.0.0.csv from finger plot (Henrique), values most likely underestimated by a factor 2-3 +protodunevd_photoncalibrator_config_beam_v400.SPEAreas: [ 760.00, 501.00, 665.00, 794.00, 316.00, 290.00, 534.00, 551.00, 488.00, 584.00, 408.00, 370.00, 660.00, 515.00, 380.00, 313.00, 125.00, 125.00, 125.00, 125.00, 196.74, 204.91, 86.30, 137.85, 272.81, 263.84, 191.13, 188.08, 164.65, 159.85, 235.73, 232.74, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100 ] #Values from waffles/np02_data/calibration_data/np02-config-v4.0.0.csv for membrane modules from finger plot (Henrique), values most likely underestimated by a factor 2-3. Cathode values obtained by Ajib (https://indico.fnal.gov/event/69308/contributions/333039/attachments/195016/270786/Preliminary_LowPE_background_Study.pdf) END_PROLOG