I am puzzled by the behaviour of ClassName() vs Class_Name() and Class()->GetName().
The following code:
root [0] TH1F *h1 = new TH1F ();
root [1] TH1* h2 = (TH1*) h1->Clone("h2");
root [2] h2->ClassName()
(const char *) "TH1F"
root [3] h2->Class_Name()
(const char *) "TH1"
root [4] 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++