Jpp 19.3.0-rc.1
the software that should make you happy
Loading...
Searching...
No Matches
JMatch3G.hh
Go to the documentation of this file.
1#ifndef __JTRIGGER__JMATCH3G__
2#define __JTRIGGER__JMATCH3G__
3
5
6#include "JTrigger/JMatch.hh"
7
8
9/**
10 * \file
11 *
12 * Match operator for Cherenkov light from shower in any direction.
13 * \author mdejong
14 */
15namespace JTRIGGER {}
16namespace JPP { using namespace JTRIGGER; }
17
18namespace JTRIGGER {
19
22
23
24 /**
25 * 3G match criterion.
26 * This match algorithm is intented for shower signals.
27 */
28 template<class JHit_t>
29 class JMatch3G :
30 public JClonable< JMatch<JHit_t>, JMatch3G<JHit_t> >
31 {
32 public:
33 /**
34 * Constructor.
35 *
36 * \param Dmax_m maximal distance traveled by photon [m]
37 * \param Tmax_ns maximal extra time [ns]
38 */
39 JMatch3G(const double Dmax_m,
40 const double Tmax_ns = 0.0) :
41 DMax_m (Dmax_m),
42 TMaxExtra_ns(Tmax_ns),
43 x(0.0),
44 y(0.0),
45 z(0.0),
46 d(0.0),
47 t(0.0)
48 {
49 TMax_ns = 0.5 * DMax_m * getIndexOfRefraction() * getInverseSpeedOfLight() + TMaxExtra_ns;
50 }
51
52
53 /**
54 * Match operator.
55 *
56 * \param first hit
57 * \param second hit
58 * \return match result
59 */
60 virtual bool operator()(const JHit_t& first, const JHit_t& second) const override
61 {
62 t = fabs(first.getT() - second.getT());
63
64 if (t > TMax_ns) {
65 return false;
66 }
67
68 x = first.getX() - second.getX();
69 y = first.getY() - second.getY();
70 z = first.getZ() - second.getZ();
71 d = sqrt(x*x + y*y + z*z);
72
73 if (d <= 0.5 * DMax_m)
74 return t <= d * getIndexOfRefraction() * getInverseSpeedOfLight() + TMaxExtra_ns;
75 else if (d <= DMax_m)
76 return t <= (DMax_m - d) * getIndexOfRefraction() * getInverseSpeedOfLight() + TMaxExtra_ns;
77
78 return false;
79 }
80
81
82 double DMax_m;
83 double TMax_ns;
85
86 private:
87 mutable double x;
88 mutable double y;
89 mutable double z;
90 mutable double d;
91 mutable double t;
92 };
93}
94
95#endif
Base class for match operations for cluster and hit-preprocessing methods.
Physics constants.
3G match criterion.
Definition JMatch3G.hh:31
JMatch3G(const double Dmax_m, const double Tmax_ns=0.0)
Constructor.
Definition JMatch3G.hh:39
virtual bool operator()(const JHit_t &first, const JHit_t &second) const override
Match operator.
Definition JMatch3G.hh:60
double getIndexOfRefraction()
Get average index of refraction of water corresponding to group velocity.
const double getInverseSpeedOfLight()
Get inverse speed of light.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
Auxiliary classes and methods for triggering.
Template class for object cloning.
Definition JClonable.hh:59