33   for (
auto & src : srcs){
 
   35     JPMT src_pmt = src->getPMT() ;
 
   37     NBPulse* src_pulse = src->getNBPulse() ;
 
   39     for(
auto & tgt : tgts){
 
   41       JPMT tgt_pmt = tgt->getPMT() ;
 
   43       NBPulse* tgt_pulse = tgt->getNBPulse() ;
 
   47       double t_flight = distance / c_w ;
 
   51       double delta_t0 = t_flight - delta_traw ;
 
   55       corrections.push_back(delta_t0 - delta_t0_old) ;
 
   61   sort (corrections.begin() , corrections.end()) ;
 
   63   int index = int(0.5*corrections.size()) ;
 
   65   return corrections[index] ;
 
   80   for(
auto & sm : SuperMods){
 
   84     if(sm->get_good_sources().size()>0){
 
   96       for(
int j=0 ; j < nPMTs ; j++){
 
Router for direct addressing of PMT data in detector data structure. 
 
const JModuleLocation & getLocation() const 
Get location. 
 
Analyzes the signal of a nanobeacon in a PMT. 
 
JDetector Update_Detector(JDetector detector, const vector< SuperModule * > &SuperMods)
Produces a new detector file by updating the existing t0s of the PMTs. 
 
int getNumberOfPMTs(const JModule &module)
Get number of PMTs. 
 
const JPMT & getPMT(const JPMTAddress &address) const 
Get PMT. 
 
double get_PMT_distance(JPMT src_pmt, JPMT tgt_pmt)
Calculate the distance between two JPMTs in the detector. 
 
int getID() const 
Get identifier. 
 
Data structure for PMT geometry and calibration. 
 
const JPMT & getPMT(const int index) const 
Get PMT. 
 
const JModule & getModule(const JModuleAddress &address) const 
Get module parameters. 
 
void setT0(const double t0)
Set time offset. 
 
Auxiliary class for object identification. 
 
double computeMedianCorrection(JDetector *det, vector< SuperPMT * > srcs, vector< SuperPMT * > tgts)
It uses the pmts from a source module and from a target module. 
 
double getPeakTime()
Get the arrival time of the nanobeacon pulse. 
 
int getNumberOfModules(const JDetector &detector)
Get number of modules. 
 
Logical location of module. 
 
double getT0() const 
Get time offset.