98 JParser<> zap(
"Example program to monitor acoustic events.");
100 zap[
'f'] =
make_field(inputFile,
"output of JAcousticEventBuilder[.sh]");
101 zap[
'n'] =
make_field(numberOfEvents) = JLimit::max();
111 catch(
const exception &error) {
112 FATAL(error.what() << endl);
130 receivers[
i->getID()] = JModule_t(
i->getLocation(),
i->getPosition());
133 for (tripods_container::const_iterator
i =
tripods.begin();
i !=
tripods.end(); ++
i) {
134 emitters[
i->getID()] = (
i->getUTMPosition() -
detector.getUTMPosition());
137 for (transmitters_container::const_iterator
i = transmitters.begin();
i != transmitters.end(); ++
i) {
141 catch(
const exception&) {
158 string.size(), -0.5,
string.size() - 0.5,
159 floor.getUpperLimit() + 1, - 0.5, floor.getUpperLimit() + 0.5));
161 string.size(), -0.5,
string.size() - 0.5,
162 floor.getUpperLimit() + 1, - 0.5, floor.getUpperLimit() + 0.5));
164 for (Int_t
i = 1;
i <= H2->GetXaxis()->GetNbins(); ++
i) {
168 for (Int_t
i = 1;
i <= H2->GetYaxis()->GetNbins(); ++
i) {
172 for (Int_t
i = 1;
i <= H4->GetXaxis()->GetNbins(); ++
i) {
176 for (Int_t
i = 1;
i <= H4->GetYaxis()->GetNbins(); ++
i) {
193 for (JTreeScanner_t::iterator event =
in.begin();
event !=
in.end() && counter != inputFile.getLimit(); ++event, ++counter) {
195 if (counter%1000 == 0) {
196 STATUS(
"event " << setw(8) << counter <<
'\r');
DEBUG(endl);
199 const JEvent evt = *event;
203 for (JEvent::const_iterator
i = evt.begin();
i != evt.end(); ++
i) {
207 HA[evt.
getID()]->Fill((
double) evt.size());
211 HC[evt.
getID()]->Fill(
log10(evt.begin()->getToE() - toe[evt.
getID()]));
214 HD[evt.
getID()]->Fill(Q1.getSTDev());
215 HE[evt.
getID()]->Fill(Q1.getQuantile(
Q, JQuantile::symmetric_t));
217 toe[evt.
getID()] = evt.begin()->getToE();
219 TH1D* hq = HQ[evt.
getID()];
220 TH2D* hr = HR[evt.
getID()];
221 TH1D* h1 = H1[evt.
getID()];
222 TH2D* h2 = H2[evt.
getID()];
223 TH2D* h3 = H3[evt.
getID()];
224 TProfile2D* h4 = H4[evt.
getID()];
226 for (JEvent::const_iterator
i = evt.begin();
i != evt.end(); ++
i) {
227 hq->Fill(
log10(
i->getQ()));
230 if (emitters.has(evt.
getID())) {
234 for (JEvent::const_iterator
i = evt.begin();
i != evt.end(); ++
i) {
235 if (receivers.has(
i->getID())) {
244 for (JEvent::const_iterator
i = evt.begin();
i != evt.end(); ++
i) {
245 buffer[
i->getID()].insert(
i->getQ());
248 for (
map<
int,
set<double> >::const_iterator
i = buffer.begin();
i != buffer.end(); ++
i) {
250 h1->Fill((
double)
i->second.size());
252 if (receivers.has(
i->first)) {
254 const JLocation& location = receivers[
i->first];
256 const double x =
string.getIndex(location.
getString());
261 if (
i->second.size() >= 2
u) {
265 h4->Fill(x, y,
log10(*(
i->second.rbegin())));
275 out << HA << HB << HC << HD << HE << HQ << HR << *HR << H1 << H2 << H3 << H4;
Utility class to parse command line options.
int getOverlays() const
Get number of overlayed events.
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.
JContainer< std::vector< JTransmitter > > transmitters_container
#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.
JMODEL::JString getString(const JFit &fit)
Get model parameters of string.
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.
JContainer< std::vector< JTripod > > tripods_container
Base class for JTreeScanner.
int getString() const
Get string number.
Auxiliary data structure for average.
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 emitter 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.