216   using namespace KM3NETDAQ;
 
  232     JParser<> zap(
"Example program to test performance of various hit filters.");
 
  237     zap[
'n'] = 
make_field(numberOfEvents)      = JLimit::max();
 
  242     zap[
'c'] = 
make_field(cluster)             = 
'A', 
'B', 
'C', 
'D', 
'E', 
'F';
 
  248   catch(
const exception &error) {
 
  249     FATAL(error.what() << endl);
 
  253   using namespace KM3NETDAQ;
 
  279   if (histogram == 1) {
 
  285     for ( ; x <  30.0; x +=  1.0)
 
  288     for ( ; x <  50.0; x +=  2.0)
 
  291     for ( ; x < 100.0; x +=  5.0)
 
  294     for ( ; x < 200.0; x += 10.0)
 
  297     he = 
new TProfile(
"he", NULL, X.size() - 1, X.data());
 
  298     hp = 
new TProfile(
"hp", NULL, X.size() - 1, X.data());
 
  302     he = 
new TProfile(
"he", NULL, 28, 0.0, 7.0);
 
  303     hp = 
new TProfile(
"hp", NULL, 28, 0.0, 7.0);
 
  306   TH1D ht1(
"ht1", NULL, 550, -50.0, +500.0);
 
  307   TH1D ht2(
"ht2", NULL, 550, -50.0, +500.0);
 
  308   TH1D hd1(
"hd1", NULL, 100,  -1.0,   +1.0);
 
  309   TH1D hd2(
"hd2", NULL, 100,  -1.0,   +1.0);
 
  310   TH1D hx1(
"hx1", NULL, 100,   0.0, +250.0);
 
  311   TH1D hx2(
"hx2", NULL, 100,   0.0, +250.0);
 
  312   TH1D hw1(
"hw1", NULL, 100,  -0.5,  +99.5);
 
  313   TH1D hw2(
"hw2", NULL, 100,  -0.5,  +99.5);
 
  325   const JHorizon         horizon(0.2, 2);
 
  330   while (inputFile.hasNext()) {
 
  332     STATUS(
"event: " << setw(10) << inputFile.getCounter() << 
'\r'); 
DEBUG(endl);
 
  337     const Evt*       
event = ps;
 
  342       const double E        = neutrino.
E;              
 
  354           if (
is_muon(*track) && track->E > Emax) {
 
  361       if (muon != event->mc_trks.end()) {
 
  380             zmap[pmtRouter.getParentModuleID(i->pmt_id)].push_back(*i);
 
  387         for (JMap_t::iterator i = zmap.begin(); i != zmap.end(); ) {
 
  389           i->second.compile(Tmax_ns, 2);
 
  391           if (i->second.empty())
 
  397         const int L1mc = zmap.size();
 
  407         for (JDAQTimeslice::const_iterator i = timeslice.begin(); i != timeslice.end(); ++i) {
 
  411           buildL2(*i, moduleRouter.getModule(i->getModuleID()), back_inserter(zbuf));
 
  415             sort(zbuf.begin(), zbuf.end(), timeSorter<JHitL1>);
 
  417             dataL1.push_back(*zbuf.begin());
 
  424         JDataL1_t::iterator __end = dataL1.begin();
 
  434           __end = 
clusterize(dataL1.begin(), dataL1.end(), weightSorter<JHitL1>, match3D);
 
  438           __end = 
clusterize(dataL1.begin(), dataL1.end(), match3B);
 
  447           for (JDataL1_t::iterator i = dataL1.begin(); i != dataL1.end(); ++i)
 
  452           for (JDataL1_t::iterator i = dataL1.begin(); i != dataL1.end(); ++i)
 
  461           for (JDataL1_t::iterator i = dataL1.begin(); i != dataL1.end(); ++i)
 
  464           __end = partition(dataL1.begin(), __end, horizon);
 
  467           for (JDataL1_t::iterator i = dataL1.begin(); i != dataL1.end(); ++i)
 
  473           __end = dataL1.end();
 
  480         JDataL1_t::iterator __q = __end;
 
  487           L1.insert(hit->getModuleID());
 
  489           const double t1 = converter.getTime(hit->getT());
 
  491           if (zmap[hit->getModuleID()].has(
JTimeRange(t1 - 0.5*Tmax_ns, t1 + 0.5*Tmax_ns))) {
 
  493             L1ok.insert(hit->getModuleID());
 
  499             iter_swap(hit, --__q);
 
  504         if (L1mc != 0 && !L1.empty()) {
 
  506           Double_t x = numeric_limits<Double_t>::max();
 
  513           he->Fill(x, (Double_t) L1ok.size() / (Double_t) L1mc); 
 
  514           hp->Fill(x, (Double_t) L1ok.size() / (Double_t) L1.size()); 
 
  519           for (JDataL1_t::iterator hit = dataL1.begin(); hit != __end; ++hit) {
 
  520             hit->transform(
R, pos);
 
  524           for (JDataL1_t::iterator hit = dataL1.begin(); hit != __end; ++hit) {
 
  530             for (JHitL1::const_iterator i = hit->begin(); i != hit->end(); ++i) {
 
  531               if (i->getDot(gui) < dot)
 
  532                 dot = i->getDot(gui);
 
  535             const double w = (hit->rbegin()->getT() - hit->begin()->getT()); 
 
  538               ht1.Fill(converter.getTime(hit->getT())  -  t1);
 
  540               hx1.Fill(hit->getX());
 
  543               ht2.Fill(converter.getTime(hit->getT())  -  t1);
 
  545               hx2.Fill(hit->getX());
 
Router for direct addressing of PMT data in detector data structure. 
 
Utility class to parse command line options. 
 
std::vector< T >::difference_type distance(typename std::vector< T >::const_iterator first, typename PhysicsEvent::const_iterator< T > second)
Specialisation of STL distance. 
 
bool has_neutrino(const Evt &evt)
Test whether given event has an incoming neutrino. 
 
bool is_muon(const Trk &track)
Test whether given track is a (anti-)muon. 
 
JTOOLS::JRange< double > JTimeRange
Type definition for time range (unit [ns]). 
 
Router for direct addressing of module data in detector data structure. 
 
Auxiliary class to synchronously read DAQ events and Monte Carlo events (and optionally other events)...
 
JMatchHelper< JHit_t > make_match(bool(*match)(const JHit_t &, const JHit_t &))
Auxiliary method to make JMatch object based on pointer to match function. 
 
Auxiliary class to convert DAQ hit time to/from Monte Carlo hit time. 
 
double E
Energy [GeV] (either MC truth or reconstructed) 
 
static struct JTRIGGER::@76 clusterize
Anonymous structure for clustering of hits. 
 
bool is_noise(const Hit &hit)
Verify hit origin. 
 
Head getHeader(const JMultipleFileScanner_t &file_list)
Get Monte Carlo header. 
 
double getCosThetaC()
Get average cosine of Cherenkov angle of water corresponding to group velocity. 
 
Auxiliary class for defining the range of iterations of objects. 
 
JDirection3D getDirection(const Vec &dir)
Get direction. 
 
#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. 
 
then break fi done getCenter read X Y Z let X
 
then usage $script[distance] fi case set_variable R
 
Data structure for L2 parameters. 
 
void load(const std::string &file_name, JDetector &detector)
Load detector from input file. 
 
const double getInverseSpeedOfLight()
Get inverse speed of light. 
 
then usage $script< input_file >< detector_file > fi set_variable OUTPUT_DIR set_variable SELECTOR JDAQTimesliceL1 set_variable DEBUG case set_variable DEBUG
 
double getTanThetaC()
Get average tangent of Cherenkov angle of water corresponding to group velocity. 
 
Data structure for position in three dimensions. 
 
const JLimit & getLimit() const 
Get limit. 
 
static struct JTRIGGER::@78 clusterizeWeight
Anonymous struct for weighed clustering of hits. 
 
const Trk & get_neutrino(const Evt &evt)
Get incoming neutrino. 
 
do set_variable DETECTOR_TXT $WORKDIR detector
 
Data structure for normalised vector in three dimensions. 
 
General purpose class for multiple pointers. 
 
The Trk class represents a Monte Carlo (MC) particle as well as a reconstructed track/shower. 
 
JPosition3D & rotate(const JRotation3D &R)
Rotate. 
 
The Evt class respresent a Monte Carlo (MC) event as well as an offline event. 
 
double getSinThetaC()
Get average sine of Cherenkov angle of water corresponding to group velocity. 
 
3D match criterion with road width.