ROOT takes days filling a few histograms in my pc

Hello rooters,

Here is my problem. I used the TMVAClassificationApplication.C example (it is attached) and adapted the code to classify some jet data I have. As of now I am only using the BDT method.

I was filling 16 TH1F and 4 TH2F with only 100 bins in each axis while processing the tree events and everything ran smoothly (~1min). However, if I add just one more TH2F Fill(), it suddenly takes a lot of DAYS! One or more…

More info:

  • I am using ROOT 5.34/30. I ran the code in another machine with ROOT 6.06 and it took only ~1min30s.

  • I have around 30GB of free disk memory and 8GB of RAM so memory should not be a problem. Can it be some root configuration that limits the memory it can use?

  • I also run top in a terminal while executing the script and root.exe %MEM was always below 1% (while %CPU was at 100% but I am guessing that is ok).

Any clue what might be happening? :cry:

NewTMVAClassificationApplication.C (34.0 KB)

If you want to stay with ROOT 5, use your macro as ACLiC precompiled, e.g. something like: root [0] .x TMVAClassificationApplication.C++

1 Like

Running .x TMVAClassificationApplication.C results in the same problem.

Running .x TMVAClassificationApplication.C++ gives this output:

Info in <TUnixSystem::ACLiC>: creating shared library /home/joaobravo/Desktop/Files/./NewTMVAClassificationApplication_C.so
In file included from /home/joaobravo/Desktop/Files/./NewTMVAClassificationApplication.C:28:0,
                 from /tmp/rootcint_VJL1T6.h:3,
                 from /tmp/1c5GCr_cint.cxx:1:
/usr/include/root/TMVA/Tools.h:46:24: fatal error: TXMLEngine.h: No such file or directory
compilation terminated.
Error: external preprocessing failed. :0:
!!!Removing /home/joaobravo/Desktop/Files/NewTMVAClassificationApplication_C_ACLiC_dict.cxx /home/joaobravo/Desktop/Files/NewTMVAClassificationApplication_C_ACLiC_dict.h !!!
Error: /usr/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 /home/joaobravo/Desktop/Files/./NewTMVAClassificationApplication.C:28:0:
/usr/include/root/TMVA/Tools.h:46:24: fatal error: TXMLEngine.h: No such file or directory
compilation terminated.
Error: Function NewTMVAClassificationApplication() is not defined in current scope  :0:

Try:

root-config --features|grep -i xml
root-config --has-xml

asimage astiff bonjour cintex explicitlink fftw3 gdml genvector globus gsl_shared krb5 ldap mathmore memstat minuit2 mysql odbc opengl pgsql pythia8 python qt qtgsi reflex roofit ruby shadowpw shared soversion sqlite ssl table tmva unuran vdt x11 xft xml thread

yes

So, it seems you should have:

ls -al `root-config --incdir`/TXMLEngine.h
ls -al ${ROOTSYS}/include/TXMLEngine.h

In both cases it says: No such file or directory

Is there a way to download the missing file?

Your ROOT installation seems to be broken.

oh crap :frowning: Do you recommend reinstalling ROOT from scratch?

I do not understand what these commands do. Should I paste them in the terminal?

Yes, but first make sure that you removed the existing “broken” ROOT (executables, libraries, include files, …).

1 Like

Ok, never tried to install ROOT that way. I always did it through apt repositories.

Since I am reinstalling, I think I will get ROOT 6. Is there anything different to lookout for in this installation?

BTW, after commenting the problematic code lines in Tools.h, the macro ran very fast with .x macro.C++ so I will mark that as the accepted answer

These old “./configure” based instructions are for ROOT 5.

For ROOT 6, use “CMake / make” (the classical “configure / make” based method is known to be broken, i.e. not supported any more).

1 Like

Okay thank you so much for the fast support!

All the best

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.