1 #ifndef __JAANET__JHEAD__
2 #define __JAANET__JHEAD__
29 namespace JPP {
using namespace JAANET; }
58 JTOOLS::
JRange<double>(x, y)
92 inline std::string
getTag(
const std::string& tag)
98 if (pos != string::npos) {
100 for (string::size_type i = pos + 1; i != tag.size(); ++i) {
101 if (!isdigit(tag[i])) {
106 return tag.substr(0, pos);
120 inline std::string
getTag(
const std::string& tag,
const int counter)
122 std::ostringstream os;
166 return !(*this).less(
object) && !(object).
less(*
this);
179 istringstream i0(
this ->
buffer);
180 istringstream i1(
object.
buffer);
185 copy(istream_iterator<string>(i0), istream_iterator<string>(), back_inserter(v0));
186 copy(istream_iterator<string>(i1), istream_iterator<string>(), back_inserter(v1));
212 return out <<
object.buffer;
240 return this->program ==
object.program && this->filename ==
object.filename;
254 in >>
object.program >>
object.filename;
257 object.filename =
object.program;
258 object.program =
"?";
273 return out <<
object.program <<
' ' <<
object.filename;
357 const double cosTmin,
358 const double cosTmax) :
360 cosT(cosTmin, cosTmax)
371 if (
E.getLowerLimit() ==
object.E.getLowerLimit()) {
373 if (
E.getUpperLimit() ==
object.E.getUpperLimit()) {
375 if (cosT.getLowerLimit() ==
object.cosT.getLowerLimit()) {
376 return cosT.getUpperLimit() <
object.cosT.getUpperLimit();
378 return cosT.getLowerLimit() <
object.cosT.getLowerLimit();
383 return E.getUpperLimit() <
object.E.getUpperLimit();
388 return E.getLowerLimit() <
object.E.getLowerLimit();
401 cosT.equals(
object.cosT));
473 return program <
object.program;
486 return program ==
object.program;
537 return alpha <
object.alpha;
548 return (alpha ==
object.alpha);
578 return (zmin ==
object.zmin &&
579 zmax ==
object.zmax &&
614 return (xcenter ==
object.xcenter &&
615 ycenter ==
object.ycenter &&
616 zmin ==
object.zmin &&
617 zmax ==
object.zmax &&
618 radius ==
object.radius);
654 return volume <
object.volume;
665 return (zmin ==
object.zmin &&
666 zmax ==
object.zmax &&
668 volume ==
object.volume);
692 const double z = 0.0)
694 zmin = (zmin - z) * factor + z;
695 zmax = (zmax - z) * factor + z;
697 volume *= factor * factor * factor;
746 return (
x ==
object.
x &&
794 return (primaryFlux ==
object.primaryFlux);
837 return numberOfSeconds <
object.numberOfSeconds;
848 return ((numberOfSeconds == 0.0 &&
object.numberOfSeconds == 0.0) ||
849 (numberOfSeconds > 0.0 &&
object.numberOfSeconds > 0.0));
861 errorOfSeconds = sqrt(errorOfSeconds * errorOfSeconds +
862 object.errorOfSeconds *
object.errorOfSeconds);
875 numberOfSeconds /= (factor * factor);
876 errorOfSeconds /= (factor * factor);
911 return type <
object.type;
922 return type ==
object.type;
953 return (z ==
object.z);
981 return (z ==
object.z);
1063 return this->numberOfSeconds ==
object.numberOfSeconds;
1092 return (this->t1 ==
object.t1 && this->t2 ==
object.t2);
1121 return type <
object.type;
1132 return (type ==
object.type);
1182 copy(header, *
this);
1200 return static_cast<const JHead&
>(*this);
1211 return static_cast<JHead&
>(*this);
1222 static_cast<JHead&
>(*this) = header;
1237 return (this->pull(pd) != this->end());
1252 static const T value;
1254 return (
object.
less(value) || value.less(
object));
1306 if (p != this->end()) {
1310 static_cast<Head*
>(
this)->erase(p);
1359 const JHead head = getMatch(header);
1373 return getNumberOfMatches(header) == getMaximumNumberOfMatches();
1385 #define RETURN_IF_DIFFERENT(A, B) \
1386 if (less(A,B)) { return true; } \
1387 if (less(B,A)) { return false; }
1417 #undef RETURN_IF_DIFFERENT
1429 if (
match(header)) {
1455 const JHead& second)
1457 return first.
match(second);
1469 const JHead& second)
1471 return first.
less(second);
1512 static const JHead header;
1543 getEquationParameters() = equation;
1553 std::istream&
read(std::istream&
in);
1562 std::ostream&
write(std::ostream& out)
const;
1571 std::ostream&
print(std::ostream& out)
const;
1588 return first.less(second);
1603 return first.match(second);
1619 if (first.size() == second.size()) {
1621 for (
size_t i = 0; i != first.size(); ++i) {
1622 if (
less(first[i], second[i])) {
1631 return first.size() < second.size();
1648 for (
size_t i = 0; i != first.size() && i != second.size(); ++i) {
1649 if (!
match(first[i], second[i])) {
1654 return first.size() == second.size();
1668 const JHead& second,
1671 return match(first.*pd, second.*pd);
1718 return header.
read(in);
1731 return header.
write(out);
norma & add(const norma &object)
Addition.
bool match(const cut &object) const
Test match.
bool match(const detector &object) const
Test match.
JAANET::genhencut genhencut
static const size_t getMaximumNumberOfMatches()
Get maximum number of matching header fields.
Phase space of incident neutrino.
static bool is_valid(const T &object)
Check validity of given data member in JHead.
JHead getMatch(const JHead &header) const
Get matching fields.
livetime & mul(const double factor)
Scale.
bool less(const String &object) const
Comparison.
std::vector< JAANET::flux > flux
genvol & mul(const double factor, const double z=0.0)
Scale.
double volume
Volume [m^3].
std::istream & read(std::istream &in, JTestSummary &summary, const char delimiter= ' ')
Read test summary.
double t1
Start time in seconds.
bool match(const tgen &object) const
Test match.
seabottom()
Default constructor.
livetime & add(const livetime &object)
Addition.
friend bool operator<(const JHead &first, const JHead &second)
Less than operator.
bool less(const DAQ &object) const
Comparison.
void setHeader(const JHead &header)
Set header.
friend std::istream & operator>>(std::istream &in, String &object)
Read string from input stream.
#define RETURN_IF_DIFFERENT(A, B)
const JHead & getHeader() const
Get header.
Phase space of incoming particle.
Generator for simulation.
bool operator<(const Head &first, const Head &second)
Less than operator.
double alpha
Energy spectrum: .
const TDataMember * getDataMember(const JRootClass &parent, const JRootClass &member)
Get ROOT data member for given parent and member class.
Phase space for incident neutrino.
double numberOfEvents
Number of events.
bool less(const generator &object) const
Comparison.
static bool less(const T &first, const T &second)
Comparison.
friend std::istream & operator>>(std::istream &in, detector &object)
Read detector from input stream.
std::string program
program name
depth()
Default constructor.
Neutrino cross section file.
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
double t2
Stop time in seconds.
livetime()
Default constructor.
Normlisation of CORSIKA events.
JAANET::cut_primary cut_primary
double errorOfSeconds
Uncertainty on live time [s].
*fatal Wrong number of arguments esac JCookie sh typeset Z DETECTOR typeset Z SOURCE_RUN typeset Z TARGET_RUN set_variable PARAMETERS_FILE $WORKDIR parameters
std::vector< JAANET::physics > physics
Simple data structure to support I/O of equations (see class JLANG::JEquation).
bool match(const generator &object) const
Test match.
JRange_t E
Energy range [GeV].
static void setEquationParameters(const JLANG::JEquationParameters &equation)
Set equation parameters.
bool match(const time_interval &object) const
Test match.
bool match(const JHead &header) const
Test match of headers.
std::vector< JAANET::simul > simul
double livetime_s
Live time [s].
JHead & add(const JHead &header)
Addition of headers.
genhencut()
Default constructor.
JRange_t()
Default constructor.
General purpose class of phase space generation.
bool match(const spectrum &object) const
Test match.
DAQ & add(const DAQ &object)
Addition.
bool match(const can &object) const
Test match.
then echo The file $DIR KM3NeT_00000001_00000000 root already please rename or remove it first
Description of Monte Carlo event generation applications.
double ycenter
y-center [m]
then JCookie sh JDataQuality D $DETECTOR_ID R $RUNS[*] o $QUALITY_TXT d $DEBUG!fi fi JDataQuality f $QUALITY_TXT Q livetime_s
genvol & add(const genvol &object)
Addition.
spectrum()
Default constructor.
JAANET::end_event end_event
bool less(const JHead &header) const
Comparison of headers.
JAANET::fixedcan fixedcan
std::string buffer
General purpose name.
double xcenter
x-center [m]
JRange_t(double x, double y)
Constructor.
bool operator==(Packet const &p, ID const &id)
The Vec class is a straightforward 3-d vector, which also works in pyroot.
void push(T JHead::*pd)
Push given data member to Head.
Type definition of range.
bool match(const fixedcan &object) const
Test match.
JAANET::cut_seamuon cut_seamuon
generator()
Default constructor.
double numberOfPrimaries
Number of primaries.
JAANET::livetime livetime
static JLANG::JEquationParameters & getEquationParameters()
Get equation parameters corresponding to Monte Carlo ASCII format, i.e:
JHead()
Default constructor.
flux()
Default constructor.
cut(const double Emin, const double Emax, const double cosTmin, const double cosTmax)
Constructor.
std::istream & read(std::istream &in)
Read header from input.
bool less(const primary &object) const
Comparison.
cut(const JRange_t &_E, const JRange_t &_cosT)
Constructor.
void erase(T JHead::*pd)
Remove given data member from Head.
JAANET::seabottom seabottom
bool less(const flux &object) const
Comparison.
cut()
Default constructor.
do set_variable OUTPUT_DIRECTORY $WORKDIR T
friend std::ostream & operator<<(std::ostream &out, const String &object)
Write string to output stream.
JAANET::start_run start_run
bool match(const depth &object) const
Test match.
bool is_valid(const json &js)
Check validity of JSon data.
friend bool operator==(const JHead &first, const JHead &second)
Equal operator.
std::istream & getline(std::istream &in, JString &object)
Read string from input stream until end of line.
std::string version
program version
Time duration of event generation.
JAANET::spectrum spectrum
std::string file_2
File name.
bool match(const norma &object) const
Test match.
time_interval()
Default constructor.
bool match(const flux &object) const
Test match.
DAQ()
Default constructor.
bool is_integer(const std::string &buffer)
Check if string is an integer.
JRange_t cosT
Cosine zenith angle range.
bool match(const livetime &object) const
Test match.
genvol()
Default constructor.
bool less(const spectrum &object) const
Comparison.
double Emin
Minimal energy [GeV].
The Head class reflects the header of Monte-Carlo event files, which consists of keys (also referred ...
can()
Default constructor.
JAANET::time_interval time_interval
size_t getNumberOfMatches(const JHead &header) const
Get number of matching fields.
static bool match(const std::vector< T > &first, const std::vector< T > &second)
Test is containers match.
JAANET::muon_desc_file muon_desc_file
#define ClassDef(name, version)
norma()
Default constructor.
virtual ~JHead()
Virtual destructor.
bool match(const coord_origin &object) const
Test match.
coord_origin(const double x, const double y, const double z)
Constructor.
bool match(const genvol &object) const
Test match.
std::vector< JAANET::detector > detector
Normalisation of MUPAGE events.
static bool match(const JHead &first, const JHead &second, T JHead::*pd)
Test match of given data member of headers.
bool less(const genvol &object) const
Comparison.
bool match(const seabottom &object) const
Test match.
detector()
Default constructor.
Auxiliary class to define a range between two values.
iterator pull(T JHead::*pd)
Pull given data member from Head.
std::string date
processing date
bool write(const Vec &v, std::ostream &os)
Write a Vec(tor) to a stream.
primary()
Default constructor.
JHead & getHeader()
Get header.
static bool less(const std::vector< T > &first, const std::vector< T > &second)
Comparison of containers.
bool less(const cut &object) const
Comparison.
General purpose string class.
start_run()
Default constructor.
double primaryFlux
Primary flux.
bool match(const DAQ &object) const
Test match.
void copy(const Head &from, JHead &to)
Copy header from from to to.
fixedcan()
Default constructor.
The fixed cylinder used for photon tracking.
static bool match(const T &first, const T &second)
Test match.
bool equals(const JFirst_t &first, const JSecond_t &second, const double precision=std::numeric_limits< double >::min())
Check equality.
bool less(const livetime &object) const
Comparison.
UTC time interval for event generation.
end_event()
Default constructor.
Phase space of atmospheric muon generation.
double numberOfSeconds
Time in seconds.
std::string time
processing time
tgen()
Default constructor.
Phase space of primary particle.
JAANET::coord_origin coord_origin
static const char AANET_TAG_SEPARATOR
Separator for tag extension of multiple tags in Head ("_<counter>").
bool is_valid(T JHead::*pd) const
Check validity of given data member in JHead.
JAANET::XSecFile XSecFile
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 JAcoustics sh $DETECTOR_ID source JAcousticsToolkit sh CHECK_EXIT_CODE typeset A EMITTERS get_tripods $WORKDIR tripod txt EMITTERS get_transmitters $WORKDIR transmitter txt EMITTERS for EMITTER in
double numberOfSeconds
Live time [s].
bool match(const primary &object) const
Test match.
Vec coord_origin() const
Get coordinate origin.
JHead(const Head &header)
Copy constructor.
friend std::ostream & operator<<(std::ostream &out, const detector &object)
Write detector to output stream.
bool match(const String &object) const
Test match.
Neutrino energy spectrum.
std::ostream & write(std::ostream &out) const
Write header to output.
String()
Default constructor.
const_iterator pull(T JHead::*pd) const
Pull given data member from Head.
The cylinder used for photon tracking.
std::string file_1
File name.
coord_origin()
Default constructor.