24 #define PRINT(OUT, T) \
26 << std::setw(24) << left << #T << " --> " \
27 << std::setw(16) << left << (getDataMember(T) != NULL ? getDataMember(T)->GetName() : "?") << std::endl; } while (0)
36 (getClassname(#T) == (getDataMember(T) != NULL ? getDataMember(T)->GetName() : "?"))
45 int main(
int argc,
char **argv)
54 JParser<> zap(
"Program to test JRootClass.");
60 catch(
const exception& error) {
61 FATAL(error.what() << endl);
65 PRINT(cout, &JHead::start_run);
67 PRINT(cout, &JHead::physics);
68 PRINT(cout, &JHead::simul);
69 PRINT(cout, &JHead::cut_primary);
70 PRINT(cout, &JHead::cut_seamuon);
71 PRINT(cout, &JHead::spectrum);
72 PRINT(cout, &JHead::can);
73 PRINT(cout, &JHead::genvol);
74 PRINT(cout, &JHead::coord_origin);
75 PRINT(cout, &JHead::livetime);
76 PRINT(cout, &JHead::seabottom);
97 for (
const string key : {
"start_run",
"detector",
"physics",
"simul",
"cut_primary",
"cut_seamuon",
"spectrum",
"can",
"genvol",
"coord_origin",
"livetime",
"seabottom" }) {
Utility class to parse command line options.
int main(int argc, char *argv[])
JRootClass find(const char *const name, const bool option=true) const
Find base class or data member with given name within current class.
bool is_valid(const json &js)
Check validity of JSon data.
Auxiliary class for a type holder.
#define TEST(T)
Test data member.
#define ASSERT(A,...)
Assert macro.
I/O formatting auxiliaries.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
bool is_valid() const
Check validity of this class.
std::string to_upper(const std::string &value)
Convert all character to upper case.
General purpose messaging.
Utility class to parse command line options.
do set_variable DETECTOR_TXT $WORKDIR detector
#define PRINT(OUT, T)
Print data member.
Auxiliary class to manage access to base classes and data members of ROOT class.