RooClassFactory pdfs with capital letter

Hi,

I’m not sure if this is a bug or what, but it seems making a pdf with all capital letters is preventing the class from compiling for a reason I can’t figure out, root no longer knows what a Double_t is:

root [0] RooClassFactory::makePdf("mYPDF","x,param1,param2")
(Bool_t)0
root [1] .L mYPDF.cxx+
Info in <TUnixSystem::ACLiC>: creating shared library /afs/cern.ch/user/g/gcree/temp2/./mYPDF_cxx.so

(the above works fine, mYPDF_cxx.so gets created, but…)

root [2] RooClassFactory::makePdf("MYPDF","x,param1,param2")
(Bool_t)0
root [3] .L MYPDF.cxx+
Info in <TUnixSystem::ACLiC>: creating shared library /afs/cern.ch/user/g/gcree/temp2/./MYPDF_cxx.so
Error: class,struct,union or type Double_t not defined  MYPDF.cxx:41:
Warning: Error occurred during reading source files
Warning: Error occurred during dictionary source generation
!!!Removing /afs/cern.ch/user/g/gcree/temp2/MYPDF_cxx_ACLiC_dict.cxx /afs/cern.ch/user/g/gcree/temp2/MYPDF_cxx_ACLiC_dict.h !!!
Error: /cvmfs/atlas.cern.ch/repo/ATLASLocalRootBase/x86_64/root/5.34.18-x86_64-slc6-gcc4.7/bin/rootcint: error loading headers...
Error in <ACLiC>: Dictionary generation failed!
Info in <ACLiC>: Invoking compiler to check macro's validity
In file included from /afs/cern.ch/user/g/gcree/temp2/./MYPDF.cxx:11:0:
/afs/cern.ch/user/g/gcree/temp2/./MYPDF.h:18:9: error: expected unqualified-id before ‘)’ token
/afs/cern.ch/user/g/gcree/temp2/./MYPDF.h:19:9: error: expected unqualified-id before ‘const’
/afs/cern.ch/user/g/gcree/temp2/./MYPDF.h:19:9: error: expected ‘)’ before ‘const’
/afs/cern.ch/user/g/gcree/temp2/./MYPDF.h:23:9: error: expected unqualified-id before ‘const’
/afs/cern.ch/user/g/gcree/temp2/./MYPDF.h:23:9: error: expected ‘)’ before ‘const’
/afs/cern.ch/user/g/gcree/temp2/./MYPDF.h:25:24: error: expected class-name before ‘(’ token
/afs/cern.ch/user/g/gcree/temp2/./MYPDF.h: In member function ‘virtual TObject*<anonymous class>::clone(const char*) const’:
/afs/cern.ch/user/g/gcree/temp2/./MYPDF.h:24:86: error: expected type-specifier before ‘;’ token
/afs/cern.ch/user/g/gcree/temp2/./MYPDF.h:24:86: error: no matching function for call to ‘operator new(sizetype, const<anonymous class>&, const char*&)’
/afs/cern.ch/user/g/gcree/temp2/./MYPDF.h:24:86: note: candidates are:
In file included from /cvmfs/atlas.cern.ch/repo/ATLASLocalRootBase/x86_64/Gcc/gcc472p1_x86_64_slc6/slc6/x86_64-slc6-gcc47-opt/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.7.2/../../../../include/c++/4.7.2/ext/new_allocator.h:34:0,
                 from /cvmfs/atlas.cern.ch/repo/ATLASLocalRootBase/x86_64/Gcc/gcc472p1_x86_64_slc6/slc6/x86_64-slc6-gcc47-opt/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.7.2/../../../../include/c++/4.7.2/x86_64-unknown-linux-gnu/bits/c++allocator.h:34,
                 from /cvmfs/atlas.cern.ch/repo/ATLASLocalRootBase/x86_64/Gcc/gcc472p1_x86_64_slc6/slc6/x86_64-slc6-gcc47-opt/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.7.2/../../../../include/c++/4.7.2/bits/allocator.h:48,
                 from /cvmfs/atlas.cern.ch/repo/ATLASLocalRootBase/x86_64/Gcc/gcc472p1_x86_64_slc6/slc6/x86_64-slc6-gcc47-opt/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.7.2/../../../../include/c++/4.7.2/string:43,
                 from /cvmfs/atlas.cern.ch/repo/ATLASLocalRootBase/x86_64/Gcc/gcc472p1_x86_64_slc6/slc6/x86_64-slc6-gcc47-opt/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.7.2/../../../../include/c++/4.7.2/bits/locale_classes.h:42,
                 from /cvmfs/atlas.cern.ch/repo/ATLASLocalRootBase/x86_64/Gcc/gcc472p1_x86_64_slc6/slc6/x86_64-slc6-gcc47-opt/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.7.2/../../../../include/c++/4.7.2/bits/ios_base.h:43,
                 from /cvmfs/atlas.cern.ch/repo/ATLASLocalRootBase/x86_64/Gcc/gcc472p1_x86_64_slc6/slc6/x86_64-slc6-gcc47-opt/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.7.2/../../../../include/c++/4.7.2/ios:43,
                 from /cvmfs/atlas.cern.ch/repo/ATLASLocalRootBase/x86_64/Gcc/gcc472p1_x86_64_slc6/slc6/x86_64-slc6-gcc47-opt/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.7.2/../../../../include/c++/4.7.2/istream:40,
                 from /cvmfs/atlas.cern.ch/repo/ATLASLocalRootBase/x86_64/Gcc/gcc472p1_x86_64_slc6/slc6/x86_64-slc6-gcc47-opt/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.7.2/../../../../include/c++/4.7.2/fstream:40,
                 from /cvmfs/atlas.cern.ch/repo/ATLASLocalRootBase/x86_64/root/5.34.18-x86_64-slc6-gcc4.7/include/Riostream.h:31,
                 from /afs/cern.ch/user/g/gcree/temp2/./MYPDF.cxx:9:
/cvmfs/atlas.cern.ch/repo/ATLASLocalRootBase/x86_64/Gcc/gcc472p1_x86_64_slc6/slc6/x86_64-slc6-gcc47-opt/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.7.2/../../../../include/c++/4.7.2/new:93:7: note: void* operator new(std::size_t)
/cvmfs/atlas.cern.ch/repo/ATLASLocalRootBase/x86_64/Gcc/gcc472p1_x86_64_slc6/slc6/x86_64-slc6-gcc47-opt/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.7.2/../../../../include/c++/4.7.2/new:93:7: note:   candidate expects 1 argument, 3 provided
/cvmfs/atlas.cern.ch/repo/ATLASLocalRootBase/x86_64/Gcc/gcc472p1_x86_64_slc6/slc6/x86_64-slc6-gcc47-opt/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.7.2/../../../../include/c++/4.7.2/new:101:7: note: void* operator new(std::size_t, const std::nothrow_t&)
/cvmfs/atlas.cern.ch/repo/ATLASLocalRootBase/x86_64/Gcc/gcc472p1_x86_64_slc6/slc6/x86_64-slc6-gcc47-opt/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.7.2/../../../../include/c++/4.7.2/new:101:7: note:   candidate expects 2 arguments, 3 provided
/cvmfs/atlas.cern.ch/repo/ATLASLocalRootBase/x86_64/Gcc/gcc472p1_x86_64_slc6/slc6/x86_64-slc6-gcc47-opt/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.7.2/../../../../include/c++/4.7.2/new:111:14: note: void* operator new(std::size_t, void*)
/cvmfs/atlas.cern.ch/repo/ATLASLocalRootBase/x86_64/Gcc/gcc472p1_x86_64_slc6/slc6/x86_64-slc6-gcc47-opt/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.7.2/../../../../include/c++/4.7.2/new:111:14: note:   candidate expects 2 arguments, 3 provided
In file included from /afs/cern.ch/user/g/gcree/temp2/./MYPDF.cxx:11:0:
/afs/cern.ch/user/g/gcree/temp2/./MYPDF.h: In member function ‘virtual TClass*<anonymous class>::IsA() const’:
/afs/cern.ch/user/g/gcree/temp2/./MYPDF.h:37:3: error: ‘::Class’ has not been declared
/afs/cern.ch/user/g/gcree/temp2/./MYPDF.h: In member function ‘void<anonymous class>::StreamerNVirtual(TBuffer&)’:
/afs/cern.ch/user/g/gcree/temp2/./MYPDF.h:37:3: error: ‘::Streamer’ has not been declared
/afs/cern.ch/user/g/gcree/temp2/./MYPDF.h: At global scope:
/afs/cern.ch/user/g/gcree/temp2/./MYPDF.h:16:13: error: an anonymous struct cannot have function members
/afs/cern.ch/user/g/gcree/temp2/./MYPDF.h:16:13: error: member ‘RooAbsPdf <anonymous class>::<anonymous>’ with constructor not allowed in anonymous aggregate
/afs/cern.ch/user/g/gcree/temp2/./MYPDF.h:16:13: error: member ‘RooAbsPdf <anonymous class>::<anonymous>’ with destructor not allowed in anonymous aggregate
/afs/cern.ch/user/g/gcree/temp2/./MYPDF.h:16:13: error: member ‘RooAbsPdf <anonymous class>::<anonymous>’ with copy assignment operator not allowed in anonymous aggregate
/afs/cern.ch/user/g/gcree/temp2/./MYPDF.h:29:16: error: member ‘RooRealProxy <anonymous class>::x’ with constructor not allowed in anonymous aggregate
/afs/cern.ch/user/g/gcree/temp2/./MYPDF.h:29:16: error: member ‘RooRealProxy <anonymous class>::x’ with destructor not allowed in anonymous aggregate
/afs/cern.ch/user/g/gcree/temp2/./MYPDF.h:29:16: error: member ‘RooRealProxy <anonymous class>::x’ with copy assignment operator not allowed in anonymous aggregate
/afs/cern.ch/user/g/gcree/temp2/./MYPDF.h:30:16: error: member ‘RooRealProxy <anonymous class>::param1’ with constructor not allowed in anonymous aggregate
/afs/cern.ch/user/g/gcree/temp2/./MYPDF.h:30:16: error: member ‘RooRealProxy <anonymous class>::param1’ with destructor not allowed in anonymous aggregate
/afs/cern.ch/user/g/gcree/temp2/./MYPDF.h:30:16: error: member ‘RooRealProxy <anonymous class>::param1’ with copy assignment operator not allowed in anonymous aggregate
/afs/cern.ch/user/g/gcree/temp2/./MYPDF.h:31:16: error: member ‘RooRealProxy <anonymous class>::param2’ with constructor not allowed in anonymous aggregate
/afs/cern.ch/user/g/gcree/temp2/./MYPDF.h:31:16: error: member ‘RooRealProxy <anonymous class>::param2’ with destructor not allowed in anonymous aggregate
/afs/cern.ch/user/g/gcree/temp2/./MYPDF.h:31:16: error: member ‘RooRealProxy <anonymous class>::param2’ with copy assignment operator not allowed in anonymous aggregate
/afs/cern.ch/user/g/gcree/temp2/./MYPDF.h:38:2: error: abstract declarator ‘<anonymous class>’ used as declaration
/afs/cern.ch/user/g/gcree/temp2/./MYPDF.cxx:17:1: error: ISO C++ forbids declaration of ‘parameter’ with no type [-fpermissive]
/afs/cern.ch/user/g/gcree/temp2/./MYPDF.cxx:17:1: error: expected primary-expression before ‘)’ token
/afs/cern.ch/user/g/gcree/temp2/./MYPDF.cxx:19:14: error: expected id-expression before ‘(’ token
/afs/cern.ch/user/g/gcree/temp2/./MYPDF.cxx:31:14: error: expected id-expression before ‘(’ token
/afs/cern.ch/user/g/gcree/temp2/./MYPDF.cxx:41:29: error: explicit qualification in declaration of ‘Double_t evaluate()’
/afs/cern.ch/user/g/gcree/temp2/./MYPDF.cxx:41:29: error: non-member function ‘Double_t evaluate()’ cannot have cv-qualifier

This is using 5.34.18-x86_64-slc6-gcc47-opt on lxplus (default version)

Not critical as I can of course just use names with lowercase in them.