Project

General

Profile

Support #10949

Unable to retrieve objects stored in SubRun from analyzer module

Added by Brian Rebel about 5 years ago. Updated almost 5 years ago.

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

100%

Estimated time:
Spent time:
Scope:
Internal
Experiment:
NOvA
SSI Package:
art
Duration:

Description

Hi

I have created a file with data products stored in the SubRun. I can verify that those products exist and are in the SubRun by using the FileOutputDumper module. However, when I try to access the products from an EDAnalyzer module I wrote, it tells me that it cannot find them.

The relevant file with the objects in the SubRun is attached to this issue.

I am using the trunk of novasoft, except I have changed the art version to 1_17_03. You can find the necessary ups/product_deps file to build against v1_17_03 at /nova/app/users/brebel/mrb/srcs/novasoft/ups/product_deps.

The module I am running is found in AnalysisSkimmer/SkimmerAna_module.cc and the method where I am trying to access the data products is beginSubRun. The module can be run by doing

nova -c skimmeranajob.fcl numu_skim_run_00018417_43.root

and the output text to the screen will claim that it cannot find either type of data product being requested.

numu_skim_run_00018417_43.root (1.16 MB) numu_skim_run_00018417_43.root Brian Rebel, 11/18/2015 09:14 AM

Related issues

Related to art - Feature #10954: Provide getValidHandle for Run and SubRunClosed11/18/2015

History

#1 Updated by Brian Rebel about 5 years ago

I did a test and used getManyByType instead of getByLabel and was able to get the data products out of the SubRun record.

#2 Updated by Kyle Knoepfel about 5 years ago

  • Status changed from New to Assigned

I am investigating.

#3 Updated by Kyle Knoepfel about 5 years ago

  • Assignee set to Kyle Knoepfel

#4 Updated by Kyle Knoepfel about 5 years ago

I am having trouble running the current job:

[knoepfel@woof build-novasoft]$ nova -c skimmeranajob.fcl numu_skim_run_00018417_43.root 
%MSG-i MF_INIT_OK:  nova 18-Nov-2015 13:10:36 CST JobSetup
Messagelogger initialization complete.
%MSG
%MSG-i path:  nova 18-Nov-2015 13:10:38 CST JobSetup
The following module label is not assigned to any path:
'nueskimmerana'

%MSG
nova: /home/knoepfel/scratch/novasoft/Calibrator/art/Calibrator_service.cc:92: void calib::Calibrator::reconfigure(const fhicl::ParameterSet&): Assertion `!fShapeTableFilenameFDMC.empty()' failed.
Aborted

Any hints?

#5 Updated by Brian Rebel about 5 years ago

Did you do an install build and then set up the resulting ups product?

What are the contents of your $PRODUCTS variable?

#6 Updated by Kyle Knoepfel about 5 years ago

Thanks, Brian. Yes, I missed the install. I now confirm the error you reported.

#7 Updated by Kyle Knoepfel about 5 years ago

  • Tracker changed from Bug to Support
  • Status changed from Assigned to Resolved
  • % Done changed from 0 to 100

We understand the problem -- you need to reverse the default module labels in your pset.get<> calls:

  fCosmicExposureLabel = p.get<std::string>("CosmicExposureLabel", "ifdbspillinfo" ); // should be "exposure" 
  fPOTSumLabel         = p.get<std::string>("POTSumLabel"        , "exposure"      ); // should be "ifdbspillinfo" 

;)

#8 Updated by Brian Rebel about 5 years ago

I was sure I had checked that, apparently not though.

Thanks

#9 Updated by Brian Rebel about 5 years ago

Umm...out of curiosity, why did I not get an exception saying that it could not find the requested data products with those labels?

#10 Updated by Kyle Knoepfel about 5 years ago

Unfortunately, we do not have a Sub(Run)::getValidHandle function, which would provide the behavior you desire--i.e. if there is no match for the requested product, an exception is thrown. This looks to me like it would be straightforward to add, so feel free to add a feature request. There are experiments, however, that build art::Handle<T>::isValid() calls into their workflow.

#11 Updated by Brian Rebel about 5 years ago

I was using the Handle<T>::isValid, but it was not providing me with the feedback I needed to debug the issue. I'll submit a feature request.

#12 Updated by Kyle Knoepfel about 5 years ago

  • Related to Feature #10954: Provide getValidHandle for Run and SubRun added

#13 Updated by Kyle Knoepfel almost 5 years ago

  • Status changed from Resolved to Closed
  • SSI Package art added
  • SSI Package deleted ()

Also available in: Atom PDF