Jpp test-rotations-old
the software that should make you happy
Loading...
Searching...
No Matches
JMatch3D.hh
Go to the documentation of this file.
1#ifndef __JTRIGGER__JMATCH3D__
2#define __JTRIGGER__JMATCH3D__
3
5
6#include "JTrigger/JMatch.hh"
7
8
9/**
10 * \file
11 *
12 * Match operator for Cherenkov light from muon in any direction.
13 * \author mdejong
14 */
15namespace JTRIGGER {}
16namespace JPP { using namespace JTRIGGER; }
17
18namespace JTRIGGER {
19
22
23
24 /**
25 * 3D match criterion.
26 * This match algorithm is intented for muon or shower signals.
27 */
28 template<class JHit_t>
29 class JMatch3D :
30 public JClonable< JMatch<JHit_t>, JMatch3D<JHit_t> >
31 {
32 public:
33 /**
34 * Constructor.
35 *
36 * \param Tmax_ns maximal extra time [ns]
37 */
38 JMatch3D(const double Tmax_ns = 0.0) :
39 TMaxExtra_ns(Tmax_ns),
40 x(0.0),
41 y(0.0),
42 z(0.0),
43 d(0.0),
44 t(0.0)
45 {}
46
47
48 /**
49 * Match operator.
50 *
51 * \param first hit
52 * \param second hit
53 * \return match result
54 */
55 virtual bool operator()(const JHit_t& first, const JHit_t& second) const override
56 {
57 x = first.getX() - second.getX();
58 y = first.getY() - second.getY();
59 z = first.getZ() - second.getZ();
60 d = sqrt(x*x + y*y + z*z);
61 t = fabs(first.getT() - second.getT());
62
63 return t <= d * getIndexOfRefraction() * getInverseSpeedOfLight() + TMaxExtra_ns;
64 }
65
66
68
69 private:
70 mutable double x;
71 mutable double y;
72 mutable double z;
73 mutable double d;
74 mutable double t;
75 };
76}
77
78#endif
Base class for match operations for cluster and hit-preprocessing methods.
Physics constants.
3D match criterion.
Definition JMatch3D.hh:31
JMatch3D(const double Tmax_ns=0.0)
Constructor.
Definition JMatch3D.hh:38
virtual bool operator()(const JHit_t &first, const JHit_t &second) const override
Match operator.
Definition JMatch3D.hh:55
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