1#ifndef __JROOT__JROOTPRINTER__
2#define __JROOT__JROOTPRINTER__
7#pragma GCC diagnostic push
8#pragma GCC diagnostic ignored "-Wall"
12#pragma GCC diagnostic pop
28namespace JPP {
using namespace JROOT; }
90 static inline void print(std::ostream& out,
92 const std::string& key,
101 for (string::size_type
il = 0,
ir = 0;
ir != string::npos &&
cls.is_valid();
il =
ir + 1) {
106 if (
cls.is_valid()) {
128 static inline void print(std::ostream& out,
149 static inline void print(std::ostream& out,
151 const std::string& key,
166 static inline void print(std::ostream& out,
201 string buffer = (
const char*)
text;
203 for (string::size_type pos = 0; pos != buffer.size(); ) {
205 if (
isalpha(buffer[pos]) || buffer[pos] ==
'_') {
207 string::size_type len = 1;
209 while (pos + len != buffer.size() && (
isalnum(buffer[pos+len]) || buffer[pos+len] ==
'_' || buffer[pos+len] ==
'.')) {
213 if (len != 1 || pos == 0 || TString(buffer.substr(pos-1).c_str()).
Index(
DOUBLE) != 0) {
222 buffer.replace(pos, len, os.str());
224 pos += os.str().size();
233 return TFormula(
"/tmp", buffer.c_str()).Eval(0.0);
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
ASCII I/O of objects with ROOT dictionary.
Simple data structure to support I/O of equations (see class JLANG::JEquation).
const char getDefaultDivision() const
Get default division character.
Exception for parsing value.
Template definition of a multi-dimensional oscillation probability interpolation table.
Implementation for ASCII output of objects with ROOT dictionary.
const JRootDictionary_t & getDictionary() const
Get dictictionary.
JRootWriter & putObject(const T &object)
Write object.
JRootWriter & put(const T &object)
Write object according equation format.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
Auxiliary classes and methods for ROOT I/O.
Double_t getResult(const TString &text, const T &object, const JRootDictionary_t &dictionary=JRootDictionary::getInstance())
Get result of given textual formula.
static data_type & getInstance()
Get unique instance of template class.
bool is_valid() const
Check validity of this addressable class.
const char * getTypename() const
Get type name.
Type definition of ROOT based dictionary for ASCII I/O.
Auxiliary class for printing objects in ASCII format using JRootWriter.
static void print(std::ostream &out, const T &object, const JEquationParameters ¶meters, const JRootDictionary_t &dictionary=JRootDictionary::getInstance())
Write object to output using ROOT dictionary.
static void print(JRootWriter &writer, const JRootWritableClass &cls)
Write class contents to output.
static void print(std::ostream &out, const T &object, const std::string &key, const JEquationParameters ¶meters, const JRootDictionary_t &dictionary=JRootDictionary::getInstance())
Write part of object to output using ROOT dictionary.
static void print(std::ostream &out, const T &object, const JRootDictionary_t &dictionary=JRootDictionary::getInstance())
Write object to output using ROOT dictionary.
static void print(std::ostream &out, const T &object, const std::string &key, const JRootDictionary_t &dictionary=JRootDictionary::getInstance())
Write part of object to output using ROOT dictionary.
static JEquationParameters & getEquationParameters()
Get equation parameters.
static void setEquationParameters(const JEquationParameters &equation)
Set equation parameters.
ROOT class for writing from object.