Belle II Software development
KsfwMoments.h
1/**************************************************************************
2 * basf2 (Belle II Analysis Software Framework) *
3 * Author: The Belle II Collaboration *
4 * *
5 * See git log for contributors and copyright holders. *
6 * This file is licensed under LGPL-3.0, see LICENSE.md. *
7 **************************************************************************/
8
10// //
11// KsfwMoments.h //
12// //
13// moment-calculation of the k_sfw //
14// improved Super-Fox-Wolfram moments //
15// to be used with rooksfw.{cc,h} //
16// //
17// M. Nakao //
18// //
20#pragma once
21
22#include <Math/Vector4D.h>
23
24#include <vector>
25
26
27namespace Belle2 {
35 public:
36
41 {
42 for (int i = 0; i < 2; i++)
43 for (int j = 0; j < 3; j++)
44 for (int k = 0; k < 5; k++)
45 m_Hso[i][j][k] = 0.0;
46
47 for (int i = 0; i < 2; i++)
48 for (int j = 0; j < 5; j++)
49 m_Hoo[i][j] = 0.0;
50
51 for (int i = 0; i < 2; i++) {
52 m_et[i] = 0.0;
53 m_mm2[i] = 0.0;
54 }
55 };
56
60 KsfwMoments(double Hso0_max,
61 std::vector<std::pair<ROOT::Math::PxPyPzEVector, int>> p_cms_q_sigA,
62 std::vector<std::pair<ROOT::Math::PxPyPzEVector, int>> p_cms_q_sigB,
63 std::vector<std::pair<ROOT::Math::PxPyPzEVector, int>> p_cms_q_roe,
64 const ROOT::Math::PxPyPzEVector& p_cms_missA,
65 const ROOT::Math::PxPyPzEVector& p_cms_missB,
66 const double et[2]
67 );
68
73
77 int usefinal(int uf) { if (uf == 0 || uf == 1) m_uf = uf; return m_uf; }
78
82 int usefinal() const { return m_uf; }
83
87 double mm2(int uf = -1) const { return m_mm2[uf < 0 ? m_uf : uf]; }
88
92 double et(int uf = -1) const { return m_et[uf < 0 ? m_uf : uf]; }
93
97 double Hoo(int i, int uf = -1) const { return m_Hoo[uf < 0 ? m_uf : uf][i]; }
98
102 double Hso(int i, int j, int uf = -1) const { return m_Hso[uf < 0 ? m_uf : uf][i][j]; }
103
104
109 double var(int i)
110 {
111 if (i < 0) return 0;
112 if (i < 1) return et();
113 if (i < 4) return Hso(i - 1, 0);
114 if (i < 5) return Hso(0, 1);
115 if (i < 8) return Hso(i - 5, 2);
116 if (i < 9) return Hso(0, 3);
117 if (i < 12) return Hso(i - 9, 4);
118 if (i < 17) return Hoo(i - 12);
119 return 0;
120 }
121
122 private:
123 int m_uf;
124 double m_Hso[2][3][5];
125 double m_Hoo[2][5];
126 double m_et[2];
127 double m_mm2[2];
128 };
129
131} // Belle2 namespace
Moment-calculation of the k_sfw improved Super-Fox-Wolfram moments.
Definition: KsfwMoments.h:34
int usefinal(int uf)
Sets the flag that specifiies we are using the finalstate for signal.
Definition: KsfwMoments.h:77
double var(int i)
Returns calculated KSFW Moments i is the index ordered as in Belle.
Definition: KsfwMoments.h:109
double et(int uf=-1) const
Returns calculated transverse energy.
Definition: KsfwMoments.h:92
double Hso(int i, int j, int uf=-1) const
Returns calculated KSFW Moments.
Definition: KsfwMoments.h:102
double m_et[2]
Transverse energy.
Definition: KsfwMoments.h:126
int m_uf
Flag that specifiies we are using the final state for signal.
Definition: KsfwMoments.h:123
double m_Hso[2][3][5]
KSFW moments.
Definition: KsfwMoments.h:124
KsfwMoments()
Initialize KSFW moments, et, and mm2 to 0.
Definition: KsfwMoments.h:40
double mm2(int uf=-1) const
Returns calculated missing mass squared.
Definition: KsfwMoments.h:87
double m_mm2[2]
Missing mass squared.
Definition: KsfwMoments.h:127
~KsfwMoments()
Destructor.
Definition: KsfwMoments.h:72
int usefinal() const
Return the flag that specifiies we are using the finalstate for signal.
Definition: KsfwMoments.h:82
double m_Hoo[2][5]
KSFW moments.
Definition: KsfwMoments.h:125
double Hoo(int i, int uf=-1) const
Returns calculated KSFW Moments.
Definition: KsfwMoments.h:97
Abstract base class for different kinds of events.