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;
359 const double cosTmin,
360 const double cosTmax) :
362 cosT(cosTmin, cosTmax)
373 if (
E.getLowerLimit() ==
object.E.getLowerLimit()) {
375 if (
E.getUpperLimit() ==
object.E.getUpperLimit()) {
377 if (cosT.getLowerLimit() ==
object.cosT.getLowerLimit()) {
378 return cosT.getUpperLimit() <
object.cosT.getUpperLimit();
380 return cosT.getLowerLimit() <
object.cosT.getLowerLimit();
385 return E.getUpperLimit() <
object.E.getUpperLimit();
390 return E.getLowerLimit() <
object.E.getLowerLimit();
403 cosT.equals(
object.cosT));
475 return program <
object.program;
488 return program ==
object.program;
539 return alpha <
object.alpha;
550 return (alpha ==
object.alpha);
580 return (zmin ==
object.zmin &&
581 zmax ==
object.zmax &&
616 return (xcenter ==
object.xcenter &&
617 ycenter ==
object.ycenter &&
618 zmin ==
object.zmin &&
619 zmax ==
object.zmax &&
620 radius ==
object.radius);
656 return volume <
object.volume;
667 return (zmin ==
object.zmin &&
668 zmax ==
object.zmax &&
670 volume ==
object.volume);
694 const double z = 0.0)
696 zmin = (zmin - z) * factor + z;
697 zmax = (zmax - z) * factor + z;
699 volume *= factor * factor * factor;
748 return (
x ==
object.
x &&
796 return (primaryFlux ==
object.primaryFlux);
839 return numberOfSeconds <
object.numberOfSeconds;
850 return ((numberOfSeconds == 0.0 &&
object.numberOfSeconds == 0.0) ||
851 (numberOfSeconds > 0.0 &&
object.numberOfSeconds > 0.0));
863 errorOfSeconds = sqrt(errorOfSeconds * errorOfSeconds +
864 object.errorOfSeconds *
object.errorOfSeconds);
877 numberOfSeconds /= (factor * factor);
878 errorOfSeconds /= (factor * factor);
913 return type <
object.type;
924 return type ==
object.type;
955 return (z ==
object.z);
983 return (z ==
object.z);
1065 return this->numberOfSeconds ==
object.numberOfSeconds;
1094 return (this->t1 ==
object.t1 && this->t2 ==
object.t2);
1123 return type <
object.type;
1134 return (type ==
object.type);
1186 copy(header, *
this);
1204 return static_cast<const JHead&
>(*this);
1215 return static_cast<JHead&
>(*this);
1226 static_cast<JHead&
>(*this) = header;
1253 return (this->pull(pd) != this->end());
1268 static const T value;
1270 return (
object.
less(value) || value.less(
object));
1330 if (p != this->end()) {
1331 static_cast<Head*
>(
this)->erase(p);
1344 #define IF_MATCH(A, B, C, D) \
1345 if (match(B,C,D)) { A.push(D); } \
1346 else { A.erase(D); }
1391 const JHead head = getMatch(header);
1405 return getNumberOfMatches(header) == getNumberOfMatches(*
this);
1417 #define RETURN_IF_DIFFERENT(A, B) \
1418 if (less(A,B)) { return true; } \
1419 if (less(B,A)) { return false; }
1449 #undef RETURN_IF_DIFFERENT
1461 if (
match(header)) {
1490 const JHead& second)
1492 return first.
match(second);
1504 const JHead& second)
1506 return first.
less(second);
1547 static JHead header;
1581 getEquationParameters() = equation;
1591 std::istream&
read(std::istream&
in);
1600 std::ostream&
write(std::ostream& out)
const;
1609 std::ostream&
print(std::ostream& out)
const;
1626 return first.less(second);
1641 return first.match(second);
1657 if (first.size() == second.size()) {
1659 for (
size_t i = 0; i != first.size(); ++i) {
1660 if (
less(first[i], second[i])) {
1669 return first.size() < second.size();
1686 for (
size_t i = 0; i != first.size() && i != second.size(); ++i) {
1687 if (!
match(first[i], second[i])) {
1692 return first.size() == second.size();
1706 const JHead& second,
1711 match(first.*pd, second.*pd));
1758 return header.
read(in);
1771 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.
bool is_valid(const json &js)
Check validity of JSon data.
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.
void createUUID()
Create UUID if not already set.
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]
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
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.
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)
Reset and 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.
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.
#define IF_MATCH(A, B, C, D)
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.