60 int main(
int argc, 
char **argv)
 
   79   disable_container       disable;                              
 
   87     JParser<> zap(
"Application to fit position calibration model to acoustic data.");
 
   89     zap[
'f'] = 
make_field(inputFile,       
"output of JAcousticEventBuilder[.sh]");
 
   91     zap[
'n'] = 
make_field(numberOfEvents)                                    = JLimit::max();
 
  101                           "Precede name of data structure by a '+' or '-' " 
  102                           "to add or remove data types in the output, respectively." 
  105     zap[
'q'] = 
make_field(squash,          
"squash meta data");
 
  110   catch(
const exception &error) {
 
  111     FATAL(error.what() << endl);
 
  130     receivers[
i->getID()] = 
i->getLocation();
 
  133   for (tripods_container::const_iterator 
i = 
tripods.begin(); 
i != 
tripods.end(); ++
i) {
 
  134     emitters[
i->getID()]  = 
JEmitter(
i->getID(), 
i->getUTMPosition() - 
detector.getUTMPosition());
 
  137   for (transmitters_container::const_iterator 
i = transmitters.begin(); 
i != transmitters.end(); ++
i) {
 
  141     catch(
const exception&) {}                       
 
  156   TH1D h0(
"chi2/NDF", NULL, 50000,  0.0, 1000.0);
 
  157   TH1D h1(
"h1",       NULL,    51, -0.5,   50.5);
 
  158   TH1D hn(
"hn",       NULL,   100,  0.0,    6.0);
 
  162                                   range.getLength() + 1, 
range.getLowerLimit() - 0.5, 
range.getUpperLimit() + 0.5));
 
  166                                   range.getLength() + 1, 
range.getLowerLimit() - 0.5, 
range.getUpperLimit() + 0.5));
 
  168   for (Int_t 
i = 1; 
i <= HA->GetXaxis()->GetNbins(); ++
i) {
 
  169     HA->GetXaxis()->SetBinLabel(
i, 
MAKE_CSTRING(geometry.at(
i-1).first));
 
  170     HB->GetXaxis()->SetBinLabel(
i, 
MAKE_CSTRING(geometry.at(
i-1).first));
 
  173   if (inputFile.size() > 1
u) {                       
 
  177     for (
const string& file_name : inputFile) {
 
  190           zmap[evt->begin()->getToE()] = file_name;
 
  199       inputFile.push_back(
i->second);
 
  211   catch(
const exception&) {}
 
  213   int counter[] = { 0, 0 };
 
  219     STATUS(inputFile.getFilename() << 
'\r'); 
DEBUG(endl);
 
  223     for (
const string file_name = inputFile.getFilename(); inputFile.hasNext() && file_name == inputFile.getFilename(); ) {
 
  225       const JEvent* evt = inputFile.next();
 
  227       if (!evt->empty() && emitters.has(evt->
getID())) {
 
  228         if (utc(evt->begin()->getToA()) && utc(evt->rbegin()->getToA())) {
 
  229           zbuf.push_back(*evt);
 
  234     sort(zbuf.begin(), zbuf.end());                  
 
  236     for (buffer_type::iterator p = zbuf.begin(), q; p != zbuf.end(); p = q) {
 
  238       for (q = p; ++q != zbuf.end() && q->begin()->getToE() <= p->rbegin()->getToE() + 
parameters.Tmax_s; ) {}
 
  240       if (q == zbuf.end()) {
 
  242         if (inputFile.hasNext()) {
 
  244           zbuf.erase(zbuf.begin(), p);               
 
  260         for (buffer_type::iterator evt = p; evt != q; ++evt) {
 
  266           const JEmitter& emitter = emitters [evt->getID()];
 
  267           const double    weight  = 
getWeight(evt->getID());
 
  269           for (JEvent::const_iterator 
i = evt->begin(); 
i != __end; ++
i) {
 
  276                 data.push_back(
JHit(emitter,
 
  278                                     receivers[
i->getID()],
 
  289           for (data_type::const_iterator hit = data.begin(); hit != data.end(); ++hit) {
 
  290             HA[hit->getID()]->Fill(geometry.
getIndex(hit->getString()), hit->getFloor(), 1.0);
 
  295           const auto result = katoomba(data.begin(), data.end());
 
  297           for (data_type::const_iterator hit = 
result.begin; hit != 
result.end; ++hit) {
 
  298             HB[hit->getID()]->Fill(geometry.
getIndex(hit->getString()), hit->getFloor(), 1.0);
 
  303             cout << 
"result:"                                                     << 
' ' 
  307             for (data_type::const_iterator hit = 
result.begin; hit != 
result.end; ++hit) {
 
  331             if (selection.is_valid<
JEvent>()) {
 
  333               for (buffer_type::iterator 
i = p; 
i != q; ++
i) {
 
  339                 for (JEvent::iterator hit = out.begin(); hit != out.end(); ++hit) {
 
  368   STATUS(
"Number of events written / rejected: " << counter[0] << 
" / " << counter[1] << endl);
 
Fit function of acoustic model. 
 
Utility class to parse command line options. 
 
const int getDetectorID() const 
Get detector identifier. 
 
int main(int argc, char *argv[])
 
JComparator< JResult_t T::*, JComparison::lt > make_comparator(JResult_t T::*member)
Helper method to create comparator between values of data member. 
 
std::vector< event_type > data_type
 
double getWeight(T __begin, T __end)
Get total weight of data points. 
 
size_t getMinimumNumberOfEmitters(T __begin, T __end)
Get minimum number of emitters for any string in data. 
 
JContainer< std::vector< JTransmitter > > transmitters_container
 
static JDetectorMechanics getMechanics
Function object to get string mechanics. 
 
std::vector< T >::difference_type distance(typename std::vector< T >::const_iterator first, typename PhysicsEvent::const_iterator< T > second)
Specialisation of STL distance. 
 
Auxiliary data structure to unify weights of acoustics data according to the number of pings per emit...
 
General purpose class for hash map of unique elements. 
 
ROOT TTree parameter settings. 
 
Recording of objects on file according a format that follows from the file name extension. 
 
Auxiliary class for ROOT class selection. 
 
*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)...
 
Dynamic ROOT object management. 
 
Auxiliary data structure for floating point format specification. 
 
V(JDAQEvent-JTriggerReprocessor)*1.0/(JDAQEvent+1.0e-10)
 
floor_range getRangeOfFloors(const JDetector &detector)
Get range of floors. 
 
Data structure for detector geometry and calibration. 
 
std::vector< JHitW0 > buffer_type
hits 
 
Global fit of prameterised detector geometry to acoustics data. 
 
Data structure for hydrophone. 
 
size_t getNumberOfEmitters(T __begin, T __end)
Get number of emitters. 
 
Scanning of objects from a single file according a format that follows from the extension of each fil...
 
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. 
 
Auxiliary class to manage set of compatible ROOT objects (e.g. histograms) using unique keys...
 
JContainer< std::vector< JHydrophone > > hydrophones_container
 
Data structure for transmitter. 
 
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})"
 
JPosition3D getPosition(const Vec &pos)
Get position. 
 
JTreeWriter object output. 
 
JContainer< std::vector< JTripod > > tripods_container
 
General purpose messaging. 
 
static const JStringCounter getNumberOfStrings
Function object to count unique strings. 
 
Implementation for depth dependend velocity of sound. 
 
Scanning of objects from multiple files according a format that follows from the extension of each fi...
 
z range($ZMAX-$ZMIN)< $MINIMAL_DZ." fi fi typeset -Z 4 STRING typeset -Z 2 FLOOR JPlot1D -f $
 
JTreeWriter< T > & getTreeWriter()
Get TreeWriter. 
 
void load(const std::string &file_name, JDetector &detector)
Load detector from input file. 
 
Auxiliary class to define a range between two values. 
 
General purpose class for object reading from a list of file names. 
 
then fatal The output file must have the wildcard in the e g root fi 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
 
Utility class to parse command line options. 
 
Acoustic transmission identifier. 
 
Data structure for measured coincidence rates of all pairs of PMTs in optical module. 
 
JEvt getEvt(const JHead &header, const JModel &model)
Get event. 
 
bool hasLocation(const JLocation &location) const 
Check if this detector has given location. 
 
Object reading from a list of files. 
 
const JLimit & getLimit() const 
Get limit. 
 
JKatoomba< JGandalf > gandalf
 
do set_variable DETECTOR_TXT $WORKDIR detector
 
int getID() const 
Get emitter identifier. 
 
Data structure for tripod. 
 
Acoustic transmission identifier. 
 
JKatoomba< JAbstractMinimiser > evaluator
 
Template definition of fit function of acoustic model. 
 
#define DEBUG(A)
Message macros. 
 
Data structure for optical module.