Pyroot, loop over TTree very slow compared to .C macro

This thread might cover most of the things: Iteration over a tree in pyroot - performance issue

Easiest improvement is to activate only the required branches. Other than that, the liked thread contains a lot of benchmarks.

I would also modernize your C++ code to (make a performance test with this):

void loopOver() {
  TString path = "path/to/rootfile.root";
  TFile *root_file = TFile::Open(path, "read");
  TTreeReader reader("Track", root_file);
  TTreeReaderValue<Double_t> rvTrackPt(reader, "track_Pt");
  while (reader.Next()) {
    Double_t pt = *rvTrackPt;
    // do something with pt
  }
}