LCOV - code coverage report
Current view: top level - artdaq/ArtModules - OffsetPrescale_module.cc (source / functions) Coverage Total Hit
Test: artdaq.info.cleaned Lines: 0.0 % 9 0
Test Date: 2025-09-04 00:45:34 Functions: 0.0 % 7 0

            Line data    Source code
       1              : ////////////////////////////////////////////////////////////////////////
       2              : // Class:       OffsetPrescale
       3              : // Plugin Type: filter (Unknown Unknown)
       4              : // File:        OffsetPrescale_module.cc
       5              : //
       6              : // Generated at Mon Sep 11 12:28:36 2023 by Eric Flumerfelt using cetskelgen
       7              : // from  version .
       8              : ////////////////////////////////////////////////////////////////////////
       9              : 
      10              : #include "artdaq/ArtModules/ArtdaqSharedMemoryServiceInterface.h"
      11              : 
      12              : #include "art/Framework/Core/EDFilter.h"
      13              : #include "art/Framework/Core/ModuleMacros.h"
      14              : #include "art/Framework/Principal/Event.h"
      15              : #include "art/Framework/Principal/Handle.h"
      16              : #include "art/Framework/Principal/Run.h"
      17              : #include "art/Framework/Principal/SubRun.h"
      18              : #include "canvas/Utilities/InputTag.h"
      19              : #include "fhiclcpp/ParameterSet.h"
      20              : #include "messagefacility/MessageLogger/MessageLogger.h"
      21              : 
      22              : #include <memory>
      23              : 
      24              : namespace artdaq {
      25              : class OffsetPrescale;
      26              : }
      27              : 
      28              : class artdaq::OffsetPrescale : public art::EDFilter
      29              : {
      30              : public:
      31              :         explicit OffsetPrescale(fhicl::ParameterSet const& p);
      32              :         // The compiler-generated destructor is fine for non-base
      33              :         // classes without bare pointers or other resource use.
      34              : 
      35              :         // Plugins should not be copied or assigned.
      36              :         OffsetPrescale(OffsetPrescale const&) = delete;
      37              :         OffsetPrescale(OffsetPrescale&&) = delete;
      38              :         OffsetPrescale& operator=(OffsetPrescale const&) = delete;
      39              :         OffsetPrescale& operator=(OffsetPrescale&&) = delete;
      40              : 
      41              :         // Required functions.
      42              :         bool filter(art::Event& e) override;
      43              : 
      44              : private:
      45              :         // Declare member data here.
      46              :         size_t events_skip_;
      47              :         size_t offset_{0};
      48              : };
      49              : 
      50            0 : artdaq::OffsetPrescale::OffsetPrescale(fhicl::ParameterSet const& p)
      51              :     : EDFilter{p}
      52            0 :     , events_skip_(p.get<size_t>("prescale", 1))
      53              : {
      54            0 :         art::ServiceHandle<ArtdaqSharedMemoryServiceInterface> shm;
      55            0 :         offset_ = shm->GetMyId();
      56            0 : }
      57              : 
      58            0 : bool artdaq::OffsetPrescale::filter(art::Event& e)
      59              : {
      60            0 :         auto eid = e.event();
      61            0 :         return eid >= offset_ && (eid - offset_) % events_skip_ == 0;
      62              : }
      63              : 
      64            0 : DEFINE_ART_MODULE(artdaq::OffsetPrescale)
        

Generated by: LCOV version 2.0-1