219   JLimit_t&      numberOfEvents = inputFile.getLimit();
 
  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);
 
  278   if (histogram == 1) {
 
  284     for ( ; 
x <  30.0; 
x +=  1.0)
 
  287     for ( ; 
x <  50.0; 
x +=  2.0)
 
  290     for ( ; 
x < 100.0; 
x +=  5.0)
 
  293     for ( ; 
x < 200.0; 
x += 10.0)
 
  296     he = 
new TProfile(
"he", NULL, X.size() - 1, X.data());
 
  297     hp = 
new TProfile(
"hp", NULL, X.size() - 1, X.data());
 
  301     he = 
new TProfile(
"he", NULL, 28, 0.0, 7.0);
 
  302     hp = 
new TProfile(
"hp", NULL, 28, 0.0, 7.0);
 
  305   TH1D ht1(
"ht1", NULL, 550, -50.0, +500.0);
 
  306   TH1D ht2(
"ht2", NULL, 550, -50.0, +500.0);
 
  307   TH1D hd1(
"hd1", NULL, 100,  -1.0,   +1.0);
 
  308   TH1D hd2(
"hd2", NULL, 100,  -1.0,   +1.0);
 
  309   TH1D hx1(
"hx1", NULL, 100,   0.0, +250.0);
 
  310   TH1D hx2(
"hx2", NULL, 100,   0.0, +250.0);
 
  311   TH1D hw1(
"hw1", NULL, 100,  -0.5,  +99.5);
 
  312   TH1D hw2(
"hw2", NULL, 100,  -0.5,  +99.5);
 
  323   const JHorizon         horizon(0.2, 2);
 
  335     const Evt*       
event = ps;
 
  340       const double E        = neutrino.
E;              
 
  352           if (
is_muon(*track) && track->E > Emax) {
 
  359       if (muon != event->mc_trks.end()) {
 
  378             zmap[pmtRouter.getParentModuleID(i->pmt_id)].push_back(*i);
 
  385         for (JMap_t::iterator i = zmap.begin(); i != zmap.end(); ) {
 
  387           i->second.compile(Tmax_ns, 2);
 
  389           if (i->second.empty())
 
  395         const int L1mc = zmap.size();
 
  405         for (JDAQTimeslice::const_iterator i = timeslice.begin(); i != timeslice.end(); ++i) {
 
  409           buildL2(*i, moduleRouter.getModule(i->getModuleID()), back_inserter(zbuf));
 
  413             sort(zbuf.begin(), zbuf.end(), timeSorter<JHitL1>);
 
  415             dataL1.push_back(*zbuf.begin());
 
  422         JDataL1_t::iterator __end = dataL1.begin();
 
  432           __end = 
clusterize(dataL1.begin(), dataL1.end(), weightSorter<JHitL1>, match3D);
 
  436           __end = 
clusterize(dataL1.begin(), dataL1.end(), match3B);
 
  445           for (JDataL1_t::iterator i = dataL1.begin(); i != dataL1.end(); ++i)
 
  450           for (JDataL1_t::iterator i = dataL1.begin(); i != dataL1.end(); ++i)
 
  459           for (JDataL1_t::iterator i = dataL1.begin(); i != dataL1.end(); ++i)
 
  462           __end = partition(dataL1.begin(), __end, horizon);
 
  465           for (JDataL1_t::iterator i = dataL1.begin(); i != dataL1.end(); ++i)
 
  471           __end = dataL1.end();
 
  478         JDataL1_t::iterator __q = __end;
 
  485           L1.insert(hit->getModuleID());
 
  487           const double t1 = converter.getTime(hit->getT());
 
  489           if (zmap[hit->getModuleID()].has(
JTimeRange(t1 - 0.5*Tmax_ns, t1 + 0.5*Tmax_ns))) {
 
  491             L1ok.insert(hit->getModuleID());
 
  497             iter_swap(hit, --__q);
 
  502         if (L1mc != 0 && !L1.empty()) {
 
  504           Double_t 
x = numeric_limits<Double_t>::max();
 
  511           he->Fill(
x, (Double_t) L1ok.size() / (Double_t) L1mc); 
 
  512           hp->Fill(
x, (Double_t) L1ok.size() / (Double_t) L1.size()); 
 
  517           for (JDataL1_t::iterator hit = dataL1.begin(); hit != __end; ++hit) {
 
  518             hit->transform(R, pos);
 
  522           for (JDataL1_t::iterator hit = dataL1.begin(); hit != __end; ++hit) {
 
  528             for (JHitL1::const_iterator i = hit->begin(); i != hit->end(); ++i) {
 
  529               if (i->getDot(
gui) < dot)
 
  530                 dot = i->getDot(
gui);
 
  533             const double w = (hit->rbegin()->getT() - hit->begin()->getT()); 
 
  536               ht1.Fill(converter.getTime(hit->getT())  -  t1);
 
  538               hx1.Fill(hit->getX());
 
  541               ht2.Fill(converter.getTime(hit->getT())  -  t1);
 
  543               hx2.Fill(hit->getX());
 
#define DEBUG(A)
Message macros.
 
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
 
std::vector< T >::difference_type distance(typename std::vector< T >::const_iterator first, typename PhysicsEvent::const_iterator< T > second)
Specialisation of STL distance.
 
3D match criterion for acoustic signals.
 
Router for direct addressing of module data in detector data structure.
 
Router for direct addressing of PMT data in detector data structure.
 
Data structure for position in three dimensions.
 
JPosition3D & rotate(const JRotation3D &R)
Rotate.
 
Data structure for normalised vector in three dimensions.
 
Utility class to parse command line options.
 
counter_type getCounter() const
Get counter.
 
3D match criterion with road width.
 
Auxiliary class to convert DAQ hit time to/from Monte Carlo hit time.
 
const Trk & get_neutrino(const Evt &evt)
Get incoming neutrino.
 
JDirection3D getDirection(const Vec &dir)
Get direction.
 
bool has_neutrino(const Evt &evt)
Test whether given event has an incoming neutrino.
 
JPosition3D getPosition(const Vec &pos)
Get position.
 
bool is_muon(const Trk &track)
Test whether given track is a (anti-)muon.
 
bool is_noise(const Hit &hit)
Verify hit origin.
 
Vec getOffset(const JHead &header)
Get offset.
 
void load(const std::string &file_name, JDetector &detector)
Load detector from input file.
 
double getCosThetaC()
Get average cosine of Cherenkov angle of water corresponding to group velocity.
 
const double getInverseSpeedOfLight()
Get inverse speed of light.
 
double getTanThetaC()
Get average tangent of Cherenkov angle of water corresponding to group velocity.
 
double getSinThetaC()
Get average sine of Cherenkov angle of water corresponding to group velocity.
 
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
 
Head getHeader(const JMultipleFileScanner_t &file_list)
Get Monte Carlo header.
 
static const struct JTRIGGER::clusterize clusterize
 
static const struct JTRIGGER::clusterizeWeight clusterizeWeight
 
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.
 
KM3NeT DAQ data structures and auxiliaries.
 
The Evt class respresent a Monte Carlo (MC) event as well as an offline event.
 
General purpose class for multiple pointers.
 
Auxiliary class for defining the range of iterations of objects.
 
Auxiliary class to synchronously read DAQ events and Monte Carlo events (and optionally other events)...
 
virtual bool hasNext() override
Check availability of next element.
 
virtual const multi_pointer_type & next() override
Get next element.
 
Data structure for L2 parameters.
 
The Trk class represents a Monte Carlo (MC) particle as well as a reconstructed track/shower.
 
double E
Energy [GeV] (either MC truth or reconstructed)
 
The Vec class is a straightforward 3-d vector, which also works in pyroot.