laura is hosted by Hepforge, IPPP Durham
Laura++  v1r2
A maximum likelihood fitting package for performing Dalitz-plot analysis.
LauResonanceMaker.cc
Go to the documentation of this file.
1 
2 // Copyright University of Warwick 2004 - 2013.
3 // Distributed under the Boost Software License, Version 1.0.
4 // (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
5 
6 // Authors:
7 // Thomas Latham
8 // John Back
9 // Paul Harrison
10 
15 #include <iostream>
16 using std::cout;
17 using std::endl;
18 
19 #include "LauAbsResonance.hh"
20 #include "LauBelleNR.hh"
21 #include "LauBelleSymNR.hh"
22 #include "LauBreitWignerRes.hh"
23 #include "LauDabbaRes.hh"
24 #include "LauDaughters.hh"
25 #include "LauFlatteRes.hh"
26 #include "LauGounarisSakuraiRes.hh"
27 #include "LauKappaRes.hh"
28 #include "LauLASSRes.hh"
29 #include "LauLASSBWRes.hh"
30 #include "LauLASSNRRes.hh"
31 #include "LauNRAmplitude.hh"
32 #include "LauRelBreitWignerRes.hh"
33 #include "LauResonanceInfo.hh"
34 #include "LauResonanceMaker.hh"
35 #include "LauSigmaRes.hh"
36 
37 ClassImp(LauResonanceMaker)
38 
39 
41  nResDefMax_(0),
42  daughters_(daughters)
43 {
44  this->createResonanceVector();
45 }
46 
48 {
49 }
50 
52 {
53  // Function to create all possible resonances that this class supports.
54  // Also add in the sigma and kappa - but a special paramterisation is used
55  // instead of the PDG "pole mass and width" values.
56 
57  cout<<"In createResonanceVector: setting up possible resonance states..."<<endl;
58 
59  // Define the resonance names and store them in the array
60  resInfo_.clear();
61  resInfo_.reserve(100);
62  // rho resonances name, mass, width, spin, charge, range parameter (defaults to 4.0)
63  // rho(770)
64  resInfo_.push_back(LauResonanceInfo("rho0(770)", 0.77549, 0.1491, 1, 0, 5.3));
65  resInfo_.push_back(LauResonanceInfo("rho+(770)", 0.77549, 0.1491, 1, +1, 5.3));
66  resInfo_.push_back(LauResonanceInfo("rho-(770)", 0.77549, 0.1491, 1, -1, 5.3));
67  // rho(1450)
68  resInfo_.push_back(LauResonanceInfo("rho0(1450)", 1.465, 0.400, 1, 0 ));
69  resInfo_.push_back(LauResonanceInfo("rho+(1450)", 1.465, 0.400, 1, +1 ));
70  resInfo_.push_back(LauResonanceInfo("rho-(1450)", 1.465, 0.400, 1, -1 ));
71  // rho(1700)
72  resInfo_.push_back(LauResonanceInfo("rho0(1700)", 1.720, 0.250, 1, 0 ));
73  resInfo_.push_back(LauResonanceInfo("rho+(1700)", 1.720, 0.250, 1, +1 ));
74  resInfo_.push_back(LauResonanceInfo("rho-(1700)", 1.720, 0.250, 1, -1 ));
75 
76  // K* resonances name, mass, width, spin, charge, range parameter (defaults to 4.0)
77  // K*(892)
78  resInfo_.push_back(LauResonanceInfo("K*0(892)", 0.89594, 0.0487, 1, 0, 3.4));
79  resInfo_.push_back(LauResonanceInfo("K*+(892)", 0.89166, 0.0508, 1, +1, 3.4));
80  resInfo_.push_back(LauResonanceInfo("K*-(892)", 0.89166, 0.0508, 1, -1, 3.4));
81  // K*(1410)
82  resInfo_.push_back(LauResonanceInfo("K*0(1410)", 1.414, 0.232, 1, 0 ));
83  resInfo_.push_back(LauResonanceInfo("K*+(1410)", 1.414, 0.232, 1, +1 ));
84  resInfo_.push_back(LauResonanceInfo("K*-(1410)", 1.414, 0.232, 1, -1 ));
85  // K*_0(1430)
86  resInfo_.push_back(LauResonanceInfo("K*0_0(1430)", 1.425, 0.270, 0, 0 ));
87  resInfo_.push_back(LauResonanceInfo("K*+_0(1430)", 1.425, 0.270, 0, +1 ));
88  resInfo_.push_back(LauResonanceInfo("K*-_0(1430)", 1.425, 0.270, 0, -1 ));
89  // K*_2(1430)
90  resInfo_.push_back(LauResonanceInfo("K*0_2(1430)", 1.4324, 0.109, 2, 0 ));
91  resInfo_.push_back(LauResonanceInfo("K*+_2(1430)", 1.4256, 0.0985, 2, +1 ));
92  resInfo_.push_back(LauResonanceInfo("K*-_2(1430)", 1.4256, 0.0985, 2, -1 ));
93  // K*(1680)
94  resInfo_.push_back(LauResonanceInfo("K*0(1680)", 1.717, 0.322, 1, 0 ));
95  resInfo_.push_back(LauResonanceInfo("K*+(1680)", 1.717, 0.322, 1, +1 ));
96  resInfo_.push_back(LauResonanceInfo("K*-(1680)", 1.717, 0.322, 1, -1 ));
97 
98  // phi resonances name, mass, width, spin, charge, range parameter (defaults to 4.0)
99  // phi(1020)
100  resInfo_.push_back(LauResonanceInfo("phi(1020)", 1.019455, 0.00426, 1, 0 ));
101  // phi(1680)
102  resInfo_.push_back(LauResonanceInfo("phi(1680)", 1.680, 0.150, 1, 0 ));
103 
104  // f resonances name, mass, width, spin, charge, range parameter (defaults to 4.0)
105  // f_0(980)
106  resInfo_.push_back(LauResonanceInfo("f_0(980)", 0.990, 0.070, 0, 0 ));
107  // f_2(1270)
108  resInfo_.push_back(LauResonanceInfo("f_2(1270)", 1.2751, 0.1851, 2, 0 ));
109  // f_0(1370)
110  resInfo_.push_back(LauResonanceInfo("f_0(1370)", 1.370, 0.350, 0, 0 ));
111  // f'_0(1300), from Belle's Kspipi paper
112  resInfo_.push_back(LauResonanceInfo("f'_0(1300)", 1.449, 0.126, 0, 0 ));
113  // f_0(1500)
114  resInfo_.push_back(LauResonanceInfo("f_0(1500)", 1.505, 0.109, 0, 0 ));
115  // f'_2(1525)
116  resInfo_.push_back(LauResonanceInfo("f'_2(1525)", 1.525, 0.073, 2, 0 ));
117 
118  // omega resonances name, mass, width, spin, charge, range parameter (defaults to 4.0)
119  // omega(782)
120  resInfo_.push_back(LauResonanceInfo("omega(782)", 0.78265, 0.00849, 1, 0 ));
121 
122  // a resonances name, mass, width, spin, charge, range parameter (defaults to 4.0)
123  // a_0(980)
124  resInfo_.push_back(LauResonanceInfo("a0_0(980)", 0.9847, 0.092, 0, 0 ));
125  resInfo_.push_back(LauResonanceInfo("a+_0(980)", 0.9847, 0.092, 0, +1 ));
126  resInfo_.push_back(LauResonanceInfo("a-_0(980)", 0.9847, 0.092, 0, -1 ));
127  // a_0(1450)
128  resInfo_.push_back(LauResonanceInfo("a0_0(1450)", 1.474, 0.265, 0, 0 ));
129  resInfo_.push_back(LauResonanceInfo("a+_0(1450)", 1.474, 0.265, 0, +1 ));
130  resInfo_.push_back(LauResonanceInfo("a-_0(1450)", 1.474, 0.265, 0, -1 ));
131  // a_2(1320)
132  resInfo_.push_back(LauResonanceInfo("a0_2(1320)", 1.3183, 0.107, 2, 0 ));
133  resInfo_.push_back(LauResonanceInfo("a+_2(1320)", 1.3183, 0.107, 2, +1 ));
134  resInfo_.push_back(LauResonanceInfo("a-_2(1320)", 1.3183, 0.107, 2, -1 ));
135 
136  // charmonium resonances name, mass, width, spin, charge, range parameter (defaults to 4.0)
137  // chi_c0
138  resInfo_.push_back(LauResonanceInfo("chi_c0", 3.41475, 0.0104, 0, 0 ));
139  // chi_c2
140  resInfo_.push_back(LauResonanceInfo("chi_c2", 3.55620, 0.00198, 2, 0 ));
141  // X(3872)
142  resInfo_.push_back(LauResonanceInfo("X(3872)", 3.87168, 0.0012, 1, 0 ));
143 
144  // unknown scalars name, mass, width, spin, charge, range parameter (defaults to 4.0)
145  // sigma
146  resInfo_.push_back(LauResonanceInfo("sigma0", 0.560, 0.500, 0, 0 ));
147  resInfo_.push_back(LauResonanceInfo("sigma+", 0.560, 0.500, 0, +1 ));
148  resInfo_.push_back(LauResonanceInfo("sigma-", 0.560, 0.500, 0, -1 ));
149  // kappa
150  resInfo_.push_back(LauResonanceInfo("kappa0", 0.720, 0.700, 0, 0 ));
151  resInfo_.push_back(LauResonanceInfo("kappa+", 0.720, 0.700, 0, +1 ));
152  resInfo_.push_back(LauResonanceInfo("kappa-", 0.720, 0.700, 0, -1 ));
153  // dabba
154  resInfo_.push_back(LauResonanceInfo("dabba0", 2.098, 0.520, 0, 0 ));
155  resInfo_.push_back(LauResonanceInfo("dabba+", 2.098, 0.520, 0, +1 ));
156  resInfo_.push_back(LauResonanceInfo("dabba-", 2.098, 0.520, 0, -1 ));
157 
158  // excited charm states name, mass, width, spin, charge, range parameter (defaults to 4.0)
159  // D*
160  resInfo_.push_back(LauResonanceInfo("D*0", 2.00698, 0.0021, 1, 0 ));
161  resInfo_.push_back(LauResonanceInfo("D*+", 2.01028, 0.000096, 1, +1 ));
162  resInfo_.push_back(LauResonanceInfo("D*-", 2.01028, 0.000096, 1, -1 ));
163  // D*_0
164  resInfo_.push_back(LauResonanceInfo("D*0_0", 2.318, 0.267, 0, 0 ));
165  resInfo_.push_back(LauResonanceInfo("D*+_0", 2.403, 0.283, 0, +1 ));
166  resInfo_.push_back(LauResonanceInfo("D*-_0", 2.403, 0.283, 0, -1 ));
167  // D*_2
168  resInfo_.push_back(LauResonanceInfo("D*0_2", 2.4626, 0.049, 2, 0 ));
169  //AVERAGE--resInfo_.push_back(LauResonanceInfo("D*0_2", 2.4618, 0.049, 2, 0 ));
170  resInfo_.push_back(LauResonanceInfo("D*+_2", 2.4644, 0.037, 2, +1 ));
171  resInfo_.push_back(LauResonanceInfo("D*-_2", 2.4644, 0.037, 2, -1 ));
172  // D1(2420)
173  resInfo_.push_back(LauResonanceInfo("D1(2420)", 2.4213, 0.0271, 1, 0 ));
174  // D(2600)
175  //OLD--resInfo_.push_back(LauResonanceInfo("D0(2600)", 2.6087, 0.093, 0, 0 ));
176  resInfo_.push_back(LauResonanceInfo("D0(2600)", 2.612, 0.093, 0, 0 ));
177  resInfo_.push_back(LauResonanceInfo("D+(2600)", 2.6213, 0.093, 0, +1 ));
178  resInfo_.push_back(LauResonanceInfo("D-(2600)", 2.6213, 0.093, 0, -1 ));
179  // D(2760)
180  //OLD--resInfo_.push_back(LauResonanceInfo("D0(2760)", 2.7633, 0.061, 1, 0 ));
181  resInfo_.push_back(LauResonanceInfo("D0(2760)", 2.761, 0.063, 1, 0 ));
182  resInfo_.push_back(LauResonanceInfo("D+(2760)", 2.7697, 0.061, 1, +1 ));
183  resInfo_.push_back(LauResonanceInfo("D-(2760)", 2.7697, 0.061, 1, -1 ));
184  // D(2900)
185  resInfo_.push_back(LauResonanceInfo("D0(3000)", 3.0, 0.15, 0, 0 ));
186  // D(3400)
187  resInfo_.push_back(LauResonanceInfo("D0(3400)", 3.4, 0.15, 0, 0 ));
188 
189  // excited strange charm states name, mass, width, spin, charge, range parameter (defaults to 4.0)
190  // Ds*
191  resInfo_.push_back(LauResonanceInfo("Ds*+", 2.1123, 0.002, 1, +1 ));
192  resInfo_.push_back(LauResonanceInfo("Ds*-", 2.1123, 0.002, 1, -1 ));
193  // Ds0*(2317)
194  resInfo_.push_back(LauResonanceInfo("Ds0*+(2317)", 2.3178, 0.004, 0, +1 ));
195  resInfo_.push_back(LauResonanceInfo("Ds0*-(2317)", 2.3178, 0.004, 0, -1 ));
196  // Ds2*(2573)
197  resInfo_.push_back(LauResonanceInfo("Ds2*+(2573)", 2.5719, 0.017, 2, +1 ));
198  resInfo_.push_back(LauResonanceInfo("Ds2*-(2573)", 2.5719, 0.017, 2, -1 ));
199  // Ds1*(2700)
200  resInfo_.push_back(LauResonanceInfo("Ds1*+(2700)", 2.709, 0.125, 1, +1 ));
201  resInfo_.push_back(LauResonanceInfo("Ds1*-(2700)", 2.709, 0.125, 1, -1 ));
202 
203  // excited bottom states
204  // B*
205  resInfo_.push_back(LauResonanceInfo("B*0", 5.3252, 0.00, 1, 0 ));
206  resInfo_.push_back(LauResonanceInfo("B*+", 5.3250, 0.00, 1, +1 ));
207  resInfo_.push_back(LauResonanceInfo("B*-", 5.3250, 0.00, 1, -1 ));
208 
209  // excited strange bottom states
210  // Bs*
211  resInfo_.push_back(LauResonanceInfo("Bs*0", 5.4154, 0.00, 1, 0 ));
212 
213  // nonresonant models name, mass, width, spin, charge, range parameter (defaults to 4.0)
214  // Phase-space nonresonant model
215  resInfo_.push_back(LauResonanceInfo("NonReson", 0.0, 0.0, 0, 0 ));
216  // Theory-based nonresonant model
217  resInfo_.push_back(LauResonanceInfo("NRModel", 0.0, 0.0, 0, 0 ));
218  // Belle nonresonant models
219  resInfo_.push_back(LauResonanceInfo("BelleSymNR", 0.0, 0.0, 0, 0 ));
220  resInfo_.push_back(LauResonanceInfo("BelleNR", 0.0, 0.0, 0, 0 ));
221  resInfo_.push_back(LauResonanceInfo("BelleNR_Swave", 0.0, 0.0, 0, 0 ));
222  resInfo_.push_back(LauResonanceInfo("BelleNR_Pwave", 0.0, 0.0, 1, 0 ));
223  resInfo_.push_back(LauResonanceInfo("BelleNR_Dwave", 0.0, 0.0, 2, 0 ));
224  // Taylor expansion nonresonant model
225  resInfo_.push_back(LauResonanceInfo("NRTaylor", 0.0, 0.0, 0, 0 ));
226  // LASS nonresonant model
227  resInfo_.push_back(LauResonanceInfo("LASSNR", 1.412, 0.294, 0, 0 ));
228 
229  nResDefMax_ = resInfo_.size();
230 }
231 
232 LauAbsResonance* LauResonanceMaker::getResonance(const TString& resName, Int_t resPairAmpInt, const TString& resType)
233 {
234  // Routine to return the appropriate LauAbsResonance object given the resonance
235  // name (resName), which daughter is the bachelor track (resPairAmpInt = 1,2 or 3),
236  // and the resonance type ("BW" = Breit-Wigner, "Flatte" = Flatte distribution).
237 
238  Double_t resMass(0.0);
239  Double_t resWidth(0.0);
240  Int_t resSpin(0);
241  Int_t resCharge(0);
242  //Double_t resRange(0.0);
243 
244  Bool_t gotResonance(kFALSE);
245 
246  // Loop over all possible resonance states we have defined in
247  // createResonanceVector() until we get a match with the name of the resonance
248 
249  for (std::vector<LauResonanceInfo>::const_iterator iter=resInfo_.begin(); iter!=resInfo_.end(); ++iter) {
250 
251  if (resName == (*iter).getName()) {
252  // We have recognised the resonance name.
253  cout<<"Creating resonance: "<<resName<<endl;
254 
255  resMass = (*iter).getMass();
256  resWidth = (*iter).getWidth();
257  resSpin = (*iter).getSpin();
258  resCharge = (*iter).getCharge();
259  //resRange = (*iter).getRange();
260 
261  // stop looping
262  gotResonance = kTRUE;
263  break;
264  }
265  }
266 
267  // if we couldn't find the right resonance then we should return a null pointer
268  if (!gotResonance) {
269  return 0;
270  }
271 
272  LauAbsResonance* theResonance(0);
273 
274  // Now construct the resonnace using the right type.
275  // If we don't recognise the resonance model name, just use a simple Breit-Wigner.
276 
277  TString resTypeName(resType); resTypeName.ToLower();
278 
279  if (!resTypeName.CompareTo("flatte")) {
280 
281  // Flatte distribution - coupled channel Breit-Wigner
282  theResonance =
283  new LauFlatteRes(resName, resMass, resWidth, resSpin, resCharge,
284  resPairAmpInt, daughters_);
285 
286  } else if (!resTypeName.CompareTo("relbw")) {
287 
288  // Relativistic Breit-Wigner with Blatt-Weisskopf factors.
289  theResonance =
290  new LauRelBreitWignerRes(resName, resMass, resWidth, resSpin, resCharge,
291  resPairAmpInt, daughters_);
292  // Set the Blatt-Weisskopf barrier radius for the resonance and its parent
293  //LauRelBreitWignerRes * theRBW = dynamic_cast<LauRelBreitWignerRes*>(theResonance);
294  //Double_t parentRange = 4.0;
295  //theRBW->setBarrierRadii(resRange, parentRange);
296 
297  } else if (!resTypeName.CompareTo("dabba")) {
298 
299  // Dabba model - should only be used for the D-pi system
300  theResonance =
301  new LauDabbaRes(resName, resMass, resWidth, resSpin, resCharge,
302  resPairAmpInt, daughters_);
303 
304  } else if (!resTypeName.CompareTo("kappa")) {
305 
306  // Kappa model - should only be used for the K-pi system
307  theResonance =
308  new LauKappaRes(resName, resMass, resWidth, resSpin, resCharge,
309  resPairAmpInt, daughters_);
310 
311  } else if (!resTypeName.CompareTo("sigma")) {
312 
313  // Sigma model - should only be used for the pi-pi system
314  theResonance =
315  new LauSigmaRes(resName, resMass, resWidth, resSpin, resCharge,
316  resPairAmpInt, daughters_);
317 
318  } else if (!resTypeName.CompareTo("lass-bw")) {
319 
320  // LASS function to try and model the K-pi S-wave better
321  theResonance =
322  new LauLASSBWRes(resName, resMass, resWidth, resSpin, resCharge,
323  resPairAmpInt, daughters_);
324 
325  } else if (!resTypeName.CompareTo("lass-nr")) {
326 
327  // LASS function to try and model the K-pi S-wave better
328  theResonance =
329  new LauLASSNRRes(resName, resMass, resWidth, resSpin, resCharge,
330  resPairAmpInt, daughters_);
331 
332  } else if (!resTypeName.CompareTo("lass")) {
333 
334  // LASS function to try and model the K-pi S-wave better
335  theResonance =
336  new LauLASSRes(resName, resMass, resWidth, resSpin, resCharge,
337  resPairAmpInt, daughters_);
338 
339  } else if (!resTypeName.CompareTo("gs")) {
340 
341  // Gounaris-Sakurai function to try and model the rho(770) better
342  theResonance =
343  new LauGounarisSakuraiRes(resName, resMass, resWidth, resSpin, resCharge,
344  resPairAmpInt, daughters_);
345 
346  } else if (!resTypeName.CompareTo("nrmodel")) {
347 
348  // NR amplitude model - arguments are there to preserve the interface
349  theResonance =
350  new LauNRAmplitude(resName, resMass, resWidth, resSpin, resCharge,
351  resPairAmpInt, daughters_);
352 
353  } else if ( !resTypeName.CompareTo("bellesymnr") || !resTypeName.CompareTo("nrtaylor") ) {
354 
355  // Belle NR amplitude model - arguments are there to preserve the interface
356  theResonance =
357  new LauBelleSymNR(resName, resMass, resWidth, resSpin, resCharge,
358  resPairAmpInt, daughters_);
359 
360  } else if ( !resTypeName.CompareTo("bellenr") ) {
361 
362  // Belle NR amplitude model - arguments are there to preserve the interface
363  theResonance =
364  new LauBelleNR(resName, resMass, resWidth, resSpin, resCharge,
365  resPairAmpInt, daughters_);
366 
367  } else {
368 
369  // Simple non-relativistic Breit-Wigner
370  theResonance =
371  new LauBreitWignerRes(resName, resMass, resWidth, resSpin, resCharge,
372  resPairAmpInt, daughters_);
373 
374  }
375 
376  return theResonance;
377 
378 }
379 
380 Int_t LauResonanceMaker::resTypeInt(const TString& name) const
381 {
382  // Internal function that returns the resonance integer, specified by the
383  // order of the resonance vector defined in createResonanceVector(),
384  // for a given resonance name.
385  Int_t resTypInt(-99);
386  Int_t i(0);
387 
388  if (name.Contains("NonReson")) {
389 
390  resTypInt = -1;
391 
392  } else {
393 
394  for (std::vector<LauResonanceInfo>::const_iterator iter=resInfo_.begin(); iter!=resInfo_.end(); ++iter) {
395 
396  if (name.BeginsWith((*iter).getName(), TString::kExact) == kTRUE) {
397  // We have recognised the resonance from those that are available
398  resTypInt = i;
399  return resTypInt;
400  }
401  ++i;
402  }
403  }
404 
405  return resTypInt;
406 }
407 
File containing declaration of LauNRAmplitude class.
Class for defining the LASS resonance model.
Definition: LauLASSRes.hh:31
const LauDaughters * daughters_
The daughters.
File containing declaration of LauResonanceInfo class.
Class for defining the properties of a resonant particle.
const TString & name() const
The parameter name.
Class that defines the particular 3-body decay under study.
Definition: LauDaughters.hh:33
File containing declaration of LauBelleNR class.
Class for defininf the Gounaris-Sakurai resonance model.
File containing declaration of LauDaughters class.
LauAbsResonance * getResonance(const TString &resName, Int_t resPairAmpInt, const TString &resType)
Create a resonance.
File containing declaration of LauGounarisSakuraiRes class.
File containing declaration of LauBelleSymNR class.
File containing declaration of LauBreitWignerRes class.
Int_t resTypeInt(const TString &name) const
Retrieve the integer index for the specified resonance.
File containing declaration of LauRelBreitWignerRes class.
File containing declaration of LauLASSBWRes class.
Class for defining the non resonant part of the LASS model.
Definition: LauLASSNRRes.hh:31
Class for defining the Sigma resonance model.
Definition: LauSigmaRes.hh:31
Class for creating resonances.
void createResonanceVector()
Create the list of known resonances.
File containing declaration of LauResonanceMaker class.
File containing declaration of LauSigmaRes class.
Class for defining the Belle nonresonant model.
Definition: LauBelleNR.hh:33
Class for defining the NR amplitude model.
Class for defining the simple Breit-Wigner resonance model.
Class for defining the Kappa resonance model.
Definition: LauKappaRes.hh:32
File containing declaration of LauDabbaRes class.
Class for defining the relativistic Breit-Wigner resonance model.
File containing declaration of LauLASSRes class.
File containing declaration of LauLASSNRRes class.
virtual ~LauResonanceMaker()
Destructor.
Class for defining the symmetric Belle Non Resonant model.
Class for defining the resonant part of the LASS model.
Definition: LauLASSBWRes.hh:31
Abstract class for defining type for resonance amplitude models (Breit-Wigner, Flatte etc...
Class for defining the Dabba resonance model.
Definition: LauDabbaRes.hh:31
std::vector< LauResonanceInfo > resInfo_
The known resonances.
File containing declaration of LauAbsResonance class.
UInt_t nResDefMax_
The number of known resonances.
Class for defining the Flatte resonance model.
Definition: LauFlatteRes.hh:31
File containing declaration of LauKappaRes class.
File containing declaration of LauFlatteRes class.