15 #include "JAAnet/JAAnetDictionary.hh"
43 JRootReadableClass cls(*
this);
45 for (
JEquation equation; reader >> equation && equation.
getKey() != end_event::Class_Name(); ) {
47 JRedirectString redirect(reader, equation.getValue());
49 const JRootReadableClass abc = cls.find(equation.getKey().c_str());
52 reader.getObject(abc);
55 (*this)[equation.getKey()] = equation.getValue();
75 JRootWritableClass cls(*
this);
77 TIterator* i = cls.getClass()->GetListOfDataMembers()->MakeIterator();
79 for (
const TDataMember* p; (p = (
const TDataMember*) i->Next()) != NULL; ) {
80 if (!JRootClass::is_static(*p)) {
81 if (this->find(p->GetName()) != this->end() ||
84 writer.
put(p->GetName(), cls.get(*p),
true);
106 JRootWritableClass cls(*
this);
108 TIterator* i = cls.getClass()->GetListOfDataMembers()->MakeIterator();
112 for (
const TDataMember* p; (p = (
const TDataMember*) i->Next()) != NULL; ) {
113 if (!JRootClass::is_static(*p)) {
115 writer.
put(p->GetName(), cls.get(*p),
true);
117 end_event = make_pair(p->GetName(), cls.get(*p));
121 for (JHead::const_iterator i = this->begin(); i != this->end(); ++i) {
122 if (!cls.find(i->first.c_str()).
is_valid()) {
123 writer.
put(i->first, i->second);
127 writer.
put(end_event.first, end_event.second,
true);
146 JRootReadableClass cls(to);
148 for (Head::const_iterator i = from.begin(); i != from.end(); ++i) {
150 const JRootReadableClass& abc = cls.find(
getTag(i->first).c_str());
152 const string buffer =
trim(i->second);
154 if (abc.is_valid() && buffer !=
"") {
156 JRedirectString redirect(reader, buffer);
158 reader.getObject(abc);
160 if (i->first ==
getTag(i->first)) {
187 JRootWritableClass cls(from);
189 TIterator* i = cls.getClass()->GetListOfDataMembers()->MakeIterator();
191 for (
const TDataMember* p; (p = (
const TDataMember*) i->Next()) != NULL; ) {
192 if (!JRootClass::is_static(*p)) {
193 if (from.find(p->GetName()) != from.end() ||
196 writer.
put(p->GetName(), cls.get(*p),
true);
203 for (JHead::const_iterator i = from.begin(); i != from.end(); ++i) {
204 if (to.find(i->first) == to.end()) {
const std::string & getKey() const
Get key.
Implementation for ASCII output of objects with ROOT dictionary.
std::string trim(const std::string &buffer)
Trim string.
JAANET::end_event end_event
General purpose equation class.
ASCII I/O of objects with ROOT dictionary.
T & getInstance(const T &object)
Get static instance from temporary object.
static JLANG::JEquationParameters & getEquationParameters()
Get equation parameters corresponding to Monte Carlo ASCII format, i.e:
std::istream & read(std::istream &in)
Read header from input.
JAANET::start_run start_run
std::ostream & print(std::ostream &out) const
Print header to output.
The Head class reflects the header of Monte-Carlo event files, which consists of keys (also referred ...
static JStat getFileStatus
Function object for file status.
virtual JRootWriter & put(const JEquation &equation) override
Write equation.
void copy(const Head &from, JHead &to)
Copy header from from to to.
JRootWriter & put(const T &object)
Write object according equation format.
Implementation for Head output of JHead objects with ROOT dictionary.
bool is_valid(T JHead::*pd) const
Check validity of given data member in JHead.
then fatal Wrong number of arguments fi set_variable DETECTOR $argv[1] set_variable INPUT_FILE $argv[2] eval JPrintDetector a $DETECTOR O IDENTIFIER eval JPrintDetector a $DETECTOR O SUMMARY source JAcoustics sh $DETECTOR_ID typeset A TRIPODS get_tripods $WORKDIR tripod txt TRIPODS for EMITTER in
std::string getTag(const std::string &tag)
Get tag without aanet extension "_<counter>" for identical tags.
esac $JPP_BIN JLogger sh $LOGGER until pgrep JGetMessage</dev/null > dev null
std::ostream & write(std::ostream &out) const
Write header to output.