ATLAS Offline Software
JetMoment.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef JETEVENT_JETMOMENT_H
6 #define JETEVENT_JETMOMENT_H
7 
8 #include <tuple>
9 #include <string>
10 
11 struct JetMoment
12 {
13  typedef float float_t;
14  typedef bool tag_t;
15  typedef std::tuple<float_t,tag_t> database_t;
16 
17  static float_t invalidMoment() { return float_t(0.); }
18 
19 
20  class MomentData : public database_t
21  {
22  public:
23 
25  {
26  this->setMoment(0.);
27  this->setTag(false);
28  }
30  {
31  this->setMoment(moment);
32  this->setTag(tag);
33  }
34 
35  ~MomentData() = default;
36 
37  void setMoment(float_t moment) { std::get<0>(*this) = moment; }
38  void setTag(tag_t tag) { std::get<1>(*this) = tag; }
40  { std::get<0>(*this) = moment; std::get<1>(*this) = tag; }
41 
42  float_t moment() const { return std::get<0>(*this); }
43  tag_t tag() const { return std::get<1>(*this); }
44 
45  // private:
46 
47 
48  };
49 };
50 
51 
52 
53 /* /\** */
54 /* @class JetMoment */
55 /* @authors Michel Lefebvre<lefebvre@uvic.ca>, Peter Loch <loch@physics.arizona.edu>, */
56 /* Rob McPherson <rmcphers@triumf.ca>, Rolf Seuster <seuster@cern.ch> */
57 /* Sasha Savine <savin@physics.arizona.edu> Kai Voss <kvoss@cern.ch> */
58 /* @date 28-February-2005 */
59 /* @brief OBSOLETE defines enums and data types for different moments of @c Jet */
60 
61 /* After release 14.1.0 this class becomes obsolete since the new @c Jet class */
62 /* defines directly an equivalent concept */
63 
64 /* *\/ */
65 
66 /* #include <string> */
67 
68 /* class JetMoment { */
69 
70 /* public: */
71 /* /\** @brief (DEPRECATED) enums to identify different moments */
72 /* * */
73 /* * Each enum corresponds to a different characteristic moment of a */
74 /* * @c Jet. */
75 /* * */
76 /* *\/ */
77 /* enum MomentType { */
78 /* /\** electro-magnetic energy fraction of jets *\/ */
79 /* EM_FRACTION_MCTRUTH = 0x0001, /\** EM fraction determined from the MC truth *\/ */
80 /* EM_FRACTION_CLUSTER = 0x0002, /\** EM fraction determined from cluster classification *\/ */
81 /* EM_FRACTION_CALIBHIT = 0x0003, /\** EM fraction determined from Calibration Hits *\/ */
82 /* EM_FRACTION_RECOTRACKS = 0x0004, /\** EM fraction determined from reconstructed tracks *\/ */
83 /* EM_ENERGY = 0x0005, /\** jet energy on EM scale *\/ */
84 /* EM_OVER_ESUM = 0x0010, /\** EM energy over jet energy *\/ */
85 
86 /* /\** track related quantities - tracks pointing to CaloTopoClusters *\/ */
87 /* TRACKS_E = 0x0080, /\** Sum of energy from reconstructed tracks *\/ */
88 /* TRACKS_P = 0x0081, /\** magnitude of Sum of momenta from reconstructed tracks *\/ */
89 /* TRACKS_SUM_P = 0x0082, /\** scalar Sum of momenta magnitude from reconstructed tracks *\/ */
90 /* TRACKS_DELTA_ETA = 0x0083, /\** difference in eta between tracks and jet *\/ */
91 /* TRACKS_DELTA_PHI = 0x0084, /\** difference in phi between tracks and jet *\/ */
92 /* TRACKS_RMS_ETA = 0x0085, /\** squares of differences in eta between tracks and their sum *\/ */
93 /* TRACKS_RMS_PHI = 0x0086, /\** squares of differences in phi between tracks and their sum *\/ */
94 
95 /* /\** measures for the jet area *\/ */
96 /* CALOAREA = 0x0101, /\** Area computed from the CaloCell area inside the jet *\/ */
97 /* AMAREA = 0x0102, /\** Area computed from Angular (2nd) Moments : A=M2(eta)*M2(phi) *\/ */
98 /* GHOSTAREA = 0x0103, /\** Area computed via energyless ghost particles *\/ */
99 /* ELLIPTICAREA = 0x0104, /\** Area computed via circles around constituents *\/ */
100 /* ENG_FR005 = 0x0110, /\** fraction of energy in 5% of max distance parameter (R or kT)*\/ */
101 /* ENG_FR010 = 0x0111, /\** fraction of energy in 10% of max distance parameter (R or kT)*\/ */
102 /* ENG_FR015 = 0x0112, /\** fraction of energy in 15% of max distance parameter (R or kT)*\/ */
103 /* ENG_FR025 = 0x0113, /\** fraction of energy in 25% of max distance parameter (R or kT)*\/ */
104 /* ENG_FR050 = 0x0114, /\** fraction of energy in 50% of max distance parameter (R or kT)*\/ */
105 /* WIDTH = 0x0121, /\** pT weighted sum of constituent DR wrt to the jet axis *\/ */
106 
107 /* /\** sub jet structure of jets *\/ */
108 /* FLIP_Y12 = 0x0181, /\** for kT: flip value for 1->2 subjets *\/ */
109 /* FLIP_Y23 = 0x0182, /\** for kT: flip value for 2->3 subjets *\/ */
110 /* FLIP_Y34 = 0x0183, /\** for kT: flip value for 3->4 subjets *\/ */
111 /* FLIP_Y45 = 0x0184, /\** for kT: flip value for 4->5 subjets *\/ */
112 
113 /* /\** Convex hull of jets *\/ */
114 /* HULL_AREA = 0x0200, */
115 /* HULL_LENGHT = 0x0201, */
116 
117 /* /\** noise estimate in the jet */
118 /* *\/ */
119 
120 /* NOISEEXT = 0x300, */
121 
122 /* /\** Track jet corrections */
123 /* *\/ */
124 
125 /* SEMILEPTONIC_B_JES = 0x0401, /\** Multiplicative jet energy scale correction to semileptonic b-jets*\/ */
126 /* FTRACK = 0x0402, /\** Fraction of jet energy carried by charged tracks *\/ */
127 /* FTRACK_CORRECTION = 0x0403, /\** Multiplicative correction to jet energy derived from f_Track*\/ */
128 /* PRIMARY_VTX_FRACTION = 0x0404, /\** Matched track pT fraction from 1st (sum pt^2) PV in Event *\/ */
129 /* JVF_CORRECTION = 0x0405, /\** Multiplicative correction to jet energy derived from JVF (above) *\/ */
130 
131 /* UNKNOWN = 0x8000 /\** unknown moment *\/ */
132 /* }; */
133 
134 /* static const double DEFAULTVALUE; */
135 
136 /* private: */
137 
138 /* // Friends */
139 
140 /* // Data members */
141 
142 /* MomentType m_type; */
143 
144 /* /\** @brief the value of the cluster moment. *\/ */
145 /* double m_value; */
146 
147 /* public: */
148 
149 /* /\** */
150 /* * @brief Constructor. */
151 /* * @param value The actual value of the moment */
152 /* *\/ */
153 /* JetMoment(const MomentType &type ,const double &value) */
154 /* : m_type(type), m_value(value) { } */
155 
156 /* /\** */
157 /* * @brief default Constructor. */
158 /* * */
159 /* * defines the default moment value */
160 /* *\/ */
161 /* JetMoment() : m_type(UNKNOWN), m_value(0.) { } */
162 
163 /* // Destructors */
164 
165 /* virtual ~JetMoment() { } */
166 
167 /* // Methods */
168 
169 /* /\** */
170 /* * @brief returns the value of this moment */
171 /* * @return a const reference to the double holding the value of the moment */
172 /* *\/ */
173 /* const double & getValue() const { return m_value; } */
174 
175 /* const MomentType & getType() const { return m_type; } */
176 
177 /* bool getName(const MomentType& type, std::string& name) const; */
178 
179 //};
180 
181 #endif // JETEVENT_JETMOMENT_H
182 
JetMoment::MomentData::setMoment
void setMoment(float_t moment)
Definition: JetMoment.h:37
JetMoment::MomentData::~MomentData
~MomentData()=default
JetMoment::float_t
float float_t
Definition: JetMoment.h:13
JetMoment::MomentData
Definition: JetMoment.h:21
JetMoment::database_t
std::tuple< float_t, tag_t > database_t
Definition: JetMoment.h:15
JetMoment::MomentData::tag
tag_t tag() const
Definition: JetMoment.h:43
JetMoment::tag_t
bool tag_t
Definition: JetMoment.h:14
JetMoment
Definition: JetMoment.h:12
JetMoment::MomentData::moment
float_t moment() const
Definition: JetMoment.h:42
JetMoment::MomentData::MomentData
MomentData(float_t moment, tag_t tag)
Definition: JetMoment.h:29
JetMoment::MomentData::MomentData
MomentData()
Definition: JetMoment.h:24
JetMoment::invalidMoment
static float_t invalidMoment()
Definition: JetMoment.h:17
JetMoment::MomentData::setTag
void setTag(tag_t tag)
Definition: JetMoment.h:38
JetMoment::MomentData::setData
void setData(float_t moment, tag_t tag)
Definition: JetMoment.h:39