56 key_type(
const int first,
69 friend inline std::istream&
operator>>(std::istream& in, key_type& key)
85 friend inline std::ostream&
operator<<(std::ostream& out,
const key_type& key)
101 friend inline bool operator<(
const key_type& first,
const key_type& second)
103 if (first.first == second.first)
104 return first.second < second.second;
106 return first.first < second.first;
129 JLimit_t& numberOfEvents = inputFile.getLimit();
140 JParser<> zap(
"Example program to plot hydrophone data.");
156 catch(
const exception &error) {
179 if (i->getLocation() ==
module->getLocation()) {
181 receivers[module->getID()] = JReceiver(module->getID(),
182 module->getPosition() + i->getPosition(),
183 module->getT0() * 1.0e-9);
189 for (tripods_container::const_iterator i = tripods.begin(); i != tripods.end(); ++i) {
191 i->getUTMPosition() -
detector.getUTMPosition());
194 for (transmitters_container::const_iterator i = transmitters.begin(); i != transmitters.end(); ++i) {
197 i->getPosition() +
detector.getModule(i->getLocation()).getPosition());
199 catch(
const exception&) {
214 while (inputFile.hasNext()) {
218 const JEvent* evt = inputFile.next();
224 for (JEvent::const_iterator
hit = evt->begin();
hit != evt->end(); ++
hit) {
225 if (receivers.has(
hit->getID())) {
226 buffer[
hit->getID()].push_back(*
hit);
236 if (
hit->getQ() >= Q) {
242 const double Vi = V.getInverseVelocity(D,
p1.getZ(), p2.
getZ());
244 const double t0 = evt->begin()->getToE() + D *
Vi;
245 const double t1 =
hit->getToA() - t0;
247 H1[key_type(
hit->getID(), evt->
getID())]->Fill(t1);
249 const double Q =
log10(
hit->getQ());
251 if (
T0(t1)) { h0.Fill(Q); }
252 if (
T1(t1)) { h1.Fill(Q); }
261 out << h0 << h1 <<
H1;
ROOT TTree parameter settings.
Data structure for detector geometry and calibration.
General purpose class for hash map of unique elements.
int main(int argc, char **argv)
Data structure for hydrophone.
Dynamic ROOT object management.
General purpose messaging.
#define DEBUG(A)
Message macros.
Scanning of objects from multiple files according a format that follows from the extension of each fi...
Utility class to parse command line options.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
I/O formatting auxiliaries.
#define MAKE_CSTRING(A)
Make C-string.
Auxiliary class to define a range between two values.
Data structure for transmitter.
Data structure for tripod.
Data structure for position in three dimensions.
const JPosition3D & getPosition() const
Get position.
double getDistance(const JVector3D &pos) const
Get distance to point.
double getZ() const
Get z position.
Template definition of a multi-dimensional oscillation probability interpolation table.
bool operator<(const Head &first, const Head &second)
Less than operator.
static JEmitterID getEmitterID
Function object for emitter identification.
JContainer< std::vector< JTripod > > tripods_container
JContainer< std::vector< JTransmitter > > transmitters_container
JContainer< std::vector< JHydrophone > > hydrophones_container
static const JSoundVelocity getSoundVelocity(1541.0, -17.0e-3, -2000.0)
Function object for velocity of sound.
std::ostream & operator<<(std::ostream &out, const morphology_type &object)
Write morphology to output stream.
std::istream & operator>>(std::istream &in, morphology_type &object)
Read morphology from input stream.
void load(const std::string &file_name, JDetector &detector)
Load detector from input file.
JComparator< JResult_t T::*, JComparison::lt > make_comparator(JResult_t T::*member)
Helper method to create comparator between values of data member.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
int getID() const
Get emitter identifier.
Implementation for depth dependend velocity of sound.
JSoundVelocity & set(const double z0)
Set depth.
double getQ() const
Get quality.
Empty structure for specification of parser element that is initialised (i.e. does not require input)...
Auxiliary class for defining the range of iterations of objects.
static counter_type max()
Get maximum counter value.