Project

General

Profile

Support #23569

Problems creating a new source module

Added by Jose Soto about 1 month ago. Updated 17 days ago.

Status:
Closed
Priority:
Normal
Assignee:
-
Category:
-
Target version:
-
Start date:
11/08/2019
Due date:
% Done:

0%

Estimated time:
Experiment:
DUNE
Co-Assignees:
Duration:

Description

Hi,

I want to create a new source module to import raw data and dump it into an art file, compatible with LArSoft.

As a first approach, I copied an existing module that already does this, in order to adapt it to my data.

I copied the module dunetpc/dune/Protodune/dualphase/RawDecoding/PDDPRawInput_source.cc
into the new one: dunetpc/dune/Protodune/dualphase/RawDecoding/PDDPRawInputPMT_source.cc

I also consequently modified all names and the CMakeList inside the file.

It compiles without any error, but when I try to run the new module I get the following:

$ lar -c pddp_pmtdaq_converter.fcl /eos/experiment/neutplatform/protodune/rawdata/np02/rawdata/1033/1033_10_a.cosmics

%MSG-s ArtException:  RootOutput:out1@Construction 08-Nov-2019 12:06:16 CET  ModuleConstruction
cet::exception caught in art
---- Configuration BEGIN
  FailedInputSource Configuration of main input source has failed
  ---- Configuration BEGIN
    Library specification "PDDPRawInputPMT": does not correspond to any library in CET_PLUGIN_PATH of type "source" 
  ---- Configuration END
---- Configuration END
%MSG
Art has completed and will exit with status 9.

It seems that it doesn't find the library, but it is specified in the _source.cc code:

#include "art/Framework/Core/InputSourceMacros.h" 
#include "art/Framework/IO/Sources/Source.h"    
#include "dune/Protodune/dualphase/RawDecoding/PDDPRawInputPMTDriver.h" 
namespace lris 
{
  typedef art::Source<PDDPRawInputPMTDriver> PDDPRawInputPMT;    
}

DEFINE_ART_INPUT_SOURCE(lris::PDDPRawInputPMT)

And also in the CMakeList:

simple_plugin(PDDPRawInputPMT "source" 
            PDDPRawInputPMTDriver_service
                        lardataobj_RawData
                        lardata_Utilities
                        ${ART_FRAMEWORK_CORE}
            ${ART_FRAMEWORK_IO_SOURCES}
                        ${ART_FRAMEWORK_PRINCIPAL}
            ${ART_FRAMEWORK_PERSISTENCY_COMMON}
                        art_Persistency_Common canvas
            art_Persistency_Provenance canvas
            art_Utilities canvas
            ${FHICLCPP}
                        ${MF_MESSAGELOGGER}
                        ${CETLIB}
                        ${ROOT_BASIC_LIB_LIST}
                        BASENAME_ONLY
)

Any idea of why I get this error?

I have published the code in dunetpc in case you want to reproduce the error: feature/jsoto_PDDP_PMTRawDataImporter

Thank you in advance for your help,
José

History

#1 Updated by Kyle Knoepfel about 1 month ago

  • Status changed from New to Feedback
  • Description updated (diff)

Hi José,

I started from a clean build area, compiled the code, and ran the job without an input file (on purpose):

lar -c pddp_pmtdaq_converter.fcl
%MSG-i MF_INIT_OK:  Early 08-Nov-2019 08:48:16 CST JobSetup
Messagelogger initialization complete.
%MSG
%MSG-i FastCloning:  RootOutput:out1@Construction 08-Nov-2019 08:48:17 CST  ModuleConstruction
Initial fast cloning configuration (from default): true
%MSG
PDDPRawInputPMTDriver::ctor:        Configuration        : 
PDDPRawInputPMTDriver::ctor:        LogLevel             : 1
PDDPRawInputPMTDriver::ctor:        OutputLabelRawDigits : daq
PDDPRawInputPMTDriver::ctor:        OutputLabelRDStatus  : daq
PDDPRawInputPMTDriver::ctor:        OutputLabelRDtime    : timingrawdecoder:daq
PDDPRawInputPMTDriver::ctor:        InvertBaseline       : 0
PDDPRawInputPMTDriver::ctor:        SelectCRPs           : all
PDDPRawInputPMTDriver::ctor:        CRP 0 selected 1
PDDPRawInputPMTDriver::ctor:        CRP 1 selected 1
PDDPRawInputPMTDriver::ctor:        CRP 2 selected 1
PDDPRawInputPMTDriver::ctor:        CRP 3 selected 1
PDDPRawInputPMTDriver::ctor:        Readout info              : 
PDDPRawInputPMTDriver::ctor:        Number of CRPs from chmap : 4
PDDPRawInputPMTDriver::ctor:        Total channels expected   : 7680
%MSG-s ArtException:  PostBeginJob 08-Nov-2019 08:48:17 CST BeforeEvents
cet::exception caught in art
---- OtherArt BEGIN
  ---- CatalogServiceError BEGIN
    Input file not found: np02rawdata.dat.
  ---- CatalogServiceError END
---- OtherArt END
%MSG

Although the input file will be needed to run the job, the above job was sufficient to show that the source library is being found. If you try a clean build area, do you still have the failure?

#2 Updated by Jose Soto about 1 month ago

  • Status changed from Feedback to Resolved

Solved. The problem was that I was using a lxplus7 machines (using CentOS 7.7), I don't get the error when using a lxplus6 machine (SLC 6.10)

#3 Updated by Kyle Knoepfel about 1 month ago

  • Status changed from Resolved to Feedback

José, you should not have to resort to using only SLC 6.10. How can we reproduce this issue on lxplus7, specifically, including exact releases you're using, what code you have checked out locally, environment setup, etc.

#4 Updated by Kyle Knoepfel 17 days ago

  • Status changed from Feedback to Closed


Also available in: Atom PDF