Belle II Software  release-05-02-19
SoftwareTriggerVariableManager.cc
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2010 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Nils Braun *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 #include <hlt/softwaretrigger/core/SoftwareTriggerVariableManager.h>
11 
12 #include <memory>
13 
14 namespace Belle2 {
19  namespace SoftwareTrigger {
20  SoftwareTriggerVariableManager& SoftwareTriggerVariableManager::Instance()
21  {
22  static SoftwareTriggerVariableManager instance;
23  return instance;
24  }
25 
26  SoftwareTriggerVariableManager::SoftwareTriggerVariable* SoftwareTriggerVariableManager::getVariable(
27  const std::string& variableName)
28  {
29  auto lowerBoundIterator = m_variableNameToVariable.lower_bound(variableName);
30  if (lowerBoundIterator == m_variableNameToVariable.end() or lowerBoundIterator->first != variableName) {
31  lowerBoundIterator = m_variableNameToVariable.insert(lowerBoundIterator,
32  {variableName, std::shared_ptr<SoftwareTriggerVariable>(new SoftwareTriggerVariable(variableName))});
33  }
34  return lowerBoundIterator->second.get();
35  }
36  }
38 }
Belle2::SoftwareTrigger::SoftwareTriggerVariableManager::m_variableNameToVariable
std::map< std::string, std::shared_ptr< SoftwareTriggerVariable > > m_variableNameToVariable
Internal storage of the variables with their name.
Definition: SoftwareTriggerVariableManager.h:128
Belle2::SoftwareTrigger::SoftwareTriggerVariableManager::SoftwareTriggerVariableManager
SoftwareTriggerVariableManager()
Make the constructor private: only use this class as a singleton.
Definition: SoftwareTriggerVariableManager.h:119
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::SoftwareTrigger::SoftwareTriggerVariableManager::Instance
static SoftwareTriggerVariableManager & Instance()
Make this variable manager a singleton and get the only single instance of the manager.
Definition: SoftwareTriggerVariableManager.cc:28
Belle2::SoftwareTrigger::SoftwareTriggerVariableManager::getVariable
SoftwareTriggerVariable * getVariable(const std::string &variableName)
Get the variable with the given name.
Definition: SoftwareTriggerVariableManager.cc:34
Belle2::SoftwareTrigger::SoftwareTriggerVariableManager::SoftwareTriggerVariable
Class which represents an abstract variable in the SoftwareTriggerVariableManager.
Definition: SoftwareTriggerVariableManager.h:59