31 using namespace JTOOLS;
 
   32 namespace MONITORL1DT {
 
   64     return first.
t < second.
t;
 
  103     return( abs(A.first - A.second) > abs(B.first - B.second) ) ;
 
  116 int main(
int argc, 
char **argv)
 
  119   using namespace MONITORL1DT;
 
  125   double             Timewindow_ns;
 
  129   unsigned int       multiplicity;
 
  136     JParser<> zap(
"Program to create L1 hit time difference histograms from raw data.");
 
  138     zap[
'f'] = 
make_field(inputFile,     
"input file");
 
  140     zap[
'a'] = 
make_field(detectorFile,  
"detector file");
 
  141     zap[
't'] = 
make_field(TmaxL1_ns,     
"max time between L1 hits [ns]")               = 1000.0;
 
  142     zap[
'T'] = 
make_field(Timewindow_ns, 
"time window around t=0 [ns]")                 = 2400.0;
 
  143     zap[
'w'] = 
make_field(binwidth,      
"binwidth [ns]")                               = 1;
 
  144     zap[
'C'] = 
make_field(selector,      
"datastream selector")                         = getROOTClassSelection<JDAQTimesliceTypes_t>();
 
  145     zap[
'm'] = 
make_field(multiplicity,  
"minimal multiplicity of the L1 hits")         = 2;
 
  146     zap[
'c'] = 
make_field(correct_time,  
"subtract expected arrival time from delta-t");
 
  150     if (zap.read(argc, argv) != 0)
 
  153   catch(
const exception &error) {
 
  154     FATAL(error.what() << endl);
 
  169     FATAL(
"Empty detector." << endl);
 
  176   const double ctMin = -1; 
 
  183   const double xmin = -0.5;
 
  184   const double xmax = nx - 0.5;
 
  186   const double ymin = -floor(Timewindow_ns) + 0.5;
 
  187   const double ymax = +floor(Timewindow_ns) + 0.5; 
 
  188   const int    ny   = (int) ((ymax - ymin) / binwidth);
 
  197   manager = 
new JManager <int, TH2D>(
new TH2D(
"h%", 
"", npairs, 0.5, npairs+0.5, ny, ymin, ymax));
 
  199   NOTICE(
"Running JMonitorL1dt: Monitoring L1 time differences and creating histograms." << endl);
 
  200   for (JDetector::iterator module = 
detector.begin(); module != 
detector.end(); ++module) {
 
  204     STATUS(
"Booking histograms for module " << module->getID() << endl);
 
  206     const JString title(module->getID());
 
  209     titleString1D = title + 
".1L";
 
  210     titleString2D = title + 
".2S";
 
  213         new TH1D((titleString1D).c_str(), NULL, nx, 
xmin, 
xmax));
 
  215     for (JDetector::iterator mod = 
detector.begin(); mod != 
detector.end(); ++mod) {
 
  216       zmap[address.
first].h2s->GetXaxis()->SetBinLabel(
distance(
detector.begin(), mod)+1, Form(
"%i", mod->getID()));
 
  217       zmap[address.
first].h1l->GetXaxis()->SetBinLabel(
distance(
detector.begin(), mod)+1, Form(
"%i", mod->getID()));
 
  228   for ( ; in.
hasNext() && counter != inputFile.getLimit(); ++counter) {
 
  230     STATUS(
"event: " << setw(10) << counter << 
'\r'); 
DEBUG(endl);
 
  238     for (JDAQTimeslice::const_iterator super_frame = timeslice->begin(); super_frame != timeslice->end(); ++super_frame) {
 
  239       if (router.
hasModule(super_frame->getModuleID()) && !super_frame->empty()) {
 
  246         buildL2(*super_frame, module, back_inserter(frameL1));
 
  248         for (JFrameL1_t::iterator L1hit = frameL1.begin(); L1hit != frameL1.end(); ++L1hit) {
 
  249           buffer.push_back(
JElement(address.
first, L1hit->begin()->getT()));
 
  258       for (
unsigned int i = 0; i < 
detector.size(); ++i) {
 
  264     sort(buffer.begin(), buffer.end());
 
  271       while (++q != buffer.end() && q->t - p->t <= Timewindow_ns ) {
 
  277         double time_correction = (correct_time ? (dom_distance / 
getSpeedOfLight()) : 0);
 
  279         zmap[p->id].h2s->Fill(q->id, q->t - p->t - time_correction);
 
  280         zmap[q->id].h2s->Fill(p->id, p->t - q->t + time_correction);
 
  285           (*manager)[module_p.
getString()]->Fill(xbin, q->t - p->t - time_correction);
 
  298       for (
int ibin = 1; ibin <= hl->GetNbinsX(); ++ibin) {
 
  300         hl->SetBinError(ibin, 0.0000001);
 
Utility class to parse command line options. 
 
JCombinatorics::pair_type pair_type
 
int main(int argc, char *argv[])
 
ROOT TTree parameter settings of various packages. 
 
Wrapper class around STL string class. 
 
int getFloor() const 
Get floor number. 
 
Data structure for a composite optical module. 
 
std::vector< T >::difference_type distance(typename std::vector< T >::const_iterator first, typename PhysicsEvent::const_iterator< T > second)
Specialisation of STL distance. 
 
bool operator<(const Head &first, const Head &second)
Less than operator. 
 
Auxiliary class to select ROOT class based on class name. 
 
Router for direct addressing of module data in detector data structure. 
 
JHistogram(TH2D *__h2s, TH1D *__h1l)
Constructor. 
 
then for HISTOGRAM in h0 h1
 
Dynamic ROOT object management. 
 
Auxiliary class for multiplexing object iterators. 
 
Data structure for detector geometry and calibration. 
 
then echo The file $DIR KM3NeT_00000001_00000000 root already please rename or remove it first
 
double getDistance(const JFirst_t &first, const JSecond_t &second)
Get distance between objects. 
 
then JCookie sh JDataQuality D $DETECTOR_ID R $RUNS[*] o $QUALITY_TXT d $DEBUG!fi fi JDataQuality f $QUALITY_TXT Q livetime_s
 
int first
index of module in detector data structure 
 
Auxiliary class to manage set of compatible ROOT objects (e.g. histograms) using unique keys...
 
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object 
 
Data structure for hit time and DOM identifier. 
 
double getFrameTime()
Get frame time duration. 
 
int getNumberOfFloors(const JDetector &detector)
Get number of floors. 
 
JHistogram()
Default constructor. 
 
virtual const pointer_type & next() override
Get next element. 
 
Address of module in detector data structure. 
 
virtual bool hasNext() override
Check availability of next element. 
 
const JPosition3D & getPosition() const 
Get position. 
 
Scanning of objects from multiple files according a format that follows from the extension of each fi...
 
Direct access to module in detector data structure. 
 
Data structure for L2 parameters. 
 
JElement(const int __id, const double __t)
 
int getString() const 
Get string number. 
 
const double getSpeedOfLight()
Get speed of light. 
 
void load(const std::string &file_name, JDetector &detector)
Load detector from input file. 
 
General purpose class for object reading from a list of file names. 
 
Utility class to parse command line options. 
 
const JModuleAddress & getAddress(const JObjectID &id) const 
Get address of module. 
 
bool hasModule(const JObjectID &id) const 
Has module. 
 
$WORKDIR ev_configure_domsimulator txt echo process $DOM_SIMULATOR $i $SOURCE_HOST[$index] csh c(setenv ROOTSYS $ROOTSYS &&source $JPP_DIR/setenv.csh $JPP_DIR &&($DOM_SIMULATOR\-u\$NAME\$\-H\$SERVER\$\-M\$LOGGER\$\-d $DEBUG</dev/null > &/dev/null &))'
 
bool comparepair(const pair_type &A, const pair_type &B)
 
do set_variable DETECTOR_TXT $WORKDIR detector
 
KM3NeT DAQ constants, bit handling, etc. 
 
Auxiliary data structure for histogram management. 
 
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
 
source $JPP_DIR setenv csh $JPP_DIR &dev null eval JShellParser o a A
 
Basic data structure for L1 hit. 
 
#define DEBUG(A)
Message macros.