AmpGen
2.1
Toggle main menu visibility
Loading...
Searching...
No Matches
ThreeBodyCalculators.h
Go to the documentation of this file.
1
#ifndef AMPGEN_THREEBODYCALCULATORS_H
2
#define AMPGEN_THREEBODYCALCULATORS_H
3
4
#include "
AmpGen/DalitzIntegrator.h
"
5
#include "
AmpGen/Expression.h
"
6
#include "
AmpGen/CoherentSum.h
"
7
#include "
AmpGen/Tensor.h
"
8
9
class
TGraph;
10
11
namespace
AmpGen
{
12
class
MinuitParameterSet
;
13
14
class
ThreeBodyCalculator
{
15
private
:
16
struct
PartialWidth {
17
CoherentSum
fcs;
18
DalitzIntegrator
integrator;
19
CompiledExpression
<
complex_v
(
const
real_t
*,
const
real_v
*)> totalWidth;
20
EventType
type;
21
std::vector<
CompiledExpression
<
complex_v
(
const
real_t
*,
const
real_v
*)>> partialWidths;
22
double
getWidth
(
const
double
&m);
23
PartialWidth(
const
EventType
&type,
MinuitParameterSet
&mps);
24
Expression
spinAverageMatrixElement(
const
std::vector<std::pair<Particle, TotalCoupling>> &elements,
DebugSymbols
*msym);
25
};
26
Expression
calculateSAME(
const
std::string &particle);
27
28
double
m_min;
29
double
m_max;
30
double
m_norm;
31
double
m_step;
32
size_t
m_nKnots;
33
std::string m_name;
34
std::vector<PartialWidth> m_widths;
35
MinuitParameterSet
*m_mps;
36
37
public
:
38
ThreeBodyCalculator
(
const
std::string &head,
MinuitParameterSet
&mps,
const
size_t
&nKnots = 999,
const
double
&min = -1,
const
double
&max = -1);
39
40
TGraph *
widthGraph
(
const
double
&mNorm = -1);
41
TGraph *
widthGraph
(
const
size_t
&steps,
const
double
&min,
const
double
&max);
42
TGraph *
runningMass
(
const
double
&mass,
const
double
&min,
const
double
&max,
const
size_t
&nSteps,
const
size_t
&nSubtractions = 2);
43
TGraph *
fastRunningMass
(
const
double
&mass,
const
double
&min,
const
double
&max,
const
size_t
&nSteps,
const
size_t
&nSubtractions = 2);
44
45
double
getWidth
(
const
double
&);
46
47
void
updateRunningWidth
(
MinuitParameterSet
&mps,
const
double
&mNorm = 0);
48
void
setNorm
(
const
double
&mNorm);
49
void
setAxis
(
const
size_t
&nKnots,
const
double
&min,
const
double
&max);
50
void
prepare
();
51
void
makePlots
(
const
double
&mass = -1,
const
size_t
&x = 0,
const
size_t
&y = 0);
52
void
debug
(
const
double
&m,
const
double
&theta);
53
};
54
}
// namespace AmpGen
55
#endif
/* end of include guard: AMPGEN_THREEBODYCALCULATORS_H */
CoherentSum.h
DalitzIntegrator.h
Expression.h
Tensor.h
AmpGen::CoherentSum
A coherent sum of amplitudes.
Definition
CoherentSum.h:45
AmpGen::DalitzIntegrator
Class for doing 2D integrals using the Square Dalitz Plot (SQDP) method.
Definition
DalitzIntegrator.h:28
AmpGen::EventType
Deals with final state configuration of events, specifically dealing with the ordering of particles i...
Definition
EventType.h:22
AmpGen::Expression
Wrapper class for shared_ptrs to virtual expressions for use in conjunction with operators to build e...
Definition
Expression.h:135
AmpGen::MinuitParameterSet
Definition
MinuitParameterSet.h:13
AmpGen::ThreeBodyCalculator::fastRunningMass
TGraph * fastRunningMass(const double &mass, const double &min, const double &max, const size_t &nSteps, const size_t &nSubtractions=2)
AmpGen::ThreeBodyCalculator::prepare
void prepare()
AmpGen::ThreeBodyCalculator::debug
void debug(const double &m, const double &theta)
AmpGen::ThreeBodyCalculator::setAxis
void setAxis(const size_t &nKnots, const double &min, const double &max)
AmpGen::ThreeBodyCalculator::widthGraph
TGraph * widthGraph(const double &mNorm=-1)
AmpGen::ThreeBodyCalculator::setNorm
void setNorm(const double &mNorm)
AmpGen::ThreeBodyCalculator::updateRunningWidth
void updateRunningWidth(MinuitParameterSet &mps, const double &mNorm=0)
AmpGen::ThreeBodyCalculator::getWidth
double getWidth(const double &)
AmpGen::ThreeBodyCalculator::widthGraph
TGraph * widthGraph(const size_t &steps, const double &min, const double &max)
AmpGen::ThreeBodyCalculator::runningMass
TGraph * runningMass(const double &mass, const double &min, const double &max, const size_t &nSteps, const size_t &nSubtractions=2)
AmpGen::ThreeBodyCalculator::makePlots
void makePlots(const double &mass=-1, const size_t &x=0, const size_t &y=0)
AmpGen::ThreeBodyCalculator::ThreeBodyCalculator
ThreeBodyCalculator(const std::string &head, MinuitParameterSet &mps, const size_t &nKnots=999, const double &min=-1, const double &max=-1)
AmpGen
Definition
AddCPConjugate.h:2
AmpGen::real_t
double real_t
Definition
Types.h:6
AmpGen::real_v
AVX::real_v real_v
Definition
utils.h:47
AmpGen::complex_v
AVX::complex_v complex_v
Definition
utils.h:48
AmpGen::DebugSymbols
std::vector< DebugSymbol > DebugSymbols
Definition
Expression.h:111
AmpGen::CompiledExpression
Definition
CompiledExpression.h:38
AmpGen
ThreeBodyCalculators.h
Generated on
for AmpGen by
1.17.0