11 #include "TGraphErrors.h" 
   42 int main(
int argc, 
char **argv)
 
   55     JParser<> zap(
"Example program to monitor acoustic events.");
 
   57     zap[
'f'] = 
make_field(inputFile,       
"output of JAcousticEventBuilder[.sh]");
 
   58     zap[
'n'] = 
make_field(numberOfEvents)   = JLimit::max();
 
   65   catch(
const exception &error) {
 
   66     FATAL(error.what() << endl);
 
   81   for (JDetector::const_iterator i = 
detector.begin(); i != 
detector.end(); ++i) {
 
   82     receivers[i->getID()] = i->getLocation();
 
   97                                   string.size(),              -0.5, 
string.size()         - 0.5, 
 
  105   for (Int_t i = 1; i <= H2->GetXaxis()->GetNbins(); ++i) {
 
  106     H2->GetXaxis()->SetBinLabel(i, 
MAKE_CSTRING(
string.at(i-1)));
 
  107     H3->GetXaxis()->SetBinLabel(i, 
MAKE_CSTRING(
string.at(i-1)));
 
  110   for (Int_t i = 1; i <= H2->GetYaxis()->GetNbins(); ++i) {
 
  121   for (JTreeScanner_t::iterator event = in.begin(); 
event != in.end(); ++event) {
 
  123     HA[
event->getID()]->Fill((
double) event->size());
 
  124     HB[
event->getID()]->Fill((
double) event->getOverlays());
 
  126     if (toe.has(event->getID())) {
 
  127       HC[
event->getID()]->Fill(log10(event->begin()->getToE() - toe[
event->getID()]));
 
  130     const double t1 = 
event->begin()->getToE();
 
  134     for (JEvent::const_iterator i = event->begin(); i != 
event->end(); ++i) {
 
  135       QD.
put(i->getToE() - t1);
 
  136       QQ.
put(log10(i->getQ()));
 
  139     HD[
event->getID()]->Fill(QD.getSTDev());
 
  141     AddPoint(GA[event->getID()], t1, 
event->size());
 
  142     AddPoint(GD[event->getID()], t1, QD.getQuantile(0.5));
 
  145     toe[
event->getID()] = 
event->begin()->getToE();
 
  147     TH1D* 
h1 = H1[
event->getID()];
 
  148     TH1D* hq = HQ[
event->getID()];
 
  149     TH2D* h2 = H2[
event->getID()];
 
  150     TH2D* h3 = H3[
event->getID()];
 
  154     for (JEvent::const_iterator i = event->begin(); i != 
event->end(); ++i) {
 
  155       buffer[i->getID()].insert(i->getQ());
 
  158     for (
map<
int, 
set<double> >::const_iterator i = buffer.begin(); i != buffer.end(); ++i) {
 
  160       h1->Fill((
double) i->second.size());
 
  162       hq->Fill(log10(*(i->second.rbegin())));
 
  164       if (receivers.has(i->first)) {
 
  166         const JLocation& location = receivers[i->first];
 
  170         if (i->second.size() > 1
u) {
 
  181   out << HA << HB << HC << HD << HQ << H1 << H2 << H3;
 
  182   out << GA << GD << GQ;
 
Utility class to parse command line options. 
 
int main(int argc, char *argv[])
 
void AddPoint(TGraph *g1, const Double_t x, const Double_t y)
Add point to TGraph. 
 
int getFloor() const 
Get floor number. 
 
General purpose class for hash map of unique elements. 
 
ROOT TTree parameter settings. 
 
#define MAKE_CSTRING(A)
Make C-string. 
 
then for HISTOGRAM in h0 h1
 
General purpose class for a hash collection of unique elements. 
 
Dynamic ROOT object management. 
 
Template definition for direct access of elements in ROOT TChain. 
 
Data structure for detector geometry and calibration. 
 
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...
 
I/O formatting auxiliaries. 
 
Logical location of module. 
 
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object 
 
const array_type< JValue_t > & make_array(const JValue_t(&array)[N])
Method to create array of values. 
 
void Write(TDirectory &out, const bool wm=false)
Write objects to file. 
 
int getIndex()
Get index for user I/O manipulation. 
 
General purpose messaging. 
 
Scanning of objects from multiple files according a format that follows from the extension of each fi...
 
Base class for JTreeScanner. 
 
int getString() const 
Get string number. 
 
void load(const std::string &file_name, JDetector &detector)
Load detector from input file. 
 
Auxiliary class to define a range between two values. 
 
Utility class to parse command line options. 
 
const JLimit & getLimit() const 
Get limit. 
 
do set_variable DETECTOR_TXT $WORKDIR detector
 
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