EvtGen
2.2.0
Monte Carlo generator of particle decays, in particular the weak decays of heavy flavour particles such as B mesons.
Toggle main menu visibility
Loading...
Searching...
No Matches
EvtGenBase
EvtModel.hh
Go to the documentation of this file.
1
2
/***********************************************************************
3
* Copyright 1998-2020 CERN for the benefit of the EvtGen authors *
4
* *
5
* This file is part of EvtGen. *
6
* *
7
* EvtGen is free software: you can redistribute it and/or modify *
8
* it under the terms of the GNU General Public License as published by *
9
* the Free Software Foundation, either version 3 of the License, or *
10
* (at your option) any later version. *
11
* *
12
* EvtGen is distributed in the hope that it will be useful, *
13
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
14
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
15
* GNU General Public License for more details. *
16
* *
17
* You should have received a copy of the GNU General Public License *
18
* along with EvtGen. If not, see <https://www.gnu.org/licenses/>. *
19
***********************************************************************/
20
21
#ifndef EVTMODEL_HH
22
#define EVTMODEL_HH
23
24
#include "
EvtGenBase/EvtDecayBase.hh
"
25
#include "
EvtGenBase/EvtStringHash.hh
"
26
27
#include <map>
28
29
//Class to read in and handle the decays available
30
//to EvtGen for each particle, and the model to be
31
//used for each one.
32
33
class
EvtModel
{
34
public
:
35
static
EvtModel
&
instance
();
36
37
void
registerModel
(
EvtDecayBase
* prototype );
38
39
int
isModel
( std::string name );
40
41
EvtDecayBase
*
getFcn
( std::string model_name );
42
43
int
isCommand
( std::string cmd );
44
void
storeCommand
( std::string cmd, std::string cnfgstr );
45
46
private
:
47
EvtModel
();
48
49
static
thread_local
EvtModel
*
m_instance
;
50
51
std::map<std::string, EvtDecayBase*>
m_modelNameHash
;
52
std::map<std::string, EvtDecayBase*>
m_commandNameHash
;
53
};
54
55
inline
EvtModel
&
EvtModel::instance
()
56
{
57
if
(
m_instance
==
nullptr
)
58
m_instance
=
new
EvtModel
;
59
return
*
m_instance
;
60
}
61
62
#endif
EvtDecayBase.hh
EvtStringHash.hh
EvtDecayBase
Definition
EvtDecayBase.hh:33
EvtModel::m_modelNameHash
std::map< std::string, EvtDecayBase * > m_modelNameHash
Definition
EvtModel.hh:51
EvtModel::m_instance
static EvtModel * m_instance
Definition
EvtModel.hh:49
EvtModel::getFcn
EvtDecayBase * getFcn(std::string model_name)
Definition
EvtModel.cpp:46
EvtModel::storeCommand
void storeCommand(std::string cmd, std::string cnfgstr)
Definition
EvtModel.cpp:91
EvtModel::EvtModel
EvtModel()
Definition
EvtModel.cpp:42
EvtModel::registerModel
void registerModel(EvtDecayBase *prototype)
Definition
EvtModel.cpp:62
EvtModel::m_commandNameHash
std::map< std::string, EvtDecayBase * > m_commandNameHash
Definition
EvtModel.hh:52
EvtModel::isModel
int isModel(std::string name)
Definition
EvtModel.cpp:75
EvtModel::instance
static EvtModel & instance()
Definition
EvtModel.hh:55
EvtModel::isCommand
int isCommand(std::string cmd)
Definition
EvtModel.cpp:83
Generated by
1.17.0