1 #ifndef __JAANET__JHEAD__
2 #define __JAANET__JHEAD__
27 namespace JPP {
using namespace JAANET; }
64 inline std::string
getTag(
const std::string& tag)
70 if (pos != string::npos) {
72 for (string::size_type i = pos + 1; i != tag.size(); ++i) {
73 if (!isdigit(tag[i])) {
78 return tag.substr(0, pos);
92 inline std::string
getTag(
const std::string& tag,
const int counter)
94 std::ostringstream os;
138 return !(*this).less(
object) && !(object).
less(*
this);
151 istringstream i0(
this ->
buffer);
152 istringstream i1(
object.
buffer);
157 copy(istream_iterator<string>(i0), istream_iterator<string>(), back_inserter(v0));
158 copy(istream_iterator<string>(i1), istream_iterator<string>(), back_inserter(v1));
184 return out <<
object.buffer;
212 return this->program ==
object.program && this->filename ==
object.filename;
226 in >>
object.program >>
object.filename;
229 object.filename =
object.program;
230 object.program =
"?";
245 return out <<
object.program <<
' ' <<
object.filename;
317 if (Emin ==
object.Emin) {
319 if (Emax ==
object.Emax) {
321 if (cosTmin ==
object.cosTmin)
322 return cosTmax <
object.cosTmax;
324 return cosTmin <
object.cosTmin;
328 return Emax <
object.Emax;
333 return Emin <
object.Emin;
345 return (Emin ==
object.Emin &&
346 Emax ==
object.Emax &&
347 cosTmin ==
object.cosTmin &&
348 cosTmax ==
object.cosTmax);
422 return program <
object.program;
435 return program ==
object.program;
486 return alpha <
object.alpha;
497 return (alpha ==
object.alpha);
527 return (zmin ==
object.zmin &&
528 zmax ==
object.zmax &&
563 return (xcenter ==
object.xcenter &&
564 ycenter ==
object.ycenter &&
565 zmin ==
object.zmin &&
566 zmax ==
object.zmax &&
567 radius ==
object.radius);
603 return volume <
object.volume;
614 return (zmin ==
object.zmin &&
615 zmax ==
object.zmax &&
640 const double z = 0.0)
642 zmin = (zmin - z) * factor + z;
643 zmax = (zmax - z) * factor + z;
645 volume *= factor * factor * factor;
694 return (x ==
object.x &&
742 return (primaryFlux ==
object.primaryFlux);
785 return numberOfSeconds <
object.numberOfSeconds;
796 return ((numberOfSeconds == 0.0 &&
object.numberOfSeconds == 0.0) ||
797 (numberOfSeconds > 0.0 &&
object.numberOfSeconds > 0.0));
809 errorOfSeconds = sqrt(errorOfSeconds * errorOfSeconds +
810 object.errorOfSeconds *
object.errorOfSeconds);
823 numberOfSeconds /= (factor * factor);
824 errorOfSeconds /= (factor * factor);
859 return type <
object.type;
870 return type ==
object.type;
901 return (z ==
object.z);
929 return (z ==
object.z);
958 return livetime_s <
object.livetime_s;
969 return ((livetime_s == 0.0 &&
object.livetime_s == 0.0) ||
970 (livetime_s > 0.0 &&
object.livetime_s > 0.0));
1011 return this->numberOfSeconds ==
object.numberOfSeconds;
1040 return (this->t1 ==
object.t1 && this->t2 ==
object.t2);
1069 return type <
object.type;
1080 return (type ==
object.type);
1130 copy(header, *
this);
1148 return static_cast<const JHead&
>(*this);
1159 return static_cast<JHead&
>(*this);
1170 static_cast<JHead&
>(*this) = header;
1185 return (this->pull(pd) != this->end());
1200 static const T value;
1202 return (
object.
less(value) || value.less(
object));
1254 if (p != this->end()) {
1258 static_cast<Head*
>(
this)->erase(p);
1303 #define RETURN_IF_DIFFERENT(A, B) \
1304 if (less(A,B)) { return true; } \
1305 if (less(B,A)) { return false; }
1335 #undef RETURN_IF_DIFFERENT
1347 if (
match(header)) {
1373 const JHead& second)
1375 return first.
match(second);
1387 const JHead& second)
1389 return first.
less(second);
1447 getEquationParameters() = equation;
1457 std::istream&
read(std::istream&
in);
1466 std::ostream&
write(std::ostream& out)
const;
1475 std::ostream&
print(std::ostream& out)
const;
1492 return first.less(second);
1507 return first.match(second);
1523 if (first.size() == second.size()) {
1525 for (
size_t i = 0; i != first.size(); ++i) {
1526 if (
less(first[i], second[i])) {
1535 return first.size() < second.size();
1552 for (
size_t i = 0; i != first.size() && i != second.size(); ++i) {
1553 if (!
match(first[i], second[i])) {
1558 return first.size() == second.size();
1572 const JHead& second,
1575 return match(first.*pd, second.*pd);
1620 return header.
read(in);
1633 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
Phase space of incident neutrino.
static bool is_valid(const T &object)
Check validity of given data member in JHead.
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].
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.
bool read(Vec &v, std::istream &is)
Read a Vec(tor) from a 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.
double Emax
Maximal energy [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.
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]
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]
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.
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.
std::istream & read(std::istream &in)
Read header from input.
bool less(const primary &object) const
Comparison.
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.
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
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.
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.
double cosTmax
Maximal cosine zenith angle.
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 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 AAnet tag extension for multiple tags ("_<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 source JAcoustics sh $DETECTOR_ID CHECK_EXIT_CODE typeset A TRIPODS get_tripods $WORKDIR tripod txt TRIPODS for EMITTER in
double Emin
Minimal energy [GeV].
double numberOfSeconds
Live time [s].
bool match(const primary &object) const
Test match.
double cosTmin
Minimal cosine zenith angle.
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.