TMVA installation error

I am using

   ------------------------------------------------------------
  | Welcome to ROOT 6.08/02                http://root.cern.ch |
  |                               (c) 1995-2016, The ROOT Team |
  | Built for linuxx8664gcc                                    |
  | From tag v6-08-02, 2 December 2016                         |
  | Try '.help', '.demo', '.license', '.credits', '.quit'/'.q' |
   ------------------------------------------------------------

I am trying to install TMVA package by following the installation guide on twiki.cern.
I have downloaded and unzipped the TMVA package, then, as it is said on twiki, I typed in TMVA directory make and then, after several minutes of installation, I have the following errors:

Compiling src/KDEKernel.cxx ... src/KDEKernel.cxx: In function ‘Double_t GaussIntegral(Double_t*, Double_t*)’:
src/KDEKernel.cxx:94:30: error: ‘Erf’ is not a member of ‘TMath’
       if (xs2>0 ) return 0.5*TMath::Erf(xs2);
                              ^
src/KDEKernel.cxx:96:27: error: ‘Erf’ is not a member of ‘TMath’
    if (xs2==0) return 0.5*TMath::Erf(TMath::Abs(xs1));
                           ^
src/KDEKernel.cxx:97:27: error: ‘Erf’ is not a member of ‘TMath’
    if (xs1>0) return 0.5*(TMath::Erf(xs2)-TMath::Erf(xs1));
                           ^
src/KDEKernel.cxx:97:43: error: ‘Erf’ is not a member of ‘TMath’
    if (xs1>0) return 0.5*(TMath::Erf(xs2)-TMath::Erf(xs1));
                                           ^
src/KDEKernel.cxx:99:31: error: ‘Erf’ is not a member of ‘TMath’
       if (xs2>0 ) return 0.5*(TMath::Erf(xs2)+TMath::Erf(TMath::Abs(xs1)));
                               ^
src/KDEKernel.cxx:99:47: error: ‘Erf’ is not a member of ‘TMath’
       if (xs2>0 ) return 0.5*(TMath::Erf(xs2)+TMath::Erf(TMath::Abs(xs1)));

and so on. No lib created. What should I do?


Thanks in advance.

Hi,

TMVA is part of ROOT: upon root configuration, if you built root yourself, it is activated. It is also included in all of our binaries.

Cheers,
D

OK. I use TMVA that is contained in ROOT and it works Should I remove this question?

Hi,

great! Please leave it here for reference and like it if you think it’s tje case.

Cheers,
Danilo

Hi Danilo,

I’m somewhat confused. I got root_6_08_00, and I got only an empty folder called tmva
(it contained only another empty folder called test).

So I downloaded TMVA and tried to make it, but I came across the same problem
reported by p73.

Where should I look in the ROOT installation? Or, how can I solve the problem?

Thanks in advance

Solution to the problem described above:
I simply renamed several math functions (by removing TMath, adding std, and so on).
After this, I also had to remove a couple of lines from other files, hoping they don’t interact with anything important.

Now I got the examples running.

Regards.

Hi Petrakou,

Did you download ROOT from github?

Information on how to build root can be found on this page. No additional download of TMVA is required.

Changing the math functions could lead to hidden bugs that, if you run into them, we would not be able to help you with.

Cheers,
Kim

Thanks for the answer Kim,

Now I have everything running and I think that I can offer an overview on the situation. I hope it’ll be of use both for future reference of others and as feedback to the ROOT and TMVA teams.

tl;dr: The TMVA Users Guide is outdated : )

  1. Why do people try to download TMVA on their own?

So, I got the hint to the overall solution from this thread: TMVA installation with ROOT6
Both in that thread and in the present thread, you can read users insisting to download TMVA themselves, developers keep replying that it is included in standard ROOT already, and users keep acting confused and continuing to download themselves.
Why do we keep trying to download on our own?
Because the Users Manual says that after a normal ROOT installation, TMVA should be found under $ROOTSYS/tmva/test/, but this is not valid anymore.
Ergo, we look at this path, find it empty, and think that the installation went wrong.

  1. Where is TMVA found in the current standard ROOT installation?

The provided scripts are in $ROOTSYS/tutorials/tmva. Again, I got hinted from TMVA installation with ROOT6
However, note that TMVA can be run from any path.

  1. What happened to TMVAGui.C?

It can be run in this way: TMVAGui in Root 6
Please note that this is another factor adding to the confusion: TMVAGui.C is heavily referenced, but it doesn’t exist in the standard ROOT installation anymore.

Best wishes for your analyses,
Eleni

Hi Eleni,

Thanks for the feedback :slight_smile: Yes the User’s Guide is needs an update, we’re working on it! And we’ll take your comments to heart in that process.

Cheers,
Kim