I try to get my code running with ROOT v2.22/04 and run into a
small problem executing marcos.
To be able to initialize certain members of an object without recompiling
I call a macro from within the object at initialization time. In this
macro I sometimes need to give output to cout. In v2.21 I had to use
#include <iostream.h> to be able to do this. (Not in an interactive
version because then it's in my rootlogon.C). Now this seems to give
conflict with CINT.
The call from the object:
------------
StatusCode OTAlgorithm::setProperties()
{
// Set algorithm properties.
// This is done my calling the (CINT) C++ macro associated with this
algorithm.
// set global algorithm to this algorithm
gOTAlgorithm = this;
// create macro name
TString macroName = "i" + this->name() + ".C";
// execute macro
if (gROOT->Macro(macroName) != 0) { // however gROOT->Macro always
returns 0...
return StatusCode::FAILURE;
}
// end
return StatusCode::SUCCESS;
}
----------
(parts) of the macro:
--------
{
// check for global algorithm
if (!gOTAlgorithm) {
#include <iostream.h>
cout << "gOTAlgorithm not defined" << endl;
return;
}
...
...
// initialize the algorithm
...
...
}
-------
This gives the error with new ROOT:
Error: class,struct,union or type intostream not defined
FILE:/afs/cern.ch/user/r/rutger/root/cint/include/iostream.h LINE:233
How should I handle this now(V2.22)?
Rutger van der Eijk