Belle II Software  release-08-01-10
InclusiveBtagReconstructionModule.h
1 /**************************************************************************
2  * basf2 (Belle II Analysis Software Framework) *
3  * Author: The Belle II Collaboration *
4  * *
5  * See git log for contributors and copyright holders. *
6  * This file is licensed under LGPL-3.0, see LICENSE.md. *
7  **************************************************************************/
8 
9 #pragma once
10 
11 #include <framework/core/Module.h>
12 #include <framework/datastore/StoreObjPtr.h>
13 #include <framework/datastore/StoreArray.h>
14 #include <analysis/dataobjects/Particle.h>
15 #include <analysis/dataobjects/ParticleList.h>
16 #include <analysis/DecayDescriptor/DecayDescriptor.h>
17 
18 #include <map>
19 #include <vector>
20 
21 
22 namespace Belle2 {
37 
38  public:
39 
45  virtual void initialize() override;
47  virtual void event() override;
48 
49 
50  private:
51 
52  std::string m_upsilonListName;
53  std::string m_bsigListName;
54  std::string m_btagListName;
55  std::vector<std::string> m_inputListsNames;
65  };
66 
67 
75  class Map2Vector {
76 
77  public:
85  void convert(std::map<int, std::vector<int> >& input, std::vector<std::vector<int> >& output);
86 
87  protected:
96  void makeEntries(std::map<int, std::vector<int>>::iterator positionOnTheMap,
97  const std::map<int, std::vector<int>>::const_iterator& end, unsigned i,
98  std::vector<std::vector<int>>& output);
99 
100  private:
101  std::vector<int>
104  };
106 }
107 
The DecayDescriptor stores information about a decay tree or parts of a decay tree.
Inclusively reconstructs anti-B:tag from input ParticleLists for given B:sig.
virtual void initialize() override
initialize the module (setup the data store)
StoreObjPtr< ParticleList > m_btagList
particle list of tag B
StoreArray< Particle > m_particles
StoreArray of Particles.
virtual ~InclusiveBtagReconstructionModule()
Destructor.
StoreObjPtr< ParticleList > m_upsilonList
particle list of Y(4S)
std::vector< std::string > m_inputListsNames
Names of the ParticleLists to be used to reconstruct Btag.
StoreObjPtr< ParticleList > m_bsigList
particle list of signal B
DecayDescriptor m_decaydescriptor
Decay descriptor for parsing the user specified DecayString.
std::string m_upsilonListName
Name of the ParticleList to be filled with Upsilon(4S) -> B:sig anti-B:tag
std::string m_bsigListName
Name of the Bsig ParticleList.
std::string m_btagListName
Name of the Btag ParticleList.
StoreObjPtr< ParticleList > m_antiBtagList
particle list of tag anti-B
Helper class to make a vector of all possible combinations of int numbers contained in the input vect...
void convert(std::map< int, std::vector< int > > &input, std::vector< std::vector< int > > &output)
Do the conversion using makeEntries().
std::vector< int > m_combination
Vector containing current combination of numbers (e.g.
void makeEntries(std::map< int, std::vector< int >>::iterator positionOnTheMap, const std::map< int, std::vector< int >>::const_iterator &end, unsigned i, std::vector< std::vector< int >> &output)
Recursively iterates over a map until the end is reached, then the output is ready.
Base class for Modules.
Definition: Module.h:72
Accessor to arrays stored in the data store.
Definition: StoreArray.h:113
Type-safe access to single objects in the data store.
Definition: StoreObjPtr.h:96
Abstract base class for different kinds of events.