EvtGen 2.2.0
Monte Carlo generator of particle decays, in particular the weak decays of heavy flavour particles such as B mesons.
Loading...
Searching...
No Matches
EvtDalitzTable.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 EVTDALITZTABLE_HPP
22#define EVTDALITZTABLE_HPP
23
27#include "EvtGenBase/EvtId.hh"
29
31
32#include <map>
33#include <string>
34#include <vector>
35
36// Description: Model to describe a generic dalitz decay
37
39 public:
40 static const EvtDalitzTable& getInstance( const std::string dec_name = "",
41 bool verbose = true );
42
43 std::vector<EvtDalitzDecayInfo> getDalitzTable( const EvtId& parent ) const;
44
45 protected:
48
49 private:
50 bool fileHasBeenRead( const std::string dec_name ) const;
51 void readXMLDecayFile( const std::string dec_name, bool verbose = true );
52 void checkParticle( std::string particle ) const;
53
54 void addDecay( EvtId parent, const EvtDalitzDecayInfo& dec );
55 void copyDecay( EvtId parent, EvtId* daughters, EvtId copy, EvtId* copyd );
56
57 EvtDalitzReso getResonance( std::string shape, EvtDalitzPlot dp,
58 EvtCyclic3::Pair angPair,
59 EvtCyclic3::Pair resPair,
60 EvtSpinType::spintype spinType, double mass,
61 double width, double FFp, double FFr,
62 double alpha, double aLass, double rLass,
63 double BLass, double phiBLass, double RLass,
64 double phiRLass, double cutoffLass );
66 EvtId* resDaughter, EvtId* daughter,
67 std::vector<std::pair<EvtCyclic3::Pair, EvtCyclic3::Pair>>& angAndResPairs );
68
69 std::map<EvtId, std::vector<EvtDalitzDecayInfo>> m_dalitztable;
70 std::vector<std::string> m_readFiles;
71
74
75 //to calculate probMax
76 double calcProbMax( EvtDalitzPlot dp, EvtDalitzDecayInfo* model );
77 double calcProb( EvtDalitzPoint point, EvtDalitzDecayInfo* model );
78};
79
80#endif
std::map< EvtId, std::vector< EvtDalitzDecayInfo > > m_dalitztable
double calcProbMax(EvtDalitzPlot dp, EvtDalitzDecayInfo *model)
std::vector< EvtDalitzDecayInfo > getDalitzTable(const EvtId &parent) const
void addDecay(EvtId parent, const EvtDalitzDecayInfo &dec)
void copyDecay(EvtId parent, EvtId *daughters, EvtId copy, EvtId *copyd)
double calcProb(EvtDalitzPoint point, EvtDalitzDecayInfo *model)
std::vector< std::string > m_readFiles
bool fileHasBeenRead(const std::string dec_name) const
void checkParticle(std::string particle) const
EvtDalitzTable(const EvtDalitzTable &)
EvtDalitzReso getResonance(std::string shape, EvtDalitzPlot dp, EvtCyclic3::Pair angPair, EvtCyclic3::Pair resPair, EvtSpinType::spintype spinType, double mass, double width, double FFp, double FFr, double alpha, double aLass, double rLass, double BLass, double phiBLass, double RLass, double phiRLass, double cutoffLass)
EvtDalitzTable & operator=(const EvtDalitzTable &)
int getDaughterPairs(EvtId *resDaughter, EvtId *daughter, std::vector< std::pair< EvtCyclic3::Pair, EvtCyclic3::Pair > > &angAndResPairs)
static const EvtDalitzTable & getInstance(const std::string dec_name="", bool verbose=true)
void readXMLDecayFile(const std::string dec_name, bool verbose=true)
Definition EvtId.hh:27