Belle II Software  release-05-01-25
BeamBGTypes.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2010 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Marko Staric *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 
11 #pragma once
12 
13 #include <framework/dataobjects/BackgroundMetaData.h>
14 #include <string>
15 #include <map>
16 
17 namespace Belle2 {
22  namespace background {
23 
29  class BeamBGTypes {
30 
31  public:
35  BeamBGTypes()
36  {
47  m_tags["Touschek_LER_far"] = BackgroundMetaData::bg_Touschek_LER_far;
48  m_tags["Touschek_HER_far"] = BackgroundMetaData::bg_Touschek_HER_far;
55  m_tags["BHWideLargeAngle"] = BackgroundMetaData::bg_BHWideLargeAngle;
61  }
62 
68  BackgroundMetaData::BG_TAG getTag(const std::string& bgType)
69  {
70  return m_tags[bgType];
71  }
72 
78  std::string getType(BackgroundMetaData::BG_TAG bgTag) const
79  {
80  if (bgTag == 0) return "";
81  for (auto tag : m_tags) {
82  if (bgTag == tag.second) return tag.first;
83  }
84  return "";
85  }
86 
92  std::string getType(unsigned int bgTag) const
93  {
94  if (bgTag == 0) return "";
95  for (auto tag : m_tags) {
96  if (bgTag == tag.second) return tag.first;
97  }
98  return "";
99  }
100 
105  std::string getBGTypes() const
106  {
107  std::string types;
108  for (auto tag : m_tags) {
109  if (tag.first != "other" && tag.second != 0) types += tag.first + ", ";
110  }
111  types += "other";
112  return types;
113  }
114 
115  private:
116 
117  std::map<std::string, BackgroundMetaData::BG_TAG> m_tags;
119  };
120 
121  } // background
123 } // Belle2
124 
Belle2::BackgroundMetaData::bg_BHWide_LER
@ bg_BHWide_LER
Wide angle radiative Bhabha LER.
Definition: BackgroundMetaData.h:56
Belle2::BackgroundMetaData::bg_BHWideLargeAngle
@ bg_BHWideLargeAngle
Large angle radiative Bhabha.
Definition: BackgroundMetaData.h:60
Belle2::BackgroundMetaData::bg_InjectionLER
@ bg_InjectionLER
injection background LER
Definition: BackgroundMetaData.h:61
Belle2::BackgroundMetaData::bg_Touschek_HER
@ bg_Touschek_HER
Touschek HER.
Definition: BackgroundMetaData.h:47
Belle2::background::BeamBGTypes::getTag
BackgroundMetaData::BG_TAG getTag(const std::string &bgType)
Return BG tag for a given BG type.
Definition: BeamBGTypes.h:76
Belle2::background::BeamBGTypes::getBGTypes
std::string getBGTypes() const
Return all defined BG types as a string.
Definition: BeamBGTypes.h:113
Belle2::BackgroundMetaData::bg_Touschek_LER
@ bg_Touschek_LER
Touschek LER.
Definition: BackgroundMetaData.h:46
Belle2::BackgroundMetaData::bg_BHWide
@ bg_BHWide
Wide angle radiative Bhabha.
Definition: BackgroundMetaData.h:59
Belle2::BackgroundMetaData::bg_SynchRad_LER
@ bg_SynchRad_LER
Synchrotron radiation LER.
Definition: BackgroundMetaData.h:54
Belle2::BackgroundMetaData::bg_twoPhoton
@ bg_twoPhoton
2-photon
Definition: BackgroundMetaData.h:48
Belle2::BackgroundMetaData::bg_BHWide_HER
@ bg_BHWide_HER
Wide angle radiative Bhabha HER.
Definition: BackgroundMetaData.h:57
Belle2::BackgroundMetaData::bg_RBB_HER
@ bg_RBB_HER
Radiative Bhabha HER.
Definition: BackgroundMetaData.h:45
Belle2::background::BeamBGTypes::m_tags
std::map< std::string, BackgroundMetaData::BG_TAG > m_tags
a map of BG tags
Definition: BeamBGTypes.h:125
Belle2::background::BeamBGTypes::getType
std::string getType(BackgroundMetaData::BG_TAG bgTag) const
Return BG type for a given BG tag.
Definition: BeamBGTypes.h:86
Belle2::BackgroundMetaData::bg_SynchRad_HER
@ bg_SynchRad_HER
Synchrotron radiation HER.
Definition: BackgroundMetaData.h:55
Belle2::BackgroundMetaData::bg_Coulomb_LER
@ bg_Coulomb_LER
Coulomb LER.
Definition: BackgroundMetaData.h:42
Belle2::BackgroundMetaData::bg_other
@ bg_other
Other type of background.
Definition: BackgroundMetaData.h:65
Belle2::BackgroundMetaData::bg_RBB_gamma
@ bg_RBB_gamma
Gammas from radiative Bhabha.
Definition: BackgroundMetaData.h:49
Belle2::BackgroundMetaData::bg_Coulomb_HER
@ bg_Coulomb_HER
Coulomb HER.
Definition: BackgroundMetaData.h:43
Belle2::BackgroundMetaData::bg_RBB_LER_far
@ bg_RBB_LER_far
Radiative Bhabha far LER.
Definition: BackgroundMetaData.h:50
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::BackgroundMetaData::bg_Brems_LER
@ bg_Brems_LER
bremsstrahlung LER
Definition: BackgroundMetaData.h:63
Belle2::BackgroundMetaData::bg_RBB
@ bg_RBB
Radiative Bhabha.
Definition: BackgroundMetaData.h:58
Belle2::BackgroundMetaData::bg_Touschek_LER_far
@ bg_Touschek_LER_far
Touschek far LER.
Definition: BackgroundMetaData.h:52
Belle2::BackgroundMetaData::bg_Touschek_HER_far
@ bg_Touschek_HER_far
Touschek far HER.
Definition: BackgroundMetaData.h:53
Belle2::BackgroundMetaData::bg_Brems_HER
@ bg_Brems_HER
bremsstrahlung HER
Definition: BackgroundMetaData.h:64
Belle2::background::BeamBGTypes::BeamBGTypes
BeamBGTypes()
Constructor.
Definition: BeamBGTypes.h:43
Belle2::BackgroundMetaData::bg_RBB_LER
@ bg_RBB_LER
Radiative Bhabha LER.
Definition: BackgroundMetaData.h:44
Belle2::BackgroundMetaData::bg_InjectionHER
@ bg_InjectionHER
injection background HER
Definition: BackgroundMetaData.h:62
Belle2::BackgroundMetaData::bg_RBB_HER_far
@ bg_RBB_HER_far
Radiative Bhabha far HER.
Definition: BackgroundMetaData.h:51
Belle2::BackgroundMetaData::BG_TAG
BG_TAG
Enum for background tags.
Definition: BackgroundMetaData.h:41