why I got this error during .L twosidebands_dumper.C+:
Error: Symbol eta_bins is not defined in current scope twosidebands_dumper.C:36:
Error: Failed to evaluate eta_bins.size()
Error: Symbol pt_bins is not defined in current scope twosidebands_dumper.C:36:
Error: Failed to evaluate pt_bins.size()
Warning: Error occurred during reading source files
Warning: Error occurred during dictionary source generation
!!!Removing /gpfs/storage_4/users/home/turra/diphotons/twosidebands_dumper/twosidebands_dumper_C_ACLiC_dict.cxx /gpfs/storage_4/users/home/turra/diphotons/twosidebands_dumper/twosidebands_dumper_C_ACLiC_dict.h !!!
Error: /gpfs/storage_4/users/home/proof/root/bin/rootcint: error loading headers...
Error in <ACLiC>: Dictionary generation failed!
Info in <ACLiC>: Invoking compiler to check macro's validity
Info in <ACLiC>: The compiler has not found any problem with your macro.
Probably your macro uses something rootcint can't parse.
Check http://root.cern.ch/root/Cint.phtml?limitations for Cint's limitations.
what does it mean “Probably your macro uses something rootcint can’t parse.”? I’m not using CINT I’m compiling the macro. If I try compile it manually it works. Piece of code:
namespace bin_definition
{
const double eta_bins_array[] = {0., 0.60, 1.37, 1.52, 1.81, 2.37};
const double pt_bins_array[] = {15, 20, 25, 30, 35, 40, 50, 60, 100};
const int n_eta_bins = sizeof(eta_bins_array) / sizeof(double);
const int n_pt_bins = sizeof(pt_bins_array) / sizeof(double);
const std::vector<double> eta_bins(eta_bins_array,
eta_bins_array + n_eta_bins);
const std::vector<double> pt_bins(pt_bins_array,
pt_bins_array + n_pt_bins);
const int ALL = std::max(eta_bins.size(), pt_bins.size()); // <-- line 36