Alex Pearce

TBrowser shortcut

No comments

One of the nice features of ROOT, a data analysis framework commonly used in particle physics, is the TBrowser file browser.

Old familiar: a ROOT TBrowser

It lets you view the directory structure of ROOT files, as well as quickly create histograms of ntuple branches. It’s so useful that I use it a lot during the day, maybe 20 times or more. Using it then becomes a little tedious, as its instantiation is a little more verbose than I care for, particularly when I’m typing it all day.

$ root my_file.root
root [0] new TBrowser // Pointer, or
root [1] TBrowser asd // Reference

So I cobbled something together which requires minimal effort.

$ tb my_file.root

This starts ROOT and brings up a TBrowser with my_file.root loaded.

Implementation

There are probably a few ways to do this, but I went for a shell function and a ROOT macro.

In a file my shell looks at, such as .zshrc, I have the function tbrowser.

tbrowser () {
  # Check a file has been specified
  if (( $# == 0 )); then
    echo "No file(s) specified."
  else
    # For each file, check it exists
    for i; do
      if [ ! -f $i ]; then
        echo "Could not find file $i"
        return 1;
      fi
    done
    root -l $* $HOME/.macros/newBrowser.C
  fi
}

This calls a macro newBrowser.C in a hidden folder .macros in my home directory. All the macro does is create a TBrowser object, as you might expect.

void newBrowser() {
  new TBrowser;
}

As I really am lazy, I alias the tbrowser function to tb; again, in a file my shell looks at.

alias tb="tbrowser"

As an aside, if you haven’t already created an alias to hide that obnoxious ROOT splash screen, I’d recommend it.

alias root="root -l"