88 transmitters_container transmitters;
94 JParser<> zap(
"Example program to monitor acoustic events.");
96 zap[
'f'] =
make_field(inputFile,
"output of JAcousticEventBuilder[.sh]");
97 zap[
'n'] =
make_field(numberOfEvents) = JLimit::max();
107 catch(
const exception &error) {
108 FATAL(error.what() << endl);
124 for (JDetector::const_iterator i =
detector.begin(); i !=
detector.end(); ++i) {
125 receivers[i->getID()] = JModule_t(i->getLocation(), i->getPosition());
128 for (tripods_container::const_iterator i =
tripods.begin(); i !=
tripods.end(); ++i) {
129 emitters[i->getID()] = (i->getUTMPosition() -
detector.getUTMPosition());
132 for (transmitters_container::const_iterator i = transmitters.begin(); i != transmitters.end(); ++i) {
134 emitters[i->getID()] = (i->getPosition() +
detector.getModule(i->getLocation()).
getPosition());
136 catch(
const exception&) {
153 string.size(), -0.5,
string.size() - 0.5,
154 floor.getUpperLimit() + 1, - 0.5, floor.getUpperLimit() + 0.5));
156 for (Int_t i = 1; i <= H2->GetXaxis()->GetNbins(); ++i) {
157 H2->GetXaxis()->SetBinLabel(i,
MAKE_CSTRING(
string.at(i-1)));
160 for (Int_t i = 1; i <= H2->GetYaxis()->GetNbins(); ++i) {
177 for (JTreeScanner_t::iterator event =
in.begin();
event !=
in.end() && counter != inputFile.getLimit(); ++event, ++counter) {
179 if (counter%1000 == 0) {
180 STATUS(
"event " << setw(8) << counter <<
'\r');
DEBUG(endl);
183 const JEvent evt = *event;
187 for (JEvent::const_iterator i = evt.begin(); i != evt.end(); ++i) {
191 HA[evt.
getID()]->Fill((
double) evt.size());
195 HC[evt.
getID()]->Fill(
log10(evt.begin()->getToE() - toe[evt.
getID()]));
198 HD[evt.
getID()]->Fill(Q1.getSTDev());
199 HE[evt.
getID()]->Fill(Q1.getQuantile(
Q, JQuantile::symmetric_t));
201 toe[evt.
getID()] = evt.begin()->getToE();
203 TH1D* hq = HQ[evt.
getID()];
204 TH2D* hr = HR[evt.
getID()];
205 TH1D* h1 = H1[evt.
getID()];
206 TH2D* h2 = H2[evt.
getID()];
207 TH2D* h3 = H3[evt.
getID()];
209 for (JEvent::const_iterator i = evt.begin(); i != evt.end(); ++i) {
210 hq->Fill(
log10(i->getQ()));
213 if (emitters.has(evt.
getID())) {
217 for (JEvent::const_iterator i = evt.begin(); i != evt.end(); ++i) {
218 if (receivers.has(i->getID())) {
227 for (JEvent::const_iterator i = evt.begin(); i != evt.end(); ++i) {
228 buffer[i->getID()].insert(i->getQ());
231 for (
map<
int,
set<double> >::const_iterator i = buffer.begin(); i != buffer.end(); ++i) {
233 h1->Fill((
double) i->second.size());
235 if (receivers.has(i->first)) {
237 const JLocation& location = receivers[i->first];
241 if (i->second.size() >= 2
u) {
253 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
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.