Belle II Software  release-05-01-25
KsfwMoments.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2010 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Mikihiko Nakao (KEK), Pablo Goldenzweig (KIT) *
7  * Original module writen by M. Nakao for Belle *
8  * Ported to Belle II by P. Goldenzweig *
9  * *
10  * This software is provided "as is" without any warranty. *
11  **************************************************************************/
12 
14 // //
15 // KsfwMoments.h //
16 // //
17 // moment-calculation of the k_sfw //
18 // improved Super-Fox-Wolfram moments //
19 // to be used with rooksfw.{cc,h} //
20 // //
21 // M. Nakao //
22 // //
24 #pragma once
25 
26 #include <TVector3.h>
27 #include <TLorentzVector.h>
28 
29 #include <vector>
30 
31 
32 namespace Belle2 {
39  class KsfwMoments {
40  public:
41 
45  KsfwMoments() : m_uf(0)
46  {
47  for (int i = 0; i < 2; i++)
48  for (int j = 0; j < 3; j++)
49  for (int k = 0; k < 5; k++)
50  m_Hso[i][j][k] = 0.0;
51 
52  for (int i = 0; i < 2; i++)
53  for (int j = 0; j < 5; j++)
54  m_Hoo[i][j] = 0.0;
55 
56  for (int i = 0; i < 2; i++) {
57  m_et[i] = 0.0;
58  m_mm2[i] = 0.0;
59  }
60  };
61 
65  KsfwMoments(double Hso0_max,
66  std::vector<std::pair<TVector3, int>> p3_cms_q_sigA,
67  std::vector<std::pair<TVector3, int>> p3_cms_q_sigB,
68  std::vector<std::pair<TVector3, int>> p3_cms_q_roe,
69  const TLorentzVector& p_cms_missA,
70  const TLorentzVector& p_cms_missB,
71  double et[2]
72  );
73 
77  ~KsfwMoments() {};
78 
82  int usefinal(int uf) { if (uf == 0 || uf == 1) m_uf = uf; return m_uf; }
83 
87  int usefinal() const { return m_uf; }
88 
92  double mm2(int uf = -1) const { return m_mm2[uf < 0 ? m_uf : uf]; }
93 
97  double et(int uf = -1) const { return m_et[uf < 0 ? m_uf : uf]; }
98 
102  double Hoo(int i, int uf = -1) const { return m_Hoo[uf < 0 ? m_uf : uf][i]; }
103 
107  double Hso(int i, int j, int uf = -1) const { return m_Hso[uf < 0 ? m_uf : uf][i][j]; }
108 
109 
114  double var(int i)
115  {
116  if (i < 0) return 0;
117  if (i < 1) return et();
118  if (i < 4) return Hso(i - 1, 0);
119  if (i < 5) return Hso(0, 1);
120  if (i < 8) return Hso(i - 5, 2);
121  if (i < 9) return Hso(0, 3);
122  if (i < 12) return Hso(i - 9, 4);
123  if (i < 17) return Hoo(i - 12);
124  return 0;
125  }
126 
127  private:
128  int m_uf;
129  double m_Hso[2][3][5];
130  double m_Hoo[2][5];
131  double m_et[2];
132  double m_mm2[2];
133  };
134 
136 } // Belle2 namespace
Belle2::KsfwMoments::usefinal
int usefinal() const
Return the flag that specifiies we are using the finalstate for signal.
Definition: KsfwMoments.h:97
Belle2::KsfwMoments::var
double var(int i)
Returns calculated KSFW Moments i is the index ordered as in Belle.
Definition: KsfwMoments.h:124
Belle2::KsfwMoments::m_mm2
double m_mm2[2]
Missing mass squared.
Definition: KsfwMoments.h:142
Belle2::KsfwMoments::Hso
double Hso(int i, int j, int uf=-1) const
Returns calculated KSFW Moments.
Definition: KsfwMoments.h:117
Belle2::KsfwMoments::m_uf
int m_uf
Flag that specifiies we are using the final state for signal.
Definition: KsfwMoments.h:138
Belle2::KsfwMoments::m_Hso
double m_Hso[2][3][5]
KSFW moments.
Definition: KsfwMoments.h:139
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::KsfwMoments::KsfwMoments
KsfwMoments()
Initialize KSFW moments, et, and mm2 to 0.
Definition: KsfwMoments.h:55
Belle2::KsfwMoments::m_et
double m_et[2]
Transverse energy.
Definition: KsfwMoments.h:141
Belle2::KsfwMoments::~KsfwMoments
~KsfwMoments()
Destructor.
Definition: KsfwMoments.h:87
Belle2::KsfwMoments::et
double et(int uf=-1) const
Returns calculated transverse energy.
Definition: KsfwMoments.h:107
Belle2::KsfwMoments::m_Hoo
double m_Hoo[2][5]
KSFW moments.
Definition: KsfwMoments.h:140
Belle2::KsfwMoments::Hoo
double Hoo(int i, int uf=-1) const
Returns calculated KSFW Moments.
Definition: KsfwMoments.h:112
Belle2::KsfwMoments::mm2
double mm2(int uf=-1) const
Returns calculated missing mass squared.
Definition: KsfwMoments.h:102