Philippe,
Thanks for the help. I actually had to define both operator== and operator<. Unfortunately, ROOT now crashes with the following message:
Warning in <TClassTable::Add>: class Datafile already in TClassTable
Fatal: sizeof(::list<Datafile,allocator<Datafile> >::iterator) == sizeof(::ROOT::Shadow::listlEDatafilecOallocatorlEDatafilegRsPgR::iterator) violated at line 92 of `/home/dmancusi/.rootmacros/AutoDict_DatafileList_cxx_ACLiC_dict.cxx'
aborting
#0 0x00007f0765cb8eee in __libc_waitpid (pid=<optimized out>, stat_loc=0x7fff58a7c0ac, options=<optimized out>) at ../sysdeps/unix/sysv/linux/waitpid.c:32
#1 0x00007f0765c51a29 in do_system (line=<optimized out>) at ../sysdeps/posix/system.c:149
#2 0x00007f0767d7d510 in TUnixSystem::StackTrace() () from /usr/lib/root/libCore.so.5.30
#3 0x00007f0767ccaba2 in DefaultErrorHandler(int, bool, char const*, char const*) () from /usr/lib/root/libCore.so.5.30
#4 0x00007f0767ccb07e in ErrorHandler () from /usr/lib/root/libCore.so.5.30
#5 0x00007f0767ccb592 in Fatal(char const*, char const*, ...) () from /usr/lib/root/libCore.so.5.30
#6 0x00007f075f21e3b0 in ROOT::GenerateInitInstanceLocal () from /home/dmancusi/.rootmacros/AutoDict_DatafileList_cxx.so
#7 0x00007f075f21b787 in _GLOBAL__sub_I_AutoDict_DatafileList_cxx_ACLiC_dict.cxx () from /home/dmancusi/.rootmacros/AutoDict_DatafileList_cxx.so
#8 0x00007f07684decd0 in ?? () from /lib64/ld-linux-x86-64.so.2
#9 0x00007f07684dedc7 in ?? () from /lib64/ld-linux-x86-64.so.2
#10 0x00007f07684e3183 in ?? () from /lib64/ld-linux-x86-64.so.2
#11 0x00007f07684de926 in ?? () from /lib64/ld-linux-x86-64.so.2
#12 0x00007f07684e289a in ?? () from /lib64/ld-linux-x86-64.so.2
#13 0x00007f076694ff66 in dlopen_doit (a=<optimized out>) at dlopen.c:67
#14 0x00007f07684de926 in ?? () from /lib64/ld-linux-x86-64.so.2
#15 0x00007f07669502ec in _dlerror_run (operate=0x7f076694ff00 <dlopen_doit>, args=0x7fff58a7e990) at dlerror.c:164
#16 0x00007f076694fee1 in __dlopen (file=<optimized out>, mode=<optimized out>) at dlopen.c:88
#17 0x00007f0767313976 in G__dlopen () from /usr/lib/root/libCint.so.5.30
#18 0x00007f0767313dd1 in G__shl_load () from /usr/lib/root/libCint.so.5.30
#19 0x00007f076728c46d in G__loadfile () from /usr/lib/root/libCint.so.5.30
#20 0x00007f0767d42b47 in TCint::Load(char const*, bool) () from /usr/lib/root/libCore.so.5.30
#21 0x00007f0767d0dd12 in TSystem::Load(char const*, char const*, bool) () from /usr/lib/root/libCore.so.5.30
#22 0x00007f0767d131e6 in TSystem::CompileMacro(char const*, char const*, char const*, char const*, unsigned int) () from /usr/lib/root/libCore.so.5.30
#23 0x00007f0767d49fad in TCint_GenerateDictionary(std::vector<std::string, std::allocator<std::string> > const&, std::vector<std::string, std::allocator<std::string> > const&, std::vector<std::string, std::allocator<std::string> > const&, std::vector<std::string, std::allocator<std::string> > const&) () from /usr/lib/root/libCore.so.5.30
#24 0x00007f0767d4ad91 in TCint::GenerateDictionary(char const*, char const*, char const*) () from /usr/lib/root/libCore.so.5.30
#25 0x00007f075f632999 in getDDXSDataset(ParticleType, double, int, int, ParticleType, double) () from /home/dmancusi/.rootmacros/DatasetLibrary_C.so
#26 0x00007f075f6334ff in G__DatasetLibrary_C_ACLiC_dict__0_2249(G__value*, char const*, G__param*, int) () from /home/dmancusi/.rootmacros/DatasetLibrary_C.so
#27 0x00007f07671f22d6 in Cint::G__ExceptionWrapper(int (*)(G__value*, char const*, G__param*, int), G__value*, char*, G__param*, int) () from /usr/lib/root/libCint.so.5.30
#28 0x00007f07672968e1 in G__execute_call () from /usr/lib/root/libCint.so.5.30
#29 0x00007f0767296c9e in G__call_cppfunc () from /usr/lib/root/libCint.so.5.30
#30 0x00007f07672749f2 in G__interpret_func () from /usr/lib/root/libCint.so.5.30
#31 0x00007f0767264074 in G__getfunction () from /usr/lib/root/libCint.so.5.30
#32 0x00007f076723e0f9 in G__getitem () from /usr/lib/root/libCint.so.5.30
#33 0x00007f0767244016 in G__getexpr () from /usr/lib/root/libCint.so.5.30
#34 0x00007f07672c6335 in G__exec_statement () from /usr/lib/root/libCint.so.5.30
#35 0x00007f076722a2d0 in ?? () from /usr/lib/root/libCint.so.5.30
#36 0x00007f076722ba7e in G__exec_tempfile_fp () from /usr/lib/root/libCint.so.5.30
#37 0x00007f07672d27d2 in G__process_cmd () from /usr/lib/root/libCint.so.5.30
#38 0x00007f0767d48e9a in TCint::ProcessLine(char const*, TInterpreter::EErrorCode*) () from /usr/lib/root/libCore.so.5.30
#39 0x00007f0767cb33f9 in TApplication::ProcessLine(char const*, bool, int*) () from /usr/lib/root/libCore.so.5.30
#40 0x00007f0766b65d39 in TRint::HandleTermInput() () from /usr/lib/root/libRint.so.5.30
#41 0x00007f0767d7ed6c in TUnixSystem::CheckDescriptors() () from /usr/lib/root/libCore.so.5.30
#42 0x00007f0767d804c6 in TUnixSystem::DispatchOneEvent(bool) () from /usr/lib/root/libCore.so.5.30
#43 0x00007f0767d07246 in TSystem::InnerLoop() () from /usr/lib/root/libCore.so.5.30
#44 0x00007f0767d08df4 in TSystem::Run() () from /usr/lib/root/libCore.so.5.30
#45 0x00007f0767cb17df in TApplication::Run(bool) () from /usr/lib/root/libCore.so.5.30
#46 0x00007f0766b66717 in TRint::Run(bool) () from /usr/lib/root/libRint.so.5.30
#47 0x00000000004010bc in main ()