Belle II Software  release-05-02-19
BHWideInputModule.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2011 Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Andreas Moll, Torben Ferber *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 
11 #ifndef BHWIDEINPUTMODULE_H
12 #define BHWIDEINPUTMODULE_H
13 
14 #include <framework/core/Module.h>
15 #include <framework/logging/Logger.h>
16 
17 #include <generators/bhwide/BHWide.h>
18 
19 #include <mdst/dataobjects/MCParticleGraph.h>
20 
21 #include <generators/utilities/InitialParticleGeneration.h>
22 
23 #include <vector>
24 
25 namespace Belle2 {
35  class BHWideInputModule : public Module {
36 
37  public:
38 
44 
46  virtual ~BHWideInputModule();
47 
49  virtual void initialize() override;
50 
52  virtual void event() override;
53 
55  virtual void terminate() override;
56 
57  protected:
58 
59  double getBeamEnergyCM(double e1, double e2, double angle);
62  std::vector<double>
64  std::vector<double>
67  bool m_weakCorrections;
68  std::string m_vacPolString;
70  double m_eMin;
72  double m_wtMax;
78  template <typename T>
79  std::vector<T> make_vector(T const& t1, T const& t2);
81  template <typename T>
82  std::pair<T, T> vectorToPair(std::vector<T>& vec, const std::string& name = "");
83 
84  private:
85 
87  void initializeGenerator();
88 
89  bool m_initialized{false};
94  };
96  template <typename T>
97  inline std::vector<T> BHWideInputModule::make_vector(T const& t1, T const& t2)
98  {
99  std::vector<T> v;
100  v.push_back(t1);
101  v.push_back(t2);
102  return v;
103  }
104 
105  template <typename T>
106  inline std::pair<T, T> BHWideInputModule::vectorToPair(std::vector<T>& vec, const std::string& name)
107  {
108  std::pair<T, T> p;
109  if (vec.size() != 2) {
110  B2ERROR("The parameter " + name + " has to have exactly 2 elements !");
111  } else {
112  p.first = vec[0];
113  p.second = vec[1];
114  }
115  return p;
116  }
117 
119 } // end namespace Belle2
120 
121 #endif /* BHWIDEINPUTMODULE_H */
Belle2::BHWideInputModule::m_wtMax
double m_wtMax
Maximum weight (wtmax).
Definition: BHWideInputModule.h:80
Belle2::BHWideInputModule::event
virtual void event() override
Method is called for each event.
Definition: BHWideInputModule.cc:69
Belle2::BHWideInputModule::m_maxAcollinearity
double m_maxAcollinearity
maximum acollinearity angle between finale state leptons in degrees.
Definition: BHWideInputModule.h:79
Belle2::BHWideInputModule::m_generator
BHWide m_generator
Variables.
Definition: BHWideInputModule.h:83
Belle2::BHWideInputModule::terminate
virtual void terminate() override
Method is called at the end of the event processing.
Definition: BHWideInputModule.cc:96
Belle2::BHWideInputModule::m_vacPol
BHWide::PhotonVacPolarization m_vacPol
Vacuum polarization.
Definition: BHWideInputModule.h:77
Belle2::BHWideInputModule::m_initial
InitialParticleGeneration m_initial
initial particle used by BeamParameter class
Definition: BHWideInputModule.h:100
Belle2::MCParticleGraph
Class to build, validate and sort a particle decay chain.
Definition: MCParticleGraph.h:48
Belle2::BHWideInputModule::getBeamEnergyCM
double getBeamEnergyCM(double e1, double e2, double angle)
Get CM beam energy from LER, HER and crossing angle.
Belle2::BHWideInputModule::m_weakCorrections
bool m_weakCorrections
EW corrections on/off.
Definition: BHWideInputModule.h:75
Belle2::BHWide::PhotonVacPolarization
PhotonVacPolarization
Call photon polarization.
Definition: BHWide.h:70
Belle2::BHWideInputModule::BHWideInputModule
BHWideInputModule()
Constructor.
Definition: BHWideInputModule.cc:27
Belle2::BHWideInputModule::m_vacPolString
std::string m_vacPolString
Vacuum polarization as string.
Definition: BHWideInputModule.h:76
Belle2::BHWideInputModule::initialize
virtual void initialize() override
Initializes the module.
Definition: BHWideInputModule.cc:58
Belle2::InitialParticleGeneration
Generate Collision.
Definition: InitialParticleGeneration.h:35
Belle2::DBObjPtr
Class for accessing objects in the database.
Definition: DBObjPtr.h:31
Belle2::BHWideInputModule::m_eMin
double m_eMin
Minimum energy for leptons in the final state, in GeV.
Definition: BHWideInputModule.h:78
Belle2::BHWide
C++ Interface for the Fortran Bhabha scattering generator BHWide.
Definition: BHWide.h:41
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::BHWideInputModule::m_initialized
bool m_initialized
True if generator has been initialized.
Definition: BHWideInputModule.h:97
Belle2::BHWideInputModule::m_beamParams
DBObjPtr< BeamParameters > m_beamParams
BeamParameter.
Definition: BHWideInputModule.h:98
Belle2::BHWideInputModule::make_vector
std::vector< T > make_vector(T const &t1, T const &t2)
make_vector.
Definition: BHWideInputModule.h:105
Belle2::BHWideInputModule::initializeGenerator
void initializeGenerator()
Method is called to initialize the generator.
Definition: BHWideInputModule.cc:105
Belle2::BHWideInputModule::m_ScatteringAngleRangePositron
std::vector< double > m_ScatteringAngleRangePositron
Module parameters.
Definition: BHWideInputModule.h:71
Belle2::BHWideInputModule::vectorToPair
std::pair< T, T > vectorToPair(std::vector< T > &vec, const std::string &name="")
Definition: BHWideInputModule.h:114
Belle2::BHWideInputModule::m_ScatteringAngleRangeElectron
std::vector< double > m_ScatteringAngleRangeElectron
Min [0] and Max [1] value for the scattering angle [deg] of the electron.
Definition: BHWideInputModule.h:73
Belle2::BHWideInputModule::~BHWideInputModule
virtual ~BHWideInputModule()
Destructor.
Definition: BHWideInputModule.cc:52
Belle2::BHWideInputModule::m_mcGraph
MCParticleGraph m_mcGraph
The MCParticle graph object.
Definition: BHWideInputModule.h:84