Belle II Software  release-05-01-25
ARICHPhoton.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2010 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Luka Santelj *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 
11 #pragma once
12 #ifndef ARICHPHOTON_H
13 #define ARICHPHOTON_H
14 
15 #include <framework/datastore/RelationsObject.h>
16 #include <framework/gearbox/Const.h>
17 
18 namespace Belle2 {
27  class ARICHPhoton : public RelationsObject {
28 
29  public:
30 
35 
43  ARICHPhoton(int hitID, float thetaCer, float phiCer, int mirror): m_hitID(hitID), m_thetaCer(thetaCer),
44  m_phiCer(phiCer),
45  m_mirror(mirror) {};
46 
50  void setHitID(int id)
51  {
52  m_hitID = id;
53  }
54 
58  void setPhiCerTrk(float phi)
59  {
60  m_phiCerTrk = phi;
61  }
62 
66  void setXY(float x, float y)
67  {
68  m_x = x;
69  m_y = y;
70  }
71 
75  void setModuleID(int modID)
76  {
77  m_module = modID;
78  }
79 
83  void setChannel(int chn)
84  {
85  m_channel = chn;
86  }
87 
88 
93  void setSigExp(const double* sigExp)
94  {
95  m_sigExp_e = (float)sigExp[0];
96  m_sigExp_mu = (float)sigExp[1];
97  m_sigExp_pi = (float)sigExp[2];
98  m_sigExp_K = (float)sigExp[3];
99  m_sigExp_p = (float)sigExp[4];
100  }
101 
106  void setBkgExp(const double* bkgExp)
107  {
108  m_bkgExp_e = (float)bkgExp[0];
109  m_bkgExp_mu = (float)bkgExp[1];
110  m_bkgExp_pi = (float)bkgExp[2];
111  m_bkgExp_K = (float)bkgExp[3];
112  m_bkgExp_p = (float)bkgExp[4];
113  }
114 
119  void setNCosThetaCh(const double* n_cos_theta_ch)
120  {
121  m_nCosThetaCh_e = (float)n_cos_theta_ch[0];
122  m_nCosThetaCh_mu = (float)n_cos_theta_ch[1];
123  m_nCosThetaCh_pi = (float)n_cos_theta_ch[2];
124  m_nCosThetaCh_K = (float)n_cos_theta_ch[3];
125  m_nCosThetaCh_p = (float)n_cos_theta_ch[4];
126  }
127 
132  void setPhiCh(const double* phi_ch)
133  {
134  m_phiCh_e = (float)phi_ch[0];
135  m_phiCh_mu = (float)phi_ch[1];
136  m_phiCh_pi = (float)phi_ch[2];
137  m_phiCh_K = (float)phi_ch[3];
138  m_phiCh_p = (float)phi_ch[4];
139  }
140 
145  float getSigExp(const Const::ChargedStable& part) const
146  {
147  if (part == Const::electron) return m_sigExp_e;
148  if (part == Const::muon) return m_sigExp_mu;
149  if (part == Const::pion) return m_sigExp_pi;
150  if (part == Const::kaon) return m_sigExp_K;
151  if (part == Const::proton) return m_sigExp_p;
152  else return 0;
153  }
154 
159  float getBkgExp(const Const::ChargedStable& part) const
160  {
161  if (part == Const::electron) return m_bkgExp_e;
162  if (part == Const::muon) return m_bkgExp_mu;
163  if (part == Const::pion) return m_bkgExp_pi;
164  if (part == Const::kaon) return m_bkgExp_K;
165  if (part == Const::proton) return m_bkgExp_p;
166  else return 0;
167  }
168 
173  float getNCosThetaCh(const Const::ChargedStable& part) const
174  {
175  if (part == Const::electron) return m_nCosThetaCh_e;
176  if (part == Const::muon) return m_nCosThetaCh_mu;
177  if (part == Const::pion) return m_nCosThetaCh_pi;
178  if (part == Const::kaon) return m_nCosThetaCh_K;
179  if (part == Const::proton) return m_nCosThetaCh_p;
180  else return 0;
181  }
182 
187  float getPhiCh(const Const::ChargedStable& part) const
188  {
189  if (part == Const::electron) return m_phiCh_e;
190  if (part == Const::muon) return m_phiCh_mu;
191  if (part == Const::pion) return m_phiCh_pi;
192  if (part == Const::kaon) return m_phiCh_K;
193  if (part == Const::proton) return m_phiCh_p;
194  else return 0;
195  }
196 
200  double getThetaCer()
201  {
202  return (double)m_thetaCer;
203  }
204 
208  double getPhiCer()
209  {
210  return (double)m_phiCer;
211  }
212 
216  double getPhiCerTrk()
217  {
218  return (double)m_phiCerTrk;
219  }
220 
224  int getMirror()
225  {
226  return m_mirror;
227  }
228 
232  int getHitID()
233  {
234  return m_hitID;
235  }
236 
240  double getX()
241  {
242  return (double)m_x;
243  }
244 
248  double getY()
249  {
250  return (double)m_y;
251  }
252 
257  {
258  return m_module;
259  }
260 
265  {
266  return m_channel;
267  }
268 
269 
270  private:
271 
272  int m_hitID = 0;
273  float m_thetaCer = 0.;
274  float m_phiCer = 0.;
275  int m_mirror = 0;
276  float m_sigExp_e = 0.;
277  float m_bkgExp_e = 0.;
278  float m_sigExp_mu = 0.;
279  float m_bkgExp_mu = 0.;
280  float m_sigExp_pi = 0.;
281  float m_bkgExp_pi = 0.;
282  float m_sigExp_K = 0.;
283  float m_bkgExp_K = 0.;
284  float m_sigExp_p = 0.;
285  float m_bkgExp_p = 0.;
286  float m_nCosThetaCh_e = 0.;
287  float m_nCosThetaCh_mu = 0.;
288  float m_nCosThetaCh_pi = 0.;
289  float m_nCosThetaCh_K = 0.;
290  float m_nCosThetaCh_p = 0.;
291  float m_phiCh_e = 0.;
292  float m_phiCh_mu = 0.;
293  float m_phiCh_pi = 0.;
294  float m_phiCh_K = 0.;
295  float m_phiCh_p = 0.;
296  float m_x = 0;
297  float m_y = 0;
298  int m_module = 0;
299  int m_channel = 0;
300  float m_phiCerTrk = 0.;
302  ClassDef(ARICHPhoton, 5);
304  };
306 } //Belle2 namespace
307 
308 #endif // ARICHPHOTON_H
Belle2::ARICHPhoton::setPhiCerTrk
void setPhiCerTrk(float phi)
Set hit phi angle in track coordinates.
Definition: ARICHPhoton.h:58
Belle2::ARICHPhoton::m_sigExp_K
float m_sigExp_K
number of expected signal photons on pad for K hypotheses
Definition: ARICHPhoton.h:282
Belle2::ARICHPhoton::getBkgExp
float getBkgExp(const Const::ChargedStable &part) const
Get expected background contribution for given pid hypothesis.
Definition: ARICHPhoton.h:159
Belle2::ARICHPhoton::setPhiCh
void setPhiCh(const double *phi_ch)
Set phi_ch.
Definition: ARICHPhoton.h:132
Belle2::Const::electron
static const ChargedStable electron
electron particle
Definition: Const.h:533
Belle2::ARICHPhoton::m_nCosThetaCh_pi
float m_nCosThetaCh_pi
n cos(theta_ch) for pi hypotheses
Definition: ARICHPhoton.h:288
Belle2::ARICHPhoton::getSigExp
float getSigExp(const Const::ChargedStable &part) const
Get expected signal contribution for given pid hypothesis.
Definition: ARICHPhoton.h:145
Belle2::ARICHPhoton::m_thetaCer
float m_thetaCer
reconstructed theta angle
Definition: ARICHPhoton.h:273
Belle2::ARICHPhoton::setModuleID
void setModuleID(int modID)
Set id of hit module.
Definition: ARICHPhoton.h:75
Belle2::ARICHPhoton::m_mirror
int m_mirror
assumed reflection of mirror plate (0 for no reflection)
Definition: ARICHPhoton.h:275
Belle2::ARICHPhoton::getModuleID
int getModuleID()
Get hit module ID.
Definition: ARICHPhoton.h:256
Belle2::ARICHPhoton::m_hitID
int m_hitID
id of corresponding ARICHHit
Definition: ARICHPhoton.h:272
Belle2::ARICHPhoton::m_module
int m_module
hit module
Definition: ARICHPhoton.h:298
Belle2::ARICHPhoton::getX
double getX()
Get hit X position.
Definition: ARICHPhoton.h:240
Belle2::ARICHPhoton::m_nCosThetaCh_p
float m_nCosThetaCh_p
n cos(theta_ch) for p hypotheses
Definition: ARICHPhoton.h:290
Belle2::ARICHPhoton::ARICHPhoton
ARICHPhoton()
default constructor
Definition: ARICHPhoton.h:34
Belle2::ARICHPhoton::setBkgExp
void setBkgExp(const double *bkgExp)
Set expected background contribution.
Definition: ARICHPhoton.h:106
Belle2::ARICHPhoton::setHitID
void setHitID(int id)
Set ID of corresponding ARICHHit.
Definition: ARICHPhoton.h:50
Belle2::Const::kaon
static const ChargedStable kaon
charged kaon particle
Definition: Const.h:536
Belle2::ARICHPhoton::m_bkgExp_mu
float m_bkgExp_mu
number of expected background photons on pad for mu hypotheses
Definition: ARICHPhoton.h:279
Belle2::ARICHPhoton::getMirror
int getMirror()
Get used mirror hypothesis (0 for no reflection)
Definition: ARICHPhoton.h:224
Belle2::ARICHPhoton::m_sigExp_pi
float m_sigExp_pi
number of expected signal photons on pad for pi hypotheses
Definition: ARICHPhoton.h:280
Belle2::ARICHPhoton::m_y
float m_y
y of the hit position
Definition: ARICHPhoton.h:297
Belle2::Const::pion
static const ChargedStable pion
charged pion particle
Definition: Const.h:535
Belle2::ARICHPhoton::m_phiCh_pi
float m_phiCh_pi
n phi_ch for pi hypotheses
Definition: ARICHPhoton.h:293
Belle2::ARICHPhoton::setXY
void setXY(float x, float y)
Set X-Y position of hit.
Definition: ARICHPhoton.h:66
Belle2::ARICHPhoton::m_phiCerTrk
float m_phiCerTrk
reconstructed phi angle in track coordinate system
Definition: ARICHPhoton.h:300
Belle2::ARICHPhoton::m_phiCh_p
float m_phiCh_p
n phi_ch for p hypotheses
Definition: ARICHPhoton.h:295
Belle2::ARICHPhoton::m_nCosThetaCh_K
float m_nCosThetaCh_K
n cos(theta_ch) for K hypotheses
Definition: ARICHPhoton.h:289
Belle2::ARICHPhoton::setNCosThetaCh
void setNCosThetaCh(const double *n_cos_theta_ch)
Set n cos(theta_ch)
Definition: ARICHPhoton.h:119
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::ARICHPhoton::m_bkgExp_e
float m_bkgExp_e
number of expected background photons on pad for e hypotheses
Definition: ARICHPhoton.h:277
Belle2::ARICHPhoton::ARICHPhoton
ARICHPhoton(int hitID, float thetaCer, float phiCer, int mirror)
Constructor to allow initialization.
Definition: ARICHPhoton.h:43
Belle2::ARICHPhoton::ClassDef
ClassDef(ARICHPhoton, 5)
ClassDef.
Belle2::ARICHPhoton::setSigExp
void setSigExp(const double *sigExp)
Set expected signal contribution.
Definition: ARICHPhoton.h:93
Belle2::ARICHPhoton::m_nCosThetaCh_mu
float m_nCosThetaCh_mu
n cos(theta_ch) for mu hypotheses
Definition: ARICHPhoton.h:287
Belle2::ARICHPhoton::getPhiCh
float getPhiCh(const Const::ChargedStable &part) const
Get phi_ch.
Definition: ARICHPhoton.h:187
Belle2::ARICHPhoton::m_nCosThetaCh_e
float m_nCosThetaCh_e
n cos(theta_ch) for e hypotheses
Definition: ARICHPhoton.h:286
Belle2::ARICHPhoton::getPhiCerTrk
double getPhiCerTrk()
Get reconstructed phi cherenkov angle in track coordinate system.
Definition: ARICHPhoton.h:216
Belle2::ARICHPhoton::setChannel
void setChannel(int chn)
set channel (asic) of hit
Definition: ARICHPhoton.h:83
Belle2::ARICHPhoton::m_sigExp_mu
float m_sigExp_mu
number of expected signal photons on pad for mu hypotheses
Definition: ARICHPhoton.h:278
Belle2::ARICHPhoton::m_sigExp_p
float m_sigExp_p
number of expected signal photons on pad for p hypotheses
Definition: ARICHPhoton.h:284
Belle2::ARICHPhoton::m_phiCh_mu
float m_phiCh_mu
n phi_ch for mu hypotheses
Definition: ARICHPhoton.h:292
Belle2::ARICHPhoton::getChannel
int getChannel()
Get hit channel (asic)
Definition: ARICHPhoton.h:264
Belle2::ARICHPhoton::m_sigExp_e
float m_sigExp_e
number of expected signal photons on pad for e hypotheses
Definition: ARICHPhoton.h:276
Belle2::ARICHPhoton::m_bkgExp_K
float m_bkgExp_K
number of expected background photons on pad for K hypotheses
Definition: ARICHPhoton.h:283
Belle2::ARICHPhoton::getPhiCer
double getPhiCer()
Get reconstructed phi cherenkov angle.
Definition: ARICHPhoton.h:208
Belle2::Const::proton
static const ChargedStable proton
proton particle
Definition: Const.h:537
Belle2::Const::ChargedStable
Provides a type-safe way to pass members of the chargedStableSet set.
Definition: Const.h:465
Belle2::ARICHPhoton::getY
double getY()
Get hit Y position.
Definition: ARICHPhoton.h:248
Belle2::ARICHPhoton::getHitID
int getHitID()
Get ID of corresponding ARICHHit.
Definition: ARICHPhoton.h:232
Belle2::ARICHPhoton::m_x
float m_x
x of the hit position
Definition: ARICHPhoton.h:296
Belle2::Const::muon
static const ChargedStable muon
muon particle
Definition: Const.h:534
Belle2::ARICHPhoton::getThetaCer
double getThetaCer()
Get reconstructed theta cherenkov angle.
Definition: ARICHPhoton.h:200
Belle2::ARICHPhoton::m_bkgExp_pi
float m_bkgExp_pi
number of expected background photons on pad for pi hypotheses
Definition: ARICHPhoton.h:281
Belle2::ARICHPhoton::m_phiCer
float m_phiCer
reconstructed phi angle
Definition: ARICHPhoton.h:274
Belle2::ARICHPhoton::m_phiCh_K
float m_phiCh_K
n phi_ch for K hypotheses
Definition: ARICHPhoton.h:294
Belle2::RelationsInterface
Defines interface for accessing relations of objects in StoreArray.
Definition: RelationsObject.h:102
Belle2::ARICHPhoton::m_channel
int m_channel
hit channel
Definition: ARICHPhoton.h:299
Belle2::ARICHPhoton::m_phiCh_e
float m_phiCh_e
n phi_ch for e hypotheses
Definition: ARICHPhoton.h:291
Belle2::ARICHPhoton::getNCosThetaCh
float getNCosThetaCh(const Const::ChargedStable &part) const
Get n cos(theta_ch)
Definition: ARICHPhoton.h:173
Belle2::ARICHPhoton::m_bkgExp_p
float m_bkgExp_p
number of expected background photons on pad for p hypotheses
Definition: ARICHPhoton.h:285
Belle2::ARICHPhoton
Struct for ARICH reconstructed photon (hit related to track) information.
Definition: ARICHPhoton.h:27