I am puzzled by the behaviour of ClassName() vs Class_Name() and Class()->GetName().
The following code:
root  TH1F *h1 = new TH1F (); root  TH1* h2 = (TH1*) h1->Clone("h2"); root  h2->ClassName() (const char *) "TH1F" root  h2->Class_Name() (const char *) "TH1" root  h2->Class()->GetName() (const char *) "TH1"
according to the reference guide both ClassName and Class_Name should return the name of the class of the object, so why are they different?
ROOT Version: 6.12/04 (but tried also ROOT 5)
Platform: Linux Ubuntu 18
Compiler: tried both interpreter and g++