78     JParser<> zap(
"Program to display strings.");
 
   80     zap[
'w'] = 
make_field(canvas,          
"size of canvas <nx>x<ny> [pixels]")  = 
JCanvas(1200, 600);
 
   81     zap[
'f'] = 
make_field(inputFile,       
"input file (output of JKatoomba[.sh])");
 
   82     zap[
'n'] = 
make_field(numberOfEvents)      = JLimit::max();
 
   87     zap[
'P'] = 
make_field(prescale,        
"prescale")                           = 1;
 
   88     zap[
'R'] = 
make_field(ratio,           
"aspect ratio")                       = 0.1;
 
   89     zap[
'B'] = 
make_field(batch,           
"batch processing");
 
   90     zap[
'N'] = 
make_field(Nmin,            
"minimum number of transmissions")    = 0;
 
   95   catch(
const exception& error) {
 
   96     FATAL(error.what() << endl);
 
  100     FATAL(
"Missing output file name " << 
outputFile << 
" in batch mode." << endl);
 
  127   for (JDetector::iterator module = 
detector.begin(); module != 
detector.end(); ++module) {
 
  128     status[module->getID()] = module->getStatus();
 
  133   gROOT->SetBatch(batch);
 
  135   TApplication* tp = 
new TApplication(
"user", NULL, NULL);
 
  136   TCanvas*      cv = 
new TCanvas(
"display", 
"", canvas.x, canvas.y);
 
  138   unique_ptr<TStyle> gStyle(
new JStyle(
"gplot", cv->GetWw(), cv->GetWh()));
 
  140   gROOT->SetStyle(
"gplot");
 
  143   const size_t NY = (size_t) (sqrt(geometry.size()) * 0.75 + 0.25);
 
  144   const size_t NX = (size_t) (geometry.size() + NY - 1) / NY;
 
  146   const size_t NUMBER_OF_PADS = NX * NY;
 
  148   cv->SetFillStyle(4000);
 
  149   cv->SetFillColor(kWhite);
 
  151   TPad* 
p1 = 
new TPad(
"p1", NULL, 0.0, 0.00, 1.0, 0.95);
 
  152   TPad* 
p2 = 
new TPad(
"p2", NULL, 0.0, 0.95, 1.0, 1.00);
 
  154   p1->Divide(NX, NY, 0.01, 0.001);
 
  164     if (
i->second.getZ() < zmin) {
 
  165       zmin = 
i->second.getZ();
 
  168     if (
i->second.rbegin()->getHeight() > zmax) {
 
  169       zmax = 
i->second.rbegin()->getHeight();
 
  176   double xmin = -ratio * (zmax - zmin);
 
  177   double xmax = +ratio * (zmax - zmin);
 
  179   TH2D   H2[NUMBER_OF_PADS];
 
  180   TText  T2[NUMBER_OF_PADS];
 
  182   for (
size_t i = 0; 
i != geometry.size(); ++
i) {
 
  186     DEBUG(
"Pad " << setw(3) << 
i + 1 << 
' ' << H2[
i].GetName() << endl);
 
  188     H2[
i].GetXaxis()->SetTitle(
"x/y [m]");
 
  189     H2[
i].GetYaxis()->SetTitle(
"z [m]");
 
  191     H2[
i].GetXaxis()->CenterTitle(
true);
 
  192     H2[
i].GetYaxis()->CenterTitle(
true);
 
  194     H2[
i].SetStats(kFALSE);
 
  196     T2[
i] = TText(0.0, zmax + 0.05 * (zmax - zmin), 
MAKE_CSTRING(
FILL(4,
'0') << geometry.at(
i).first << 
FILL()));
 
  198     T2[
i].SetTextAlign(21);
 
  199     T2[
i].SetTextFont(42);
 
  200     T2[
i].SetTextSize(0.05);
 
  212   JTreeScanner_t::iterator p = 
in.begin();
 
  214   while (inputFile.hasNext()) {
 
  216     cout << 
"\revent: " << setw(8) << inputFile.getCounter() << flush;
 
  218     const JEvt*  evt   = inputFile.next();
 
  221     if (batch && inputFile.getCounter()%prescale != 0) {
 
  227       for ( ; p != 
in.end() && p-> begin()->getToA() <  evt->
UNIXTimeStart - 0.5; ++p) {}
 
  229       JTreeScanner_t::iterator q = p;
 
  231       for ( ; q != 
in.end() && q->rbegin()->getToA() <= evt->
UNIXTimeStop  + 0.5; ++q) {}
 
  237         for (JTreeScanner_t::iterator evt = p; evt != q; ++evt) {
 
  238           for (JEvent::const_iterator 
i = evt->begin(); 
i != evt->end(); ++
i) {
 
  239             buffer[
i->getID()] += 1;
 
  243         for (JDetector::iterator module = 
detector.begin(); module != 
detector.end(); ++module) {
 
  245           module->setStatus(status[module->getID()]);
 
  247           if (buffer[module->getID()] < Nmin) {
 
  258     TText title(0.5, 0.5, utc.c_str());
 
  260     title.SetTextAlign(22);
 
  261     title.SetTextFont(42);
 
  262     title.SetTextSize(0.3);
 
  271     for (JEvt::const_iterator 
i = evt->begin(); 
i != evt->end(); ++
i) {
 
  273       if (geometry.has(
i->id)) {
 
  275         const int index = geometry.getIndex(
i->id);
 
  280         X[index].push_back(TMarker(0.0, 
string.getZ(), kFullCircle));
 
  281         Y[index].push_back(TMarker(0.0, 
string.getZ(), kFullCircle));
 
  283         for (
size_t floor = 1; floor < 
string.size(); ++floor) {
 
  288           if (router.hasLocation(location) && !router.getModule(location).has(
PIEZO_DISABLE)) {
 
  289             X[index].push_back(TMarker(position.
getX() - 
string.getX(), position.
getZ(), kFullCircle));
 
  290             Y[index].push_back(TMarker(position.
getY() - 
string.getY(), position.
getZ(), kFullCircle));
 
  298     for (
size_t i = 0; 
i != NUMBER_OF_PADS; ++
i) {
 
  302       for (
auto& m1 : X[
i]) { 
static_cast<TAttMarker&
>(m1) = TAttMarker(kBlack, kFullCircle, 0.7/sqrt(NY)); m1.Draw(); }
 
  303       for (
auto& m1 : Y[i]) { 
static_cast<TAttMarker&
>(m1) = TAttMarker(kRed,   kFullCircle, 0.7/sqrt(NY)); m1.Draw(); }
 
  316       static int count = 0;
 
  319         cout << endl << 
"Type '?' for possible options." << endl;
 
  324         cout << 
"\n> " << flush;
 
  330           cout << 
"possible options: " << endl;
 
  331           cout << 
'q' << 
" -> " << 
"exit application"                            << endl;
 
  332           cout << 
'u' << 
" -> " << 
"update canvas"                               << endl;
 
  333           cout << 
's' << 
" -> " << 
"save graphics to file"                       << endl;
 
  334           cout << 
'r' << 
" -> " << 
"rewind input file"                           << endl;
 
  335           cout << 
'R' << 
" -> " << 
"switch to ROOT mode (quit ROOT to continue)" << endl;
 
  336           cout << 
'p' << 
" -> " << 
"print event information"                     << endl;
 
  337           cout << 
' ' << 
" -> " << 
"next event (as well as any other key)"       << endl;
 
  357           cout << endl << *evt << endl;
 
JModel getModel(const JEvt &evt)
Get model. 
 
Utility class to parse command line options. 
 
TString replace(const TString &target, const TRegexp ®exp, const T &replacement)
Replace regular expression in input by given replacement. 
 
static JDetectorMechanics getMechanics
Function object to get string mechanics. 
 
then wget no check certificate user
 
*fatal Wrong number of arguments esac JCookie sh typeset Z DETECTOR typeset Z SOURCE_RUN typeset Z TARGET_RUN set_variable PARAMETERS_FILE $WORKDIR parameters
 
#define MAKE_CSTRING(A)
Make C-string. 
 
Empty structure for specification of parser element that is initialised (i.e. does not require input)...
 
then fatal Wrong number of arguments fi set_variable STRING $argv[1] set_variable DETECTORXY_TXT $WORKDIR $DETECTORXY_TXT tail read X Y CHI2 RMS printf optimum n $X $Y $CHI2 $RMS awk v Y
 
Auxiliary data structure for floating point format specification. 
 
V(JDAQEvent-JTriggerReprocessor)*1.0/(JDAQEvent+1.0e-10)
 
Template definition for direct access of elements in ROOT TChain. 
 
#define MAKE_STRING(A)
Make string. 
 
static const char WILDCARD
 
Model for fit to acoustics data. 
 
double UNIXTimeStop
stop time 
 
Auxiliary class for defining the range of iterations of objects. 
 
static const JSoundVelocity getSoundVelocity(1541.0,-17.0e-3,-2000.0)
Function object for velocity of sound. 
 
Router for direct addressing of location data in detector data structure. 
 
Logical location of module. 
 
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object 
 
Enable unbuffered terminal input. 
 
double getY() const 
Get y position. 
 
const JPosition3D & getPosition() const 
Get position. 
 
Auxiliary data structure for sequence of same character. 
 
Implementation for depth dependend velocity of sound. 
 
Base class for JTreeScanner. 
 
JACOUSTICS::JModel::string_type string
 
void load(const std::string &file_name, JDetector &detector)
Load detector from input file. 
 
double UNIXTimeStart
start time 
 
General purpose class for object reading from a list of file names. 
 
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
 
Auxiliary class for date and time. 
 
static const int PIEZO_DISABLE
Enable (disable) use of piezo if this status bit is 0 (1);. 
 
double getX() const 
Get x position. 
 
no fit printf nominal n $STRING awk v X
 
static const int HYDROPHONE_DISABLE
Enable (disable) use of hydrophone if this status bit is 0 (1);. 
 
Data structure for position in three dimensions. 
 
const JLimit & getLimit() const 
Get limit. 
 
do set_variable DETECTOR_TXT $WORKDIR detector
 
double getZ() const 
Get z position. 
 
Wrapper class around ROOT TStyle. 
 
Data structure for size of TCanvas. 
 
#define DEBUG(A)
Message macros.