Brent Huisman

Hi! I'm Brent, a Dutchie working in France on proton therapy. I studied particle physics and I'm interested in everything that fits through a glass fiber.

Root: my first OOP

programming root

As I am sorting out a way to generate a few histograms and automagically save them to disk (sounds complicated, right?), I came across a brilliant bit of investigative journalism by another angry particle physicist, angry with ROOT that is. For all its power, there is some seriously retarded design beneath all that beauty. And it's really not only beneath it, just look at that default graph styling. Or those namespaces. Namespaces everywhere. Here someone delves into the 'my first OOP'-ish nature of some of the innards of Root. And for all that OOP-ishness, we still have to endure such decidedly procedural code such as

fenetre1 = r.TCanvas("fenetre1","fefe",1)
fenetre1.cd(1)
someTH1D.SetLineColor(22);
someTH1D.Draw("COLZ")
someotherTH1D.SetLineColor(24);
someotherTH1D.Draw("COLZ")

AS you can see I'm using PyROOT, which eases a lot of the pain, but still. I fondly remember not having to interact with .root files, which allowed me to use matplotlib. Ah, those were the days!