91 transmitters_container transmitters;
97 JParser<> zap(
"Example program to monitor acoustic events.");
99 zap[
'f'] =
make_field(inputFile,
"output of JAcousticEventBuilder[.sh]");
100 zap[
'n'] =
make_field(numberOfEvents) = JLimit::max();
110 catch(
const exception &error) {
111 FATAL(error.what() << endl);
128 for (JDetector::const_iterator i =
detector.begin(); i !=
detector.end(); ++i) {
129 receivers[i->getID()] = JModule_t(i->getLocation(), i->getPosition());
132 for (tripods_container::const_iterator i =
tripods.begin(); i !=
tripods.end(); ++i) {
133 emitters[i->getID()] = (i->getUTMPosition() -
detector.getUTMPosition());
136 for (transmitters_container::const_iterator i = transmitters.begin(); i != transmitters.end(); ++i) {
138 emitters[i->getID()] = (i->getPosition() +
detector.getModule(i->getLocation()).
getPosition());
140 catch(
const exception&) {
157 string.size(), -0.5,
string.size() - 0.5,
158 floor.getUpperLimit() + 1, - 0.5, floor.getUpperLimit() + 0.5));
160 for (Int_t i = 1; i <= H2->GetXaxis()->GetNbins(); ++i) {
161 H2->GetXaxis()->SetBinLabel(i,
MAKE_CSTRING(
string.at(i-1)));
164 for (Int_t i = 1; i <= H2->GetYaxis()->GetNbins(); ++i) {
181 for (JTreeScanner_t::iterator event =
in.begin();
event !=
in.end() && counter != inputFile.getLimit(); ++event, ++counter) {
183 if (counter%1000 == 0) {
184 STATUS(
"event " << setw(8) << counter <<
'\r');
DEBUG(endl);
187 const JEvent evt = *event;
191 for (JEvent::const_iterator i = evt.begin(); i != evt.end(); ++i) {
195 HA[evt.
getID()]->Fill((
double) evt.size());
199 HC[evt.
getID()]->Fill(
log10(evt.begin()->getToE() - toe[evt.
getID()]));
202 HD[evt.
getID()]->Fill(Q1.getSTDev());
203 HE[evt.
getID()]->Fill(Q1.getQuantile(
Q, JQuantile::symmetric_t));
205 toe[evt.
getID()] = evt.begin()->getToE();
207 TH1D* hq = HQ[evt.
getID()];
208 TH2D* hr = HR[evt.
getID()];
209 TH1D* h1 = H1[evt.
getID()];
210 TH2D* h2 = H2[evt.
getID()];
211 TH2D* h3 = H3[evt.
getID()];
213 for (JEvent::const_iterator i = evt.begin(); i != evt.end(); ++i) {
214 hq->Fill(
log10(i->getQ()));
217 if (emitters.has(evt.
getID())) {
221 for (JEvent::const_iterator i = evt.begin(); i != evt.end(); ++i) {
222 if (receivers.has(i->getID())) {
231 for (JEvent::const_iterator i = evt.begin(); i != evt.end(); ++i) {
232 buffer[i->getID()].insert(i->getQ());
235 for (
map<
int,
set<double> >::const_iterator i = buffer.begin(); i != buffer.end(); ++i) {
237 h1->Fill((
double) i->second.size());
239 if (receivers.has(i->first)) {
241 const JLocation& location = receivers[i->first];
245 if (i->second.size() >= 2
u) {
257 out << HA << HB << HC << HD << HE << HQ << HR << *HR << H1 << H2 << H3;
Utility class to parse command line options.
int getOverlays() const
Get overlays.
Q(UTCMax_s-UTCMin_s)-livetime_s
JComparator< JResult_t T::*, JComparison::lt > make_comparator(JResult_t T::*member)
Helper method to create comparator between values of data member.
int getFloor() const
Get floor number.
#define MAKE_CSTRING(A)
Make C-string.
Empty structure for specification of parser element that is initialised (i.e. does not require input)...
Long64_t counter_type
Type definition for counter.
double getDistance(const JVector3D &pos) const
Get distance to point.
Template definition for direct access of elements in ROOT TChain.
Auxiliary class for defining the range of iterations of objects.
Auxiliary class to manage set of compatible ROOT objects (e.g. histograms) using unique keys...
Logical location of module.
Auxiliary wrapper for I/O of container with optional comment (see JComment).
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
set_variable E_E log10(E_{fit}/E_{#mu})"
const array_type< JValue_t > & make_array(const JValue_t(&array)[N])
Method to create array of values.
JPosition3D getPosition(const Vec &pos)
Get position.
int getIndex()
Get index for user I/O manipulation.
Base class for JTreeScanner.
int getString() const
Get string number.
void load(const std::string &file_name, JDetector &detector)
Load detector from input file.
Data structure for position in three dimensions.
const JLimit & getLimit() const
Get limit.
do set_variable DETECTOR_TXT $WORKDIR detector
int getID() const
Get identifier.
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
#define DEBUG(A)
Message macros.