Belle II Software  release-05-01-25
KLMMuidLikelihood.cc
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2010 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Leo Piilonen, Giacomo De Pietro *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 
11 /* Own header. */
12 #include <klm/dataobjects/KLMMuidLikelihood.h>
13 
14 using namespace std;
15 using namespace Belle2;
16 
17 KLMMuidLikelihood::KLMMuidLikelihood() :
18  m_PDGCode(0),
19  m_JunkPDFValue(false),
20  m_ChiSquared(0.0),
21  m_DegreesOfFreedom(0),
22  m_Outcome(0),
23  m_IsForward(true),
24  m_BarrelExtLayer(-1),
25  m_EndcapExtLayer(-1),
26  m_ExtLayer(-1),
27  m_BarrelHitLayer(-1),
28  m_EndcapHitLayer(-1),
29  m_HitLayer(-1),
30  m_ExtLayerPattern(0),
31  m_HitLayerPattern(0)
32 {
33  for (const Const::ChargedStable particle : Const::chargedStableSet) {
34  m_PDFValue[particle.getIndex()] = 0.0;
35  m_LogL[particle.getIndex()] = -1.0E20;
36  }
37  for (int i = 0; i < BKLMElementNumbers::getMaximalLayerNumber(); ++i) {
38  m_ExtBKLMEfficiencyValue[i] = 1.0;
39  }
40  for (int i = 0; i < EKLMElementNumbers::getMaximalLayerNumber(); ++i) {
41  m_ExtEKLMEfficiencyValue[i] = 1.0;
42  }
43 }
44 
46 {
47 }
48 
50 {
51  int charge = 1;
53  if (pdg < 0)
54  charge = -charge;
55  if ((std::abs(pdg) == Const::muon.getPDGCode()) || (std::abs(pdg) == Const::electron.getPDGCode()))
56  charge = -charge;
57  return charge;
58 }
59 
61 {
62  unsigned int hits = 0;
63  unsigned int pattern = m_HitLayerPattern;
64  for (int bit = 0; bit < BKLMElementNumbers::getMaximalLayerNumber(); ++bit) {
65  if (pattern & (1 << bit)) {
66  hits++;
67  }
68  }
69  return hits;
70 }
71 
73 {
74  unsigned int hits = 0;
75  unsigned int pattern = m_HitLayerPattern;
78  if (pattern & (1 << bit)) {
79  hits++;
80  }
81  }
82  return hits;
83 }
Belle2::KLMMuidLikelihood::getCharge
int getCharge() const
Get the charge of the particle hypothesis used during the extrapolation.
Definition: KLMMuidLikelihood.cc:49
Belle2::KLMMuidLikelihood::m_LogL
float m_LogL[Const::ChargedStable::c_SetSize]
Array of log-likelihoods.
Definition: KLMMuidLikelihood.h:601
Belle2::Const::electron
static const ChargedStable electron
electron particle
Definition: Const.h:533
Belle2::KLMMuidLikelihood::getTotalBarrelHits
unsigned int getTotalBarrelHits() const
Get the total number of crossed BKLM layers.
Definition: KLMMuidLikelihood.cc:60
Belle2::KLMMuidLikelihood::~KLMMuidLikelihood
~KLMMuidLikelihood()
Destructor.
Definition: KLMMuidLikelihood.cc:45
Belle2::KLMMuidLikelihood::getPDGCode
int getPDGCode() const
Get the PDG code of the particle hypothesis used during the extrapolation.
Definition: KLMMuidLikelihood.h:55
Belle2::Const::chargedStableSet
static const ParticleSet chargedStableSet
set of charged stable particles
Definition: Const.h:494
Belle2::KLMMuidLikelihood::m_HitLayerPattern
unsigned int m_HitLayerPattern
Pattern of the layers actually crossed by the track (bits 0..14 = BKLM layers 1..15,...
Definition: KLMMuidLikelihood.h:643
Belle2::KLMMuidLikelihood::m_PDFValue
float m_PDFValue[Const::ChargedStable::c_SetSize]
Array of normalized PDFs.
Definition: KLMMuidLikelihood.h:595
Belle2::EKLMElementNumbers::getMaximalLayerNumber
static constexpr int getMaximalLayerNumber()
Get maximal layer number.
Definition: EKLMElementNumbers.h:291
Belle2::KLMMuidLikelihood::m_ExtEKLMEfficiencyValue
float m_ExtEKLMEfficiencyValue[EKLMElementNumbers::getMaximalLayerNumber()]
Array of EKLM layer efficiencies.
Definition: KLMMuidLikelihood.h:649
Belle2::BKLMElementNumbers::getMaximalLayerNumber
static constexpr int getMaximalLayerNumber()
Get maximal layer number (1-based).
Definition: BKLMElementNumbers.h:251
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::Const::ChargedStable
Provides a type-safe way to pass members of the chargedStableSet set.
Definition: Const.h:465
Belle2::Const::muon
static const ChargedStable muon
muon particle
Definition: Const.h:534
Belle2::KLMMuidLikelihood::getTotalEndcapHits
unsigned int getTotalEndcapHits() const
Get the total number of crossed EKLM layers.
Definition: KLMMuidLikelihood.cc:72
Belle2::KLMMuidLikelihood::m_ExtBKLMEfficiencyValue
float m_ExtBKLMEfficiencyValue[BKLMElementNumbers::getMaximalLayerNumber()]
Array of BKLM layer efficiencies.
Definition: KLMMuidLikelihood.h:646