1 #ifndef __JAANET__JHEAD__
2 #define __JAANET__JHEAD__
30 namespace JPP {
using namespace JAANET; }
60 JTOOLS::
JRange<double>(x, y)
100 if (pos != string::npos) {
102 for (string::size_type
i = pos + 1;
i != tag.size(); ++
i) {
103 if (!isdigit(tag[
i])) {
108 return tag.substr(0, pos);
124 std::ostringstream os;
168 return !(*this).less(
object) && !(object).
less(*
this);
181 istringstream i0(
this ->
buffer);
182 istringstream i1(
object.
buffer);
187 copy(istream_iterator<string>(i0), istream_iterator<string>(), back_inserter(v0));
188 copy(istream_iterator<string>(i1), istream_iterator<string>(), back_inserter(v1));
214 return out <<
object.buffer;
242 return this->program ==
object.program && this->filename ==
object.filename;
256 in >>
object.program >>
object.filename;
259 object.filename =
object.program;
260 object.program =
"?";
275 return out <<
object.program <<
' ' <<
object.filename;
372 const double cosTmin,
373 const double cosTmax) :
375 cosT(cosTmin, cosTmax)
386 if (
E.getLowerLimit() ==
object.E.getLowerLimit()) {
388 if (
E.getUpperLimit() ==
object.E.getUpperLimit()) {
390 if (cosT.getLowerLimit() ==
object.cosT.getLowerLimit()) {
391 return cosT.getUpperLimit() <
object.cosT.getUpperLimit();
393 return cosT.getLowerLimit() <
object.cosT.getLowerLimit();
398 return E.getUpperLimit() <
object.E.getUpperLimit();
403 return E.getLowerLimit() <
object.E.getLowerLimit();
416 cosT.equals(
object.cosT));
488 return program <
object.program;
501 return program ==
object.program;
552 return alpha <
object.alpha;
563 return (alpha ==
object.alpha);
593 return (zmin ==
object.zmin &&
594 zmax ==
object.zmax &&
629 return (xcenter ==
object.xcenter &&
630 ycenter ==
object.ycenter &&
631 zmin ==
object.zmin &&
632 zmax ==
object.zmax &&
633 radius ==
object.radius);
669 return volume <
object.volume;
680 return (zmin ==
object.zmin &&
681 zmax ==
object.zmax &&
683 volume ==
object.volume);
707 const double z = 0.0)
709 zmin = (zmin - z) * factor + z;
710 zmax = (zmax - z) * factor + z;
712 volume *= factor * factor * factor;
761 return (
x ==
object.
x &&
809 return (primaryFlux ==
object.primaryFlux);
852 return numberOfSeconds <
object.numberOfSeconds;
863 return ((numberOfSeconds == 0.0 &&
object.numberOfSeconds == 0.0) ||
864 (numberOfSeconds > 0.0 &&
object.numberOfSeconds > 0.0));
876 errorOfSeconds = sqrt(errorOfSeconds * errorOfSeconds +
877 object.errorOfSeconds *
object.errorOfSeconds);
890 numberOfSeconds /= (factor * factor);
891 errorOfSeconds /= (factor * factor);
926 return type <
object.type;
937 return type ==
object.type;
968 return (z ==
object.z);
996 return (z ==
object.z);
1132 return this->numberOfSeconds ==
object.numberOfSeconds;
1161 return (this->t1 ==
object.t1 && this->t2 ==
object.t2);
1190 return type <
object.type;
1201 return (type ==
object.type);
1254 copy(header, *
this);
1272 return static_cast<const JHead&
>(*this);
1283 return static_cast<JHead&
>(*this);
1294 static_cast<JHead&
>(*this) = header;
1321 return (this->pull(pd) != this->end());
1336 static const T value;
1338 return (
object.
less(value) || value.less(
object));
1398 if (p != this->end()) {
1399 static_cast<Head*
>(
this)->erase(p);
1412 #define IF_MATCH(A, B, C, D) \
1413 if (match(B,C,D)) { A.push(D); } \
1414 else { A.erase(D); }
1460 const JHead head = getMatch(header);
1474 return getNumberOfMatches(header) == getNumberOfMatches(*
this);
1486 #define RETURN_IF_DIFFERENT(A, B) \
1487 if (less(A,B)) { return true; } \
1488 if (less(B,A)) { return false; }
1519 #undef RETURN_IF_DIFFERENT
1531 if (
match(header)) {
1561 const JHead& second)
1563 return first.
match(second);
1575 const JHead& second)
1577 return first.
less(second);
1620 static JHead header;
1654 getEquationParameters() = equation;
1664 std::istream&
read(std::istream&
in);
1673 std::ostream&
write(std::ostream& out)
const;
1682 std::ostream&
print(std::ostream& out)
const;
1699 return first.less(second);
1714 return first.match(second);
1730 if (first.size() == second.size()) {
1732 for (
size_t i = 0;
i != first.size(); ++
i) {
1733 if (
less(first[
i], second[i])) {
1742 return first.size() < second.size();
1759 for (
size_t i = 0;
i != first.size() &&
i != second.size(); ++
i) {
1760 if (!
match(first[
i], second[i])) {
1765 return first.size() == second.size();
1779 const JHead& second,
1784 match(first.*pd, second.*pd));
1831 return header.
read(in);
1844 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.
Phase space of incident neutrino.
bool is_valid(T JHead::*pd) const
Check validity of given data member in JHead.
livetime & mul(const double factor)
Scale.
bool less(const String &object) const
Comparison.
friend bool operator==(const JHead &first, const JHead &second)
Equal operator.
static const std::string dynamical()
genvol & mul(const double factor, const double z=0.0)
Scale.
double volume
Volume [m^3].
bool less(const K40 &object) const
Comparison.
std::istream & read(std::istream &in, JTestSummary &summary, const char delimiter= ' ')
Read test summary.
then usage $script< input file >[option[primary[working directory]]] nWhere option can be E
const_iterator pull(T JHead::*pd) const
Pull given data member from Head.
double t1
Start time in seconds.
bool match(const tgen &object) const
Test match.
seabottom()
Default constructor.
livetime & add(const livetime &object)
Addition.
bool less(const DAQ &object) const
Comparison.
bool less(const JHead &header) const
Comparison of headers.
friend std::istream & operator>>(std::istream &in, String &object)
Read string from input stream.
#define RETURN_IF_DIFFERENT(A, B)
Phase space of incoming particle.
Generator for simulation.
static bool less(const T &first, const T &second)
Comparison.
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.
bool is_valid(const json &js)
Check validity of JSon data.
static const std::string statical()
Phase space for incident neutrino.
double numberOfEvents
Number of events.
bool less(const generator &object) const
Comparison.
static bool match(const T &first, const T &second)
Test match.
K40()
Default constructor.
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.
JHead & getHeader()
Get header.
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
double t2
Stop time in seconds.
JAANET::start_run start_run
livetime()
Default constructor.
Normlisation of CORSIKA events.
static void setEquationParameters(const JLANG::JEquationParameters &equation)
Set equation parameters.
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
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].
bool match(const K40 &object) const
Test match.
bool match(const time_interval &object) const
Test match.
void erase(T JHead::*pd)
Reset and remove given data member from Head.
double livetime_s
Live time [s].
genhencut()
Default constructor.
JRange_t()
Default constructor.
General purpose class of phase space generation.
JAANET::time_interval time_interval
static bool less(const std::vector< T > &first, const std::vector< T > &second)
Comparison of containers.
bool match(const spectrum &object) const
Test match.
std::istream & read(std::istream &in)
Read header from input.
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.
JAANET::calibration calibration
double ycenter
y-center [m]
genvol & add(const genvol &object)
Addition.
size_t getNumberOfMatches(const JHead &header) const
Get number of matching fields.
std::vector< JAANET::flux > flux
virtual ~JHead()
Virtual destructor.
std::vector< JAANET::detector > detector
spectrum()
Default constructor.
iterator pull(T JHead::*pd)
Pull given data member from Head.
static const JUUID & rndm()
Generate random UUID.
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.
Type definition of range.
bool match(const fixedcan &object) const
Test match.
JAANET::coord_origin coord_origin
generator()
Default constructor.
double numberOfPrimaries
Number of primaries.
void createUUID()
Create UUID if not already set.
flux()
Default constructor.
cut(const double Emin, const double Emax, const double cosTmin, const double cosTmax)
Constructor.
bool less(const primary &object) const
Comparison.
cut(const JRange_t &_E, const JRange_t &_cosT)
Constructor.
bool less(const flux &object) const
Comparison.
cut()
Default constructor.
JHead getMatch(const JHead &header) const
Get matching fields.
do set_variable OUTPUT_DIRECTORY $WORKDIR T
friend std::ostream & operator<<(std::ostream &out, const String &object)
Write string to output stream.
bool match(const depth &object) const
Test match.
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.
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.
JAANET::seabottom seabottom
static bool match(const std::vector< T > &first, const std::vector< T > &second)
Test is containers match.
JRange_t cosT
Cosine zenith angle range.
JHead(const Head &header)
Copy constructor.
JHead & add(const JHead &header)
Addition of headers.
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 ...
void push(T JHead::*pd)
Push given data member to Head.
can()
Default constructor.
static bool match(const JHead &first, const JHead &second, T JHead::*pd)
Test match of given data member of headers.
#define ClassDef(name, version)
norma()
Default constructor.
JAANET::XSecFile XSecFile
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.
Normalisation of MUPAGE events.
std::vector< JAANET::simul > simul
bool less(const genvol &object) const
Comparison.
static const size_t getMaximumNumberOfMatches()
Get maximum number of matching header fields.
bool match(const seabottom &object) const
Test match.
detector()
Default constructor.
Auxiliary class to define a range between two values.
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
std::string date
processing date
bool write(const Vec &v, std::ostream &os)
Write a Vec(tor) to a stream.
primary()
Default constructor.
JAANET::genhencut genhencut
friend bool operator<(const JHead &first, const JHead &second)
Less than operator.
void setHeader(const JHead &header)
Set header.
bool less(const cut &object) const
Comparison.
General purpose string class.
start_run()
Default constructor.
double primaryFlux
Primary flux.
JAANET::spectrum spectrum
bool match(const DAQ &object) const
Test match.
void copy(const Head &from, JHead &to)
Copy header from from to to.
bool match(const JHead &header) const
Test match of headers.
static JLANG::JEquationParameters & getEquationParameters()
Get equation parameters corresponding to Monte Carlo ASCII format, i.e:
fixedcan()
Default constructor.
The fixed cylinder used for photon tracking.
JAANET::end_event end_event
const JHead & getHeader() const
Get header.
std::ostream & write(std::ostream &out) const
Write header to output.
bool equals(const JFirst_t &first, const JSecond_t &second, const double precision=std::numeric_limits< double >::min())
Check equality.
#define IF_MATCH(A, B, C, D)
bool less(const livetime &object) const
Comparison.
static bool is_valid(const T &object)
Check validity of given data member in JHead.
JHead()
Default constructor.
JAANET::cut_primary cut_primary
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.
static const char AANET_TAG_SEPARATOR
Separator for tag extension of multiple tags in Head ("_<counter>").
std::vector< JAANET::physics > physics
double numberOfSeconds
Live time [s].
bool match(const primary &object) const
Test match.
JAANET::cut_seamuon cut_seamuon
Vec coord_origin() const
Get coordinate origin.
friend std::ostream & operator<<(std::ostream &out, const detector &object)
Write detector to output stream.
double livetime_s
Live time [s].
bool match(const String &object) const
Test match.
Neutrino energy spectrum.
JAANET::muon_desc_file muon_desc_file
K40 & add(const K40 &object)
Addition.
String()
Default constructor.
JAANET::fixedcan fixedcan
The cylinder used for photon tracking.
std::string file_1
File name.
coord_origin()
Default constructor.
JAANET::livetime livetime