Bug #22677

Hadron Reweight Tool have an array length problem with me1M

Added by Mateus Carneiro da silva over 1 year ago. Updated over 1 year ago.

Start date:
Due date:
% Done:


Estimated time:


daughter package used to notice the bug: CCQENu1DME

location of ntuples used: (with new muon systematics (2 universes)) -> /pnfs/minerva/persistent/users/drut1186/HopefullyFinalMateusTuples/
(with old muon systematics (100 universes)) -> /pnfs/minerva/persistent/users/drut1186/ME_CCQELike_ImprovedMichel_Data_Merged/minervame1Av1/

version of CCQENuUtils.cxx: 1.61
version of FluxReweighter: 1.33

Hadron Reweight Tool triggers the following error when running over playlist minervame1M (~30% of total ME POT) triggers the following error:

Array length = 4096
MnvHadronReweight::getWeights:FATAL: Go inside MnvHadronReweight and increase the size of the const variable AL

This error is triggered by the test: end if (b->truth_hadronReweightNPoints > AL). It stopped the process of histograms by /make_hists/MuonSelectionHists.cxx and /make_hists/MigrationMatrixHists.cxx.

We have seen this error in the past. Back them the solution was to increase the value of the variable AL. I attempted test runs with values up to AL = 50000. and the errors persist (with the Array length updated). I believe there was a different bug fix related to the first time we fixed the problem. Will investigate.


#1 Updated by Mateus Carneiro da silva over 1 year ago

Forgot to add the information that this error only comes up while using the ntuples with "new" muon systematic.

#2 Updated by Mateus Carneiro da silva over 1 year ago

After several tests I was able to run with no errors by changing the AL variable to a value > 196880 since it was the value that the check b->truth_hadronReweightNPoint would return for the minervame1M playlist. The same check seem to return 0 to every other playlist, including me1M if running with the "old Muon systematic" ntuples. In both cases the test gives the exact same value for every event.

When checking with ROOT the actual size of the variable it would disagree with the values the Hadron Reweight Tool get. It seems like a memory issue. Dan tracked back that in the new version of CCQENuEvent.h (automatically generated) we forgot to remove the Hadron Reweight variables, this gets both the CCQENu and the HadronReweight Tool to allocate locations with the same names. Commenting them out means we rely on The HadronReweight Tool's instantiation of the variables.

Versions of $CCQENUROOT/ana_common/include/CCQENuEvent.h > 1.14 and < 1.17 will have this problem. Commenting out the HadronReweight variables in CCQENuEvent seem to fix it, the check b->truth_hadronReweightNPoint gives reasonable and different values per event. It was committed with version 1.17 (together with some needed addition of variables unrelated to this bug).

#3 Updated by Mateus Carneiro da silva over 1 year ago

  • % Done changed from 0 to 100

#4 Updated by Mateus Carneiro da silva over 1 year ago

  • Status changed from New to Resolved

#5 Updated by Daniel Ruterbories over 1 year ago

  • Status changed from Resolved to Closed

Looks like success! Go team!

Also available in: Atom PDF