cms-analysis / HiggsAnalysis-CombinedLimit

CMS Higgs Combination toolkit.
https://cms-analysis.github.io/HiggsAnalysis-CombinedLimit/latest
Apache License 2.0
75 stars 389 forks source link

Adding getProcessNorms() to CMSHistErrorPropagator #994

Closed nucleosynthesis closed 4 months ago

nucleosynthesis commented 4 months ago

Added function to CMSHistErrorPropagator to return process norm name and values. This is now used in the test/printWorkspaceNormalisations.py script so that it works when using autoMCStats (no longer just reports 1 for the normalisation value)

Currently there are not a lot of warnings when compiling. Attached warnings below

In member function 'add',
    inlined from 'processArg' at /cvmfs/cms.cern.ch/el9_amd64_gcc12/lcg/root/6.30.07-8b1a11e1ef0e074fdfd44e162b27e71c/include/RooArgList.h:138:46,
    inlined from 'processArgs' at /cvmfs/cms.cern.ch/el9_amd64_gcc12/lcg/root/6.30.07-8b1a11e1ef0e074fdfd44e162b27e71c/include/RooArgList.h:135:35,
    inlined from '__ct ' at /cvmfs/cms.cern.ch/el9_amd64_gcc12/lcg/root/6.30.07-8b1a11e1ef0e074fdfd44e162b27e71c/include/RooArgList.h:55:16,
    inlined from 'getProcessNorms' at src/HiggsAnalysis/CombinedLimit/src/CMSHistErrorPropagator.cc:579:55:
/cvmfs/cms.cern.ch/el9_amd64_gcc12/lcg/root/6.30.07-8b1a11e1ef0e074fdfd44e162b27e71c/include/RooCollectionProxy.h:114:40: warning: array subscript 'struct RooCollectionProxy[0]' is partly outside array bounds of 'struct RooArgList[1]' [-Warray-bounds]
  114 |       return add(var, _defValueServer, _defShapeServer, silent);
      |                                        ^
src/HiggsAnalysis/CombinedLimit/src/CMSHistErrorPropagator.cc: In member function 'getProcessNorms':
src/HiggsAnalysis/CombinedLimit/src/CMSHistErrorPropagator.cc:579:83: note: object '<anonymous>' of size 128
  579 |           normProd = new RooProduct(normProdName, "", RooArgList(*integral, *coeff));
      |                                                                                   ^
In member function 'add',
    inlined from 'processArg' at /cvmfs/cms.cern.ch/el9_amd64_gcc12/lcg/root/6.30.07-8b1a11e1ef0e074fdfd44e162b27e71c/include/RooArgList.h:138:46,
    inlined from 'processArgs' at /cvmfs/cms.cern.ch/el9_amd64_gcc12/lcg/root/6.30.07-8b1a11e1ef0e074fdfd44e162b27e71c/include/RooArgList.h:135:35,
    inlined from '__ct ' at /cvmfs/cms.cern.ch/el9_amd64_gcc12/lcg/root/6.30.07-8b1a11e1ef0e074fdfd44e162b27e71c/include/RooArgList.h:55:16,
    inlined from 'getProcessNorms' at src/HiggsAnalysis/CombinedLimit/src/CMSHistErrorPropagator.cc:579:55:
/cvmfs/cms.cern.ch/el9_amd64_gcc12/lcg/root/6.30.07-8b1a11e1ef0e074fdfd44e162b27e71c/include/RooCollectionProxy.h:114:23: warning: array subscript 'struct RooCollectionProxy[0]' is partly outside array bounds of 'struct RooArgList[1]' [-Warray-bounds]
  114 |       return add(var, _defValueServer, _defShapeServer, silent);
      |                       ^
src/HiggsAnalysis/CombinedLimit/src/CMSHistErrorPropagator.cc: In member function 'getProcessNorms':
src/HiggsAnalysis/CombinedLimit/src/CMSHistErrorPropagator.cc:579:83: note: object '<anonymous>' of size 128
  579 |           normProd = new RooProduct(normProdName, "", RooArgList(*integral, *coeff));
      |                                                                                   ^
In member function 'add',
    inlined from 'processArg' at /cvmfs/cms.cern.ch/el9_amd64_gcc12/lcg/root/6.30.07-8b1a11e1ef0e074fdfd44e162b27e71c/include/RooArgList.h:144:8,
    inlined from 'processArgs' at /cvmfs/cms.cern.ch/el9_amd64_gcc12/lcg/root/6.30.07-8b1a11e1ef0e074fdfd44e162b27e71c/include/RooArgList.h:135:35,
    inlined from '__ct ' at /cvmfs/cms.cern.ch/el9_amd64_gcc12/lcg/root/6.30.07-8b1a11e1ef0e074fdfd44e162b27e71c/include/RooArgList.h:55:16,
    inlined from 'getProcessNorms' at src/HiggsAnalysis/CombinedLimit/src/CMSHistErrorPropagator.cc:579:55:
/cvmfs/cms.cern.ch/el9_amd64_gcc12/lcg/root/6.30.07-8b1a11e1ef0e074fdfd44e162b27e71c/include/RooCollectionProxy.h:114:40: warning: array subscript 'struct RooCollectionProxy[0]' is partly outside array bounds of 'struct RooArgList[1]' [-Warray-bounds]
  114 |       return add(var, _defValueServer, _defShapeServer, silent);
      |                                        ^
src/HiggsAnalysis/CombinedLimit/src/CMSHistErrorPropagator.cc: In member function 'getProcessNorms':
src/HiggsAnalysis/CombinedLimit/src/CMSHistErrorPropagator.cc:579:83: note: object '<anonymous>' of size 128
  579 |           normProd = new RooProduct(normProdName, "", RooArgList(*integral, *coeff));
      |                                                                                   ^
In member function 'add',
    inlined from 'processArg' at /cvmfs/cms.cern.ch/el9_amd64_gcc12/lcg/root/6.30.07-8b1a11e1ef0e074fdfd44e162b27e71c/include/RooArgList.h:144:8,
    inlined from 'processArgs' at /cvmfs/cms.cern.ch/el9_amd64_gcc12/lcg/root/6.30.07-8b1a11e1ef0e074fdfd44e162b27e71c/include/RooArgList.h:135:35,
    inlined from '__ct ' at /cvmfs/cms.cern.ch/el9_amd64_gcc12/lcg/root/6.30.07-8b1a11e1ef0e074fdfd44e162b27e71c/include/RooArgList.h:55:16,
    inlined from 'getProcessNorms' at src/HiggsAnalysis/CombinedLimit/src/CMSHistErrorPropagator.cc:579:55:
/cvmfs/cms.cern.ch/el9_amd64_gcc12/lcg/root/6.30.07-8b1a11e1ef0e074fdfd44e162b27e71c/include/RooCollectionProxy.h:114:23: warning: array subscript 'struct RooCollectionProxy[0]' is partly outside array bounds of 'struct RooArgList[1]' [-Warray-bounds]
  114 |       return add(var, _defValueServer, _defShapeServer, silent);
      |                       ^
src/HiggsAnalysis/CombinedLimit/src/CMSHistErrorPropagator.cc: In member function 'getProcessNorms':
src/HiggsAnalysis/CombinedLimit/src/CMSHistErrorPropagator.cc:579:83: note: object '<anonymous>' of size 128
  579 |           normProd = new RooProduct(normProdName, "", RooArgList(*integral, *coeff));
      |                                                                                   ^
anigamova commented 4 months ago

Fixed the warnings in ROOT v6.30 compilation and ready to merge