to my understanding, root executes the following macros on startup
${ROOTSYS}/system.rootlogon.C (if exists)
${HOME}/.rootlogon.C (if exists)
$(pwd)/.rootlogon.C (if pwd!=HOME and if exists)
${Rint.Logon} (if set)
now it appears that gaudirun.py applications (proj-gaudi.web.cern.ch/proj-gaudi/) fails horribly (/afs/cern.ch/user/p/pseyfert/public/GAUDIERRORS.txt) when the logon macros are unnamed. e.g. when ${HOME}/.rootlogon.C just contains
{
somecode
}
we fixed this by setting
moving ${HOME}/.rootlogon.C to ${HOME}/rootlogon.C and naming the macro therein
void rootlogon() {
somecode
}
my understanding is that actually the last step is the crucial one but I don’t know how to name macros in hidden files (such as .rootlogon.C) because the c++ function would need to be called .rootlogon() and function names must not contain a period. I so far used a user-dependent ~/.rootlogon.C (set plot styles) and project dependent .rootlogon.C files, lying in directories with macros (where i set
gSystem->AddIncludePath(Form("-I%s",incpath.Data()));
gInterpreter->AddIncludePath(incpath.Data());
).
Moving the user ~/.rootlogon.C to ~/rootlogon.C and naming the macro therein seems straight forward, and I can say “just don’t run gaudirun.py in directories which contain root macros”. But I’m wondering
[ul]is there a way to name macros in hidden files?
[/ul]
PS: the gaudi version i tested uses /afs/cern.ch/sw/lcg/releases/LCG_83/ROOT/6.06.00/x86_64-slc6-gcc49-opt/lib/ROOT.py