With ROOT 6 this can be a bit tricky.
I guess the best idea (which should work with ROOT 5 and 6) is to create a simple local “rootlogon.C” file in your “current working directory”:
void rootlogon(void) { // rootlogon.C ...
// std::cout << "... rootlogon.C ..." << std::endl;
gROOT->LoadMacro("HistoMaker.C++");
} // ... rootlogon.C
and then the “run_HistoMaker.cxx” could look like this:
#include "HistoMaker.h"
#include "TSystem.h"
#include <iostream>
void run_HistoMaker()
{
std::cout << "Running HistoMaker" << std::endl;
gSystem->mkdir("./histos/", kTRUE);
TChain *tree = new TChain("Events");
tree->Add("../../skimmer/python/output_skim_Summer16MC_merged/Summer16.g1800*.root");
HistoMaker t(tree);
t.Loop();
delete tree;
}