1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
|
/** \class reco::PattRecoPeak
*
* \short Preclusters from FFTJet pattern recognition stage
*
* This is a pure storage class with limited functionality.
* Actual application calculations should use fftjet::Peak.
*
* \author Igor Volobouev, TTU, June 16, 2010
************************************************************/
#ifndef DataFormats_JetReco_PattRecoPeak_h
#define DataFormats_JetReco_PattRecoPeak_h
namespace reco {
template <class Real>
class PattRecoPeak {
public:
inline PattRecoPeak()
: eta_(0),
phi_(0),
magnitude_(0),
speed_(-1),
magSpeed_(-5),
lifetime_(-1),
scale_(-1),
nearestD_(-1),
clusterRadius_(-1),
clusterSeparation_(-1),
splitTime_(-1),
mergeTime_(-1) {
hessian_[0] = 0;
hessian_[1] = 0;
hessian_[2] = 0;
}
inline PattRecoPeak(double eta,
double phi,
double mag,
const double hessianIn[3],
double driftSpeed,
double magSpeed,
double lifetime,
double scale,
double nearestDistance,
double clusterRadius,
double clusterSeparation,
double splitT,
double mergeT)
: eta_(eta),
phi_(phi),
magnitude_(mag),
speed_(driftSpeed),
magSpeed_(magSpeed),
lifetime_(lifetime),
scale_(scale),
nearestD_(nearestDistance),
clusterRadius_(clusterRadius),
clusterSeparation_(clusterSeparation),
splitTime_(splitT),
mergeTime_(mergeT) {
hessian_[0] = hessianIn[0];
hessian_[1] = hessianIn[1];
hessian_[2] = hessianIn[2];
}
inline Real eta() const { return eta_; }
inline Real phi() const { return phi_; }
inline Real magnitude() const { return magnitude_; }
inline Real driftSpeed() const { return speed_; }
inline Real magSpeed() const { return magSpeed_; }
inline Real lifetime() const { return lifetime_; }
inline Real splitTime() const { return splitTime_; }
inline Real mergeTime() const { return mergeTime_; }
inline Real scale() const { return scale_; }
inline Real nearestNeighborDistance() const { return nearestD_; }
inline Real clusterRadius() const { return clusterRadius_; }
inline Real clusterSeparation() const { return clusterSeparation_; }
inline void hessian(double hessianArray[3]) const {
hessianArray[0] = hessian_[0];
hessianArray[1] = hessian_[1];
hessianArray[2] = hessian_[2];
}
private:
Real eta_;
Real phi_;
Real magnitude_;
Real speed_;
Real magSpeed_;
Real lifetime_;
Real scale_;
Real nearestD_;
Real clusterRadius_;
Real clusterSeparation_;
Real hessian_[3];
Real splitTime_;
Real mergeTime_;
};
} // namespace reco
#endif // DataFormats_JetReco_PattRecoPeak_h
|