This repository has been archived by the owner on Jan 20, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
BuilderXML_8cpp_source.html
218 lines (216 loc) · 244 KB
/
BuilderXML_8cpp_source.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
<!-- HTML header for doxygen 1.8.13-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>ComPWA: Physics/BuilderXML.cpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
<link href='https://fonts.googleapis.com/css?family=Roboto+Slab' rel='stylesheet' type='text/css'>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css">
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/js/bootstrap.min.js"></script>
<script type="text/javascript" src="doxy-boot.js"></script>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">ComPWA
</div>
<div id="projectbrief">Common Partial-Wave-Analysis Framework</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('BuilderXML_8cpp_source.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle">
<div class="title">BuilderXML.cpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="BuilderXML_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// Copyright (c) 2013, 2017 The ComPWA Team.</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// This file is part of the ComPWA framework, check</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// https://github.com/ComPWA/ComPWA/license.txt for details.</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> </div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="preprocessor">#include "<a class="code" href="BuilderXML_8hpp.html">BuilderXML.hpp</a>"</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> </div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="preprocessor">#include "<a class="code" href="Exceptions_8hpp.html">Core/Exceptions.hpp</a>"</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="preprocessor">#include "<a class="code" href="Logging_8hpp.html">Core/Logging.hpp</a>"</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#include "<a class="code" href="Properties_8hpp.html">Core/Properties.hpp</a>"</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#include "<a class="code" href="DataSet_8hpp.html">Data/DataSet.hpp</a>"</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="preprocessor">#include "<a class="code" href="HelicityKinematics_8hpp.html">Physics/HelicityFormalism/HelicityKinematics.hpp</a>"</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#include "<a class="code" href="Integration_8hpp.html">Tools/Integration.hpp</a>"</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> </div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#include "<a class="code" href="Flatte_8hpp.html">Physics/Dynamics/Flatte.hpp</a>"</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#include "<a class="code" href="FormFactor_8hpp.html">Physics/Dynamics/FormFactor.hpp</a>"</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include "<a class="code" href="RelativisticBreitWigner_8hpp.html">Physics/Dynamics/RelativisticBreitWigner.hpp</a>"</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include "<a class="code" href="Voigtian_8hpp.html">Physics/Dynamics/Voigtian.hpp</a>"</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include "<a class="code" href="WignerD_8hpp.html">Physics/HelicityFormalism/WignerD.hpp</a>"</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> </div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include <boost/property_tree/ptree.hpp></span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <boost/property_tree/xml_parser.hpp></span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="keyword">using</span> <a class="code" href="classComPWA_1_1Physics_1_1HelicityFormalism_1_1HelicityKinematics.html">ComPWA::Physics::HelicityFormalism::HelicityKinematics</a>;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> </div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="keyword">namespace </span><a class="code" href="namespaceComPWA.html">ComPWA</a> {</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="keyword">namespace </span>Physics {</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="keyword">using</span> <a class="code" href="classComPWA_1_1FunctionTree_1_1FitParameter.html">ComPWA::FunctionTree::FitParameter</a>;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="keyword">using</span> <a class="code" href="classComPWA_1_1FunctionTree_1_1FunctionTreeIntensity.html">ComPWA::FunctionTree::FunctionTreeIntensity</a>;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div><div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#af2a81da6aa89d8bacfaf1833a04a3260"> 31</a></span> <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#af2a81da6aa89d8bacfaf1833a04a3260">IntensityBuilderXML::IntensityBuilderXML</a>(</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  <a class="code" href="namespaceComPWA.html#ac32ebe66cb052341dfbabe607551b502">ParticleList</a> <a class="code" href="namespaceComPWA.html#ac32ebe66cb052341dfbabe607551b502">ParticleList</a>, <a class="code" href="classComPWA_1_1Kinematics.html">Kinematics</a> &<a class="code" href="classComPWA_1_1Kinematics.html">Kinematics</a>,</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  <span class="keyword">const</span> boost::property_tree::ptree &ModelTree,</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  <span class="keyword">const</span> <a class="code" href="structComPWA_1_1EventCollection.html">EventCollection</a> &TruePhspSample,</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  <span class="keyword">const</span> <a class="code" href="structComPWA_1_1EventCollection.html">EventCollection</a> &RecoPhspSample)</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  : PartList(ParticleList), Kinematic(Kinematics), ModelTree(ModelTree),</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  TruePhspSample(TruePhspSample),</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  RecoPhspSample(</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  [&TruePhspSample, &RecoPhspSample]() -> const <a class="code" href="structComPWA_1_1EventCollection.html">EventCollection</a> & {</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <span class="keywordflow">if</span> (TruePhspSample.<a class="code" href="structComPWA_1_1EventCollection.html#ae046211ede6817d51d769b372aab67dc">Events</a>.size() > 0 &&</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  RecoPhspSample.<a class="code" href="structComPWA_1_1EventCollection.html#ae046211ede6817d51d769b372aab67dc">Events</a>.size() == 0)</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <span class="keywordflow">return</span> TruePhspSample;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <span class="keywordflow">return</span> <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#ab3e37d499b8579f6f3a275dcf1f35814">RecoPhspSample</a>;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  }</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  }()) {}</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <a class="code" href="classComPWA_1_1FunctionTree_1_1FunctionTreeIntensity.html">ComPWA::FunctionTree::FunctionTreeIntensity</a></div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a531d213870d58daccd8983c8ee41b630"> 49</a></span> <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a531d213870d58daccd8983c8ee41b630">IntensityBuilderXML::createIntensity</a>() {</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  LOG(TRACE) << <span class="stringliteral">"loading intensity..."</span>;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="comment">// BlankState</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a1156f6f64911708e34d6c158d49cf9d1">Parameters</a> = <a class="code" href="classComPWA_1_1FunctionTree_1_1ParameterList.html">FunctionTree::ParameterList</a>();</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#abfa584a1ccc381745c8f6035d4bdb0fd">PhspData</a> = <a class="code" href="structComPWA_1_1Physics_1_1IntensityBuilderXML_1_1DataContainer.html">DataContainer</a>();</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a04b2cab62a3477523b6f9b03561b66b6">PhspRecoData</a> = <a class="code" href="structComPWA_1_1Physics_1_1IntensityBuilderXML_1_1DataContainer.html">DataContainer</a>();</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  std::shared_ptr<ComPWA::FunctionTree::TreeNode> FT =</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#aaf80bf1a56da92317cfdcb83d38e3979">createIntensityFT</a>(<a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a99422fd402f236b2ecbcf72f6b588945">ModelTree</a>, <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a1d9112d7de0dcea23a74d167935b3f4a">Data</a>.<a class="code" href="structComPWA_1_1Physics_1_1IntensityBuilderXML_1_1DataContainer.html#a07558b8e6241e2f5bf5fcc0652005a40">Data</a>);</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span> </div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a6f983ed53c8938748e8477ce14c8cf51">updateDataContainerContent</a>();</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span> </div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="keywordflow">return</span> {FT, <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a1156f6f64911708e34d6c158d49cf9d1">Parameters</a>, <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a1d9112d7de0dcea23a74d167935b3f4a">Data</a>.<a class="code" href="structComPWA_1_1Physics_1_1IntensityBuilderXML_1_1DataContainer.html#a07558b8e6241e2f5bf5fcc0652005a40">Data</a>};</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span> }</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span> </div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span> std::vector<ComPWA::Tools::IntensityComponent></div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a77dea96c3aaf42bddaafb89ab0d217c3"> 65</a></span> <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a77dea96c3aaf42bddaafb89ab0d217c3">IntensityBuilderXML::createIntensityComponents</a>(</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  std::vector<std::vector<std::string>> ComponentList) {</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  LOG(TRACE) << <span class="stringliteral">"Creating intensity components..."</span>;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="keywordflow">if</span> (<a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a4d6b78096e6c8249c2e4330617dfee12">UniqueComponentFTMapping</a>.size() == 0) {</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  LOG(INFO) << <span class="stringliteral">"Components map is empty. Creating full Intensity first."</span>;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a531d213870d58daccd8983c8ee41b630">createIntensity</a>();</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  }</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="comment">// then put these FT together according to the string vectors</span></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  std::vector<ComPWA::Tools::IntensityComponent> IntensityComponents;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span> </div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> <span class="keyword">const</span> &Component : ComponentList) {</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  std::string ComponentName;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  std::map<</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  std::string,</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  std::pair<std::string, std::shared_ptr<ComPWA::FunctionTree::TreeNode>>></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  NewUniqueComponentFTMapping;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  std::string Type(<span class="stringliteral">""</span>);</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  std::vector<std::shared_ptr<ComPWA::FunctionTree::TreeNode>> FTList;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> <span class="keyword">const</span> &x : Component) {</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <span class="keyword">auto</span> FindResult = <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a4d6b78096e6c8249c2e4330617dfee12">UniqueComponentFTMapping</a>.find(x);</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="keywordflow">if</span> (<a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a4d6b78096e6c8249c2e4330617dfee12">UniqueComponentFTMapping</a>.end() != FindResult) {</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  ComponentName += <span class="stringliteral">"_"</span> + x;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="keywordflow">if</span> (Type == <span class="stringliteral">""</span>) {</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  Type = FindResult->second.first;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <span class="keywordflow">if</span> (Type != FindResult->second.first) {</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  LOG(ERROR) << <span class="stringliteral">"Component "</span> << x</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  << <span class="stringliteral">" incompatible with previous type "</span> << Type</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  << <span class="stringliteral">" Skipping..."</span>;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  }</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  }</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  NewUniqueComponentFTMapping.insert(*FindResult);</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  FTList.push_back(FindResult->second.second);</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  LOG(ERROR) << <span class="stringliteral">"Component "</span> << x << <span class="stringliteral">" not found! Skipping..."</span>;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  }</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  }</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <span class="keywordflow">if</span> (FTList.size() == 0)</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span> </div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  ComponentName.erase(0, 1);</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span> </div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  LOG(INFO) << <span class="stringliteral">"Building component "</span> << ComponentName;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span> </div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <span class="comment">// empty component were already removed so [0] is safe</span></div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <span class="keywordflow">if</span> (Type == <span class="stringliteral">"Amplitude"</span>) {</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  IntensityComponents.push_back(std::make_pair(</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  ComponentName,</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  std::make_shared<ComPWA::FunctionTree::FunctionTreeIntensity>(</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a335034e1983470216a8b9844ad2fc26b">createCoherentIntensityFT</a>(FTList), <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a1156f6f64911708e34d6c158d49cf9d1">Parameters</a>, <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a1d9112d7de0dcea23a74d167935b3f4a">Data</a>.<a class="code" href="structComPWA_1_1Physics_1_1IntensityBuilderXML_1_1DataContainer.html#a07558b8e6241e2f5bf5fcc0652005a40">Data</a>)));</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  LOG(INFO) << <span class="stringliteral">"as a CoherentIntensity"</span>;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  IntensityComponents.push_back(std::make_pair(</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  ComponentName,</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  std::make_shared<ComPWA::FunctionTree::FunctionTreeIntensity>(</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a200f5855fb1c4216d54577cf1ad24480">createIncoherentIntensityFT</a>(FTList), <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a1156f6f64911708e34d6c158d49cf9d1">Parameters</a>, <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a1d9112d7de0dcea23a74d167935b3f4a">Data</a>.<a class="code" href="structComPWA_1_1Physics_1_1IntensityBuilderXML_1_1DataContainer.html#a07558b8e6241e2f5bf5fcc0652005a40">Data</a>)));</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  LOG(INFO) << <span class="stringliteral">"as a IncoherentIntensity"</span>;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  }</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  }</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <span class="keywordflow">return</span> IntensityComponents;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span> }</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span> </div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span> std::map<std::string, std::string></div><div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a312f388891c870f230943ad472835d8f"> 131</a></span> <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a312f388891c870f230943ad472835d8f">IntensityBuilderXML::getAllComponentNames</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  std::map<std::string, std::string> Names;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> x : <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a4d6b78096e6c8249c2e4330617dfee12">UniqueComponentFTMapping</a>) {</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  Names[x.first] = x.second.first;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  }</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <span class="keywordflow">return</span> Names;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span> }</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span> </div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span> std::shared_ptr<ComPWA::FunctionTree::TreeNode></div><div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#aaf80bf1a56da92317cfdcb83d38e3979"> 140</a></span> <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#aaf80bf1a56da92317cfdcb83d38e3979">IntensityBuilderXML::createIntensityFT</a>(</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <span class="keyword">const</span> boost::property_tree::ptree &pt,</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <span class="keyword">const</span> <a class="code" href="classComPWA_1_1FunctionTree_1_1ParameterList.html">ComPWA::FunctionTree::ParameterList</a> &DataSample) {</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  LOG(TRACE) << <span class="stringliteral">"loading intensity..."</span>;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span> </div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  std::string IntensityClass(pt.get<std::string>(<span class="stringliteral">"<xmlattr>.Class"</span>));</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span> </div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  std::shared_ptr<ComPWA::FunctionTree::TreeNode> FT(<span class="keyword">nullptr</span>);</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span> </div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  <span class="keywordflow">if</span> (IntensityClass == <span class="stringliteral">"IncoherentIntensity"</span>) {</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  FT = <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a200f5855fb1c4216d54577cf1ad24480">createIncoherentIntensityFT</a>(pt, DataSample);</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (IntensityClass == <span class="stringliteral">"CoherentIntensity"</span>) {</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  FT = <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a335034e1983470216a8b9844ad2fc26b">createCoherentIntensityFT</a>(pt, DataSample);</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (IntensityClass == <span class="stringliteral">"StrengthIntensity"</span>) {</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  FT = <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#aabc03f626cfd14ae119eb5ef813f9326">createStrengthIntensityFT</a>(pt, DataSample);</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (IntensityClass == <span class="stringliteral">"NormalizedIntensity"</span>) {</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  FT = <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a37b3355f0bded145d3f636a0724d3c3e">createNormalizedIntensityFT</a>(pt, DataSample);</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <span class="keywordflow">throw</span> <a class="code" href="classComPWA_1_1BadConfig.html">BadConfig</a>(<span class="stringliteral">"IntensityBuilderXML::createIntensityFT() | Found "</span></div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <span class="stringliteral">"unknown intensity "</span> +</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  IntensityClass);</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  }</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span> </div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  <span class="keyword">auto</span> Component = pt.get_optional<std::string>(<span class="stringliteral">"<xmlattr>.Component"</span>);</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  <span class="keywordflow">if</span> (Component.is_initialized()) {</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a937fbbe89ab82c5824a2eab4b32ef577">addFunctionTreeComponent</a>(Component.get(), <span class="stringliteral">"Intensity"</span>, FT);</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  }</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span> </div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <span class="keywordflow">return</span> FT;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span> }</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span> </div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span> std::shared_ptr<ComPWA::FunctionTree::TreeNode></div><div class="line"><a name="l00172"></a><span class="lineno"><a class="line" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a200f5855fb1c4216d54577cf1ad24480"> 172</a></span> <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a200f5855fb1c4216d54577cf1ad24480">IntensityBuilderXML::createIncoherentIntensityFT</a>(</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <span class="keyword">const</span> boost::property_tree::ptree &pt,</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  <span class="keyword">const</span> <a class="code" href="classComPWA_1_1FunctionTree_1_1ParameterList.html">ComPWA::FunctionTree::ParameterList</a> &DataSample) {</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  LOG(TRACE) << <span class="stringliteral">"constructing IncoherentIntensity ..."</span>;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span> </div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  std::vector<std::shared_ptr<ComPWA::FunctionTree::TreeNode>> intens;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &x : pt) {</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  <span class="keywordflow">if</span> (x.first == <span class="stringliteral">"Intensity"</span>) {</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  intens.push_back(<a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#aaf80bf1a56da92317cfdcb83d38e3979">createIntensityFT</a>(x.second, DataSample));</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  }</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  }</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span> </div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <span class="keywordflow">return</span> <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a200f5855fb1c4216d54577cf1ad24480">createIncoherentIntensityFT</a>(intens);</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span> }</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span> </div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span> std::shared_ptr<ComPWA::FunctionTree::TreeNode></div><div class="line"><a name="l00188"></a><span class="lineno"><a class="line" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#abcedafcf27eb80ef5bec468be1e7b7ad"> 188</a></span> <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a200f5855fb1c4216d54577cf1ad24480">IntensityBuilderXML::createIncoherentIntensityFT</a>(</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  std::vector<std::shared_ptr<ComPWA::FunctionTree::TreeNode>> Intensities) {</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  LOG(TRACE) << <span class="stringliteral">"constructing IncoherentIntensity ..."</span>;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span> </div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  <span class="keyword">using namespace </span><a class="code" href="namespaceComPWA_1_1FunctionTree.html">ComPWA::FunctionTree</a>;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span> </div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <span class="keyword">auto</span> tr =</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  std::make_shared<TreeNode>(std::make_shared<AddAll>(<a class="code" href="namespaceComPWA_1_1FunctionTree.html#aaa83a221399e408bae789ab6b24ff2baaee734f211bb0e8e7ff00a42b18171eba">ParType::MDOUBLE</a>));</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span> </div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> x : Intensities) {</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  tr->addNode(x);</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  }</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span> </div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <span class="keywordflow">return</span> tr;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span> }</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span> </div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span> std::shared_ptr<ComPWA::FunctionTree::TreeNode></div><div class="line"><a name="l00205"></a><span class="lineno"><a class="line" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a335034e1983470216a8b9844ad2fc26b"> 205</a></span> <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a335034e1983470216a8b9844ad2fc26b">IntensityBuilderXML::createCoherentIntensityFT</a>(</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  <span class="keyword">const</span> boost::property_tree::ptree &pt,</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  <span class="keyword">const</span> <a class="code" href="classComPWA_1_1FunctionTree_1_1ParameterList.html">ComPWA::FunctionTree::ParameterList</a> &DataSample) {</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  LOG(TRACE) << <span class="stringliteral">"constructing CoherentIntensity ..."</span>;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span> </div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  std::vector<std::shared_ptr<ComPWA::FunctionTree::TreeNode>> amps;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &x : pt) {</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  <span class="keywordflow">if</span> (x.first == <span class="stringliteral">"Amplitude"</span>) {</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  amps.push_back(<a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#ae7402fc5586eb420b92bf72a569fc985">createAmplitudeFT</a>(x.second, DataSample));</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  }</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  }</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span> </div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  <span class="keywordflow">return</span> <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a335034e1983470216a8b9844ad2fc26b">createCoherentIntensityFT</a>(amps);</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span> }</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span> </div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span> std::shared_ptr<ComPWA::FunctionTree::TreeNode></div><div class="line"><a name="l00221"></a><span class="lineno"><a class="line" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a0e2958ceb61b3a6743b8ce447e4a49de"> 221</a></span> <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a335034e1983470216a8b9844ad2fc26b">IntensityBuilderXML::createCoherentIntensityFT</a>(</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  std::vector<std::shared_ptr<ComPWA::FunctionTree::TreeNode>> Amplitudes) {</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  LOG(TRACE) << <span class="stringliteral">"constructing CoherentIntensity ..."</span>;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span> </div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  <span class="keyword">using namespace </span><a class="code" href="namespaceComPWA_1_1FunctionTree.html">ComPWA::FunctionTree</a>;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  <span class="keyword">auto</span> tr = std::make_shared<ComPWA::FunctionTree::TreeNode>(</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  std::make_shared<AbsSquare>(<a class="code" href="namespaceComPWA_1_1FunctionTree.html#aaa83a221399e408bae789ab6b24ff2baaee734f211bb0e8e7ff00a42b18171eba">ParType::MDOUBLE</a>));</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span> </div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  <span class="keyword">auto</span> SumOfAmps =</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  std::make_shared<TreeNode>(std::make_shared<AddAll>(<a class="code" href="namespaceComPWA_1_1FunctionTree.html#aaa83a221399e408bae789ab6b24ff2baaf48127ec159d317d7adf99a2a13f5d63">ParType::MCOMPLEX</a>));</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  tr->addNode(SumOfAmps);</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> x : Amplitudes) {</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  SumOfAmps->addNode(x);</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  }</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span> </div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  <span class="keywordflow">return</span> tr;</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span> }</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span> </div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span> std::shared_ptr<ComPWA::FunctionTree::TreeNode></div><div class="line"><a name="l00240"></a><span class="lineno"><a class="line" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#aabc03f626cfd14ae119eb5ef813f9326"> 240</a></span> <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#aabc03f626cfd14ae119eb5ef813f9326">IntensityBuilderXML::createStrengthIntensityFT</a>(</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  <span class="keyword">const</span> boost::property_tree::ptree &pt,</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  <span class="keyword">const</span> <a class="code" href="classComPWA_1_1FunctionTree_1_1ParameterList.html">ComPWA::FunctionTree::ParameterList</a> &DataSample) {</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  LOG(TRACE) << <span class="stringliteral">"creating StrengthIntensity ..."</span>;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span> </div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  std::shared_ptr<FitParameter> Strength(<span class="keyword">nullptr</span>);</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  boost::property_tree::ptree UndecoratedIntensityPT;</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &x : pt) {</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  <span class="keywordflow">if</span> (x.first == <span class="stringliteral">"<xmlattr>"</span>)</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  <span class="keywordflow">if</span> (x.first == <span class="stringliteral">"Parameter"</span> &&</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  x.second.get<std::string>(<span class="stringliteral">"<xmlattr>.Type"</span>) == <span class="stringliteral">"Strength"</span>) {</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  Strength = std::make_shared<FitParameter>(x.second);</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (x.first == <span class="stringliteral">"Intensity"</span>) {</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  UndecoratedIntensityPT = x.second;</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  LOG(WARNING) << <span class="stringliteral">"IntensityBuilderXML::createStrengthIntensity(): found "</span></div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  <span class="stringliteral">"unknown tag "</span></div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  << x.first;</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  }</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  }</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span> </div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  Strength = <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a1156f6f64911708e34d6c158d49cf9d1">Parameters</a>.<a class="code" href="classComPWA_1_1FunctionTree_1_1ParameterList.html#a874c4c9cc3ef8abdb43306df926ba8a7">addUniqueParameter</a>(Strength);</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span> </div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  <span class="keyword">using namespace </span><a class="code" href="namespaceComPWA_1_1FunctionTree.html">ComPWA::FunctionTree</a>;</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  <span class="keyword">auto</span> tr = std::make_shared<ComPWA::FunctionTree::TreeNode>(</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  <a class="code" href="namespaceComPWA_1_1FunctionTree.html#a71772f3f9a738acd9d2476d99d51d9b4">MDouble</a>(<span class="stringliteral">""</span>, 0), std::make_shared<MultAll>(<a class="code" href="namespaceComPWA_1_1FunctionTree.html#aaa83a221399e408bae789ab6b24ff2baaee734f211bb0e8e7ff00a42b18171eba">ParType::MDOUBLE</a>));</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span> </div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  tr->addNode(<a class="code" href="namespaceComPWA_1_1FunctionTree.html#a363739a3a01f67438abc98fe58ee8763">FunctionTree::createLeaf</a>(Strength));</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  tr->addNode(<a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#aaf80bf1a56da92317cfdcb83d38e3979">createIntensityFT</a>(UndecoratedIntensityPT, DataSample));</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span> </div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  <span class="keywordflow">return</span> tr;</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span> }</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span> </div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span> std::shared_ptr<ComPWA::FunctionTree::TreeNode></div><div class="line"><a name="l00275"></a><span class="lineno"><a class="line" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a37b3355f0bded145d3f636a0724d3c3e"> 275</a></span> <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a37b3355f0bded145d3f636a0724d3c3e">IntensityBuilderXML::createNormalizedIntensityFT</a>(</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  <span class="keyword">const</span> boost::property_tree::ptree &pt,</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  <span class="keyword">const</span> <a class="code" href="classComPWA_1_1FunctionTree_1_1ParameterList.html">ComPWA::FunctionTree::ParameterList</a> &DataSample) {</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  LOG(TRACE) << <span class="stringliteral">"creating NormalizedIntensity ..."</span>;</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span> </div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  boost::property_tree::ptree UnnormalizedPT;</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  std::string IntegratorClassName(<span class="stringliteral">"MCIntegrationStrategy"</span>);</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span> </div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &x : pt) {</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  <span class="keywordflow">if</span> (x.first == <span class="stringliteral">"<xmlattr>"</span>)</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  <span class="keywordflow">if</span> (x.first == <span class="stringliteral">"Intensity"</span>) {</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  UnnormalizedPT = x.second;</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (x.first == <span class="stringliteral">"IntegrationStrategy"</span>) {</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  <span class="keyword">auto</span> OptionalIntegratorName =</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  pt.get_optional<std::string>(<span class="stringliteral">"<xmlattr>.IntegrationStrategy"</span>);</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  <span class="keywordflow">if</span> (OptionalIntegratorName.is_initialized()) {</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  IntegratorClassName = OptionalIntegratorName.get();</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  LOG(TRACE)</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  << <span class="stringliteral">"IntensityBuilderXML::createNormalizedIntensityFT(): creating "</span></div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  <span class="stringliteral">"default IntegrationStrategy *MCIntegrationStrategy*"</span>;</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  }</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  LOG(WARNING)</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  << <span class="stringliteral">"IntensityBuilderXML::createNormalizedIntensityFT(): found "</span></div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  <span class="stringliteral">"unknown tag "</span></div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  << x.first;</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  }</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  }</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span> </div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  <span class="keywordflow">return</span> <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a0359a543cc218c2cecfac064f09347dc">normalizeIntensityFT</a>(UnnormalizedPT, DataSample, IntegratorClassName);</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span> }</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span> </div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span> std::shared_ptr<ComPWA::FunctionTree::TreeNode></div><div class="line"><a name="l00310"></a><span class="lineno"><a class="line" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a0359a543cc218c2cecfac064f09347dc"> 310</a></span> <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a0359a543cc218c2cecfac064f09347dc">IntensityBuilderXML::normalizeIntensityFT</a>(</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  <span class="keyword">const</span> boost::property_tree::ptree &UnnormalizedPT,</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  <span class="keyword">const</span> <a class="code" href="classComPWA_1_1FunctionTree_1_1ParameterList.html">ComPWA::FunctionTree::ParameterList</a> &DataSample,</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  std::string IntegratorClassName) {</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  LOG(TRACE) << <span class="stringliteral">"creating Normalized FunctionTree ..."</span>;</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span> </div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  <span class="keywordflow">if</span> (<a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#ab3e37d499b8579f6f3a275dcf1f35814">RecoPhspSample</a>.<a class="code" href="structComPWA_1_1EventCollection.html#ae046211ede6817d51d769b372aab67dc">Events</a>.size() == 0)</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  LOG(FATAL) << <span class="stringliteral">"IntensityBuilderXML::normalizeIntensityFT(): "</span></div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  <span class="stringliteral">"reco phsp sample is not set!"</span>;</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a40baa193066450416f1c4eb076219b2c">updateDataContainerWeights</a>(<a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a04b2cab62a3477523b6f9b03561b66b6">PhspRecoData</a>, <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#ab3e37d499b8579f6f3a275dcf1f35814">RecoPhspSample</a>);</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span> </div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  <span class="keyword">using namespace </span><a class="code" href="namespaceComPWA_1_1FunctionTree.html">ComPWA::FunctionTree</a>;</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span> </div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  <span class="keyword">auto</span> NormalizedFT = std::make_shared<ComPWA::FunctionTree::TreeNode>(</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  std::make_shared<MultAll>(<a class="code" href="namespaceComPWA_1_1FunctionTree.html#aaa83a221399e408bae789ab6b24ff2baaee734f211bb0e8e7ff00a42b18171eba">ParType::MDOUBLE</a>));</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span> </div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  <span class="keyword">auto</span> FTData = <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#aaf80bf1a56da92317cfdcb83d38e3979">createIntensityFT</a>(UnnormalizedPT, DataSample);</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  NormalizedFT->addNode(FTData);</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span> </div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  <span class="keywordtype">bool</span> PreviousSetting = <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a046ae8de18b46775d1dda620b6f394ad">ComponentRegisteringEnabled</a>;</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a046ae8de18b46775d1dda620b6f394ad">ComponentRegisteringEnabled</a> = <span class="keyword">false</span>;</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  <span class="keyword">auto</span> FTPhspData = <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#aaf80bf1a56da92317cfdcb83d38e3979">createIntensityFT</a>(UnnormalizedPT, <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a04b2cab62a3477523b6f9b03561b66b6">PhspRecoData</a>.<a class="code" href="structComPWA_1_1Physics_1_1IntensityBuilderXML_1_1DataContainer.html#a07558b8e6241e2f5bf5fcc0652005a40">Data</a>);</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a046ae8de18b46775d1dda620b6f394ad">ComponentRegisteringEnabled</a> = PreviousSetting;</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  <span class="keyword">auto</span> normtree =</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#aae2b47ca71eab41ffd9bd6af14794711">createIntegrationStrategyFT</a>(FTPhspData, <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a04b2cab62a3477523b6f9b03561b66b6">PhspRecoData</a>.<a class="code" href="structComPWA_1_1Physics_1_1IntensityBuilderXML_1_1DataContainer.html#a2fc0008484e866620c262baf96f95055">Weights</a>,</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a04b2cab62a3477523b6f9b03561b66b6">PhspRecoData</a>.<a class="code" href="structComPWA_1_1Physics_1_1IntensityBuilderXML_1_1DataContainer.html#a3cf4ab033f5fa0aaea95103d740747ab">WeightSum</a>, IntegratorClassName);</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span> </div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  NormalizedFT->addNode(normtree);</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span> </div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  <span class="keywordflow">return</span> NormalizedFT;</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span> }</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span> </div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span> std::shared_ptr<ComPWA::FunctionTree::TreeNode></div><div class="line"><a name="l00343"></a><span class="lineno"><a class="line" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#aae2b47ca71eab41ffd9bd6af14794711"> 343</a></span> <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#aae2b47ca71eab41ffd9bd6af14794711">IntensityBuilderXML::createIntegrationStrategyFT</a>(</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  std::shared_ptr<ComPWA::FunctionTree::TreeNode> UnnormalizedIntensity,</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  std::shared_ptr<<a class="code" href="classComPWA_1_1FunctionTree_1_1Value.html">ComPWA::FunctionTree::Value</a><std::vector<double>>></div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  PhspWeights,</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  <span class="keywordtype">double</span> PhspWeightSum, std::string IntegratorClassName) {</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  LOG(TRACE) << <span class="stringliteral">"creating IntegrationStrategy ..."</span>;</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span> </div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  <span class="keyword">using namespace </span><a class="code" href="namespaceComPWA_1_1FunctionTree.html">ComPWA::FunctionTree</a>;</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  std::shared_ptr<TreeNode> tr;</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span> </div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  <span class="keywordflow">if</span> (IntegratorClassName == <span class="stringliteral">"MCIntegrationStrategy"</span>) {</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  <span class="comment">// update the PhspData container</span></div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a82fac4c99121d671e82fd1fee7e491eb">updateDataContainerState</a>();</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span> </div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  tr = std::make_shared<TreeNode>(</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  std::shared_ptr<Strategy>(<span class="keyword">new</span> <a class="code" href="classComPWA_1_1FunctionTree_1_1Inverse.html">Inverse</a>(<a class="code" href="namespaceComPWA_1_1FunctionTree.html#aaa83a221399e408bae789ab6b24ff2baa35b3f1647608d32886e240032bb1658e">ParType::DOUBLE</a>)));</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  <span class="keyword">auto</span> Integral = std::make_shared<TreeNode>(</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  std::shared_ptr<Strategy>(<span class="keyword">new</span> <a class="code" href="classComPWA_1_1FunctionTree_1_1MultAll.html">MultAll</a>(<a class="code" href="namespaceComPWA_1_1FunctionTree.html#aaa83a221399e408bae789ab6b24ff2baa35b3f1647608d32886e240032bb1658e">ParType::DOUBLE</a>)));</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  tr->addNode(Integral);</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  Integral->addNodes(</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  {<a class="code" href="namespaceComPWA_1_1FunctionTree.html#a363739a3a01f67438abc98fe58ee8763">createLeaf</a>(<a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a034842a1b149b34e67210c7bf2d2f14c">Kinematic</a>.<a class="code" href="classComPWA_1_1Kinematics.html#a08c3ac264f7abaa82ecb19da5649a28a">phspVolume</a>(), <span class="stringliteral">"PhspVolume"</span>),</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  <a class="code" href="namespaceComPWA_1_1FunctionTree.html#a363739a3a01f67438abc98fe58ee8763">createLeaf</a>(1.0 / PhspWeightSum, <span class="stringliteral">"Inverse_PhspWeightSum"</span>)});</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  <span class="keyword">auto</span> Sum = std::make_shared<TreeNode>(</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  std::shared_ptr<Strategy>(<span class="keyword">new</span> <a class="code" href="classComPWA_1_1FunctionTree_1_1AddAll.html">AddAll</a>(<a class="code" href="namespaceComPWA_1_1FunctionTree.html#aaa83a221399e408bae789ab6b24ff2baa35b3f1647608d32886e240032bb1658e">ParType::DOUBLE</a>)));</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  Integral->addNode(Sum);</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  <span class="keyword">auto</span> WeightedIntensities = std::make_shared<TreeNode>(</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  std::shared_ptr<Strategy>(<span class="keyword">new</span> <a class="code" href="classComPWA_1_1FunctionTree_1_1MultAll.html">MultAll</a>(<a class="code" href="namespaceComPWA_1_1FunctionTree.html#aaa83a221399e408bae789ab6b24ff2baaee734f211bb0e8e7ff00a42b18171eba">ParType::MDOUBLE</a>)));</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  Sum->addNode(WeightedIntensities);</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span> </div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  <span class="keywordflow">if</span> (PhspWeights)</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  WeightedIntensities->addNode(<a class="code" href="namespaceComPWA_1_1FunctionTree.html#a363739a3a01f67438abc98fe58ee8763">createLeaf</a>(PhspWeights));</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  WeightedIntensities->addNode(UnnormalizedIntensity);</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  LOG(WARNING) << <span class="stringliteral">"IntensityBuilderXML::createIntegrationStrategyFT(): "</span></div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  <span class="stringliteral">"IntegrationStrategy type "</span></div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  << IntegratorClassName << <span class="stringliteral">" unknown!"</span>;</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  }</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span> </div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  <span class="keywordflow">return</span> tr;</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span> }</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span> </div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span> std::shared_ptr<ComPWA::FunctionTree::TreeNode></div><div class="line"><a name="l00385"></a><span class="lineno"><a class="line" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#ae7402fc5586eb420b92bf72a569fc985"> 385</a></span> <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#ae7402fc5586eb420b92bf72a569fc985">IntensityBuilderXML::createAmplitudeFT</a>(</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  <span class="keyword">const</span> boost::property_tree::ptree &pt,</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  <span class="keyword">const</span> <a class="code" href="classComPWA_1_1FunctionTree_1_1ParameterList.html">ComPWA::FunctionTree::ParameterList</a> &DataSample) {</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  <span class="keyword">auto</span> ampclass = pt.get<std::string>(<span class="stringliteral">"<xmlattr>.Class"</span>);</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span> </div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  std::shared_ptr<ComPWA::FunctionTree::TreeNode> FT(<span class="keyword">nullptr</span>);</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span> </div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  <span class="keywordflow">if</span> (ampclass == <span class="stringliteral">"HelicityDecay"</span>) {</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  FT = <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a8cc4d27b00a07268bd20c17d21e083f9">createHelicityDecayFT</a>(pt, DataSample);</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (ampclass == <span class="stringliteral">"CoefficientAmplitude"</span>) {</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  FT = <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#ae2e013217dbbc8d09951370b53e1b325">createCoefficientAmplitudeFT</a>(pt, DataSample);</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (ampclass == <span class="stringliteral">"SequentialAmplitude"</span>) {</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>  FT = <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a55add478e1164378349eaa9d72188651">createSequentialAmplitudeFT</a>(pt, DataSample);</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (ampclass == <span class="stringliteral">"NormalizedAmplitude"</span>) {</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  FT = <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a4163beea1113a76aca71c0a751c1b05e">createNormalizedAmplitudeFT</a>(pt, DataSample);</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  <span class="keywordflow">throw</span> <a class="code" href="classComPWA_1_1BadConfig.html">BadConfig</a>(</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  <span class="stringliteral">"IntensityBuilderXML::createAmplitude(): Unknown amplitude "</span> +</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>  ampclass);</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>  }</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span> </div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>  <span class="keyword">auto</span> Component = pt.get_optional<std::string>(<span class="stringliteral">"<xmlattr>.Component"</span>);</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  <span class="keywordflow">if</span> (Component.is_initialized()) {</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>  <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a937fbbe89ab82c5824a2eab4b32ef577">addFunctionTreeComponent</a>(Component.get(), <span class="stringliteral">"Amplitude"</span>, FT);</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  }</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span> </div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  <span class="keywordflow">return</span> FT;</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span> }</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span> </div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span> std::shared_ptr<ComPWA::FunctionTree::TreeNode></div><div class="line"><a name="l00415"></a><span class="lineno"><a class="line" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a4163beea1113a76aca71c0a751c1b05e"> 415</a></span> <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a4163beea1113a76aca71c0a751c1b05e">IntensityBuilderXML::createNormalizedAmplitudeFT</a>(</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  <span class="keyword">const</span> boost::property_tree::ptree &pt,</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  <span class="keyword">const</span> <a class="code" href="classComPWA_1_1FunctionTree_1_1ParameterList.html">ComPWA::FunctionTree::ParameterList</a> &DataSample) {</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  LOG(TRACE) << <span class="stringliteral">"creating NormalizedAmplitude ..."</span>;</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span> </div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  <span class="keywordflow">if</span> (<a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a93aac4c16934c7c4b650189fe166458f">TruePhspSample</a>.<a class="code" href="structComPWA_1_1EventCollection.html#ae046211ede6817d51d769b372aab67dc">Events</a>.size() == 0)</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  LOG(FATAL) << <span class="stringliteral">"IntensityBuilderXML::createNormalizedAmplitudeFT(): "</span></div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  <span class="stringliteral">"true phsp sample is not set!"</span>;</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a40baa193066450416f1c4eb076219b2c">updateDataContainerWeights</a>(<a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#abfa584a1ccc381745c8f6035d4bdb0fd">PhspData</a>, <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a93aac4c16934c7c4b650189fe166458f">TruePhspSample</a>);</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span> </div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  boost::property_tree::ptree UnnormalizedPT;</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  std::string IntegratorClassName(<span class="stringliteral">"MCIntegrationStrategy"</span>);</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span> </div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &x : pt) {</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>  <span class="keywordflow">if</span> (x.first == <span class="stringliteral">"<xmlattr>"</span>)</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  <span class="keywordflow">if</span> (x.first == <span class="stringliteral">"Amplitude"</span>) {</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>  UnnormalizedPT = x.second;</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>  } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (x.first == <span class="stringliteral">"IntegrationStrategy"</span>) {</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  <span class="keyword">auto</span> OptionalIntegratorName =</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>  pt.get_optional<std::string>(<span class="stringliteral">"<xmlattr>.IntegrationStrategy"</span>);</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>  <span class="keywordflow">if</span> (OptionalIntegratorName.is_initialized()) {</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>  IntegratorClassName = OptionalIntegratorName.get();</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>  } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  LOG(TRACE)</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>  << <span class="stringliteral">"IntensityBuilderXML::createNormalizedAmplitudeFT(): creating "</span></div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>  <span class="stringliteral">"default IntegrationStrategy *MCIntegrationStrategy*"</span>;</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>  }</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>  LOG(WARNING)</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>  << <span class="stringliteral">"IntensityBuilderXML::createNormalizedAmplitudeFT(): found "</span></div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>  <span class="stringliteral">"unknown tag "</span></div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>  << x.first;</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>  }</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  }</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span> </div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>  <span class="keyword">auto</span> FTData = <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#ae7402fc5586eb420b92bf72a569fc985">createAmplitudeFT</a>(UnnormalizedPT, DataSample);</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span> </div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>  <span class="keyword">using namespace </span><a class="code" href="namespaceComPWA_1_1FunctionTree.html">ComPWA::FunctionTree</a>;</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span> </div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>  <span class="keyword">auto</span> NormalizedFT =</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>  std::make_shared<TreeNode>(std::make_shared<MultAll>(<a class="code" href="namespaceComPWA_1_1FunctionTree.html#aaa83a221399e408bae789ab6b24ff2baaf48127ec159d317d7adf99a2a13f5d63">ParType::MCOMPLEX</a>));</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span> </div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>  NormalizedFT->addNode(FTData);</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span> </div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>  <span class="keywordtype">bool</span> PreviousSetting = <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a046ae8de18b46775d1dda620b6f394ad">ComponentRegisteringEnabled</a>;</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>  <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a046ae8de18b46775d1dda620b6f394ad">ComponentRegisteringEnabled</a> = <span class="keyword">false</span>;</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>  <span class="keyword">auto</span> FTPhspData = <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#ae7402fc5586eb420b92bf72a569fc985">createAmplitudeFT</a>(UnnormalizedPT, <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#abfa584a1ccc381745c8f6035d4bdb0fd">PhspData</a>.<a class="code" href="structComPWA_1_1Physics_1_1IntensityBuilderXML_1_1DataContainer.html#a07558b8e6241e2f5bf5fcc0652005a40">Data</a>);</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>  <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a046ae8de18b46775d1dda620b6f394ad">ComponentRegisteringEnabled</a> = PreviousSetting;</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>  <span class="comment">// this phspdata function tree has to be made into a double valued function</span></div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>  <span class="keyword">auto</span> FTPhspDataAbsSquared =</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>  std::make_shared<TreeNode>(std::make_shared<AbsSquare>(<a class="code" href="namespaceComPWA_1_1FunctionTree.html#aaa83a221399e408bae789ab6b24ff2baaee734f211bb0e8e7ff00a42b18171eba">ParType::MDOUBLE</a>));</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>  FTPhspDataAbsSquared->addNode(FTPhspData);</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span> </div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>  <span class="keyword">auto</span> normtreesquared =</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>  <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#aae2b47ca71eab41ffd9bd6af14794711">createIntegrationStrategyFT</a>(FTPhspDataAbsSquared, <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#abfa584a1ccc381745c8f6035d4bdb0fd">PhspData</a>.<a class="code" href="structComPWA_1_1Physics_1_1IntensityBuilderXML_1_1DataContainer.html#a2fc0008484e866620c262baf96f95055">Weights</a>,</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>  <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#abfa584a1ccc381745c8f6035d4bdb0fd">PhspData</a>.<a class="code" href="structComPWA_1_1Physics_1_1IntensityBuilderXML_1_1DataContainer.html#a3cf4ab033f5fa0aaea95103d740747ab">WeightSum</a>, IntegratorClassName);</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span> </div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>  <span class="keyword">auto</span> normtree =</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>  std::make_shared<TreeNode>(std::make_shared<SquareRoot>(<a class="code" href="namespaceComPWA_1_1FunctionTree.html#aaa83a221399e408bae789ab6b24ff2baa35b3f1647608d32886e240032bb1658e">ParType::DOUBLE</a>));</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span> </div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>  normtree->addNode(normtreesquared);</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span> </div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>  NormalizedFT->addNode(normtree);</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span> </div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>  <span class="keywordflow">return</span> NormalizedFT;</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span> }</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span> </div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span> std::shared_ptr<ComPWA::FunctionTree::TreeNode></div><div class="line"><a name="l00484"></a><span class="lineno"><a class="line" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#ae2e013217dbbc8d09951370b53e1b325"> 484</a></span> <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#ae2e013217dbbc8d09951370b53e1b325">IntensityBuilderXML::createCoefficientAmplitudeFT</a>(</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>  <span class="keyword">const</span> boost::property_tree::ptree &pt,</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>  <span class="keyword">const</span> <a class="code" href="classComPWA_1_1FunctionTree_1_1ParameterList.html">ComPWA::FunctionTree::ParameterList</a> &DataSample) {</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>  LOG(TRACE) << <span class="stringliteral">"constructing CoefficientAmplitude ..."</span>;</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span> </div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>  std::shared_ptr<FitParameter> Magnitude(<span class="keyword">nullptr</span>);</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>  std::shared_ptr<FitParameter> Phase(<span class="keyword">nullptr</span>);</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>  <span class="keyword">auto</span> PreFactor = std::complex<double>(1, 0);</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>  <span class="keywordtype">bool</span> IsPreFactorSet(<span class="keyword">false</span>);</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>  boost::property_tree::ptree Amplitude;</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &v : pt) {</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>  <span class="keywordflow">if</span> (v.first == <span class="stringliteral">"Parameter"</span>) {</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>  <span class="keywordflow">if</span> (v.second.get<std::string>(<span class="stringliteral">"<xmlattr>.Type"</span>) == <span class="stringliteral">"Magnitude"</span>)</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>  Magnitude = std::make_shared<FitParameter>(v.second);</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>  <span class="keywordflow">if</span> (v.second.get<std::string>(<span class="stringliteral">"<xmlattr>.Type"</span>) == <span class="stringliteral">"Phase"</span>)</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>  Phase = std::make_shared<FitParameter>(v.second);</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>  } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (v.first == <span class="stringliteral">"PreFactor"</span>) {</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>  IsPreFactorSet = <span class="keyword">true</span>;</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>  boost::optional<double> optr =</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>  v.second.get_optional<<span class="keywordtype">double</span>>(<span class="stringliteral">"<xmlattr>.Magnitude"</span>);</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>  <span class="keywordflow">if</span> (optr.is_initialized()) {</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>  <span class="keywordtype">double</span> r(optr.value());</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>  <span class="keywordflow">if</span> (r < 0.0)</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>  <span class="keywordflow">throw</span> <a class="code" href="classComPWA_1_1BadConfig.html">BadConfig</a>(</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>  <span class="stringliteral">"IntensityBuilderXML::createCoefficientAmplitudeFT() | "</span></div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>  <span class="stringliteral">"PreFactor Magnitude below zero!"</span>);</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>  <span class="keywordtype">double</span> Phase(0.0);</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>  boost::optional<double> OptPhase =</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>  v.second.get_optional<<span class="keywordtype">double</span>>(<span class="stringliteral">"<xmlattr>.Phase"</span>);</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>  <span class="keywordflow">if</span> (OptPhase.is_initialized())</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>  Phase = OptPhase.value();</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>  PreFactor = std::polar(r, Phase);</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>  } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>  <span class="keywordtype">double</span> Real = v.second.get<<span class="keywordtype">double</span>>(<span class="stringliteral">"<xmlattr>.Real"</span>);</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>  <span class="keywordtype">double</span> Imaginary(0.0);</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>  boost::optional<double> OptIm =</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>  v.second.get_optional<<span class="keywordtype">double</span>>(<span class="stringliteral">"<xmlattr>.Imaginary"</span>);</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>  <span class="keywordflow">if</span> (OptIm.is_initialized())</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>  Imaginary = OptIm.value();</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>  PreFactor = std::complex<double>(Real, Imaginary);</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>  }</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>  } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (v.first == <span class="stringliteral">"Amplitude"</span>) {</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>  Amplitude = v.second;</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>  } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (v.first != <span class="stringliteral">"<xmlattr>"</span>) {</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>  <span class="keywordflow">throw</span> <a class="code" href="classComPWA_1_1BadConfig.html">BadConfig</a>(<span class="stringliteral">"IntensityBuilderXML::createCoefficientAmplitudeFT() | "</span></div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>  <span class="stringliteral">"Unknown tag "</span> +</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>  v.first + <span class="stringliteral">"!"</span>);</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>  }</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>  }</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span> </div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>  <span class="keyword">auto</span> amp_ft = <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#ae7402fc5586eb420b92bf72a569fc985">createAmplitudeFT</a>(Amplitude, DataSample);</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span> </div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>  <span class="keyword">auto</span> tr = std::make_shared<ComPWA::FunctionTree::TreeNode>(</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>  <a class="code" href="namespaceComPWA_1_1FunctionTree.html#a1c92bdd43dd1d5847f10458ac83f0170">ComPWA::FunctionTree::MComplex</a>(<span class="stringliteral">""</span>, 0),</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>  std::make_shared<ComPWA::FunctionTree::MultAll>(</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>  <a class="code" href="namespaceComPWA_1_1FunctionTree.html#aaa83a221399e408bae789ab6b24ff2baaf48127ec159d317d7adf99a2a13f5d63">ComPWA::FunctionTree::ParType::MCOMPLEX</a>));</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span> </div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>  <span class="keywordtype">bool</span> AddStrength(<span class="keyword">true</span>);</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>  <span class="keywordflow">if</span> (IsPreFactorSet) {</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>  tr->addNode(<a class="code" href="namespaceComPWA_1_1FunctionTree.html#a363739a3a01f67438abc98fe58ee8763">FunctionTree::createLeaf</a>(PreFactor, <span class="stringliteral">"PreFactor"</span>));</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>  <span class="keywordflow">if</span> (!Magnitude && !Phase) {</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>  AddStrength = <span class="keyword">false</span>;</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>  } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!Magnitude && Phase) {</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>  <span class="keywordflow">throw</span> <a class="code" href="classComPWA_1_1BadParameter.html">BadParameter</a>(<span class="stringliteral">"IntensityBuilderXML::createCoefficientAmplitude() | "</span></div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>  <span class="stringliteral">"No magnitude parameter found while phase is set."</span>);</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>  } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!Phase && Magnitude)</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>  <span class="keywordflow">throw</span> <a class="code" href="classComPWA_1_1BadParameter.html">BadParameter</a>(<span class="stringliteral">"IntensityBuilderXML::createCoefficientAmplitude() | "</span></div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>  <span class="stringliteral">"No phase parameter found, while magnitude is set."</span>);</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>  } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>  <span class="keywordflow">if</span> (!Magnitude)</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>  <span class="keywordflow">throw</span> <a class="code" href="classComPWA_1_1BadParameter.html">BadParameter</a>(<span class="stringliteral">"IntensityBuilderXML::createCoefficientAmplitude() | "</span></div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>  <span class="stringliteral">"No magnitude parameter found and no prefactor set."</span>);</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>  <span class="keywordflow">if</span> (!Phase)</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>  <span class="keywordflow">throw</span> <a class="code" href="classComPWA_1_1BadParameter.html">BadParameter</a>(<span class="stringliteral">"IntensityBuilderXML::createCoefficientAmplitude() | "</span></div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>  <span class="stringliteral">"No phase parameter found, while magnitude is set."</span>);</div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>  }</div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span> </div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>  <span class="keywordflow">if</span> (AddStrength) {</div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>  Magnitude = <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a1156f6f64911708e34d6c158d49cf9d1">Parameters</a>.<a class="code" href="classComPWA_1_1FunctionTree_1_1ParameterList.html#a874c4c9cc3ef8abdb43306df926ba8a7">addUniqueParameter</a>(Magnitude);</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>  Phase = <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a1156f6f64911708e34d6c158d49cf9d1">Parameters</a>.<a class="code" href="classComPWA_1_1FunctionTree_1_1ParameterList.html#a874c4c9cc3ef8abdb43306df926ba8a7">addUniqueParameter</a>(Phase);</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span> </div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>  <span class="keyword">auto</span> Strength = std::make_shared<ComPWA::FunctionTree::TreeNode>(</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>  std::make_shared<ComPWA::FunctionTree::Value<std::complex<double>>>(),</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>  std::make_shared<ComPWA::FunctionTree::Complexify>(</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>  <a class="code" href="namespaceComPWA_1_1FunctionTree.html#aaa83a221399e408bae789ab6b24ff2baa77e8a985f33cbdd3deafbf3bfe8287ef">ComPWA::FunctionTree::ParType::COMPLEX</a>));</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>  Strength->addNodes({<a class="code" href="namespaceComPWA_1_1FunctionTree.html#a363739a3a01f67438abc98fe58ee8763">createLeaf</a>(Magnitude), <a class="code" href="namespaceComPWA_1_1FunctionTree.html#a363739a3a01f67438abc98fe58ee8763">createLeaf</a>(Phase)});</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span> </div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>  tr->addNode(Strength);</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>  }</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>  tr->addNode(amp_ft);</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span> </div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>  <span class="keywordflow">return</span> tr;</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span> }</div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span> </div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span> std::shared_ptr<ComPWA::FunctionTree::TreeNode></div><div class="line"><a name="l00579"></a><span class="lineno"><a class="line" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a55add478e1164378349eaa9d72188651"> 579</a></span> <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a55add478e1164378349eaa9d72188651">IntensityBuilderXML::createSequentialAmplitudeFT</a>(</div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>  <span class="keyword">const</span> boost::property_tree::ptree &pt,</div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>  <span class="keyword">const</span> <a class="code" href="classComPWA_1_1FunctionTree_1_1ParameterList.html">ComPWA::FunctionTree::ParameterList</a> &DataSample) {</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>  LOG(TRACE) << <span class="stringliteral">"constructing SequentialAmplitude ..."</span>;</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span> </div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>  std::vector<std::shared_ptr<ComPWA::FunctionTree::TreeNode>> Amplitudes;</div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &v : pt) {</div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>  <span class="keywordflow">if</span> (v.first == <span class="stringliteral">"Amplitude"</span>) {</div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>  std::shared_ptr<ComPWA::FunctionTree::TreeNode> AmpTree =</div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>  <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#ae7402fc5586eb420b92bf72a569fc985">createAmplitudeFT</a>(v.second, DataSample);</div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span> </div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>  Amplitudes.push_back(AmpTree);</div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span>  } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (v.first != <span class="stringliteral">"<xmlattr>"</span>) {</div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>  <span class="keywordflow">throw</span> <a class="code" href="classComPWA_1_1BadConfig.html">BadConfig</a>(<span class="stringliteral">"SequentialAmplitude::createSequentialAmplitude() | "</span></div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>  <span class="stringliteral">"Unknown tag "</span> +</div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>  v.first + <span class="stringliteral">"!"</span>);</div><div class="line"><a name="l00595"></a><span class="lineno"> 595</span>  }</div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span>  }</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span> </div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span>  <span class="keyword">using namespace </span><a class="code" href="namespaceComPWA_1_1FunctionTree.html">ComPWA::FunctionTree</a>;</div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>  <span class="keyword">auto</span> tr =</div><div class="line"><a name="l00600"></a><span class="lineno"> 600</span>  std::make_shared<TreeNode>(std::make_shared<MultAll>(<a class="code" href="namespaceComPWA_1_1FunctionTree.html#aaa83a221399e408bae789ab6b24ff2baaf48127ec159d317d7adf99a2a13f5d63">ParType::MCOMPLEX</a>));</div><div class="line"><a name="l00601"></a><span class="lineno"> 601</span> </div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> x : Amplitudes) {</div><div class="line"><a name="l00603"></a><span class="lineno"> 603</span>  tr->addNode(x);</div><div class="line"><a name="l00604"></a><span class="lineno"> 604</span>  }</div><div class="line"><a name="l00605"></a><span class="lineno"> 605</span> </div><div class="line"><a name="l00606"></a><span class="lineno"> 606</span>  <span class="keywordflow">return</span> tr;</div><div class="line"><a name="l00607"></a><span class="lineno"> 607</span> }</div><div class="line"><a name="l00608"></a><span class="lineno"> 608</span> </div><div class="line"><a name="l00609"></a><span class="lineno"><a class="line" href="namespaceComPWA_1_1Physics.html#aefdac3077b44661e2910211fba2ab593"> 609</a></span> <a class="code" href="structComPWA_1_1Physics_1_1TwoBodyDecayInfo.html">TwoBodyDecayInfo</a> <a class="code" href="namespaceComPWA_1_1Physics.html#aefdac3077b44661e2910211fba2ab593">extractDecayInfo</a>(<span class="keyword">const</span> boost::property_tree::ptree &pt) {</div><div class="line"><a name="l00610"></a><span class="lineno"> 610</span>  <span class="comment">// Read name and helicities from decay products</span></div><div class="line"><a name="l00611"></a><span class="lineno"> 611</span>  <span class="keyword">auto</span> decayProducts = pt.get_child(<span class="stringliteral">"DecayProducts"</span>);</div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span>  <span class="keywordflow">if</span> (decayProducts.size() != 2)</div><div class="line"><a name="l00613"></a><span class="lineno"> 613</span>  <span class="keywordflow">throw</span> boost::property_tree::ptree_error(</div><div class="line"><a name="l00614"></a><span class="lineno"> 614</span>  <span class="stringliteral">"IntensityBuilderXML::createHelicityDecayFT(): Expect exactly two "</span></div><div class="line"><a name="l00615"></a><span class="lineno"> 615</span>  <span class="stringliteral">"decay products ("</span> +</div><div class="line"><a name="l00616"></a><span class="lineno"> 616</span>  std::to_string(decayProducts.size()) + <span class="stringliteral">" given)!"</span>);</div><div class="line"><a name="l00617"></a><span class="lineno"> 617</span> </div><div class="line"><a name="l00618"></a><span class="lineno"> 618</span>  <span class="keyword">auto</span> recoil =</div><div class="line"><a name="l00619"></a><span class="lineno"> 619</span>  pt.get_optional<std::string>(<span class="stringliteral">"RecoilSystem.<xmlattr>.RecoilFinalState"</span>);</div><div class="line"><a name="l00620"></a><span class="lineno"> 620</span>  <a class="code" href="namespaceComPWA.html#ae6e7133b1bee4d3e7d0d01f1cdb49278">IndexList</a> RecoilState;</div><div class="line"><a name="l00621"></a><span class="lineno"> 621</span>  <span class="keywordflow">if</span> (recoil) {</div><div class="line"><a name="l00622"></a><span class="lineno"> 622</span>  RecoilState = <a class="code" href="namespaceComPWA_1_1Physics.html#a3eba68d6543b91b517a20c766a791986">stringToVectInt</a>(recoil.get());</div><div class="line"><a name="l00623"></a><span class="lineno"> 623</span>  }</div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span>  <span class="keyword">auto</span> parent_recoil = pt.get_optional<std::string>(</div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span>  <span class="stringliteral">"RecoilSystem.<xmlattr>.ParentRecoilFinalState"</span>);</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span>  <a class="code" href="namespaceComPWA.html#ae6e7133b1bee4d3e7d0d01f1cdb49278">IndexList</a> ParentRecoilState;</div><div class="line"><a name="l00627"></a><span class="lineno"> 627</span>  <span class="keywordflow">if</span> (parent_recoil) {</div><div class="line"><a name="l00628"></a><span class="lineno"> 628</span>  ParentRecoilState = <a class="code" href="namespaceComPWA_1_1Physics.html#a3eba68d6543b91b517a20c766a791986">stringToVectInt</a>(parent_recoil.get());</div><div class="line"><a name="l00629"></a><span class="lineno"> 629</span>  }</div><div class="line"><a name="l00630"></a><span class="lineno"> 630</span>  std::vector<IndexList> DecayProductStates;</div><div class="line"><a name="l00631"></a><span class="lineno"> 631</span>  std::vector<std::string> Names;</div><div class="line"><a name="l00632"></a><span class="lineno"> 632</span>  std::vector<double> Helicities;</div><div class="line"><a name="l00633"></a><span class="lineno"> 633</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> p : decayProducts) {</div><div class="line"><a name="l00634"></a><span class="lineno"> 634</span>  DecayProductStates.push_back(</div><div class="line"><a name="l00635"></a><span class="lineno"> 635</span>  <a class="code" href="namespaceComPWA_1_1Physics.html#a3eba68d6543b91b517a20c766a791986">stringToVectInt</a>(p.second.get<std::string>(<span class="stringliteral">"<xmlattr>.FinalState"</span>)));</div><div class="line"><a name="l00636"></a><span class="lineno"> 636</span>  Names.push_back(p.second.get<std::string>(<span class="stringliteral">"<xmlattr>.Name"</span>));</div><div class="line"><a name="l00637"></a><span class="lineno"> 637</span>  Helicities.push_back(p.second.get<<span class="keywordtype">double</span>>(<span class="stringliteral">"<xmlattr>.Helicity"</span>));</div><div class="line"><a name="l00638"></a><span class="lineno"> 638</span>  }</div><div class="line"><a name="l00639"></a><span class="lineno"> 639</span>  <span class="keywordflow">return</span> <a class="code" href="structComPWA_1_1Physics_1_1TwoBodyDecayInfo.html">TwoBodyDecayInfo</a>{</div><div class="line"><a name="l00640"></a><span class="lineno"> 640</span>  <a class="code" href="classComPWA_1_1Physics_1_1SubSystem.html">SubSystem</a>(DecayProductStates, RecoilState, ParentRecoilState),</div><div class="line"><a name="l00641"></a><span class="lineno"> 641</span>  std::make_pair(Names.at(0), Names.at(1)),</div><div class="line"><a name="l00642"></a><span class="lineno"> 642</span>  std::make_pair(Helicities.at(0), Helicities.at(1))};</div><div class="line"><a name="l00643"></a><span class="lineno"> 643</span> }</div><div class="line"><a name="l00644"></a><span class="lineno"> 644</span> </div><div class="line"><a name="l00645"></a><span class="lineno"> 645</span> std::shared_ptr<ComPWA::FunctionTree::TreeNode></div><div class="line"><a name="l00646"></a><span class="lineno"><a class="line" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a8cc4d27b00a07268bd20c17d21e083f9"> 646</a></span> <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a8cc4d27b00a07268bd20c17d21e083f9">IntensityBuilderXML::createHelicityDecayFT</a>(</div><div class="line"><a name="l00647"></a><span class="lineno"> 647</span>  <span class="keyword">const</span> boost::property_tree::ptree &pt,</div><div class="line"><a name="l00648"></a><span class="lineno"> 648</span>  <span class="keyword">const</span> <a class="code" href="classComPWA_1_1FunctionTree_1_1ParameterList.html">ComPWA::FunctionTree::ParameterList</a> &DataSample) {</div><div class="line"><a name="l00649"></a><span class="lineno"> 649</span>  LOG(TRACE) << <span class="stringliteral">"IntensityBuilderXML::createHelicityDecayFT(): "</span>;</div><div class="line"><a name="l00650"></a><span class="lineno"> 650</span>  <span class="keyword">auto</span> &kin = <span class="keyword">dynamic_cast<</span><a class="code" href="classComPWA_1_1Physics_1_1HelicityFormalism_1_1HelicityKinematics.html">HelicityFormalism::HelicityKinematics</a> &<span class="keyword">></span>(<a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a034842a1b149b34e67210c7bf2d2f14c">Kinematic</a>);</div><div class="line"><a name="l00651"></a><span class="lineno"> 651</span>  <span class="keyword">auto</span> DecayProductInfo = <a class="code" href="namespaceComPWA_1_1Physics.html#aefdac3077b44661e2910211fba2ab593">extractDecayInfo</a>(pt);</div><div class="line"><a name="l00652"></a><span class="lineno"> 652</span>  <span class="keyword">auto</span> KinVarNames = kin.registerSubSystem(DecayProductInfo.SubSys);</div><div class="line"><a name="l00653"></a><span class="lineno"> 653</span>  <span class="keyword">auto</span> <span class="keyword">const</span> &FinalStates = DecayProductInfo.SubSys.getFinalStates();</div><div class="line"><a name="l00654"></a><span class="lineno"> 654</span>  std::pair<std::string, std::string> DecayProductInvMassNames;</div><div class="line"><a name="l00655"></a><span class="lineno"> 655</span>  <span class="keywordflow">if</span> (FinalStates.at(0).size() > 1) {</div><div class="line"><a name="l00656"></a><span class="lineno"> 656</span>  DecayProductInvMassNames.first =</div><div class="line"><a name="l00657"></a><span class="lineno"> 657</span>  kin.registerInvariantMassSquared(FinalStates.at(0));</div><div class="line"><a name="l00658"></a><span class="lineno"> 658</span>  }</div><div class="line"><a name="l00659"></a><span class="lineno"> 659</span>  <span class="keywordflow">if</span> (FinalStates.at(1).size() > 1) {</div><div class="line"><a name="l00660"></a><span class="lineno"> 660</span>  DecayProductInvMassNames.second =</div><div class="line"><a name="l00661"></a><span class="lineno"> 661</span>  kin.registerInvariantMassSquared(FinalStates.at(1));</div><div class="line"><a name="l00662"></a><span class="lineno"> 662</span>  }</div><div class="line"><a name="l00663"></a><span class="lineno"> 663</span> </div><div class="line"><a name="l00664"></a><span class="lineno"> 664</span>  <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a82fac4c99121d671e82fd1fee7e491eb">updateDataContainerState</a>();</div><div class="line"><a name="l00665"></a><span class="lineno"> 665</span> </div><div class="line"><a name="l00666"></a><span class="lineno"> 666</span>  <span class="keyword">auto</span> InvMassSq =</div><div class="line"><a name="l00667"></a><span class="lineno"> 667</span>  <a class="code" href="namespaceComPWA_1_1FunctionTree.html#a3dec4982ca71cb3dbe5340326aa29937">FunctionTree::findMDoubleValue</a>(std::get<0>(KinVarNames), DataSample);</div><div class="line"><a name="l00668"></a><span class="lineno"> 668</span>  <span class="keyword">auto</span> Theta =</div><div class="line"><a name="l00669"></a><span class="lineno"> 669</span>  <a class="code" href="namespaceComPWA_1_1FunctionTree.html#a3dec4982ca71cb3dbe5340326aa29937">FunctionTree::findMDoubleValue</a>(std::get<1>(KinVarNames), DataSample);</div><div class="line"><a name="l00670"></a><span class="lineno"> 670</span>  <span class="keyword">auto</span> Phi =</div><div class="line"><a name="l00671"></a><span class="lineno"> 671</span>  <a class="code" href="namespaceComPWA_1_1FunctionTree.html#a3dec4982ca71cb3dbe5340326aa29937">FunctionTree::findMDoubleValue</a>(std::get<2>(KinVarNames), DataSample);</div><div class="line"><a name="l00672"></a><span class="lineno"> 672</span> </div><div class="line"><a name="l00673"></a><span class="lineno"> 673</span>  <span class="keyword">auto</span> parMass1 = std::make_shared<FitParameter>(</div><div class="line"><a name="l00674"></a><span class="lineno"> 674</span>  <a class="code" href="namespaceComPWA.html#a0c8ca3e66b45bb8d2299411c886f740c">ComPWA::findParticle</a>(<a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#af72f6986c01763554d47d4d19229a412">PartList</a>, DecayProductInfo.Names.first).<a class="code" href="classComPWA_1_1ParticleProperties.html#ac0d97fe11988cdaaa65356e3cdf1f40c">getMass</a>());</div><div class="line"><a name="l00675"></a><span class="lineno"> 675</span>  <span class="keyword">auto</span> parMass2 = std::make_shared<FitParameter>(</div><div class="line"><a name="l00676"></a><span class="lineno"> 676</span>  <a class="code" href="namespaceComPWA.html#a0c8ca3e66b45bb8d2299411c886f740c">ComPWA::findParticle</a>(<a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#af72f6986c01763554d47d4d19229a412">PartList</a>, DecayProductInfo.Names.second).<a class="code" href="classComPWA_1_1ParticleProperties.html#ac0d97fe11988cdaaa65356e3cdf1f40c">getMass</a>());</div><div class="line"><a name="l00677"></a><span class="lineno"> 677</span>  parMass1 = <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a1156f6f64911708e34d6c158d49cf9d1">Parameters</a>.<a class="code" href="classComPWA_1_1FunctionTree_1_1ParameterList.html#a874c4c9cc3ef8abdb43306df926ba8a7">addUniqueParameter</a>(parMass1);</div><div class="line"><a name="l00678"></a><span class="lineno"> 678</span>  parMass2 = <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a1156f6f64911708e34d6c158d49cf9d1">Parameters</a>.<a class="code" href="classComPWA_1_1FunctionTree_1_1ParameterList.html#a874c4c9cc3ef8abdb43306df926ba8a7">addUniqueParameter</a>(parMass2);</div><div class="line"><a name="l00679"></a><span class="lineno"> 679</span> </div><div class="line"><a name="l00680"></a><span class="lineno"> 680</span>  <span class="keyword">auto</span> InvMassDaughter1 = <a class="code" href="namespaceComPWA_1_1FunctionTree.html#a71772f3f9a738acd9d2476d99d51d9b4">FunctionTree::MDouble</a>(</div><div class="line"><a name="l00681"></a><span class="lineno"> 681</span>  parMass1->name(), std::vector<double>{std::pow(parMass1->value(), 2)});</div><div class="line"><a name="l00682"></a><span class="lineno"> 682</span>  <span class="keywordflow">if</span> (DecayProductInvMassNames.first != <span class="stringliteral">""</span>) {</div><div class="line"><a name="l00683"></a><span class="lineno"> 683</span>  InvMassDaughter1 = <a class="code" href="namespaceComPWA_1_1FunctionTree.html#a3dec4982ca71cb3dbe5340326aa29937">FunctionTree::findMDoubleValue</a>(</div><div class="line"><a name="l00684"></a><span class="lineno"> 684</span>  DecayProductInvMassNames.first, DataSample);</div><div class="line"><a name="l00685"></a><span class="lineno"> 685</span>  }</div><div class="line"><a name="l00686"></a><span class="lineno"> 686</span>  <span class="keyword">auto</span> InvMassDaughter2 = <a class="code" href="namespaceComPWA_1_1FunctionTree.html#a71772f3f9a738acd9d2476d99d51d9b4">FunctionTree::MDouble</a>(</div><div class="line"><a name="l00687"></a><span class="lineno"> 687</span>  parMass2->name(), std::vector<double>{std::pow(parMass2->value(), 2)});</div><div class="line"><a name="l00688"></a><span class="lineno"> 688</span>  <span class="keywordflow">if</span> (DecayProductInvMassNames.second != <span class="stringliteral">""</span>) {</div><div class="line"><a name="l00689"></a><span class="lineno"> 689</span>  InvMassDaughter2 = <a class="code" href="namespaceComPWA_1_1FunctionTree.html#a3dec4982ca71cb3dbe5340326aa29937">FunctionTree::findMDoubleValue</a>(</div><div class="line"><a name="l00690"></a><span class="lineno"> 690</span>  DecayProductInvMassNames.second, DataSample);</div><div class="line"><a name="l00691"></a><span class="lineno"> 691</span>  }</div><div class="line"><a name="l00692"></a><span class="lineno"> 692</span> </div><div class="line"><a name="l00693"></a><span class="lineno"> 693</span>  std::string name = pt.get<std::string>(<span class="stringliteral">"DecayParticle.<xmlattr>.Name"</span>);</div><div class="line"><a name="l00694"></a><span class="lineno"> 694</span>  <span class="keyword">auto</span> partProp = <a class="code" href="namespaceComPWA.html#a0c8ca3e66b45bb8d2299411c886f740c">ComPWA::findParticle</a>(<a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#af72f6986c01763554d47d4d19229a412">PartList</a>, name);</div><div class="line"><a name="l00695"></a><span class="lineno"> 695</span> </div><div class="line"><a name="l00696"></a><span class="lineno"> 696</span>  <span class="keywordtype">double</span> J = partProp.getQuantumNumber<<span class="keywordtype">double</span>>(<span class="stringliteral">"Spin"</span>);</div><div class="line"><a name="l00697"></a><span class="lineno"> 697</span>  <span class="keywordtype">double</span> mu(pt.get<<span class="keywordtype">double</span>>(<span class="stringliteral">"DecayParticle.<xmlattr>.Helicity"</span>));</div><div class="line"><a name="l00698"></a><span class="lineno"> 698</span>  <span class="comment">// if the node OrbitalAngularMomentum does not exist, set it to spin J as</span></div><div class="line"><a name="l00699"></a><span class="lineno"> 699</span>  <span class="comment">// default value</span></div><div class="line"><a name="l00700"></a><span class="lineno"> 700</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> L(J);</div><div class="line"><a name="l00701"></a><span class="lineno"> 701</span> </div><div class="line"><a name="l00702"></a><span class="lineno"> 702</span>  <span class="keyword">auto</span> Mass = std::make_shared<FunctionTree::FitParameter>(</div><div class="line"><a name="l00703"></a><span class="lineno"> 703</span>  partProp.getMass().Name, partProp.getMass().Value,</div><div class="line"><a name="l00704"></a><span class="lineno"> 704</span>  partProp.getMass().Error.first);</div><div class="line"><a name="l00705"></a><span class="lineno"> 705</span>  Mass->fixParameter(partProp.getMass().IsFixed);</div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span>  Mass = <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a1156f6f64911708e34d6c158d49cf9d1">Parameters</a>.<a class="code" href="classComPWA_1_1FunctionTree_1_1ParameterList.html#a874c4c9cc3ef8abdb43306df926ba8a7">addUniqueParameter</a>(Mass);</div><div class="line"><a name="l00707"></a><span class="lineno"> 707</span> </div><div class="line"><a name="l00708"></a><span class="lineno"> 708</span>  <span class="keywordtype">double</span> PreFactor(1.0);</div><div class="line"><a name="l00709"></a><span class="lineno"> 709</span>  <span class="keyword">const</span> <span class="keyword">auto</span> &canoSum = pt.get_child_optional(<span class="stringliteral">"CanonicalSum"</span>);</div><div class="line"><a name="l00710"></a><span class="lineno"> 710</span>  <span class="keywordflow">if</span> (canoSum) {</div><div class="line"><a name="l00711"></a><span class="lineno"> 711</span>  <span class="keyword">const</span> <span class="keyword">auto</span> &sumTree = canoSum.get();</div><div class="line"><a name="l00712"></a><span class="lineno"> 712</span>  L = sumTree.get<<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>>(<span class="stringliteral">"<xmlattr>.L"</span>);</div><div class="line"><a name="l00713"></a><span class="lineno"> 713</span>  <span class="keywordtype">double</span> Coefficient = std::sqrt((2.0 * L + 1) / (2 * J + 1));</div><div class="line"><a name="l00714"></a><span class="lineno"> 714</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &cg : sumTree.get_child(<span class="stringliteral">""</span>)) {</div><div class="line"><a name="l00715"></a><span class="lineno"> 715</span>  <span class="keywordflow">if</span> (cg.first != <span class="stringliteral">"ClebschGordan"</span>)</div><div class="line"><a name="l00716"></a><span class="lineno"> 716</span>  <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00717"></a><span class="lineno"> 717</span>  <span class="keywordtype">double</span> j1 = cg.second.get<<span class="keywordtype">double</span>>(<span class="stringliteral">"<xmlattr>.j1"</span>);</div><div class="line"><a name="l00718"></a><span class="lineno"> 718</span>  <span class="keywordtype">double</span> m1 = cg.second.get<<span class="keywordtype">double</span>>(<span class="stringliteral">"<xmlattr>.m1"</span>);</div><div class="line"><a name="l00719"></a><span class="lineno"> 719</span>  <span class="keywordtype">double</span> j2 = cg.second.get<<span class="keywordtype">double</span>>(<span class="stringliteral">"<xmlattr>.j2"</span>);</div><div class="line"><a name="l00720"></a><span class="lineno"> 720</span>  <span class="keywordtype">double</span> m2 = cg.second.get<<span class="keywordtype">double</span>>(<span class="stringliteral">"<xmlattr>.m2"</span>);</div><div class="line"><a name="l00721"></a><span class="lineno"> 721</span>  <span class="keywordtype">double</span> J = cg.second.get<<span class="keywordtype">double</span>>(<span class="stringliteral">"<xmlattr>.J"</span>);</div><div class="line"><a name="l00722"></a><span class="lineno"> 722</span>  <span class="keywordtype">double</span> M = cg.second.get<<span class="keywordtype">double</span>>(<span class="stringliteral">"<xmlattr>.M"</span>);</div><div class="line"><a name="l00723"></a><span class="lineno"> 723</span>  Coefficient *= ComPWA::QFT::Clebsch(j1, m1, j2, m2, J, M);</div><div class="line"><a name="l00724"></a><span class="lineno"> 724</span>  }</div><div class="line"><a name="l00725"></a><span class="lineno"> 725</span>  PreFactor *= Coefficient;</div><div class="line"><a name="l00726"></a><span class="lineno"> 726</span>  }</div><div class="line"><a name="l00727"></a><span class="lineno"> 727</span> </div><div class="line"><a name="l00728"></a><span class="lineno"> 728</span>  <span class="keyword">auto</span> decayInfo = partProp.getDecayInfo();</div><div class="line"><a name="l00729"></a><span class="lineno"> 729</span>  std::string FFType(<span class="stringliteral">""</span>);</div><div class="line"><a name="l00730"></a><span class="lineno"> 730</span>  std::shared_ptr<Dynamics::FormFactor> FormFactor =</div><div class="line"><a name="l00731"></a><span class="lineno"> 731</span>  std::make_shared<Dynamics::NoFormFactor>();</div><div class="line"><a name="l00732"></a><span class="lineno"> 732</span>  std::shared_ptr<FitParameter> parRadius;</div><div class="line"><a name="l00733"></a><span class="lineno"> 733</span>  std::shared_ptr<FitParameter> Width;</div><div class="line"><a name="l00734"></a><span class="lineno"> 734</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &node : decayInfo.get_child(<span class="stringliteral">""</span>)) {</div><div class="line"><a name="l00735"></a><span class="lineno"> 735</span>  <span class="keywordflow">if</span> (node.first == <span class="stringliteral">"FormFactor"</span>) {</div><div class="line"><a name="l00736"></a><span class="lineno"> 736</span>  FFType = node.second.get<std::string>(<span class="stringliteral">"<xmlattr>.Type"</span>);</div><div class="line"><a name="l00737"></a><span class="lineno"> 737</span>  <span class="keywordflow">if</span> (<span class="stringliteral">"BlattWeisskopf"</span> == FFType) {</div><div class="line"><a name="l00738"></a><span class="lineno"> 738</span>  <span class="keywordflow">if</span> (L > 4)</div><div class="line"><a name="l00739"></a><span class="lineno"> 739</span>  <span class="keywordflow">throw</span> std::runtime_error(</div><div class="line"><a name="l00740"></a><span class="lineno"> 740</span>  <span class="stringliteral">"createHelicityDecayFT() | Blatt-Weisskopf form factors are "</span></div><div class="line"><a name="l00741"></a><span class="lineno"> 741</span>  <span class="stringliteral">"implemented for L up to 4!"</span>);</div><div class="line"><a name="l00742"></a><span class="lineno"> 742</span>  FormFactor = std::make_shared<Dynamics::BlattWeisskopfFormFactor>();</div><div class="line"><a name="l00743"></a><span class="lineno"> 743</span>  } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="stringliteral">"CrystalBarrel"</span> == FFType) {</div><div class="line"><a name="l00744"></a><span class="lineno"> 744</span>  <span class="keywordflow">if</span> (L != 0)</div><div class="line"><a name="l00745"></a><span class="lineno"> 745</span>  <span class="keywordflow">throw</span> std::runtime_error(</div><div class="line"><a name="l00746"></a><span class="lineno"> 746</span>  <span class="stringliteral">"createHelicityDecayFT() | Crystal Barrel form factors are "</span></div><div class="line"><a name="l00747"></a><span class="lineno"> 747</span>  <span class="stringliteral">"implemented for L=0 only!"</span>);</div><div class="line"><a name="l00748"></a><span class="lineno"> 748</span>  FormFactor = std::make_shared<Dynamics::CrystalBarrelFormFactor>();</div><div class="line"><a name="l00749"></a><span class="lineno"> 749</span>  } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00750"></a><span class="lineno"> 750</span>  <span class="comment">// if user specifies unknown form factor</span></div><div class="line"><a name="l00751"></a><span class="lineno"> 751</span>  <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">"createHelicityDecayFT() | Form factor type "</span> +</div><div class="line"><a name="l00752"></a><span class="lineno"> 752</span>  FFType + <span class="stringliteral">" not specified!"</span>);</div><div class="line"><a name="l00753"></a><span class="lineno"> 753</span>  }</div><div class="line"><a name="l00754"></a><span class="lineno"> 754</span>  } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (node.first == <span class="stringliteral">"Parameter"</span>) {</div><div class="line"><a name="l00755"></a><span class="lineno"> 755</span>  std::string parType = node.second.get<std::string>(<span class="stringliteral">"<xmlattr>.Type"</span>);</div><div class="line"><a name="l00756"></a><span class="lineno"> 756</span>  <span class="keywordflow">if</span> (parType == <span class="stringliteral">"Width"</span>) {</div><div class="line"><a name="l00757"></a><span class="lineno"> 757</span>  Width = std::make_shared<FitParameter>(node.second);</div><div class="line"><a name="l00758"></a><span class="lineno"> 758</span>  Width = <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a1156f6f64911708e34d6c158d49cf9d1">Parameters</a>.<a class="code" href="classComPWA_1_1FunctionTree_1_1ParameterList.html#a874c4c9cc3ef8abdb43306df926ba8a7">addUniqueParameter</a>(Width);</div><div class="line"><a name="l00759"></a><span class="lineno"> 759</span>  } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (parType == <span class="stringliteral">"MesonRadius"</span>) {</div><div class="line"><a name="l00760"></a><span class="lineno"> 760</span>  parRadius = std::make_shared<FitParameter>(node.second);</div><div class="line"><a name="l00761"></a><span class="lineno"> 761</span>  parRadius = <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a1156f6f64911708e34d6c158d49cf9d1">Parameters</a>.<a class="code" href="classComPWA_1_1FunctionTree_1_1ParameterList.html#a874c4c9cc3ef8abdb43306df926ba8a7">addUniqueParameter</a>(parRadius);</div><div class="line"><a name="l00762"></a><span class="lineno"> 762</span>  }</div><div class="line"><a name="l00763"></a><span class="lineno"> 763</span>  }</div><div class="line"><a name="l00764"></a><span class="lineno"> 764</span>  }</div><div class="line"><a name="l00765"></a><span class="lineno"> 765</span> </div><div class="line"><a name="l00766"></a><span class="lineno"> 766</span>  std::string decayType = partProp.getDecayType();</div><div class="line"><a name="l00767"></a><span class="lineno"> 767</span> </div><div class="line"><a name="l00768"></a><span class="lineno"> 768</span>  std::shared_ptr<ComPWA::FunctionTree::TreeNode> DynamicFunctionFT(<span class="keyword">nullptr</span>);</div><div class="line"><a name="l00769"></a><span class="lineno"> 769</span> </div><div class="line"><a name="l00770"></a><span class="lineno"> 770</span>  <span class="keywordflow">if</span> (decayType == <span class="stringliteral">"stable"</span>) {</div><div class="line"><a name="l00771"></a><span class="lineno"> 771</span>  <span class="keywordflow">throw</span> std::runtime_error(</div><div class="line"><a name="l00772"></a><span class="lineno"> 772</span>  <span class="stringliteral">"IntensityBuilderXML::createHelicityDecayFT(): Stable particle is "</span></div><div class="line"><a name="l00773"></a><span class="lineno"> 773</span>  <span class="stringliteral">"given as mother particle of a decay. Makes no sense!"</span>);</div><div class="line"><a name="l00774"></a><span class="lineno"> 774</span>  } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (decayType.find(<span class="stringliteral">"BreitWigner"</span>) != std::string::npos) {</div><div class="line"><a name="l00775"></a><span class="lineno"> 775</span>  <span class="keyword">using namespace </span><a class="code" href="namespaceComPWA_1_1Physics_1_1Dynamics_1_1RelativisticBreitWigner.html">ComPWA::Physics::Dynamics::RelativisticBreitWigner</a>;</div><div class="line"><a name="l00776"></a><span class="lineno"> 776</span>  <a class="code" href="structComPWA_1_1Physics_1_1Dynamics_1_1RelativisticBreitWigner_1_1InputInfo.html">InputInfo</a> RBW;</div><div class="line"><a name="l00777"></a><span class="lineno"> 777</span>  RBW.<a class="code" href="structComPWA_1_1Physics_1_1Dynamics_1_1InputInfo.html#a43cd9038f0d104cdf0d4118b9093045c">Type</a> = decayType;</div><div class="line"><a name="l00778"></a><span class="lineno"> 778</span>  RBW.<a class="code" href="structComPWA_1_1Physics_1_1Dynamics_1_1InputInfo.html#ad05195c98881bf5a04c7aa9804782c74">Mass</a> = Mass;</div><div class="line"><a name="l00779"></a><span class="lineno"> 779</span>  RBW.<a class="code" href="structComPWA_1_1Physics_1_1Dynamics_1_1RelativisticBreitWigner_1_1InputInfo.html#a6a4849b65a692d884151945428565971">Width</a> = Width;</div><div class="line"><a name="l00780"></a><span class="lineno"> 780</span>  RBW.<a class="code" href="structComPWA_1_1Physics_1_1Dynamics_1_1InputInfo.html#a920e649ccd6a3205b137ed1d511593cb">MesonRadius</a> = parRadius;</div><div class="line"><a name="l00781"></a><span class="lineno"> 781</span>  RBW.<a class="code" href="structComPWA_1_1Physics_1_1Dynamics_1_1InputInfo.html#ab58ad1f99c8c3406bb18c8c5af6a0daa">DaughterInvariantMasses</a> =</div><div class="line"><a name="l00782"></a><span class="lineno"> 782</span>  std::make_pair(InvMassDaughter1, InvMassDaughter2);</div><div class="line"><a name="l00783"></a><span class="lineno"> 783</span>  RBW.<a class="code" href="structComPWA_1_1Physics_1_1Dynamics_1_1InputInfo.html#a14afd706c468fa97c00a0d5feec00e36">FormFactorFunctor</a> = FormFactor;</div><div class="line"><a name="l00784"></a><span class="lineno"> 784</span>  RBW.<a class="code" href="structComPWA_1_1Physics_1_1Dynamics_1_1InputInfo.html#a7ae1430be73f2cbfdb439cb1c9655f55">L</a> = L;</div><div class="line"><a name="l00785"></a><span class="lineno"> 785</span>  DynamicFunctionFT = <a class="code" href="namespaceComPWA_1_1Physics_1_1Dynamics_1_1Flatte.html#a6168e5ecfad576c937c30f9bc82140d1">createFunctionTree</a>(RBW, InvMassSq);</div><div class="line"><a name="l00786"></a><span class="lineno"> 786</span>  } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (decayType == <span class="stringliteral">"flatte"</span>) {</div><div class="line"><a name="l00787"></a><span class="lineno"> 787</span>  <a class="code" href="structComPWA_1_1Physics_1_1Dynamics_1_1Flatte_1_1InputInfo.html">ComPWA::Physics::Dynamics::Flatte::InputInfo</a> FlatteInfo;</div><div class="line"><a name="l00788"></a><span class="lineno"> 788</span>  FlatteInfo.<a class="code" href="structComPWA_1_1Physics_1_1Dynamics_1_1InputInfo.html#ad05195c98881bf5a04c7aa9804782c74">Mass</a> = Mass;</div><div class="line"><a name="l00789"></a><span class="lineno"> 789</span>  FlatteInfo.<a class="code" href="structComPWA_1_1Physics_1_1Dynamics_1_1InputInfo.html#a920e649ccd6a3205b137ed1d511593cb">MesonRadius</a> = parRadius;</div><div class="line"><a name="l00790"></a><span class="lineno"> 790</span>  FlatteInfo.<a class="code" href="structComPWA_1_1Physics_1_1Dynamics_1_1InputInfo.html#ab58ad1f99c8c3406bb18c8c5af6a0daa">DaughterInvariantMasses</a> =</div><div class="line"><a name="l00791"></a><span class="lineno"> 791</span>  std::make_pair(InvMassDaughter1, InvMassDaughter2);</div><div class="line"><a name="l00792"></a><span class="lineno"> 792</span>  FlatteInfo.<a class="code" href="structComPWA_1_1Physics_1_1Dynamics_1_1InputInfo.html#a14afd706c468fa97c00a0d5feec00e36">FormFactorFunctor</a> = FormFactor;</div><div class="line"><a name="l00793"></a><span class="lineno"> 793</span>  FlatteInfo.<a class="code" href="structComPWA_1_1Physics_1_1Dynamics_1_1InputInfo.html#a7ae1430be73f2cbfdb439cb1c9655f55">L</a> = L;</div><div class="line"><a name="l00794"></a><span class="lineno"> 794</span>  std::vector<Dynamics::Coupling> couplings;</div><div class="line"><a name="l00795"></a><span class="lineno"> 795</span>  <span class="comment">// Read parameters</span></div><div class="line"><a name="l00796"></a><span class="lineno"> 796</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &v : decayInfo.get_child(<span class="stringliteral">""</span>)) {</div><div class="line"><a name="l00797"></a><span class="lineno"> 797</span>  <span class="keywordflow">if</span> (v.first != <span class="stringliteral">"Parameter"</span>)</div><div class="line"><a name="l00798"></a><span class="lineno"> 798</span>  <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00799"></a><span class="lineno"> 799</span>  std::string type = v.second.get<std::string>(<span class="stringliteral">"<xmlattr>.Type"</span>);</div><div class="line"><a name="l00800"></a><span class="lineno"> 800</span>  <span class="keywordflow">if</span> (type == <span class="stringliteral">"Coupling"</span>) {</div><div class="line"><a name="l00801"></a><span class="lineno"> 801</span>  <span class="keyword">auto</span> c = <a class="code" href="classComPWA_1_1Physics_1_1Dynamics_1_1Coupling.html">Dynamics::Coupling</a>(<a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#af72f6986c01763554d47d4d19229a412">PartList</a>, v.second);</div><div class="line"><a name="l00802"></a><span class="lineno"> 802</span>  c.G = <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a1156f6f64911708e34d6c158d49cf9d1">Parameters</a>.<a class="code" href="classComPWA_1_1FunctionTree_1_1ParameterList.html#a874c4c9cc3ef8abdb43306df926ba8a7">addUniqueParameter</a>(c.G);</div><div class="line"><a name="l00803"></a><span class="lineno"> 803</span> </div><div class="line"><a name="l00804"></a><span class="lineno"> 804</span>  <span class="keywordflow">if</span> ((c.MassA->value() == parMass1->value() &&</div><div class="line"><a name="l00805"></a><span class="lineno"> 805</span>  c.MassB->value() == parMass2->value()) ||</div><div class="line"><a name="l00806"></a><span class="lineno"> 806</span>  (c.MassB->value() == parMass1->value() &&</div><div class="line"><a name="l00807"></a><span class="lineno"> 807</span>  c.MassA->value() == parMass2->value())) {</div><div class="line"><a name="l00808"></a><span class="lineno"> 808</span>  FlatteInfo.<a class="code" href="structComPWA_1_1Physics_1_1Dynamics_1_1Flatte_1_1InputInfo.html#a4e4deca4062a41a1de0828f0678c35f9">G</a> = c.G;</div><div class="line"><a name="l00809"></a><span class="lineno"> 809</span>  } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00810"></a><span class="lineno"> 810</span>  c.MassA = <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a1156f6f64911708e34d6c158d49cf9d1">Parameters</a>.<a class="code" href="classComPWA_1_1FunctionTree_1_1ParameterList.html#a874c4c9cc3ef8abdb43306df926ba8a7">addUniqueParameter</a>(c.MassA);</div><div class="line"><a name="l00811"></a><span class="lineno"> 811</span>  c.MassB = <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a1156f6f64911708e34d6c158d49cf9d1">Parameters</a>.<a class="code" href="classComPWA_1_1FunctionTree_1_1ParameterList.html#a874c4c9cc3ef8abdb43306df926ba8a7">addUniqueParameter</a>(c.MassB);</div><div class="line"><a name="l00812"></a><span class="lineno"> 812</span>  couplings.push_back(c);</div><div class="line"><a name="l00813"></a><span class="lineno"> 813</span>  }</div><div class="line"><a name="l00814"></a><span class="lineno"> 814</span>  }</div><div class="line"><a name="l00815"></a><span class="lineno"> 815</span>  }</div><div class="line"><a name="l00816"></a><span class="lineno"> 816</span>  FlatteInfo.<a class="code" href="structComPWA_1_1Physics_1_1Dynamics_1_1Flatte_1_1InputInfo.html#a5c1155ffd3b629c13abfa7d80e9ea008">HiddenCouplings</a> = couplings;</div><div class="line"><a name="l00817"></a><span class="lineno"> 817</span>  DynamicFunctionFT = <a class="code" href="namespaceComPWA_1_1Physics_1_1Dynamics_1_1Flatte.html#a6168e5ecfad576c937c30f9bc82140d1">createFunctionTree</a>(FlatteInfo, InvMassSq);</div><div class="line"><a name="l00818"></a><span class="lineno"> 818</span>  } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (decayType == <span class="stringliteral">"voigt"</span>) {</div><div class="line"><a name="l00819"></a><span class="lineno"> 819</span>  <span class="keyword">using namespace </span><a class="code" href="namespaceComPWA_1_1Physics_1_1Dynamics_1_1Voigtian.html">ComPWA::Physics::Dynamics::Voigtian</a>;</div><div class="line"><a name="l00820"></a><span class="lineno"> 820</span>  <a class="code" href="structComPWA_1_1Physics_1_1Dynamics_1_1RelativisticBreitWigner_1_1InputInfo.html">InputInfo</a> VoigtInfo;</div><div class="line"><a name="l00821"></a><span class="lineno"> 821</span>  VoigtInfo.<a class="code" href="structComPWA_1_1Physics_1_1Dynamics_1_1InputInfo.html#ad05195c98881bf5a04c7aa9804782c74">Mass</a> = Mass;</div><div class="line"><a name="l00822"></a><span class="lineno"> 822</span>  VoigtInfo.<a class="code" href="structComPWA_1_1Physics_1_1Dynamics_1_1RelativisticBreitWigner_1_1InputInfo.html#a6a4849b65a692d884151945428565971">Width</a> = Width;</div><div class="line"><a name="l00823"></a><span class="lineno"> 823</span>  VoigtInfo.<a class="code" href="structComPWA_1_1Physics_1_1Dynamics_1_1InputInfo.html#a920e649ccd6a3205b137ed1d511593cb">MesonRadius</a> = parRadius;</div><div class="line"><a name="l00824"></a><span class="lineno"> 824</span>  VoigtInfo.<a class="code" href="structComPWA_1_1Physics_1_1Dynamics_1_1InputInfo.html#ab58ad1f99c8c3406bb18c8c5af6a0daa">DaughterInvariantMasses</a> =</div><div class="line"><a name="l00825"></a><span class="lineno"> 825</span>  std::make_pair(InvMassDaughter1, InvMassDaughter2);</div><div class="line"><a name="l00826"></a><span class="lineno"> 826</span>  VoigtInfo.<a class="code" href="structComPWA_1_1Physics_1_1Dynamics_1_1InputInfo.html#a14afd706c468fa97c00a0d5feec00e36">FormFactorFunctor</a> = FormFactor;</div><div class="line"><a name="l00827"></a><span class="lineno"> 827</span>  VoigtInfo.<a class="code" href="structComPWA_1_1Physics_1_1Dynamics_1_1InputInfo.html#a7ae1430be73f2cbfdb439cb1c9655f55">L</a> = L;</div><div class="line"><a name="l00828"></a><span class="lineno"> 828</span>  VoigtInfo.Sigma = decayInfo.get<<span class="keywordtype">double</span>>(<span class="stringliteral">"Resolution.<xmlattr>.Sigma"</span>);</div><div class="line"><a name="l00829"></a><span class="lineno"> 829</span>  DynamicFunctionFT = <a class="code" href="namespaceComPWA_1_1Physics_1_1Dynamics_1_1Flatte.html#a6168e5ecfad576c937c30f9bc82140d1">createFunctionTree</a>(VoigtInfo, InvMassSq);</div><div class="line"><a name="l00830"></a><span class="lineno"> 830</span>  } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (decayType == <span class="stringliteral">"virtual"</span> || decayType == <span class="stringliteral">"nonResonant"</span>) {</div><div class="line"><a name="l00831"></a><span class="lineno"> 831</span>  DynamicFunctionFT = <a class="code" href="namespaceComPWA_1_1FunctionTree.html#a363739a3a01f67438abc98fe58ee8763">FunctionTree::createLeaf</a>(1, <span class="stringliteral">"Dynamics"</span>);</div><div class="line"><a name="l00832"></a><span class="lineno"> 832</span>  } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00833"></a><span class="lineno"> 833</span>  <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">"HelicityDecay::Factory() | Unknown decay type "</span> +</div><div class="line"><a name="l00834"></a><span class="lineno"> 834</span>  decayType + <span class="stringliteral">"!"</span>);</div><div class="line"><a name="l00835"></a><span class="lineno"> 835</span>  }</div><div class="line"><a name="l00836"></a><span class="lineno"> 836</span> </div><div class="line"><a name="l00837"></a><span class="lineno"> 837</span>  <span class="keyword">auto</span> AngularFunction =</div><div class="line"><a name="l00838"></a><span class="lineno"> 838</span>  <a class="code" href="namespaceComPWA_1_1Physics_1_1HelicityFormalism_1_1WignerD.html#ad476c8331415d07db057330d1714eb27">ComPWA::Physics::HelicityFormalism::WignerD::createFunctionTree</a>(</div><div class="line"><a name="l00839"></a><span class="lineno"> 839</span>  J, mu,</div><div class="line"><a name="l00840"></a><span class="lineno"> 840</span>  DecayProductInfo.Helicities.first -</div><div class="line"><a name="l00841"></a><span class="lineno"> 841</span>  DecayProductInfo.Helicities.second,</div><div class="line"><a name="l00842"></a><span class="lineno"> 842</span>  Theta, Phi);</div><div class="line"><a name="l00843"></a><span class="lineno"> 843</span> </div><div class="line"><a name="l00844"></a><span class="lineno"> 844</span>  <span class="keyword">using namespace </span><a class="code" href="namespaceComPWA_1_1FunctionTree.html">ComPWA::FunctionTree</a>;</div><div class="line"><a name="l00845"></a><span class="lineno"> 845</span>  <span class="keyword">auto</span> tr = std::make_shared<ComPWA::FunctionTree::TreeNode>(</div><div class="line"><a name="l00846"></a><span class="lineno"> 846</span>  std::make_shared<MultAll>(<a class="code" href="namespaceComPWA_1_1FunctionTree.html#aaa83a221399e408bae789ab6b24ff2baaf48127ec159d317d7adf99a2a13f5d63">ParType::MCOMPLEX</a>));</div><div class="line"><a name="l00847"></a><span class="lineno"> 847</span>  tr->addNodes(</div><div class="line"><a name="l00848"></a><span class="lineno"> 848</span>  {<a class="code" href="namespaceComPWA_1_1FunctionTree.html#a363739a3a01f67438abc98fe58ee8763">createLeaf</a>(PreFactor, <span class="stringliteral">"PreFactor"</span>), AngularFunction, DynamicFunctionFT});</div><div class="line"><a name="l00849"></a><span class="lineno"> 849</span> </div><div class="line"><a name="l00850"></a><span class="lineno"> 850</span>  <span class="comment">// set production formfactor</span></div><div class="line"><a name="l00851"></a><span class="lineno"> 851</span>  <span class="keywordflow">if</span> (FFType != <span class="stringliteral">""</span> && L > 0) {</div><div class="line"><a name="l00852"></a><span class="lineno"> 852</span>  <span class="keywordflow">if</span> (parRadius == <span class="keyword">nullptr</span>) {</div><div class="line"><a name="l00853"></a><span class="lineno"> 853</span>  <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">"IntensityBuilderXML::createHelicityDecayFT(): "</span></div><div class="line"><a name="l00854"></a><span class="lineno"> 854</span>  <span class="stringliteral">"No MesonRadius given for amplitude "</span> +</div><div class="line"><a name="l00855"></a><span class="lineno"> 855</span>  name +</div><div class="line"><a name="l00856"></a><span class="lineno"> 856</span>  <span class="stringliteral">"! It is needed to calculate the form factor!"</span>);</div><div class="line"><a name="l00857"></a><span class="lineno"> 857</span>  }</div><div class="line"><a name="l00858"></a><span class="lineno"> 858</span> </div><div class="line"><a name="l00859"></a><span class="lineno"> 859</span>  std::shared_ptr<ComPWA::FunctionTree::TreeNode> ProductionFormFactorFT =</div><div class="line"><a name="l00860"></a><span class="lineno"> 860</span>  <a class="code" href="namespaceComPWA_1_1Physics_1_1Dynamics.html#a42597176f103dba13466df14f66b31dd">Dynamics::createFunctionTree</a>(InvMassDaughter1, InvMassDaughter2,</div><div class="line"><a name="l00861"></a><span class="lineno"> 861</span>  parRadius, L, FormFactor, InvMassSq);</div><div class="line"><a name="l00862"></a><span class="lineno"> 862</span> </div><div class="line"><a name="l00863"></a><span class="lineno"> 863</span>  tr->addNode(ProductionFormFactorFT);</div><div class="line"><a name="l00864"></a><span class="lineno"> 864</span>  }</div><div class="line"><a name="l00865"></a><span class="lineno"> 865</span> </div><div class="line"><a name="l00866"></a><span class="lineno"> 866</span>  <span class="keywordflow">return</span> tr;</div><div class="line"><a name="l00867"></a><span class="lineno"> 867</span> }</div><div class="line"><a name="l00868"></a><span class="lineno"> 868</span> </div><div class="line"><a name="l00869"></a><span class="lineno"><a class="line" href="namespaceComPWA_1_1Physics.html#a0847a2fdf40da1ea6e67b1368b848142"> 869</a></span> <span class="keywordtype">void</span> <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a82fac4c99121d671e82fd1fee7e491eb">updateDataContainerState</a>(<a class="code" href="classComPWA_1_1FunctionTree_1_1ParameterList.html">ComPWA::FunctionTree::ParameterList</a> &DataSample,</div><div class="line"><a name="l00870"></a><span class="lineno"> 870</span>  <span class="keyword">const</span> <a class="code" href="classComPWA_1_1Kinematics.html">Kinematics</a> &<a class="code" href="classComPWA_1_1Kinematics.html">Kinematics</a>) {</div><div class="line"><a name="l00871"></a><span class="lineno"> 871</span>  <span class="keyword">auto</span> ExemplaryDataSet = Kinematics.<a class="code" href="classComPWA_1_1Kinematics.html#ad0797604300bf0e5df8c6f10ac5b64cb">convert</a>({Kinematics.<a class="code" href="classComPWA_1_1Kinematics.html#a75c5590e8b7a9ccee6e334abb42c45a5">getFinalStatePIDs</a>()});</div><div class="line"><a name="l00872"></a><span class="lineno"> 872</span> </div><div class="line"><a name="l00873"></a><span class="lineno"> 873</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> <span class="keyword">const</span> &x : ExemplaryDataSet.Data) {</div><div class="line"><a name="l00874"></a><span class="lineno"> 874</span>  std::vector<double> temp;</div><div class="line"><a name="l00875"></a><span class="lineno"> 875</span>  <span class="comment">// check if this key already exists than skip otherwise insert</span></div><div class="line"><a name="l00876"></a><span class="lineno"> 876</span>  <span class="keywordtype">bool</span> Exists(<span class="keyword">false</span>);</div><div class="line"><a name="l00877"></a><span class="lineno"> 877</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> MDVal : DataSample.<a class="code" href="classComPWA_1_1FunctionTree_1_1ParameterList.html#a0b25635f1868b9c6861b673d86328e4a">mDoubleValues</a>()) {</div><div class="line"><a name="l00878"></a><span class="lineno"> 878</span>  <span class="keywordflow">if</span> (MDVal->name() == x.first) {</div><div class="line"><a name="l00879"></a><span class="lineno"> 879</span>  Exists = <span class="keyword">true</span>;</div><div class="line"><a name="l00880"></a><span class="lineno"> 880</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00881"></a><span class="lineno"> 881</span>  }</div><div class="line"><a name="l00882"></a><span class="lineno"> 882</span>  }</div><div class="line"><a name="l00883"></a><span class="lineno"> 883</span>  <span class="keywordflow">if</span> (!Exists) {</div><div class="line"><a name="l00884"></a><span class="lineno"> 884</span>  DataSample.<a class="code" href="classComPWA_1_1FunctionTree_1_1ParameterList.html#a28bea8c3ed3e67cfb52e9cccf0e2c898">addValue</a>(</div><div class="line"><a name="l00885"></a><span class="lineno"> 885</span>  std::make_shared<<a class="code" href="classComPWA_1_1FunctionTree_1_1Value.html">ComPWA::FunctionTree::Value</a><std::vector<double>>>(</div><div class="line"><a name="l00886"></a><span class="lineno"> 886</span>  x.first, temp));</div><div class="line"><a name="l00887"></a><span class="lineno"> 887</span>  }</div><div class="line"><a name="l00888"></a><span class="lineno"> 888</span>  }</div><div class="line"><a name="l00889"></a><span class="lineno"> 889</span> }</div><div class="line"><a name="l00890"></a><span class="lineno"> 890</span> </div><div class="line"><a name="l00891"></a><span class="lineno"><a class="line" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a82fac4c99121d671e82fd1fee7e491eb"> 891</a></span> <span class="keywordtype">void</span> <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a82fac4c99121d671e82fd1fee7e491eb">IntensityBuilderXML::updateDataContainerState</a>() {</div><div class="line"><a name="l00892"></a><span class="lineno"> 892</span>  LOG(TRACE) << <span class="stringliteral">"updating data containers..."</span>;</div><div class="line"><a name="l00893"></a><span class="lineno"> 893</span>  <a class="code" href="namespaceComPWA_1_1Physics.html#a0847a2fdf40da1ea6e67b1368b848142">Physics::updateDataContainerState</a>(<a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a1d9112d7de0dcea23a74d167935b3f4a">Data</a>.<a class="code" href="structComPWA_1_1Physics_1_1IntensityBuilderXML_1_1DataContainer.html#a07558b8e6241e2f5bf5fcc0652005a40">Data</a>, <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a034842a1b149b34e67210c7bf2d2f14c">Kinematic</a>);</div><div class="line"><a name="l00894"></a><span class="lineno"> 894</span>  <a class="code" href="namespaceComPWA_1_1Physics.html#a0847a2fdf40da1ea6e67b1368b848142">Physics::updateDataContainerState</a>(<a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#abfa584a1ccc381745c8f6035d4bdb0fd">PhspData</a>.<a class="code" href="structComPWA_1_1Physics_1_1IntensityBuilderXML_1_1DataContainer.html#a07558b8e6241e2f5bf5fcc0652005a40">Data</a>, <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a034842a1b149b34e67210c7bf2d2f14c">Kinematic</a>);</div><div class="line"><a name="l00895"></a><span class="lineno"> 895</span>  <a class="code" href="namespaceComPWA_1_1Physics.html#a0847a2fdf40da1ea6e67b1368b848142">Physics::updateDataContainerState</a>(<a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a04b2cab62a3477523b6f9b03561b66b6">PhspRecoData</a>.<a class="code" href="structComPWA_1_1Physics_1_1IntensityBuilderXML_1_1DataContainer.html#a07558b8e6241e2f5bf5fcc0652005a40">Data</a>, <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a034842a1b149b34e67210c7bf2d2f14c">Kinematic</a>);</div><div class="line"><a name="l00896"></a><span class="lineno"> 896</span> }</div><div class="line"><a name="l00897"></a><span class="lineno"> 897</span> </div><div class="line"><a name="l00898"></a><span class="lineno"><a class="line" href="namespaceComPWA_1_1Physics.html#aafb580826db8bc85ac83992878b44f23"> 898</a></span> <span class="keywordtype">void</span> <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a6f983ed53c8938748e8477ce14c8cf51">updateDataContainerContent</a>(<a class="code" href="classComPWA_1_1FunctionTree_1_1ParameterList.html">ComPWA::FunctionTree::ParameterList</a> &DataList,</div><div class="line"><a name="l00899"></a><span class="lineno"> 899</span>  <span class="keyword">const</span> <a class="code" href="structComPWA_1_1EventCollection.html">EventCollection</a> &DataSample,</div><div class="line"><a name="l00900"></a><span class="lineno"> 900</span>  <span class="keyword">const</span> <a class="code" href="classComPWA_1_1Kinematics.html">Kinematics</a> &<a class="code" href="classComPWA_1_1Kinematics.html">Kinematics</a>) {</div><div class="line"><a name="l00901"></a><span class="lineno"> 901</span>  LOG(INFO) << <span class="stringliteral">"Updating data container content..."</span>;</div><div class="line"><a name="l00902"></a><span class="lineno"> 902</span>  <span class="keywordflow">if</span> (DataSample.<a class="code" href="structComPWA_1_1EventCollection.html#ae046211ede6817d51d769b372aab67dc">Events</a>.size() == 0)</div><div class="line"><a name="l00903"></a><span class="lineno"> 903</span>  <span class="keywordflow">return</span>;</div><div class="line"><a name="l00904"></a><span class="lineno"> 904</span> </div><div class="line"><a name="l00905"></a><span class="lineno"> 905</span>  <span class="keyword">auto</span> DataSet = Kinematics.<a class="code" href="classComPWA_1_1Kinematics.html#ad0797604300bf0e5df8c6f10ac5b64cb">convert</a>(DataSample);</div><div class="line"><a name="l00906"></a><span class="lineno"> 906</span> </div><div class="line"><a name="l00907"></a><span class="lineno"> 907</span>  <span class="comment">// just loop over the vectors and fill in the data</span></div><div class="line"><a name="l00908"></a><span class="lineno"> 908</span>  <span class="keywordflow">if</span> (DataList.<a class="code" href="classComPWA_1_1FunctionTree_1_1ParameterList.html#a0b25635f1868b9c6861b673d86328e4a">mDoubleValues</a>().size() > DataSet.Data.size()) {</div><div class="line"><a name="l00909"></a><span class="lineno"> 909</span>  std::stringstream ss;</div><div class="line"><a name="l00910"></a><span class="lineno"> 910</span>  ss << <span class="stringliteral">"IntensityBuilderXML::updateDataContainerContent(): given data "</span></div><div class="line"><a name="l00911"></a><span class="lineno"> 911</span>  <span class="stringliteral">"container does not have enough variables! (required: "</span></div><div class="line"><a name="l00912"></a><span class="lineno"> 912</span>  << DataList.<a class="code" href="classComPWA_1_1FunctionTree_1_1ParameterList.html#a0b25635f1868b9c6861b673d86328e4a">mDoubleValues</a>().size() << <span class="stringliteral">", given: "</span> << DataSet.Data.size()</div><div class="line"><a name="l00913"></a><span class="lineno"> 913</span>  << <span class="stringliteral">")"</span>;</div><div class="line"><a name="l00914"></a><span class="lineno"> 914</span>  <span class="keywordflow">throw</span> std::out_of_range(ss.str());</div><div class="line"><a name="l00915"></a><span class="lineno"> 915</span>  }</div><div class="line"><a name="l00916"></a><span class="lineno"> 916</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i < DataList.<a class="code" href="classComPWA_1_1FunctionTree_1_1ParameterList.html#a0b25635f1868b9c6861b673d86328e4a">mDoubleValues</a>().size(); ++i) {</div><div class="line"><a name="l00917"></a><span class="lineno"> 917</span>  <span class="keywordflow">if</span> (DataList.<a class="code" href="classComPWA_1_1FunctionTree_1_1ParameterList.html#a374ed57c30c7f9e4f329e4b8923b5e06">mDoubleValue</a>(i)->values().size() == 0) {</div><div class="line"><a name="l00918"></a><span class="lineno"> 918</span>  DataList.<a class="code" href="classComPWA_1_1FunctionTree_1_1ParameterList.html#a374ed57c30c7f9e4f329e4b8923b5e06">mDoubleValue</a>(i)->setValue(</div><div class="line"><a name="l00919"></a><span class="lineno"> 919</span>  DataSet.Data[DataList.<a class="code" href="classComPWA_1_1FunctionTree_1_1ParameterList.html#a374ed57c30c7f9e4f329e4b8923b5e06">mDoubleValue</a>(i)->name()]);</div><div class="line"><a name="l00920"></a><span class="lineno"> 920</span>  }</div><div class="line"><a name="l00921"></a><span class="lineno"> 921</span>  }</div><div class="line"><a name="l00922"></a><span class="lineno"> 922</span> }</div><div class="line"><a name="l00923"></a><span class="lineno"> 923</span> </div><div class="line"><a name="l00924"></a><span class="lineno"><a class="line" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a6f983ed53c8938748e8477ce14c8cf51"> 924</a></span> <span class="keywordtype">void</span> <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a6f983ed53c8938748e8477ce14c8cf51">IntensityBuilderXML::updateDataContainerContent</a>() {</div><div class="line"><a name="l00925"></a><span class="lineno"> 925</span>  <a class="code" href="namespaceComPWA_1_1Physics.html#aafb580826db8bc85ac83992878b44f23">Physics::updateDataContainerContent</a>(<a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a04b2cab62a3477523b6f9b03561b66b6">PhspRecoData</a>.<a class="code" href="structComPWA_1_1Physics_1_1IntensityBuilderXML_1_1DataContainer.html#a07558b8e6241e2f5bf5fcc0652005a40">Data</a>, <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#ab3e37d499b8579f6f3a275dcf1f35814">RecoPhspSample</a>,</div><div class="line"><a name="l00926"></a><span class="lineno"> 926</span>  <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a034842a1b149b34e67210c7bf2d2f14c">Kinematic</a>);</div><div class="line"><a name="l00927"></a><span class="lineno"> 927</span> }</div><div class="line"><a name="l00928"></a><span class="lineno"> 928</span> </div><div class="line"><a name="l00929"></a><span class="lineno"><a class="line" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a40baa193066450416f1c4eb076219b2c"> 929</a></span> <span class="keywordtype">void</span> <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a40baa193066450416f1c4eb076219b2c">IntensityBuilderXML::updateDataContainerWeights</a>(</div><div class="line"><a name="l00930"></a><span class="lineno"> 930</span>  <a class="code" href="structComPWA_1_1Physics_1_1IntensityBuilderXML_1_1DataContainer.html">DataContainer</a> &DataCon, <span class="keyword">const</span> <a class="code" href="structComPWA_1_1EventCollection.html">EventCollection</a> &DataSample) {</div><div class="line"><a name="l00931"></a><span class="lineno"> 931</span>  <span class="keywordflow">if</span> (!DataCon.<a class="code" href="structComPWA_1_1Physics_1_1IntensityBuilderXML_1_1DataContainer.html#a2fc0008484e866620c262baf96f95055">Weights</a> && DataCon.<a class="code" href="structComPWA_1_1Physics_1_1IntensityBuilderXML_1_1DataContainer.html#a3cf4ab033f5fa0aaea95103d740747ab">WeightSum</a> == 0.0) {</div><div class="line"><a name="l00932"></a><span class="lineno"> 932</span>  LOG(INFO) << <span class="stringliteral">"Setting phase space sample weights..."</span>;</div><div class="line"><a name="l00933"></a><span class="lineno"> 933</span>  std::vector<double> DataSetWeights;</div><div class="line"><a name="l00934"></a><span class="lineno"> 934</span>  DataSetWeights.reserve(DataSample.<a class="code" href="structComPWA_1_1EventCollection.html#ae046211ede6817d51d769b372aab67dc">Events</a>.size());</div><div class="line"><a name="l00935"></a><span class="lineno"> 935</span>  <span class="keywordtype">double</span> WeightSum(0.0);</div><div class="line"><a name="l00936"></a><span class="lineno"> 936</span>  <span class="keywordtype">bool</span> UniformWeights(<span class="keyword">true</span>);</div><div class="line"><a name="l00937"></a><span class="lineno"> 937</span> </div><div class="line"><a name="l00938"></a><span class="lineno"> 938</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> <span class="keyword">const</span> &<a class="code" href="structComPWA_1_1Event.html">Event</a> : DataSample.<a class="code" href="structComPWA_1_1EventCollection.html#ae046211ede6817d51d769b372aab67dc">Events</a>) {</div><div class="line"><a name="l00939"></a><span class="lineno"> 939</span>  DataSetWeights.push_back(<a class="code" href="structComPWA_1_1Event.html">Event</a>.<a class="code" href="structComPWA_1_1Event.html#a8a130412ee6d2c531a7aed66c70cb166">Weight</a>);</div><div class="line"><a name="l00940"></a><span class="lineno"> 940</span>  WeightSum += <a class="code" href="structComPWA_1_1Event.html">Event</a>.<a class="code" href="structComPWA_1_1Event.html#a8a130412ee6d2c531a7aed66c70cb166">Weight</a>;</div><div class="line"><a name="l00941"></a><span class="lineno"> 941</span>  <span class="keywordflow">if</span> (<a class="code" href="structComPWA_1_1Event.html">Event</a>.<a class="code" href="structComPWA_1_1Event.html#a8a130412ee6d2c531a7aed66c70cb166">Weight</a> != 1.0)</div><div class="line"><a name="l00942"></a><span class="lineno"> 942</span>  UniformWeights = <span class="keyword">false</span>;</div><div class="line"><a name="l00943"></a><span class="lineno"> 943</span>  }</div><div class="line"><a name="l00944"></a><span class="lineno"> 944</span>  <span class="keywordflow">if</span> (!UniformWeights) {</div><div class="line"><a name="l00945"></a><span class="lineno"> 945</span>  DataCon.<a class="code" href="structComPWA_1_1Physics_1_1IntensityBuilderXML_1_1DataContainer.html#a2fc0008484e866620c262baf96f95055">Weights</a> = <a class="code" href="namespaceComPWA_1_1FunctionTree.html#a71772f3f9a738acd9d2476d99d51d9b4">FunctionTree::MDouble</a>(<span class="stringliteral">"Weight"</span>, DataSetWeights);</div><div class="line"><a name="l00946"></a><span class="lineno"> 946</span>  }</div><div class="line"><a name="l00947"></a><span class="lineno"> 947</span>  DataCon.<a class="code" href="structComPWA_1_1Physics_1_1IntensityBuilderXML_1_1DataContainer.html#a3cf4ab033f5fa0aaea95103d740747ab">WeightSum</a> = WeightSum;</div><div class="line"><a name="l00948"></a><span class="lineno"> 948</span>  }</div><div class="line"><a name="l00949"></a><span class="lineno"> 949</span> }</div><div class="line"><a name="l00950"></a><span class="lineno"> 950</span> </div><div class="line"><a name="l00951"></a><span class="lineno"><a class="line" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a937fbbe89ab82c5824a2eab4b32ef577"> 951</a></span> <span class="keywordtype">void</span> <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a937fbbe89ab82c5824a2eab4b32ef577">IntensityBuilderXML::addFunctionTreeComponent</a>(</div><div class="line"><a name="l00952"></a><span class="lineno"> 952</span>  std::string Name, std::string Type,</div><div class="line"><a name="l00953"></a><span class="lineno"> 953</span>  std::shared_ptr<ComPWA::FunctionTree::TreeNode> FT) {</div><div class="line"><a name="l00954"></a><span class="lineno"> 954</span>  <span class="keywordflow">if</span> (<span class="keyword">nullptr</span> != FT && <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a046ae8de18b46775d1dda620b6f394ad">ComponentRegisteringEnabled</a>) {</div><div class="line"><a name="l00955"></a><span class="lineno"> 955</span>  <span class="keyword">auto</span> InsertResult = <a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a4d6b78096e6c8249c2e4330617dfee12">UniqueComponentFTMapping</a>.insert(</div><div class="line"><a name="l00956"></a><span class="lineno"> 956</span>  std::make_pair(Name, std::make_pair(Type, FT)));</div><div class="line"><a name="l00957"></a><span class="lineno"> 957</span>  <span class="keywordflow">if</span> (!InsertResult.second) {</div><div class="line"><a name="l00958"></a><span class="lineno"> 958</span>  LOG(ERROR) << <span class="stringliteral">"IntensityBuilderXML::addFunctionTreeComponent(): "</span></div><div class="line"><a name="l00959"></a><span class="lineno"> 959</span>  <span class="stringliteral">"FunctionTree with name "</span></div><div class="line"><a name="l00960"></a><span class="lineno"> 960</span>  << Name << <span class="stringliteral">" already exists!"</span>;</div><div class="line"><a name="l00961"></a><span class="lineno"> 961</span>  }</div><div class="line"><a name="l00962"></a><span class="lineno"> 962</span>  }</div><div class="line"><a name="l00963"></a><span class="lineno"> 963</span> }</div><div class="line"><a name="l00964"></a><span class="lineno"> 964</span> </div><div class="line"><a name="l00965"></a><span class="lineno"><a class="line" href="namespaceComPWA_1_1Physics.html#ae25ae9dce6fb6cd26b090b00e9bc2176"> 965</a></span> <a class="code" href="classComPWA_1_1FourMomentum.html">FourMomentum</a> <a class="code" href="namespaceComPWA_1_1Physics.html#ae25ae9dce6fb6cd26b090b00e9bc2176">createFourMomentum</a>(<span class="keyword">const</span> boost::property_tree::ptree &pt) {</div><div class="line"><a name="l00966"></a><span class="lineno"> 966</span>  <span class="keywordtype">double</span> px, py, pz, E;</div><div class="line"><a name="l00967"></a><span class="lineno"> 967</span> </div><div class="line"><a name="l00968"></a><span class="lineno"> 968</span>  <span class="keyword">auto</span> tmp = pt.get_optional<<span class="keywordtype">double</span>>(<span class="stringliteral">"<xmlattr>.x"</span>);</div><div class="line"><a name="l00969"></a><span class="lineno"> 969</span>  <span class="keywordflow">if</span> (tmp) {</div><div class="line"><a name="l00970"></a><span class="lineno"> 970</span>  px = tmp.get();</div><div class="line"><a name="l00971"></a><span class="lineno"> 971</span>  } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00972"></a><span class="lineno"> 972</span>  px = pt.get<<span class="keywordtype">double</span>>(<span class="stringliteral">"x"</span>);</div><div class="line"><a name="l00973"></a><span class="lineno"> 973</span>  }</div><div class="line"><a name="l00974"></a><span class="lineno"> 974</span> </div><div class="line"><a name="l00975"></a><span class="lineno"> 975</span>  tmp = pt.get_optional<<span class="keywordtype">double</span>>(<span class="stringliteral">"<xmlattr>.y"</span>);</div><div class="line"><a name="l00976"></a><span class="lineno"> 976</span>  <span class="keywordflow">if</span> (tmp) {</div><div class="line"><a name="l00977"></a><span class="lineno"> 977</span>  py = tmp.get();</div><div class="line"><a name="l00978"></a><span class="lineno"> 978</span>  } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00979"></a><span class="lineno"> 979</span>  py = pt.get<<span class="keywordtype">double</span>>(<span class="stringliteral">"y"</span>);</div><div class="line"><a name="l00980"></a><span class="lineno"> 980</span>  }</div><div class="line"><a name="l00981"></a><span class="lineno"> 981</span> </div><div class="line"><a name="l00982"></a><span class="lineno"> 982</span>  tmp = pt.get_optional<<span class="keywordtype">double</span>>(<span class="stringliteral">"<xmlattr>.z"</span>);</div><div class="line"><a name="l00983"></a><span class="lineno"> 983</span>  <span class="keywordflow">if</span> (tmp) {</div><div class="line"><a name="l00984"></a><span class="lineno"> 984</span>  pz = tmp.get();</div><div class="line"><a name="l00985"></a><span class="lineno"> 985</span>  } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00986"></a><span class="lineno"> 986</span>  pz = pt.get<<span class="keywordtype">double</span>>(<span class="stringliteral">"z"</span>);</div><div class="line"><a name="l00987"></a><span class="lineno"> 987</span>  }</div><div class="line"><a name="l00988"></a><span class="lineno"> 988</span> </div><div class="line"><a name="l00989"></a><span class="lineno"> 989</span>  tmp = pt.get_optional<<span class="keywordtype">double</span>>(<span class="stringliteral">"<xmlattr>.E"</span>);</div><div class="line"><a name="l00990"></a><span class="lineno"> 990</span>  <span class="keywordflow">if</span> (tmp) {</div><div class="line"><a name="l00991"></a><span class="lineno"> 991</span>  E = tmp.get();</div><div class="line"><a name="l00992"></a><span class="lineno"> 992</span>  } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00993"></a><span class="lineno"> 993</span>  E = pt.get<<span class="keywordtype">double</span>>(<span class="stringliteral">"E"</span>);</div><div class="line"><a name="l00994"></a><span class="lineno"> 994</span>  }</div><div class="line"><a name="l00995"></a><span class="lineno"> 995</span> </div><div class="line"><a name="l00996"></a><span class="lineno"> 996</span>  <span class="keywordflow">return</span> <a class="code" href="classComPWA_1_1FourMomentum.html">FourMomentum</a>(px, py, pz, E);</div><div class="line"><a name="l00997"></a><span class="lineno"> 997</span> }</div><div class="line"><a name="l00998"></a><span class="lineno"> 998</span> </div><div class="line"><a name="l00999"></a><span class="lineno"> 999</span> <a class="code" href="classComPWA_1_1Physics_1_1ParticleStateTransitionKinematicsInfo.html">ParticleStateTransitionKinematicsInfo</a></div><div class="line"><a name="l01000"></a><span class="lineno"><a class="line" href="namespaceComPWA_1_1Physics.html#a2a718a818e7be4231cca59c3d15092e2"> 1000</a></span> <a class="code" href="namespaceComPWA_1_1Physics.html#a2a718a818e7be4231cca59c3d15092e2">createKinematicsInfo</a>(<span class="keyword">const</span> <a class="code" href="namespaceComPWA.html#ac32ebe66cb052341dfbabe607551b502">ComPWA::ParticleList</a> &<a class="code" href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#af72f6986c01763554d47d4d19229a412">PartList</a>,</div><div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>  <span class="keyword">const</span> boost::property_tree::ptree &pt) {</div><div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>  <span class="keyword">auto</span> initialS = pt.get_child(<span class="stringliteral">"InitialState"</span>);</div><div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>  <span class="keyword">auto</span> InitialState = std::vector<pid>(initialS.size());</div><div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> counter(0);</div><div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> i : initialS) {</div><div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>  std::string name = i.second.get<std::string>(<span class="stringliteral">"<xmlattr>.Name"</span>);</div><div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>  <span class="keyword">auto</span> partP = <a class="code" href="namespaceComPWA.html#a0c8ca3e66b45bb8d2299411c886f740c">ComPWA::findParticle</a>(PartList, name);</div><div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> pos(counter++);</div><div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>  boost::optional<unsigned int> opt_pos =</div><div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>  i.second.get_optional<<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>>(<span class="stringliteral">"<xmlattr>.PositionIndex"</span>);</div><div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>  <span class="keywordflow">if</span> (opt_pos)</div><div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>  pos = opt_pos.get();</div><div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>  InitialState.at(pos) = partP.getId();</div><div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>  }</div><div class="line"><a name="l01015"></a><span class="lineno"> 1015</span> </div><div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>  <span class="keyword">auto</span> finalS = pt.get_child(<span class="stringliteral">"FinalState"</span>);</div><div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>  <span class="keyword">auto</span> FinalState = std::vector<pid>(finalS.size());</div><div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>  <span class="keyword">auto</span> FinalStateEventPositionMapping =</div><div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>  std::vector<unsigned int>(finalS.size());</div><div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>  counter = 0;</div><div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> i : finalS) {</div><div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>  std::string name = i.second.get<std::string>(<span class="stringliteral">"<xmlattr>.Name"</span>);</div><div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>  <span class="keyword">auto</span> partP = <a class="code" href="namespaceComPWA.html#a0c8ca3e66b45bb8d2299411c886f740c">ComPWA::findParticle</a>(PartList, name);</div><div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <span class="keywordtype">id</span> = i.second.get<<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>>(<span class="stringliteral">"<xmlattr>.Id"</span>);</div><div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> pos(counter++);</div><div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>  boost::optional<unsigned int> opt_pos =</div><div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>  i.second.get_optional<<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>>(<span class="stringliteral">"<xmlattr>.PositionIndex"</span>);</div><div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>  <span class="keywordflow">if</span> (opt_pos)</div><div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>  pos = opt_pos.get();</div><div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>  FinalState.at(pos) = partP.getId();</div><div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>  FinalStateEventPositionMapping.at(pos) = id;</div><div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>  }</div><div class="line"><a name="l01033"></a><span class="lineno"> 1033</span> </div><div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>  <span class="keywordflow">if</span> (pt.find(<span class="stringliteral">"InitialFourMomentum"</span>) != pt.not_found()) {</div><div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>  <span class="keyword">auto</span> InitialStateP4 =</div><div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>  <a class="code" href="namespaceComPWA_1_1Physics.html#ae25ae9dce6fb6cd26b090b00e9bc2176">createFourMomentum</a>(pt.get_child(<span class="stringliteral">"InitialFourMomentum"</span>));</div><div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>  <span class="keywordflow">return</span> <a class="code" href="classComPWA_1_1Physics_1_1ParticleStateTransitionKinematicsInfo.html">ParticleStateTransitionKinematicsInfo</a>(</div><div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>  InitialState, FinalState, PartList, InitialStateP4,</div><div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>  FinalStateEventPositionMapping);</div><div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>  }</div><div class="line"><a name="l01041"></a><span class="lineno"> 1041</span> </div><div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>  <span class="keywordflow">return</span> <a class="code" href="classComPWA_1_1Physics_1_1ParticleStateTransitionKinematicsInfo.html">ParticleStateTransitionKinematicsInfo</a>(</div><div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>  InitialState, FinalState, PartList, FinalStateEventPositionMapping);</div><div class="line"><a name="l01044"></a><span class="lineno"> 1044</span> }</div><div class="line"><a name="l01045"></a><span class="lineno"> 1045</span> </div><div class="line"><a name="l01046"></a><span class="lineno"><a class="line" href="namespaceComPWA_1_1Physics.html#a406fe5d01762c36d5a005921433882ac"> 1046</a></span> <a class="code" href="classComPWA_1_1Physics_1_1HelicityFormalism_1_1HelicityKinematics.html">HelicityKinematics</a> <a class="code" href="namespaceComPWA_1_1Physics.html#a406fe5d01762c36d5a005921433882ac">createHelicityKinematics</a>(<span class="keyword">const</span> std::string XmlFile) {</div><div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>  <span class="keyword">auto</span> <a class="code" href="namespaceComPWA.html#ac32ebe66cb052341dfbabe607551b502">ParticleList</a> = <a class="code" href="namespaceComPWA.html#a381a6fe8ccb17cc2463fba2ff388ba84">readParticles</a>(XmlFile);</div><div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>  <span class="keywordflow">return</span> <a class="code" href="namespaceComPWA_1_1Physics.html#a406fe5d01762c36d5a005921433882ac">createHelicityKinematics</a>(<a class="code" href="namespaceComPWA.html#ac32ebe66cb052341dfbabe607551b502">ParticleList</a>, XmlFile);</div><div class="line"><a name="l01049"></a><span class="lineno"> 1049</span> }</div><div class="line"><a name="l01050"></a><span class="lineno"> 1050</span> </div><div class="line"><a name="l01051"></a><span class="lineno"> 1051</span> <a class="code" href="classComPWA_1_1Physics_1_1HelicityFormalism_1_1HelicityKinematics.html">HelicityKinematics</a></div><div class="line"><a name="l01052"></a><span class="lineno"><a class="line" href="namespaceComPWA_1_1Physics.html#a9d4f7b9d6b38eed7b678d6c2139d3bcc"> 1052</a></span> <a class="code" href="namespaceComPWA_1_1Physics.html#a406fe5d01762c36d5a005921433882ac">createHelicityKinematics</a>(<span class="keyword">const</span> <a class="code" href="namespaceComPWA.html#ac32ebe66cb052341dfbabe607551b502">ComPWA::ParticleList</a> &<a class="code" href="namespaceComPWA.html#ac32ebe66cb052341dfbabe607551b502">ParticleList</a>,</div><div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>  <span class="keyword">const</span> std::string XmlFile) {</div><div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>  boost::property_tree::ptree ptree;</div><div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>  boost::property_tree::xml_parser::read_xml(XmlFile, ptree);</div><div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>  <span class="keyword">auto</span> it = ptree.find(<span class="stringliteral">"HelicityKinematics"</span>);</div><div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>  <span class="keywordflow">if</span> (it != ptree.not_found()) {</div><div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>  <span class="keywordflow">return</span> <a class="code" href="namespaceComPWA_1_1Physics.html#a406fe5d01762c36d5a005921433882ac">ComPWA::Physics::createHelicityKinematics</a>(ParticleList, it->second);</div><div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>  } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>  <span class="keywordflow">throw</span> <a class="code" href="classComPWA_1_1BadConfig.html">ComPWA::BadConfig</a>(<span class="stringliteral">"ComPWA::Physics::createHelicityKinematics(): "</span></div><div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>  <span class="stringliteral">"HelicityKinematics tag not found in xml file!"</span>);</div><div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>  }</div><div class="line"><a name="l01063"></a><span class="lineno"> 1063</span> }</div><div class="line"><a name="l01064"></a><span class="lineno"> 1064</span> </div><div class="line"><a name="l01065"></a><span class="lineno"> 1065</span> <a class="code" href="classComPWA_1_1Physics_1_1HelicityFormalism_1_1HelicityKinematics.html">HelicityKinematics</a></div><div class="line"><a name="l01066"></a><span class="lineno"><a class="line" href="namespaceComPWA_1_1Physics.html#a7ca406f56915aba692e2dd9cc5a0e961"> 1066</a></span> <a class="code" href="namespaceComPWA_1_1Physics.html#a406fe5d01762c36d5a005921433882ac">createHelicityKinematics</a>(<span class="keyword">const</span> <a class="code" href="namespaceComPWA.html#ac32ebe66cb052341dfbabe607551b502">ComPWA::ParticleList</a> &<a class="code" href="namespaceComPWA.html#ac32ebe66cb052341dfbabe607551b502">ParticleList</a>,</div><div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>  <span class="keyword">const</span> boost::property_tree::ptree &ptree) {</div><div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>  <span class="keyword">auto</span> kininfo = <a class="code" href="namespaceComPWA_1_1Physics.html#a2a718a818e7be4231cca59c3d15092e2">createKinematicsInfo</a>(ParticleList, ptree);</div><div class="line"><a name="l01069"></a><span class="lineno"> 1069</span> </div><div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>  <span class="keyword">auto</span> phspVal = ptree.get_optional<<span class="keywordtype">double</span>>(<span class="stringliteral">"PhspVolume"</span>);</div><div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>  <span class="keywordflow">if</span> (phspVal) {</div><div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>  <span class="keywordflow">return</span> <a class="code" href="classComPWA_1_1Physics_1_1HelicityFormalism_1_1HelicityKinematics.html">HelicityKinematics</a>(kininfo, phspVal.get());</div><div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>  } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>  <span class="keywordflow">return</span> <a class="code" href="classComPWA_1_1Physics_1_1HelicityFormalism_1_1HelicityKinematics.html">HelicityKinematics</a>(kininfo);</div><div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>  }</div><div class="line"><a name="l01076"></a><span class="lineno"> 1076</span> }</div><div class="line"><a name="l01077"></a><span class="lineno"> 1077</span> </div><div class="line"><a name="l01078"></a><span class="lineno"> 1078</span> } <span class="comment">// namespace Physics</span></div><div class="line"><a name="l01079"></a><span class="lineno"> 1079</span> } <span class="comment">// namespace ComPWA</span></div><div class="ttc" id="classComPWA_1_1FourMomentum_html"><div class="ttname"><a href="classComPWA_1_1FourMomentum.html">ComPWA::FourMomentum</a></div><div class="ttdoc">ComPWA four momentum class. </div><div class="ttdef"><b>Definition:</b> <a href="FourMomentum_8hpp_source.html#l00021">FourMomentum.hpp:21</a></div></div>
<div class="ttc" id="classComPWA_1_1FunctionTree_1_1ParameterList_html_a28bea8c3ed3e67cfb52e9cccf0e2c898"><div class="ttname"><a href="classComPWA_1_1FunctionTree_1_1ParameterList.html#a28bea8c3ed3e67cfb52e9cccf0e2c898">ComPWA::FunctionTree::ParameterList::addValue</a></div><div class="ttdeci">virtual void addValue(std::shared_ptr< Parameter > value)</div><div class="ttdef"><b>Definition:</b> <a href="ParameterList_8cpp_source.html#l00111">ParameterList.cpp:111</a></div></div>
<div class="ttc" id="classComPWA_1_1Kinematics_html_a75c5590e8b7a9ccee6e334abb42c45a5"><div class="ttname"><a href="classComPWA_1_1Kinematics.html#a75c5590e8b7a9ccee6e334abb42c45a5">ComPWA::Kinematics::getFinalStatePIDs</a></div><div class="ttdeci">virtual const std::vector< pid > & getFinalStatePIDs() const =0</div><div class="ttdoc">Get a vector of PIDs of the final state. </div></div>
<div class="ttc" id="classComPWA_1_1FunctionTree_1_1MultAll_html"><div class="ttname"><a href="classComPWA_1_1FunctionTree_1_1MultAll.html">ComPWA::FunctionTree::MultAll</a></div><div class="ttdef"><b>Definition:</b> <a href="Functions_8hpp_source.html#l00107">Functions.hpp:107</a></div></div>
<div class="ttc" id="classComPWA_1_1Physics_1_1IntensityBuilderXML_html_a93aac4c16934c7c4b650189fe166458f"><div class="ttname"><a href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a93aac4c16934c7c4b650189fe166458f">ComPWA::Physics::IntensityBuilderXML::TruePhspSample</a></div><div class="ttdeci">const EventCollection & TruePhspSample</div><div class="ttdef"><b>Definition:</b> <a href="BuilderXML_8hpp_source.html#l00133">BuilderXML.hpp:133</a></div></div>
<div class="ttc" id="classComPWA_1_1BadParameter_html"><div class="ttname"><a href="classComPWA_1_1BadParameter.html">ComPWA::BadParameter</a></div><div class="ttdoc">Parameter not existing. </div><div class="ttdef"><b>Definition:</b> <a href="Exceptions_8hpp_source.html#l00062">Exceptions.hpp:62</a></div></div>
<div class="ttc" id="classComPWA_1_1Kinematics_html_ad0797604300bf0e5df8c6f10ac5b64cb"><div class="ttname"><a href="classComPWA_1_1Kinematics.html#ad0797604300bf0e5df8c6f10ac5b64cb">ComPWA::Kinematics::convert</a></div><div class="ttdeci">virtual ComPWA::Data::DataSet convert(const EventCollection &Events) const =0</div></div>
<div class="ttc" id="classComPWA_1_1Physics_1_1Dynamics_1_1Coupling_html"><div class="ttname"><a href="classComPWA_1_1Physics_1_1Dynamics_1_1Coupling.html">ComPWA::Physics::Dynamics::Coupling</a></div><div class="ttdef"><b>Definition:</b> <a href="Coupling_8hpp_source.html#l00063">Coupling.hpp:63</a></div></div>
<div class="ttc" id="classComPWA_1_1Physics_1_1IntensityBuilderXML_html_aae2b47ca71eab41ffd9bd6af14794711"><div class="ttname"><a href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#aae2b47ca71eab41ffd9bd6af14794711">ComPWA::Physics::IntensityBuilderXML::createIntegrationStrategyFT</a></div><div class="ttdeci">std::shared_ptr< ComPWA::FunctionTree::TreeNode > createIntegrationStrategyFT(std::shared_ptr< ComPWA::FunctionTree::TreeNode > UnnormalizedIntensity, std::shared_ptr< ComPWA::FunctionTree::Value< std::vector< double >>> PhspWeights, double PhspWeightSum, std::string IntegratorClassName)</div><div class="ttdef"><b>Definition:</b> <a href="BuilderXML_8cpp_source.html#l00343">BuilderXML.cpp:343</a></div></div>
<div class="ttc" id="Voigtian_8hpp_html"><div class="ttname"><a href="Voigtian_8hpp.html">Voigtian.hpp</a></div><div class="ttdoc">This file contains the declaration of the Voigtian class, which is used the implementation of voigt f...</div></div>
<div class="ttc" id="classComPWA_1_1Physics_1_1IntensityBuilderXML_html_a99422fd402f236b2ecbcf72f6b588945"><div class="ttname"><a href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a99422fd402f236b2ecbcf72f6b588945">ComPWA::Physics::IntensityBuilderXML::ModelTree</a></div><div class="ttdeci">boost::property_tree::ptree ModelTree</div><div class="ttdef"><b>Definition:</b> <a href="BuilderXML_8hpp_source.html#l00132">BuilderXML.hpp:132</a></div></div>
<div class="ttc" id="classComPWA_1_1Physics_1_1ParticleStateTransitionKinematicsInfo_html"><div class="ttname"><a href="classComPWA_1_1Physics_1_1ParticleStateTransitionKinematicsInfo.html">ComPWA::Physics::ParticleStateTransitionKinematicsInfo</a></div><div class="ttdef"><b>Definition:</b> <a href="ParticleStateTransitionKinematicsInfo_8hpp_source.html#l00018">ParticleStateTransitionKinematicsInfo.hpp:18</a></div></div>
<div class="ttc" id="namespaceComPWA_1_1FunctionTree_html_aaa83a221399e408bae789ab6b24ff2baaee734f211bb0e8e7ff00a42b18171eba"><div class="ttname"><a href="namespaceComPWA_1_1FunctionTree.html#aaa83a221399e408bae789ab6b24ff2baaee734f211bb0e8e7ff00a42b18171eba">ComPWA::FunctionTree::MDOUBLE</a></div><div class="ttdef"><b>Definition:</b> <a href="Parameter_8hpp_source.html#l00040">Parameter.hpp:40</a></div></div>
<div class="ttc" id="namespaceComPWA_1_1FunctionTree_html"><div class="ttname"><a href="namespaceComPWA_1_1FunctionTree.html">ComPWA::FunctionTree</a></div><div class="ttdef"><b>Definition:</b> <a href="FitParameter_8cpp_source.html#l00012">FitParameter.cpp:12</a></div></div>
<div class="ttc" id="classComPWA_1_1FunctionTree_1_1Value_html"><div class="ttname"><a href="classComPWA_1_1FunctionTree_1_1Value.html">ComPWA::FunctionTree::Value</a></div><div class="ttdef"><b>Definition:</b> <a href="Value_8hpp_source.html#l00033">Value.hpp:33</a></div></div>
<div class="ttc" id="classComPWA_1_1Physics_1_1IntensityBuilderXML_html_ae2e013217dbbc8d09951370b53e1b325"><div class="ttname"><a href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#ae2e013217dbbc8d09951370b53e1b325">ComPWA::Physics::IntensityBuilderXML::createCoefficientAmplitudeFT</a></div><div class="ttdeci">std::shared_ptr< ComPWA::FunctionTree::TreeNode > createCoefficientAmplitudeFT(const boost::property_tree::ptree &pt, const ComPWA::FunctionTree::ParameterList &DataSample)</div><div class="ttdef"><b>Definition:</b> <a href="BuilderXML_8cpp_source.html#l00484">BuilderXML.cpp:484</a></div></div>
<div class="ttc" id="structComPWA_1_1Physics_1_1Dynamics_1_1InputInfo_html_a14afd706c468fa97c00a0d5feec00e36"><div class="ttname"><a href="structComPWA_1_1Physics_1_1Dynamics_1_1InputInfo.html#a14afd706c468fa97c00a0d5feec00e36">ComPWA::Physics::Dynamics::InputInfo::FormFactorFunctor</a></div><div class="ttdeci">std::shared_ptr< FormFactor > FormFactorFunctor</div><div class="ttdoc">Form factor function object. </div><div class="ttdef"><b>Definition:</b> <a href="RelativisticBreitWigner_8hpp_source.html#l00032">RelativisticBreitWigner.hpp:32</a></div></div>
<div class="ttc" id="classComPWA_1_1ParticleProperties_html_ac0d97fe11988cdaaa65356e3cdf1f40c"><div class="ttname"><a href="classComPWA_1_1ParticleProperties.html#ac0d97fe11988cdaaa65356e3cdf1f40c">ComPWA::ParticleProperties::getMass</a></div><div class="ttdeci">ComPWA::FitParameter< double > getMass() const</div><div class="ttdef"><b>Definition:</b> <a href="Properties_8hpp_source.html#l00035">Properties.hpp:35</a></div></div>
<div class="ttc" id="namespaceComPWA_html"><div class="ttname"><a href="namespaceComPWA.html">ComPWA</a></div><div class="ttdef"><b>Definition:</b> <a href="Efficiency_8cpp_source.html#l00007">Efficiency.cpp:7</a></div></div>
<div class="ttc" id="classComPWA_1_1Physics_1_1IntensityBuilderXML_html_af72f6986c01763554d47d4d19229a412"><div class="ttname"><a href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#af72f6986c01763554d47d4d19229a412">ComPWA::Physics::IntensityBuilderXML::PartList</a></div><div class="ttdeci">ParticleList PartList</div><div class="ttdef"><b>Definition:</b> <a href="BuilderXML_8hpp_source.html#l00130">BuilderXML.hpp:130</a></div></div>
<div class="ttc" id="HelicityKinematics_8hpp_html"><div class="ttname"><a href="HelicityKinematics_8hpp.html">HelicityKinematics.hpp</a></div></div>
<div class="ttc" id="classComPWA_1_1Physics_1_1IntensityBuilderXML_html_a0359a543cc218c2cecfac064f09347dc"><div class="ttname"><a href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a0359a543cc218c2cecfac064f09347dc">ComPWA::Physics::IntensityBuilderXML::normalizeIntensityFT</a></div><div class="ttdeci">std::shared_ptr< ComPWA::FunctionTree::TreeNode > normalizeIntensityFT(const boost::property_tree::ptree &UnnormalizedPT, const ComPWA::FunctionTree::ParameterList &DataSample, std::string IntegratorClassNa)</div><div class="ttdef"><b>Definition:</b> <a href="BuilderXML_8cpp_source.html#l00310">BuilderXML.cpp:310</a></div></div>
<div class="ttc" id="namespaceComPWA_1_1FunctionTree_html_a3dec4982ca71cb3dbe5340326aa29937"><div class="ttname"><a href="namespaceComPWA_1_1FunctionTree.html#a3dec4982ca71cb3dbe5340326aa29937">ComPWA::FunctionTree::findMDoubleValue</a></div><div class="ttdeci">std::shared_ptr< Value< std::vector< double > > > findMDoubleValue(const std::string &name, const ParameterList &list)</div><div class="ttdef"><b>Definition:</b> <a href="ParameterList_8hpp_source.html#l00232">ParameterList.hpp:232</a></div></div>
<div class="ttc" id="Properties_8hpp_html"><div class="ttname"><a href="Properties_8hpp.html">Properties.hpp</a></div></div>
<div class="ttc" id="structComPWA_1_1Physics_1_1Dynamics_1_1RelativisticBreitWigner_1_1InputInfo_html"><div class="ttname"><a href="structComPWA_1_1Physics_1_1Dynamics_1_1RelativisticBreitWigner_1_1InputInfo.html">ComPWA::Physics::Dynamics::RelativisticBreitWigner::InputInfo</a></div><div class="ttdef"><b>Definition:</b> <a href="RelativisticBreitWigner_8hpp_source.html#l00041">RelativisticBreitWigner.hpp:41</a></div></div>
<div class="ttc" id="namespaceComPWA_1_1Physics_html_a2a718a818e7be4231cca59c3d15092e2"><div class="ttname"><a href="namespaceComPWA_1_1Physics.html#a2a718a818e7be4231cca59c3d15092e2">ComPWA::Physics::createKinematicsInfo</a></div><div class="ttdeci">ParticleStateTransitionKinematicsInfo createKinematicsInfo(const ComPWA::ParticleList &PartList, const boost::property_tree::ptree &pt)</div><div class="ttdef"><b>Definition:</b> <a href="BuilderXML_8cpp_source.html#l01000">BuilderXML.cpp:1000</a></div></div>
<div class="ttc" id="Exceptions_8hpp_html"><div class="ttname"><a href="Exceptions_8hpp.html">Exceptions.hpp</a></div><div class="ttdoc">ComPWA exceptions. </div></div>
<div class="ttc" id="structComPWA_1_1Physics_1_1IntensityBuilderXML_1_1DataContainer_html"><div class="ttname"><a href="structComPWA_1_1Physics_1_1IntensityBuilderXML_1_1DataContainer.html">ComPWA::Physics::IntensityBuilderXML::DataContainer</a></div><div class="ttdef"><b>Definition:</b> <a href="BuilderXML_8hpp_source.html#l00051">BuilderXML.hpp:51</a></div></div>
<div class="ttc" id="namespaceComPWA_html_a381a6fe8ccb17cc2463fba2ff388ba84"><div class="ttname"><a href="namespaceComPWA.html#a381a6fe8ccb17cc2463fba2ff388ba84">ComPWA::readParticles</a></div><div class="ttdeci">ParticleList readParticles(std::stringstream &Stream)</div><div class="ttdoc">Read list of particles from a stringstream For some reason the boost xml parser needs a non-const ref...</div><div class="ttdef"><b>Definition:</b> <a href="Properties_8cpp_source.html#l00151">Properties.cpp:151</a></div></div>
<div class="ttc" id="namespaceComPWA_1_1Physics_html_a3eba68d6543b91b517a20c766a791986"><div class="ttname"><a href="namespaceComPWA_1_1Physics.html#a3eba68d6543b91b517a20c766a791986">ComPWA::Physics::stringToVectInt</a></div><div class="ttdeci">std::vector< unsigned int > stringToVectInt(std::string str)</div><div class="ttdoc">Helper funtions to transfor a string of space-separated numbers to a vector<unsigned int>...</div><div class="ttdef"><b>Definition:</b> <a href="SubSystem_8hpp_source.html#l00054">SubSystem.hpp:54</a></div></div>
<div class="ttc" id="classComPWA_1_1Physics_1_1IntensityBuilderXML_html_a937fbbe89ab82c5824a2eab4b32ef577"><div class="ttname"><a href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a937fbbe89ab82c5824a2eab4b32ef577">ComPWA::Physics::IntensityBuilderXML::addFunctionTreeComponent</a></div><div class="ttdeci">void addFunctionTreeComponent(std::string Name, std::string Type, std::shared_ptr< ComPWA::FunctionTree::TreeNode > FT)</div><div class="ttdef"><b>Definition:</b> <a href="BuilderXML_8cpp_source.html#l00951">BuilderXML.cpp:951</a></div></div>
<div class="ttc" id="BuilderXML_8hpp_html"><div class="ttname"><a href="BuilderXML_8hpp.html">BuilderXML.hpp</a></div></div>
<div class="ttc" id="namespaceComPWA_1_1FunctionTree_html_a71772f3f9a738acd9d2476d99d51d9b4"><div class="ttname"><a href="namespaceComPWA_1_1FunctionTree.html#a71772f3f9a738acd9d2476d99d51d9b4">ComPWA::FunctionTree::MDouble</a></div><div class="ttdeci">std::shared_ptr< Value< std::vector< double > > > MDouble(std::string name, size_t s, double el=0.)</div><div class="ttdef"><b>Definition:</b> <a href="Value_8hpp_source.html#l00134">Value.hpp:134</a></div></div>
<div class="ttc" id="classComPWA_1_1FunctionTree_1_1ParameterList_html_a874c4c9cc3ef8abdb43306df926ba8a7"><div class="ttname"><a href="classComPWA_1_1FunctionTree_1_1ParameterList.html#a874c4c9cc3ef8abdb43306df926ba8a7">ComPWA::FunctionTree::ParameterList::addUniqueParameter</a></div><div class="ttdeci">std::shared_ptr< FitParameter > addUniqueParameter(std::shared_ptr< FitParameter > par)</div><div class="ttdef"><b>Definition:</b> <a href="ParameterList_8cpp_source.html#l00069">ParameterList.cpp:69</a></div></div>
<div class="ttc" id="classComPWA_1_1Physics_1_1IntensityBuilderXML_html_a200f5855fb1c4216d54577cf1ad24480"><div class="ttname"><a href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a200f5855fb1c4216d54577cf1ad24480">ComPWA::Physics::IntensityBuilderXML::createIncoherentIntensityFT</a></div><div class="ttdeci">std::shared_ptr< ComPWA::FunctionTree::TreeNode > createIncoherentIntensityFT(const boost::property_tree::ptree &pt, const ComPWA::FunctionTree::ParameterList &DataSample)</div><div class="ttdef"><b>Definition:</b> <a href="BuilderXML_8cpp_source.html#l00172">BuilderXML.cpp:172</a></div></div>
<div class="ttc" id="namespaceComPWA_html_a0c8ca3e66b45bb8d2299411c886f740c"><div class="ttname"><a href="namespaceComPWA.html#a0c8ca3e66b45bb8d2299411c886f740c">ComPWA::findParticle</a></div><div class="ttdeci">const ParticleProperties & findParticle(const ParticleList &list, pid Pid)</div><div class="ttdef"><b>Definition:</b> <a href="Properties_8hpp_source.html#l00093">Properties.hpp:93</a></div></div>
<div class="ttc" id="namespaceComPWA_1_1Physics_html_ae25ae9dce6fb6cd26b090b00e9bc2176"><div class="ttname"><a href="namespaceComPWA_1_1Physics.html#ae25ae9dce6fb6cd26b090b00e9bc2176">ComPWA::Physics::createFourMomentum</a></div><div class="ttdeci">FourMomentum createFourMomentum(const boost::property_tree::ptree &pt)</div><div class="ttdef"><b>Definition:</b> <a href="BuilderXML_8cpp_source.html#l00965">BuilderXML.cpp:965</a></div></div>
<div class="ttc" id="namespaceComPWA_1_1Physics_html_aafb580826db8bc85ac83992878b44f23"><div class="ttname"><a href="namespaceComPWA_1_1Physics.html#aafb580826db8bc85ac83992878b44f23">ComPWA::Physics::updateDataContainerContent</a></div><div class="ttdeci">void updateDataContainerContent(ComPWA::FunctionTree::ParameterList &DataList, const EventCollection &DataSample, const Kinematics &Kinematics)</div><div class="ttdef"><b>Definition:</b> <a href="BuilderXML_8cpp_source.html#l00898">BuilderXML.cpp:898</a></div></div>
<div class="ttc" id="Logging_8hpp_html"><div class="ttname"><a href="Logging_8hpp.html">Logging.hpp</a></div></div>
<div class="ttc" id="structComPWA_1_1EventCollection_html"><div class="ttname"><a href="structComPWA_1_1EventCollection.html">ComPWA::EventCollection</a></div><div class="ttdef"><b>Definition:</b> <a href="Event_8hpp_source.html#l00025">Event.hpp:25</a></div></div>
<div class="ttc" id="structComPWA_1_1Physics_1_1IntensityBuilderXML_1_1DataContainer_html_a07558b8e6241e2f5bf5fcc0652005a40"><div class="ttname"><a href="structComPWA_1_1Physics_1_1IntensityBuilderXML_1_1DataContainer.html#a07558b8e6241e2f5bf5fcc0652005a40">ComPWA::Physics::IntensityBuilderXML::DataContainer::Data</a></div><div class="ttdeci">ComPWA::FunctionTree::ParameterList Data</div><div class="ttdef"><b>Definition:</b> <a href="BuilderXML_8hpp_source.html#l00052">BuilderXML.hpp:52</a></div></div>
<div class="ttc" id="classComPWA_1_1Physics_1_1IntensityBuilderXML_html_a312f388891c870f230943ad472835d8f"><div class="ttname"><a href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a312f388891c870f230943ad472835d8f">ComPWA::Physics::IntensityBuilderXML::getAllComponentNames</a></div><div class="ttdeci">std::map< std::string, std::string > getAllComponentNames() const</div><div class="ttdef"><b>Definition:</b> <a href="BuilderXML_8cpp_source.html#l00131">BuilderXML.cpp:131</a></div></div>
<div class="ttc" id="namespaceComPWA_html_ae6e7133b1bee4d3e7d0d01f1cdb49278"><div class="ttname"><a href="namespaceComPWA.html#ae6e7133b1bee4d3e7d0d01f1cdb49278">ComPWA::IndexList</a></div><div class="ttdeci">std::vector< unsigned int > IndexList</div><div class="ttdef"><b>Definition:</b> <a href="SubSystem_8hpp_source.html#l00020">SubSystem.hpp:20</a></div></div>
<div class="ttc" id="namespaceComPWA_1_1Physics_1_1Dynamics_1_1RelativisticBreitWigner_html"><div class="ttname"><a href="namespaceComPWA_1_1Physics_1_1Dynamics_1_1RelativisticBreitWigner.html">ComPWA::Physics::Dynamics::RelativisticBreitWigner</a></div><div class="ttdef"><b>Definition:</b> <a href="RelativisticBreitWigner_8hpp_source.html#l00035">RelativisticBreitWigner.hpp:35</a></div></div>
<div class="ttc" id="classComPWA_1_1Physics_1_1IntensityBuilderXML_html_a531d213870d58daccd8983c8ee41b630"><div class="ttname"><a href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a531d213870d58daccd8983c8ee41b630">ComPWA::Physics::IntensityBuilderXML::createIntensity</a></div><div class="ttdeci">ComPWA::FunctionTree::FunctionTreeIntensity createIntensity()</div><div class="ttdef"><b>Definition:</b> <a href="BuilderXML_8cpp_source.html#l00049">BuilderXML.cpp:49</a></div></div>
<div class="ttc" id="classComPWA_1_1Physics_1_1IntensityBuilderXML_html_a77dea96c3aaf42bddaafb89ab0d217c3"><div class="ttname"><a href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a77dea96c3aaf42bddaafb89ab0d217c3">ComPWA::Physics::IntensityBuilderXML::createIntensityComponents</a></div><div class="ttdeci">std::vector< ComPWA::Tools::IntensityComponent > createIntensityComponents(std::vector< std::vector< std::string >> ComponentList={})</div><div class="ttdef"><b>Definition:</b> <a href="BuilderXML_8cpp_source.html#l00065">BuilderXML.cpp:65</a></div></div>
<div class="ttc" id="classComPWA_1_1Physics_1_1IntensityBuilderXML_html_a8cc4d27b00a07268bd20c17d21e083f9"><div class="ttname"><a href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a8cc4d27b00a07268bd20c17d21e083f9">ComPWA::Physics::IntensityBuilderXML::createHelicityDecayFT</a></div><div class="ttdeci">std::shared_ptr< ComPWA::FunctionTree::TreeNode > createHelicityDecayFT(const boost::property_tree::ptree &pt, const ComPWA::FunctionTree::ParameterList &DataSample)</div><div class="ttdef"><b>Definition:</b> <a href="BuilderXML_8cpp_source.html#l00646">BuilderXML.cpp:646</a></div></div>
<div class="ttc" id="classComPWA_1_1Physics_1_1IntensityBuilderXML_html_abfa584a1ccc381745c8f6035d4bdb0fd"><div class="ttname"><a href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#abfa584a1ccc381745c8f6035d4bdb0fd">ComPWA::Physics::IntensityBuilderXML::PhspData</a></div><div class="ttdeci">DataContainer PhspData</div><div class="ttdef"><b>Definition:</b> <a href="BuilderXML_8hpp_source.html#l00138">BuilderXML.hpp:138</a></div></div>
<div class="ttc" id="classComPWA_1_1Physics_1_1IntensityBuilderXML_html_a82fac4c99121d671e82fd1fee7e491eb"><div class="ttname"><a href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a82fac4c99121d671e82fd1fee7e491eb">ComPWA::Physics::IntensityBuilderXML::updateDataContainerState</a></div><div class="ttdeci">void updateDataContainerState()</div><div class="ttdef"><b>Definition:</b> <a href="BuilderXML_8cpp_source.html#l00891">BuilderXML.cpp:891</a></div></div>
<div class="ttc" id="classComPWA_1_1Physics_1_1IntensityBuilderXML_html_a335034e1983470216a8b9844ad2fc26b"><div class="ttname"><a href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a335034e1983470216a8b9844ad2fc26b">ComPWA::Physics::IntensityBuilderXML::createCoherentIntensityFT</a></div><div class="ttdeci">std::shared_ptr< ComPWA::FunctionTree::TreeNode > createCoherentIntensityFT(const boost::property_tree::ptree &pt, const ComPWA::FunctionTree::ParameterList &DataSample)</div><div class="ttdef"><b>Definition:</b> <a href="BuilderXML_8cpp_source.html#l00205">BuilderXML.cpp:205</a></div></div>
<div class="ttc" id="structComPWA_1_1Physics_1_1Dynamics_1_1RelativisticBreitWigner_1_1InputInfo_html_a6a4849b65a692d884151945428565971"><div class="ttname"><a href="structComPWA_1_1Physics_1_1Dynamics_1_1RelativisticBreitWigner_1_1InputInfo.html#a6a4849b65a692d884151945428565971">ComPWA::Physics::Dynamics::RelativisticBreitWigner::InputInfo::Width</a></div><div class="ttdeci">std::shared_ptr< ComPWA::FunctionTree::FitParameter > Width</div><div class="ttdoc">Decay width of resonant state. </div><div class="ttdef"><b>Definition:</b> <a href="RelativisticBreitWigner_8hpp_source.html#l00043">RelativisticBreitWigner.hpp:43</a></div></div>
<div class="ttc" id="namespaceComPWA_1_1Physics_1_1HelicityFormalism_1_1WignerD_html_ad476c8331415d07db057330d1714eb27"><div class="ttname"><a href="namespaceComPWA_1_1Physics_1_1HelicityFormalism_1_1WignerD.html#ad476c8331415d07db057330d1714eb27">ComPWA::Physics::HelicityFormalism::WignerD::createFunctionTree</a></div><div class="ttdeci">std::shared_ptr< ComPWA::FunctionTree::TreeNode > createFunctionTree(double J, double MuPrime, double Mu, std::shared_ptr< ComPWA::FunctionTree::Value< std::vector< double >>> Theta, std::shared_ptr< ComPWA::FunctionTree::Value< std::vector< double >>> Phi)</div><div class="ttdef"><b>Definition:</b> <a href="WignerD_8cpp_source.html#l00013">WignerD.cpp:13</a></div></div>
<div class="ttc" id="structComPWA_1_1EventCollection_html_ae046211ede6817d51d769b372aab67dc"><div class="ttname"><a href="structComPWA_1_1EventCollection.html#ae046211ede6817d51d769b372aab67dc">ComPWA::EventCollection::Events</a></div><div class="ttdeci">std::vector< Event > Events</div><div class="ttdef"><b>Definition:</b> <a href="Event_8hpp_source.html#l00034">Event.hpp:34</a></div></div>
<div class="ttc" id="classComPWA_1_1Physics_1_1HelicityFormalism_1_1HelicityKinematics_html"><div class="ttname"><a href="classComPWA_1_1Physics_1_1HelicityFormalism_1_1HelicityKinematics.html">ComPWA::Physics::HelicityFormalism::HelicityKinematics</a></div><div class="ttdoc">Implementation of the ComPWA::Kinematics interface for amplitude models using the helicity formalism...</div><div class="ttdef"><b>Definition:</b> <a href="HelicityKinematics_8hpp_source.html#l00044">HelicityKinematics.hpp:44</a></div></div>
<div class="ttc" id="structComPWA_1_1Physics_1_1TwoBodyDecayInfo_html"><div class="ttname"><a href="structComPWA_1_1Physics_1_1TwoBodyDecayInfo.html">ComPWA::Physics::TwoBodyDecayInfo</a></div><div class="ttdef"><b>Definition:</b> <a href="BuilderXML_8hpp_source.html#l00157">BuilderXML.hpp:157</a></div></div>
<div class="ttc" id="structComPWA_1_1Physics_1_1Dynamics_1_1InputInfo_html_a920e649ccd6a3205b137ed1d511593cb"><div class="ttname"><a href="structComPWA_1_1Physics_1_1Dynamics_1_1InputInfo.html#a920e649ccd6a3205b137ed1d511593cb">ComPWA::Physics::Dynamics::InputInfo::MesonRadius</a></div><div class="ttdeci">std::shared_ptr< ComPWA::FunctionTree::FitParameter > MesonRadius</div><div class="ttdoc">Meson radius of resonant state. </div><div class="ttdef"><b>Definition:</b> <a href="RelativisticBreitWigner_8hpp_source.html#l00030">RelativisticBreitWigner.hpp:30</a></div></div>
<div class="ttc" id="classComPWA_1_1Physics_1_1IntensityBuilderXML_html_aaf80bf1a56da92317cfdcb83d38e3979"><div class="ttname"><a href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#aaf80bf1a56da92317cfdcb83d38e3979">ComPWA::Physics::IntensityBuilderXML::createIntensityFT</a></div><div class="ttdeci">std::shared_ptr< ComPWA::FunctionTree::TreeNode > createIntensityFT(const boost::property_tree::ptree &pt, const ComPWA::FunctionTree::ParameterList &DataSample)</div><div class="ttdef"><b>Definition:</b> <a href="BuilderXML_8cpp_source.html#l00140">BuilderXML.cpp:140</a></div></div>
<div class="ttc" id="namespaceComPWA_html_ac32ebe66cb052341dfbabe607551b502"><div class="ttname"><a href="namespaceComPWA.html#ac32ebe66cb052341dfbabe607551b502">ComPWA::ParticleList</a></div><div class="ttdeci">std::set< ParticleProperties > ParticleList</div><div class="ttdef"><b>Definition:</b> <a href="Properties_8hpp_source.html#l00084">Properties.hpp:84</a></div></div>
<div class="ttc" id="classComPWA_1_1FunctionTree_1_1ParameterList_html_a0b25635f1868b9c6861b673d86328e4a"><div class="ttname"><a href="classComPWA_1_1FunctionTree_1_1ParameterList.html#a0b25635f1868b9c6861b673d86328e4a">ComPWA::FunctionTree::ParameterList::mDoubleValues</a></div><div class="ttdeci">virtual std::vector< std::shared_ptr< Value< std::vector< double > > > > & mDoubleValues()</div><div class="ttdef"><b>Definition:</b> <a href="ParameterList_8hpp_source.html#l00144">ParameterList.hpp:144</a></div></div>
<div class="ttc" id="Integration_8hpp_html"><div class="ttname"><a href="Integration_8hpp.html">Integration.hpp</a></div></div>
<div class="ttc" id="classComPWA_1_1Physics_1_1IntensityBuilderXML_html_a4163beea1113a76aca71c0a751c1b05e"><div class="ttname"><a href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a4163beea1113a76aca71c0a751c1b05e">ComPWA::Physics::IntensityBuilderXML::createNormalizedAmplitudeFT</a></div><div class="ttdeci">std::shared_ptr< ComPWA::FunctionTree::TreeNode > createNormalizedAmplitudeFT(const boost::property_tree::ptree &pt, const ComPWA::FunctionTree::ParameterList &DataSample)</div><div class="ttdef"><b>Definition:</b> <a href="BuilderXML_8cpp_source.html#l00415">BuilderXML.cpp:415</a></div></div>
<div class="ttc" id="classComPWA_1_1Physics_1_1IntensityBuilderXML_html_a046ae8de18b46775d1dda620b6f394ad"><div class="ttname"><a href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a046ae8de18b46775d1dda620b6f394ad">ComPWA::Physics::IntensityBuilderXML::ComponentRegisteringEnabled</a></div><div class="ttdeci">bool ComponentRegisteringEnabled</div><div class="ttdef"><b>Definition:</b> <a href="BuilderXML_8hpp_source.html#l00123">BuilderXML.hpp:123</a></div></div>
<div class="ttc" id="classComPWA_1_1Physics_1_1IntensityBuilderXML_html_a40baa193066450416f1c4eb076219b2c"><div class="ttname"><a href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a40baa193066450416f1c4eb076219b2c">ComPWA::Physics::IntensityBuilderXML::updateDataContainerWeights</a></div><div class="ttdeci">void updateDataContainerWeights(DataContainer &DataCon, const EventCollection &DataSample)</div><div class="ttdef"><b>Definition:</b> <a href="BuilderXML_8cpp_source.html#l00929">BuilderXML.cpp:929</a></div></div>
<div class="ttc" id="classComPWA_1_1FunctionTree_1_1Inverse_html"><div class="ttname"><a href="classComPWA_1_1FunctionTree_1_1Inverse.html">ComPWA::FunctionTree::Inverse</a></div><div class="ttdoc">Calculates the inverse of input double values and double parameters. </div><div class="ttdef"><b>Definition:</b> <a href="Functions_8hpp_source.html#l00063">Functions.hpp:63</a></div></div>
<div class="ttc" id="classComPWA_1_1Physics_1_1IntensityBuilderXML_html_a37b3355f0bded145d3f636a0724d3c3e"><div class="ttname"><a href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a37b3355f0bded145d3f636a0724d3c3e">ComPWA::Physics::IntensityBuilderXML::createNormalizedIntensityFT</a></div><div class="ttdeci">std::shared_ptr< ComPWA::FunctionTree::TreeNode > createNormalizedIntensityFT(const boost::property_tree::ptree &pt, const ComPWA::FunctionTree::ParameterList &DataSample)</div><div class="ttdef"><b>Definition:</b> <a href="BuilderXML_8cpp_source.html#l00275">BuilderXML.cpp:275</a></div></div>
<div class="ttc" id="classComPWA_1_1Physics_1_1IntensityBuilderXML_html_aabc03f626cfd14ae119eb5ef813f9326"><div class="ttname"><a href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#aabc03f626cfd14ae119eb5ef813f9326">ComPWA::Physics::IntensityBuilderXML::createStrengthIntensityFT</a></div><div class="ttdeci">std::shared_ptr< ComPWA::FunctionTree::TreeNode > createStrengthIntensityFT(const boost::property_tree::ptree &pt, const ComPWA::FunctionTree::ParameterList &DataSample)</div><div class="ttdef"><b>Definition:</b> <a href="BuilderXML_8cpp_source.html#l00240">BuilderXML.cpp:240</a></div></div>
<div class="ttc" id="WignerD_8hpp_html"><div class="ttname"><a href="WignerD_8hpp.html">WignerD.hpp</a></div></div>
<div class="ttc" id="classComPWA_1_1Physics_1_1IntensityBuilderXML_html_a034842a1b149b34e67210c7bf2d2f14c"><div class="ttname"><a href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a034842a1b149b34e67210c7bf2d2f14c">ComPWA::Physics::IntensityBuilderXML::Kinematic</a></div><div class="ttdeci">Kinematics & Kinematic</div><div class="ttdef"><b>Definition:</b> <a href="BuilderXML_8hpp_source.html#l00131">BuilderXML.hpp:131</a></div></div>
<div class="ttc" id="namespaceComPWA_1_1Physics_1_1Dynamics_1_1Flatte_html_a6168e5ecfad576c937c30f9bc82140d1"><div class="ttname"><a href="namespaceComPWA_1_1Physics_1_1Dynamics_1_1Flatte.html#a6168e5ecfad576c937c30f9bc82140d1">ComPWA::Physics::Dynamics::Flatte::createFunctionTree</a></div><div class="ttdeci">std::shared_ptr< ComPWA::FunctionTree::TreeNode > createFunctionTree(InputInfo Params, std::shared_ptr< ComPWA::FunctionTree::Value< std::vector< double >>> InvMassSquared)</div><div class="ttdef"><b>Definition:</b> <a href="Flatte_8cpp_source.html#l00017">Flatte.cpp:17</a></div></div>
<div class="ttc" id="DataSet_8hpp_html"><div class="ttname"><a href="DataSet_8hpp.html">DataSet.hpp</a></div></div>
<div class="ttc" id="classComPWA_1_1BadConfig_html"><div class="ttname"><a href="classComPWA_1_1BadConfig.html">ComPWA::BadConfig</a></div><div class="ttdoc">Config is not complete. </div><div class="ttdef"><b>Definition:</b> <a href="Exceptions_8hpp_source.html#l00050">Exceptions.hpp:50</a></div></div>
<div class="ttc" id="structComPWA_1_1Physics_1_1Dynamics_1_1InputInfo_html_a43cd9038f0d104cdf0d4118b9093045c"><div class="ttname"><a href="structComPWA_1_1Physics_1_1Dynamics_1_1InputInfo.html#a43cd9038f0d104cdf0d4118b9093045c">ComPWA::Physics::Dynamics::InputInfo::Type</a></div><div class="ttdeci">std::string Type</div><div class="ttdef"><b>Definition:</b> <a href="RelativisticBreitWigner_8hpp_source.html#l00019">RelativisticBreitWigner.hpp:19</a></div></div>
<div class="ttc" id="classComPWA_1_1Physics_1_1IntensityBuilderXML_html_a55add478e1164378349eaa9d72188651"><div class="ttname"><a href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a55add478e1164378349eaa9d72188651">ComPWA::Physics::IntensityBuilderXML::createSequentialAmplitudeFT</a></div><div class="ttdeci">std::shared_ptr< ComPWA::FunctionTree::TreeNode > createSequentialAmplitudeFT(const boost::property_tree::ptree &pt, const ComPWA::FunctionTree::ParameterList &DataSample)</div><div class="ttdef"><b>Definition:</b> <a href="BuilderXML_8cpp_source.html#l00579">BuilderXML.cpp:579</a></div></div>
<div class="ttc" id="namespaceComPWA_1_1Physics_1_1Dynamics_1_1Voigtian_html"><div class="ttname"><a href="namespaceComPWA_1_1Physics_1_1Dynamics_1_1Voigtian.html">ComPWA::Physics::Dynamics::Voigtian</a></div><div class="ttdef"><b>Definition:</b> <a href="Voigtian_8hpp_source.html#l00039">Voigtian.hpp:39</a></div></div>
<div class="ttc" id="namespaceComPWA_1_1FunctionTree_html_a363739a3a01f67438abc98fe58ee8763"><div class="ttname"><a href="namespaceComPWA_1_1FunctionTree.html#a363739a3a01f67438abc98fe58ee8763">ComPWA::FunctionTree::createLeaf</a></div><div class="ttdeci">std::shared_ptr< TreeNode > createLeaf(std::shared_ptr< Parameter > parameter)</div><div class="ttdef"><b>Definition:</b> <a href="TreeNode_8cpp_source.html#l00156">TreeNode.cpp:156</a></div></div>
<div class="ttc" id="structComPWA_1_1Event_html_a8a130412ee6d2c531a7aed66c70cb166"><div class="ttname"><a href="structComPWA_1_1Event.html#a8a130412ee6d2c531a7aed66c70cb166">ComPWA::Event::Weight</a></div><div class="ttdeci">double Weight</div><div class="ttdef"><b>Definition:</b> <a href="Event_8hpp_source.html#l00022">Event.hpp:22</a></div></div>
<div class="ttc" id="classComPWA_1_1Physics_1_1IntensityBuilderXML_html_a6f983ed53c8938748e8477ce14c8cf51"><div class="ttname"><a href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a6f983ed53c8938748e8477ce14c8cf51">ComPWA::Physics::IntensityBuilderXML::updateDataContainerContent</a></div><div class="ttdeci">void updateDataContainerContent()</div><div class="ttdef"><b>Definition:</b> <a href="BuilderXML_8cpp_source.html#l00924">BuilderXML.cpp:924</a></div></div>
<div class="ttc" id="structComPWA_1_1Physics_1_1Dynamics_1_1Flatte_1_1InputInfo_html_a5c1155ffd3b629c13abfa7d80e9ea008"><div class="ttname"><a href="structComPWA_1_1Physics_1_1Dynamics_1_1Flatte_1_1InputInfo.html#a5c1155ffd3b629c13abfa7d80e9ea008">ComPWA::Physics::Dynamics::Flatte::InputInfo::HiddenCouplings</a></div><div class="ttdeci">std::vector< Coupling > HiddenCouplings</div><div class="ttdoc">Coupling parameters and final state masses for multiple hidden channels. </div><div class="ttdef"><b>Definition:</b> <a href="Flatte_8hpp_source.html#l00021">Flatte.hpp:21</a></div></div>
<div class="ttc" id="namespaceComPWA_1_1FunctionTree_html_a1c92bdd43dd1d5847f10458ac83f0170"><div class="ttname"><a href="namespaceComPWA_1_1FunctionTree.html#a1c92bdd43dd1d5847f10458ac83f0170">ComPWA::FunctionTree::MComplex</a></div><div class="ttdeci">std::shared_ptr< Value< std::vector< std::complex< double > > > > MComplex(std::string name, size_t s, std::complex< double > el=std::complex< double >(0., 0.))</div><div class="ttdef"><b>Definition:</b> <a href="Value_8hpp_source.html#l00120">Value.hpp:120</a></div></div>
<div class="ttc" id="structComPWA_1_1Physics_1_1Dynamics_1_1InputInfo_html_a7ae1430be73f2cbfdb439cb1c9655f55"><div class="ttname"><a href="structComPWA_1_1Physics_1_1Dynamics_1_1InputInfo.html#a7ae1430be73f2cbfdb439cb1c9655f55">ComPWA::Physics::Dynamics::InputInfo::L</a></div><div class="ttdeci">unsigned int L</div><div class="ttdoc">Orbital Angular Momentum between two daughters in Resonance decay. </div><div class="ttdef"><b>Definition:</b> <a href="RelativisticBreitWigner_8hpp_source.html#l00021">RelativisticBreitWigner.hpp:21</a></div></div>
<div class="ttc" id="classComPWA_1_1FunctionTree_1_1FitParameter_html"><div class="ttname"><a href="classComPWA_1_1FunctionTree_1_1FitParameter.html">ComPWA::FunctionTree::FitParameter</a></div><div class="ttdef"><b>Definition:</b> <a href="FunctionTree_2FitParameter_8hpp_source.html#l00034">FitParameter.hpp:34</a></div></div>
<div class="ttc" id="classComPWA_1_1Physics_1_1IntensityBuilderXML_html_a1156f6f64911708e34d6c158d49cf9d1"><div class="ttname"><a href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a1156f6f64911708e34d6c158d49cf9d1">ComPWA::Physics::IntensityBuilderXML::Parameters</a></div><div class="ttdeci">ComPWA::FunctionTree::ParameterList Parameters</div><div class="ttdef"><b>Definition:</b> <a href="BuilderXML_8hpp_source.html#l00136">BuilderXML.hpp:136</a></div></div>
<div class="ttc" id="namespaceComPWA_1_1Physics_1_1Dynamics_html_a42597176f103dba13466df14f66b31dd"><div class="ttname"><a href="namespaceComPWA_1_1Physics_1_1Dynamics.html#a42597176f103dba13466df14f66b31dd">ComPWA::Physics::Dynamics::createFunctionTree</a></div><div class="ttdeci">std::shared_ptr< ComPWA::FunctionTree::TreeNode > createFunctionTree(std::shared_ptr< ComPWA::FunctionTree::Value< std::vector< double >>> InvMassSquaredDaughter1, std::shared_ptr< ComPWA::FunctionTree::Value< std::vector< double >>> InvMassSquaredDaughter2, std::shared_ptr< ComPWA::FunctionTree::FitParameter > MesonRadius, unsigned int L, std::shared_ptr< FormFactor > FormFactorFunctor, std::shared_ptr< ComPWA::FunctionTree::Value< std::vector< double >>> InvMassSquared)</div><div class="ttdef"><b>Definition:</b> <a href="FormFactor_8cpp_source.html#l00017">FormFactor.cpp:17</a></div></div>
<div class="ttc" id="classComPWA_1_1Physics_1_1IntensityBuilderXML_html_ab3e37d499b8579f6f3a275dcf1f35814"><div class="ttname"><a href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#ab3e37d499b8579f6f3a275dcf1f35814">ComPWA::Physics::IntensityBuilderXML::RecoPhspSample</a></div><div class="ttdeci">const EventCollection & RecoPhspSample</div><div class="ttdef"><b>Definition:</b> <a href="BuilderXML_8hpp_source.html#l00134">BuilderXML.hpp:134</a></div></div>
<div class="ttc" id="namespaceComPWA_1_1FunctionTree_html_aaa83a221399e408bae789ab6b24ff2baaf48127ec159d317d7adf99a2a13f5d63"><div class="ttname"><a href="namespaceComPWA_1_1FunctionTree.html#aaa83a221399e408bae789ab6b24ff2baaf48127ec159d317d7adf99a2a13f5d63">ComPWA::FunctionTree::MCOMPLEX</a></div><div class="ttdef"><b>Definition:</b> <a href="Parameter_8hpp_source.html#l00039">Parameter.hpp:39</a></div></div>
<div class="ttc" id="classComPWA_1_1Kinematics_html_a08c3ac264f7abaa82ecb19da5649a28a"><div class="ttname"><a href="classComPWA_1_1Kinematics.html#a08c3ac264f7abaa82ecb19da5649a28a">ComPWA::Kinematics::phspVolume</a></div><div class="ttdeci">virtual double phspVolume() const =0</div></div>
<div class="ttc" id="Flatte_8hpp_html"><div class="ttname"><a href="Flatte_8hpp.html">Flatte.hpp</a></div></div>
<div class="ttc" id="classComPWA_1_1Kinematics_html"><div class="ttname"><a href="classComPWA_1_1Kinematics.html">ComPWA::Kinematics</a></div><div class="ttdoc">The Kinematics interface defines the conversion of Events to a DataSet. </div><div class="ttdef"><b>Definition:</b> <a href="Kinematics_8hpp_source.html#l00019">Kinematics.hpp:19</a></div></div>
<div class="ttc" id="namespaceComPWA_1_1Physics_html_a406fe5d01762c36d5a005921433882ac"><div class="ttname"><a href="namespaceComPWA_1_1Physics.html#a406fe5d01762c36d5a005921433882ac">ComPWA::Physics::createHelicityKinematics</a></div><div class="ttdeci">HelicityKinematics createHelicityKinematics(const std::string XmlFile)</div><div class="ttdoc">Create HelicityKinematics object from an XML file that contains both a kinematics section and a parti...</div><div class="ttdef"><b>Definition:</b> <a href="BuilderXML_8cpp_source.html#l01046">BuilderXML.cpp:1046</a></div></div>
<div class="ttc" id="structComPWA_1_1Physics_1_1Dynamics_1_1InputInfo_html_ab58ad1f99c8c3406bb18c8c5af6a0daa"><div class="ttname"><a href="structComPWA_1_1Physics_1_1Dynamics_1_1InputInfo.html#ab58ad1f99c8c3406bb18c8c5af6a0daa">ComPWA::Physics::Dynamics::InputInfo::DaughterInvariantMasses</a></div><div class="ttdeci">std::pair< std::shared_ptr< ComPWA::FunctionTree::Value< std::vector< double > > >, std::shared_ptr< ComPWA::FunctionTree::Value< std::vector< double > > > > DaughterInvariantMasses</div><div class="ttdoc">Invariant Masses of daughter particles. </div><div class="ttdef"><b>Definition:</b> <a href="RelativisticBreitWigner_8hpp_source.html#l00025">RelativisticBreitWigner.hpp:25</a></div></div>
<div class="ttc" id="namespaceComPWA_1_1FunctionTree_html_aaa83a221399e408bae789ab6b24ff2baa35b3f1647608d32886e240032bb1658e"><div class="ttname"><a href="namespaceComPWA_1_1FunctionTree.html#aaa83a221399e408bae789ab6b24ff2baa35b3f1647608d32886e240032bb1658e">ComPWA::FunctionTree::DOUBLE</a></div><div class="ttdef"><b>Definition:</b> <a href="Parameter_8hpp_source.html#l00037">Parameter.hpp:37</a></div></div>
<div class="ttc" id="FormFactor_8hpp_html"><div class="ttname"><a href="FormFactor_8hpp.html">FormFactor.hpp</a></div></div>
<div class="ttc" id="structComPWA_1_1Physics_1_1IntensityBuilderXML_1_1DataContainer_html_a3cf4ab033f5fa0aaea95103d740747ab"><div class="ttname"><a href="structComPWA_1_1Physics_1_1IntensityBuilderXML_1_1DataContainer.html#a3cf4ab033f5fa0aaea95103d740747ab">ComPWA::Physics::IntensityBuilderXML::DataContainer::WeightSum</a></div><div class="ttdeci">double WeightSum</div><div class="ttdef"><b>Definition:</b> <a href="BuilderXML_8hpp_source.html#l00054">BuilderXML.hpp:54</a></div></div>
<div class="ttc" id="namespaceComPWA_1_1Physics_html_a0847a2fdf40da1ea6e67b1368b848142"><div class="ttname"><a href="namespaceComPWA_1_1Physics.html#a0847a2fdf40da1ea6e67b1368b848142">ComPWA::Physics::updateDataContainerState</a></div><div class="ttdeci">void updateDataContainerState(ComPWA::FunctionTree::ParameterList &DataSample, const Kinematics &Kinematics)</div><div class="ttdef"><b>Definition:</b> <a href="BuilderXML_8cpp_source.html#l00869">BuilderXML.cpp:869</a></div></div>
<div class="ttc" id="structComPWA_1_1Event_html"><div class="ttname"><a href="structComPWA_1_1Event.html">ComPWA::Event</a></div><div class="ttdoc">Data structure containing all kinematic information of a physics event. </div><div class="ttdef"><b>Definition:</b> <a href="Event_8hpp_source.html#l00020">Event.hpp:20</a></div></div>
<div class="ttc" id="structComPWA_1_1Physics_1_1Dynamics_1_1InputInfo_html_ad05195c98881bf5a04c7aa9804782c74"><div class="ttname"><a href="structComPWA_1_1Physics_1_1Dynamics_1_1InputInfo.html#ad05195c98881bf5a04c7aa9804782c74">ComPWA::Physics::Dynamics::InputInfo::Mass</a></div><div class="ttdeci">std::shared_ptr< ComPWA::FunctionTree::FitParameter > Mass</div><div class="ttdoc">Resonance mass. </div><div class="ttdef"><b>Definition:</b> <a href="RelativisticBreitWigner_8hpp_source.html#l00027">RelativisticBreitWigner.hpp:27</a></div></div>
<div class="ttc" id="structComPWA_1_1Physics_1_1Dynamics_1_1Flatte_1_1InputInfo_html"><div class="ttname"><a href="structComPWA_1_1Physics_1_1Dynamics_1_1Flatte_1_1InputInfo.html">ComPWA::Physics::Dynamics::Flatte::InputInfo</a></div><div class="ttdef"><b>Definition:</b> <a href="Flatte_8hpp_source.html#l00017">Flatte.hpp:17</a></div></div>
<div class="ttc" id="classComPWA_1_1FunctionTree_1_1FunctionTreeIntensity_html"><div class="ttname"><a href="classComPWA_1_1FunctionTree_1_1FunctionTreeIntensity.html">ComPWA::FunctionTree::FunctionTreeIntensity</a></div><div class="ttdef"><b>Definition:</b> <a href="FunctionTreeIntensity_8hpp_source.html#l00016">FunctionTreeIntensity.hpp:16</a></div></div>
<div class="ttc" id="classComPWA_1_1Physics_1_1IntensityBuilderXML_html_a1d9112d7de0dcea23a74d167935b3f4a"><div class="ttname"><a href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a1d9112d7de0dcea23a74d167935b3f4a">ComPWA::Physics::IntensityBuilderXML::Data</a></div><div class="ttdeci">DataContainer Data</div><div class="ttdef"><b>Definition:</b> <a href="BuilderXML_8hpp_source.html#l00137">BuilderXML.hpp:137</a></div></div>
<div class="ttc" id="namespaceComPWA_1_1Physics_html_aefdac3077b44661e2910211fba2ab593"><div class="ttname"><a href="namespaceComPWA_1_1Physics.html#aefdac3077b44661e2910211fba2ab593">ComPWA::Physics::extractDecayInfo</a></div><div class="ttdeci">TwoBodyDecayInfo extractDecayInfo(const boost::property_tree::ptree &pt)</div><div class="ttdef"><b>Definition:</b> <a href="BuilderXML_8cpp_source.html#l00609">BuilderXML.cpp:609</a></div></div>
<div class="ttc" id="structComPWA_1_1Physics_1_1IntensityBuilderXML_1_1DataContainer_html_a2fc0008484e866620c262baf96f95055"><div class="ttname"><a href="structComPWA_1_1Physics_1_1IntensityBuilderXML_1_1DataContainer.html#a2fc0008484e866620c262baf96f95055">ComPWA::Physics::IntensityBuilderXML::DataContainer::Weights</a></div><div class="ttdeci">std::shared_ptr< ComPWA::FunctionTree::Value< std::vector< double > > > Weights</div><div class="ttdef"><b>Definition:</b> <a href="BuilderXML_8hpp_source.html#l00053">BuilderXML.hpp:53</a></div></div>
<div class="ttc" id="classComPWA_1_1Physics_1_1IntensityBuilderXML_html_a4d6b78096e6c8249c2e4330617dfee12"><div class="ttname"><a href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a4d6b78096e6c8249c2e4330617dfee12">ComPWA::Physics::IntensityBuilderXML::UniqueComponentFTMapping</a></div><div class="ttdeci">std::map< std::string, std::pair< std::string, std::shared_ptr< ComPWA::FunctionTree::TreeNode > > > UniqueComponentFTMapping</div><div class="ttdef"><b>Definition:</b> <a href="BuilderXML_8hpp_source.html#l00128">BuilderXML.hpp:128</a></div></div>
<div class="ttc" id="classComPWA_1_1Physics_1_1IntensityBuilderXML_html_af2a81da6aa89d8bacfaf1833a04a3260"><div class="ttname"><a href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#af2a81da6aa89d8bacfaf1833a04a3260">ComPWA::Physics::IntensityBuilderXML::IntensityBuilderXML</a></div><div class="ttdeci">IntensityBuilderXML(ParticleList ParticleList, Kinematics &Kinematics, const boost::property_tree::ptree &ModelTree, const EventCollection &TruePhspSample={}, const EventCollection &RecoPhspSample={})</div><div class="ttdef"><b>Definition:</b> <a href="BuilderXML_8cpp_source.html#l00031">BuilderXML.cpp:31</a></div></div>
<div class="ttc" id="classComPWA_1_1Physics_1_1IntensityBuilderXML_html_ae7402fc5586eb420b92bf72a569fc985"><div class="ttname"><a href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#ae7402fc5586eb420b92bf72a569fc985">ComPWA::Physics::IntensityBuilderXML::createAmplitudeFT</a></div><div class="ttdeci">std::shared_ptr< ComPWA::FunctionTree::TreeNode > createAmplitudeFT(const boost::property_tree::ptree &pt, const ComPWA::FunctionTree::ParameterList &DataSample)</div><div class="ttdef"><b>Definition:</b> <a href="BuilderXML_8cpp_source.html#l00385">BuilderXML.cpp:385</a></div></div>
<div class="ttc" id="structComPWA_1_1Physics_1_1Dynamics_1_1Flatte_1_1InputInfo_html_a4e4deca4062a41a1de0828f0678c35f9"><div class="ttname"><a href="structComPWA_1_1Physics_1_1Dynamics_1_1Flatte_1_1InputInfo.html#a4e4deca4062a41a1de0828f0678c35f9">ComPWA::Physics::Dynamics::Flatte::InputInfo::G</a></div><div class="ttdeci">std::shared_ptr< ComPWA::FunctionTree::FitParameter > G</div><div class="ttdoc">Coupling to signal channel. </div><div class="ttdef"><b>Definition:</b> <a href="Flatte_8hpp_source.html#l00019">Flatte.hpp:19</a></div></div>
<div class="ttc" id="classComPWA_1_1FunctionTree_1_1ParameterList_html"><div class="ttname"><a href="classComPWA_1_1FunctionTree_1_1ParameterList.html">ComPWA::FunctionTree::ParameterList</a></div><div class="ttdoc">This class provides a list of parameters and values of different types. </div><div class="ttdef"><b>Definition:</b> <a href="ParameterList_8hpp_source.html#l00037">ParameterList.hpp:37</a></div></div>
<div class="ttc" id="classComPWA_1_1FunctionTree_1_1ParameterList_html_a374ed57c30c7f9e4f329e4b8923b5e06"><div class="ttname"><a href="classComPWA_1_1FunctionTree_1_1ParameterList.html#a374ed57c30c7f9e4f329e4b8923b5e06">ComPWA::FunctionTree::ParameterList::mDoubleValue</a></div><div class="ttdeci">virtual std::shared_ptr< Value< std::vector< double > > > mDoubleValue(size_t i) const</div><div class="ttdef"><b>Definition:</b> <a href="ParameterList_8hpp_source.html#l00139">ParameterList.hpp:139</a></div></div>
<div class="ttc" id="namespaceComPWA_1_1FunctionTree_html_aaa83a221399e408bae789ab6b24ff2baa77e8a985f33cbdd3deafbf3bfe8287ef"><div class="ttname"><a href="namespaceComPWA_1_1FunctionTree.html#aaa83a221399e408bae789ab6b24ff2baa77e8a985f33cbdd3deafbf3bfe8287ef">ComPWA::FunctionTree::COMPLEX</a></div><div class="ttdef"><b>Definition:</b> <a href="Parameter_8hpp_source.html#l00036">Parameter.hpp:36</a></div></div>
<div class="ttc" id="RelativisticBreitWigner_8hpp_html"><div class="ttname"><a href="RelativisticBreitWigner_8hpp.html">RelativisticBreitWigner.hpp</a></div></div>
<div class="ttc" id="classComPWA_1_1Physics_1_1SubSystem_html"><div class="ttname"><a href="classComPWA_1_1Physics_1_1SubSystem.html">ComPWA::Physics::SubSystem</a></div><div class="ttdoc">Definition of a two-body decay node within a sequential decay tree. </div><div class="ttdef"><b>Definition:</b> <a href="SubSystem_8hpp_source.html#l00031">SubSystem.hpp:31</a></div></div>
<div class="ttc" id="classComPWA_1_1Physics_1_1IntensityBuilderXML_html_a04b2cab62a3477523b6f9b03561b66b6"><div class="ttname"><a href="classComPWA_1_1Physics_1_1IntensityBuilderXML.html#a04b2cab62a3477523b6f9b03561b66b6">ComPWA::Physics::IntensityBuilderXML::PhspRecoData</a></div><div class="ttdeci">DataContainer PhspRecoData</div><div class="ttdef"><b>Definition:</b> <a href="BuilderXML_8hpp_source.html#l00139">BuilderXML.hpp:139</a></div></div>
<div class="ttc" id="classComPWA_1_1FunctionTree_1_1AddAll_html"><div class="ttname"><a href="classComPWA_1_1FunctionTree_1_1AddAll.html">ComPWA::FunctionTree::AddAll</a></div><div class="ttdoc">Calculates the square root of input double values and double parameters. </div><div class="ttdef"><b>Definition:</b> <a href="Functions_8hpp_source.html#l00091">Functions.hpp:91</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- HTML footer for doxygen 1.8.13-->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_fd3a82303f5206df56505f8b5712131f.html">Physics</a></li><li class="navelem"><a class="el" href="BuilderXML_8cpp.html">BuilderXML.cpp</a></li>
<li class="footer">Generated on Mon Jun 22 2020 13:03:33 for ComPWA by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
</ul>
</div>
</body>
</html>