laura is hosted by Hepforge, IPPP Durham
Laura++  v2r1
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 
17 #include "LauAbsResonance.hh"
18 #include "LauBelleNR.hh"
19 #include "LauBelleSymNR.hh"
20 #include "LauBreitWignerRes.hh"
21 #include "LauDabbaRes.hh"
22 #include "LauDaughters.hh"
23 #include "LauFlatteRes.hh"
24 #include "LauFlatNR.hh"
25 #include "LauGounarisSakuraiRes.hh"
26 #include "LauKappaRes.hh"
27 #include "LauLASSRes.hh"
28 #include "LauLASSBWRes.hh"
29 #include "LauLASSNRRes.hh"
30 #include "LauNRAmplitude.hh"
31 #include "LauPolNR.hh"
32 #include "LauRelBreitWignerRes.hh"
33 #include "LauResonanceInfo.hh"
34 #include "LauResonanceMaker.hh"
35 #include "LauSigmaRes.hh"
36 
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  std::cout<<"INFO in LauResonanceMaker::createResonanceVector : Setting up possible resonance states..."<<std::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  // f_0(1710)
118  resInfo_.push_back(LauResonanceInfo("f_0(1710)", 1.720, 0.135, 0, 0 ));
119 
120  // omega resonances name, mass, width, spin, charge, range parameter (defaults to 4.0)
121  // omega(782)
122  resInfo_.push_back(LauResonanceInfo("omega(782)", 0.78265, 0.00849, 1, 0 ));
123 
124  // a resonances name, mass, width, spin, charge, range parameter (defaults to 4.0)
125  // a_0(980)
126  resInfo_.push_back(LauResonanceInfo("a0_0(980)", 0.9847, 0.092, 0, 0 ));
127  resInfo_.push_back(LauResonanceInfo("a+_0(980)", 0.9847, 0.092, 0, +1 ));
128  resInfo_.push_back(LauResonanceInfo("a-_0(980)", 0.9847, 0.092, 0, -1 ));
129  // a_0(1450)
130  resInfo_.push_back(LauResonanceInfo("a0_0(1450)", 1.474, 0.265, 0, 0 ));
131  resInfo_.push_back(LauResonanceInfo("a+_0(1450)", 1.474, 0.265, 0, +1 ));
132  resInfo_.push_back(LauResonanceInfo("a-_0(1450)", 1.474, 0.265, 0, -1 ));
133  // a_2(1320)
134  resInfo_.push_back(LauResonanceInfo("a0_2(1320)", 1.3183, 0.107, 2, 0 ));
135  resInfo_.push_back(LauResonanceInfo("a+_2(1320)", 1.3183, 0.107, 2, +1 ));
136  resInfo_.push_back(LauResonanceInfo("a-_2(1320)", 1.3183, 0.107, 2, -1 ));
137 
138  // charmonium resonances name, mass, width, spin, charge, range parameter (defaults to 4.0)
139  // chi_c0
140  resInfo_.push_back(LauResonanceInfo("chi_c0", 3.41475, 0.0104, 0, 0 ));
141  // chi_c2
142  resInfo_.push_back(LauResonanceInfo("chi_c2", 3.55620, 0.00198, 2, 0 ));
143  // X(3872)
144  resInfo_.push_back(LauResonanceInfo("X(3872)", 3.87168, 0.0012, 1, 0 ));
145 
146  // unknown scalars name, mass, width, spin, charge, range parameter (defaults to 4.0)
147  // sigma
148  resInfo_.push_back(LauResonanceInfo("sigma0", 0.560, 0.500, 0, 0 ));
149  resInfo_.push_back(LauResonanceInfo("sigma+", 0.560, 0.500, 0, +1 ));
150  resInfo_.push_back(LauResonanceInfo("sigma-", 0.560, 0.500, 0, -1 ));
151  // kappa
152  resInfo_.push_back(LauResonanceInfo("kappa0", 0.720, 0.700, 0, 0 ));
153  resInfo_.push_back(LauResonanceInfo("kappa+", 0.720, 0.700, 0, +1 ));
154  resInfo_.push_back(LauResonanceInfo("kappa-", 0.720, 0.700, 0, -1 ));
155  // dabba
156  resInfo_.push_back(LauResonanceInfo("dabba0", 2.098, 0.520, 0, 0 ));
157  resInfo_.push_back(LauResonanceInfo("dabba+", 2.098, 0.520, 0, +1 ));
158  resInfo_.push_back(LauResonanceInfo("dabba-", 2.098, 0.520, 0, -1 ));
159 
160  // excited charm states name, mass, width, spin, charge, range parameter (defaults to 4.0)
161  // D*
162  resInfo_.push_back(LauResonanceInfo("D*0", 2.00698, 0.0021, 1, 0 ));
163  resInfo_.push_back(LauResonanceInfo("D*+", 2.01028, 0.000096, 1, +1 ));
164  resInfo_.push_back(LauResonanceInfo("D*-", 2.01028, 0.000096, 1, -1 ));
165  // D*_0
166  resInfo_.push_back(LauResonanceInfo("D*0_0", 2.318, 0.267, 0, 0 ));
167  resInfo_.push_back(LauResonanceInfo("D*+_0", 2.403, 0.283, 0, +1 ));
168  resInfo_.push_back(LauResonanceInfo("D*-_0", 2.403, 0.283, 0, -1 ));
169  // D*_2
170  resInfo_.push_back(LauResonanceInfo("D*0_2", 2.4626, 0.049, 2, 0 ));
171  //AVERAGE--resInfo_.push_back(LauResonanceInfo("D*0_2", 2.4618, 0.049, 2, 0 ));
172  resInfo_.push_back(LauResonanceInfo("D*+_2", 2.4644, 0.037, 2, +1 ));
173  resInfo_.push_back(LauResonanceInfo("D*-_2", 2.4644, 0.037, 2, -1 ));
174  // D1(2420)
175  resInfo_.push_back(LauResonanceInfo("D1(2420)", 2.4213, 0.0271, 1, 0 ));
176  // D(2600)
177  //OLD--resInfo_.push_back(LauResonanceInfo("D0(2600)", 2.6087, 0.093, 0, 0 ));
178  resInfo_.push_back(LauResonanceInfo("D0(2600)", 2.612, 0.093, 0, 0 ));
179  resInfo_.push_back(LauResonanceInfo("D+(2600)", 2.6213, 0.093, 0, +1 ));
180  resInfo_.push_back(LauResonanceInfo("D-(2600)", 2.6213, 0.093, 0, -1 ));
181  // D(2760)
182  //OLD--resInfo_.push_back(LauResonanceInfo("D0(2760)", 2.7633, 0.061, 1, 0 ));
183  resInfo_.push_back(LauResonanceInfo("D0(2760)", 2.761, 0.063, 1, 0 ));
184  resInfo_.push_back(LauResonanceInfo("D+(2760)", 2.7697, 0.061, 1, +1 ));
185  resInfo_.push_back(LauResonanceInfo("D-(2760)", 2.7697, 0.061, 1, -1 ));
186  // D(2900)
187  resInfo_.push_back(LauResonanceInfo("D0(3000)", 3.0, 0.15, 0, 0 ));
188  // D(3400)
189  resInfo_.push_back(LauResonanceInfo("D0(3400)", 3.4, 0.15, 0, 0 ));
190 
191  // excited strange charm states name, mass, width, spin, charge, range parameter (defaults to 4.0)
192  // Ds*
193  resInfo_.push_back(LauResonanceInfo("Ds*+", 2.1123, 0.002, 1, +1 ));
194  resInfo_.push_back(LauResonanceInfo("Ds*-", 2.1123, 0.002, 1, -1 ));
195  // Ds0*(2317)
196  resInfo_.push_back(LauResonanceInfo("Ds0*+(2317)", 2.3178, 0.004, 0, +1 ));
197  resInfo_.push_back(LauResonanceInfo("Ds0*-(2317)", 2.3178, 0.004, 0, -1 ));
198  // Ds2*(2573)
199  resInfo_.push_back(LauResonanceInfo("Ds2*+(2573)", 2.5719, 0.017, 2, +1 ));
200  resInfo_.push_back(LauResonanceInfo("Ds2*-(2573)", 2.5719, 0.017, 2, -1 ));
201  // Ds1*(2700)
202  resInfo_.push_back(LauResonanceInfo("Ds1*+(2700)", 2.709, 0.125, 1, +1 ));
203  resInfo_.push_back(LauResonanceInfo("Ds1*-(2700)", 2.709, 0.125, 1, -1 ));
204 
205  // excited bottom states
206  // B*
207  resInfo_.push_back(LauResonanceInfo("B*0", 5.3252, 0.00, 1, 0 ));
208  resInfo_.push_back(LauResonanceInfo("B*+", 5.3250, 0.00, 1, +1 ));
209  resInfo_.push_back(LauResonanceInfo("B*-", 5.3250, 0.00, 1, -1 ));
210 
211  // excited strange bottom states
212  // Bs*
213  resInfo_.push_back(LauResonanceInfo("Bs*0", 5.4154, 0.00, 1, 0 ));
214 
215  // nonresonant models name, mass, width, spin, charge, range parameter (defaults to 4.0)
216  // Phase-space nonresonant model
217  resInfo_.push_back(LauResonanceInfo("NonReson", 0.0, 0.0, 0, 0 ));
218  // Theory-based nonresonant model
219  resInfo_.push_back(LauResonanceInfo("NRModel", 0.0, 0.0, 0, 0 ));
220  // Babar nonresonant polynomial model
221  resInfo_.push_back(LauResonanceInfo("BabarNR", 0.0, 0.0, 0, 0 ));
222  // Belle nonresonant models
223  resInfo_.push_back(LauResonanceInfo("BelleSymNR", 0.0, 0.0, 0, 0 ));
224  resInfo_.push_back(LauResonanceInfo("BelleNR", 0.0, 0.0, 0, 0 ));
225  resInfo_.push_back(LauResonanceInfo("BelleNR_Swave", 0.0, 0.0, 0, 0 ));
226  resInfo_.push_back(LauResonanceInfo("BelleNR_Pwave", 0.0, 0.0, 1, 0 ));
227  resInfo_.push_back(LauResonanceInfo("BelleNR_Dwave", 0.0, 0.0, 2, 0 ));
228 
229  // Polynomial nonresonant models
230  resInfo_.push_back(LauResonanceInfo("PolNR", 0.0, 0.0, 0, 0 ));
231  resInfo_.push_back(LauResonanceInfo("PolNR_S0", 0.0, 0.0, 0, 0 ));
232  resInfo_.push_back(LauResonanceInfo("PolNR_S1", 0.0, 0.0, 0, 0 ));
233  resInfo_.push_back(LauResonanceInfo("PolNR_S2", 0.0, 0.0, 0, 0 ));
234  resInfo_.push_back(LauResonanceInfo("PolNR_P0", 0.0, 0.0, 1, 0 ));
235  resInfo_.push_back(LauResonanceInfo("PolNR_P1", 0.0, 0.0, 1, 0 ));
236  resInfo_.push_back(LauResonanceInfo("PolNR_P2", 0.0, 0.0, 1, 0 ));
237 
238 
239  // Taylor expansion nonresonant model
240  resInfo_.push_back(LauResonanceInfo("NRTaylor", 0.0, 0.0, 0, 0 ));
241  // LASS nonresonant model
242  resInfo_.push_back(LauResonanceInfo("LASSNR", 1.412, 0.294, 0, 0 ));
243 
244  nResDefMax_ = resInfo_.size();
245 }
246 
247 LauAbsResonance* LauResonanceMaker::getResonance(const TString& resName, Int_t resPairAmpInt, const TString& resType)
248 {
249  // Routine to return the appropriate LauAbsResonance object given the resonance
250  // name (resName), which daughter is the bachelor track (resPairAmpInt = 1,2 or 3),
251  // and the resonance type ("BW" = Breit-Wigner, "Flatte" = Flatte distribution).
252 
253  Double_t resMass(0.0);
254  Double_t resWidth(0.0);
255  Int_t resSpin(0);
256  Int_t resCharge(0);
257  //Double_t resRange(0.0);
258 
259  Bool_t gotResonance(kFALSE);
260 
261  // Loop over all possible resonance states we have defined in
262  // createResonanceVector() until we get a match with the name of the resonance
263 
264  for (std::vector<LauResonanceInfo>::const_iterator iter=resInfo_.begin(); iter!=resInfo_.end(); ++iter) {
265 
266  if (resName == (*iter).getName()) {
267  // We have recognised the resonance name.
268  std::cout<<"INFO in LauResonanceMaker::getResonance : Creating resonance: "<<resName<<std::endl;
269 
270  resMass = (*iter).getMass();
271  resWidth = (*iter).getWidth();
272  resSpin = (*iter).getSpin();
273  resCharge = (*iter).getCharge();
274  //resRange = (*iter).getRange();
275 
276  // stop looping
277  gotResonance = kTRUE;
278  break;
279  }
280  }
281 
282  // if we couldn't find the right resonance then we should return a null pointer
283  if (!gotResonance) {
284  return 0;
285  }
286 
287  LauAbsResonance* theResonance(0);
288 
289  // Now construct the resonnace using the right type.
290  // If we don't recognise the resonance model name, just use a simple Breit-Wigner.
291 
292  TString resTypeName(resType); resTypeName.ToLower();
293 
294  if (!resTypeName.CompareTo("flatte")) {
295 
296  // Flatte distribution - coupled channel Breit-Wigner
297  std::cout<<" : Using Flatte lineshape. "<<std::endl;
298  theResonance =
299  new LauFlatteRes(resName, resMass, resWidth, resSpin, resCharge,
300  resPairAmpInt, daughters_);
301 
302  } else if (!resTypeName.CompareTo("relbw")) {
303 
304  // Relativistic Breit-Wigner with Blatt-Weisskopf factors.
305  std::cout<<" : Using relativistic Breit-Wigner lineshape. "<<std::endl;
306  theResonance =
307  new LauRelBreitWignerRes(resName, resMass, resWidth, resSpin, resCharge,
308  resPairAmpInt, daughters_);
309  // Set the Blatt-Weisskopf barrier radius for the resonance and its parent
310  //LauRelBreitWignerRes * theRBW = dynamic_cast<LauRelBreitWignerRes*>(theResonance);
311  //Double_t parentRange = 4.0;
312  //theRBW->setBarrierRadii(resRange, parentRange);
313 
314  } else if (!resTypeName.CompareTo("dabba")) {
315 
316  // Dabba model - should only be used for the D-pi system
317  std::cout<<" : Using Dabba lineshape. "<<std::endl;
318  theResonance =
319  new LauDabbaRes(resName, resMass, resWidth, resSpin, resCharge,
320  resPairAmpInt, daughters_);
321 
322  } else if (!resTypeName.CompareTo("kappa")) {
323 
324  // Kappa model - should only be used for the K-pi system
325  std::cout<<" : Using Kappa lineshape. "<<std::endl;
326  theResonance =
327  new LauKappaRes(resName, resMass, resWidth, resSpin, resCharge,
328  resPairAmpInt, daughters_);
329 
330  } else if (!resTypeName.CompareTo("sigma")) {
331 
332  // Sigma model - should only be used for the pi-pi system
333  std::cout<<" : Using Sigma lineshape. "<<std::endl;
334  theResonance =
335  new LauSigmaRes(resName, resMass, resWidth, resSpin, resCharge,
336  resPairAmpInt, daughters_);
337 
338  } else if (!resTypeName.CompareTo("lass-bw")) {
339 
340  // LASS function to try and model the K-pi S-wave better
341  std::cout<<" : Using LASS lineshape (resonant part only). "<<std::endl;
342  theResonance =
343  new LauLASSBWRes(resName, resMass, resWidth, resSpin, resCharge,
344  resPairAmpInt, daughters_);
345 
346  } else if (!resTypeName.CompareTo("lass-nr")) {
347 
348  // LASS function to try and model the K-pi S-wave better
349  std::cout<<" : Using LASS lineshape (nonresonant part only). "<<std::endl;
350  theResonance =
351  new LauLASSNRRes(resName, resMass, resWidth, resSpin, resCharge,
352  resPairAmpInt, daughters_);
353 
354  } else if (!resTypeName.CompareTo("lass")) {
355 
356  // LASS function to try and model the K-pi S-wave better
357  std::cout<<" : Using LASS lineshape. "<<std::endl;
358  theResonance =
359  new LauLASSRes(resName, resMass, resWidth, resSpin, resCharge,
360  resPairAmpInt, daughters_);
361 
362  } else if (!resTypeName.CompareTo("gs")) {
363 
364  // Gounaris-Sakurai function to try and model the rho(770) better
365  std::cout<<" : Using Gounaris-Sakurai lineshape. "<<std::endl;
366  theResonance =
367  new LauGounarisSakuraiRes(resName, resMass, resWidth, resSpin, resCharge,
368  resPairAmpInt, daughters_);
369 
370  } else if (!resTypeName.CompareTo("flatnr")) {
371 
372  // uniform NR amplitude - arguments are there to preserve the interface
373  std::cout<<" : Using uniform NR lineshape. "<<std::endl;
374  theResonance =
375  new LauFlatNR(resName, resMass, resWidth, resSpin, resCharge,
376  resPairAmpInt, daughters_);
377 
378  } else if (!resTypeName.CompareTo("nrmodel")) {
379 
380  // NR amplitude model - arguments are there to preserve the interface
381  std::cout<<" : Using NR-model lineshape. "<<std::endl;
382  theResonance =
383  new LauNRAmplitude(resName, resMass, resWidth, resSpin, resCharge,
384  resPairAmpInt, daughters_);
385 
386  } else if ( !resTypeName.CompareTo("bellesymnr") || !resTypeName.CompareTo("nrtaylor") ) {
387 
388  // Belle NR amplitude model - arguments are there to preserve the interface
389  std::cout<<" : Using Belle symmetric NR lineshape. "<<std::endl;
390  theResonance =
391  new LauBelleSymNR(resName, resMass, resWidth, resSpin, resCharge,
392  resPairAmpInt, daughters_);
393 
394  } else if ( !resTypeName.CompareTo("bellenr") ) {
395 
396  // Belle NR amplitude model - arguments are there to preserve the interface
397  std::cout<<" : Using Belle NR lineshape. "<<std::endl;
398  theResonance =
399  new LauBelleNR(resName, resMass, resWidth, resSpin, resCharge,
400  resPairAmpInt, daughters_);
401  } else if ( !resTypeName.CompareTo("polnr") ) {
402 
403  // Polynomial NR amplitude model - arguments are there to preserve the interface
404  std::cout<<" : Using polynomial NR lineshape. "<<std::endl;
405  theResonance =
406  new LauPolNR(resName, resMass, resWidth, resSpin, resCharge,
407  resPairAmpInt, daughters_);
408 
409  } else if (!resTypeName.CompareTo("bw")) {
410 
411  // Simple non-relativistic Breit-Wigner
412  std::cout<<" : Using simple Breit-Wigner lineshape. "<<std::endl;
413  theResonance =
414  new LauBreitWignerRes(resName, resMass, resWidth, resSpin, resCharge,
415  resPairAmpInt, daughters_);
416 
417  } else {
418  std::cerr << "ERROR in LauResonanceMaker::getResonance : Could not match resonace type \"" << resTypeName << "\"." << std::endl;
419  return 0;
420  }
421 
422  return theResonance;
423 
424 }
425 
426 Int_t LauResonanceMaker::resTypeInt(const TString& name) const
427 {
428  // Internal function that returns the resonance integer, specified by the
429  // order of the resonance vector defined in createResonanceVector(),
430  // for a given resonance name.
431  Int_t resTypInt(-99);
432  Int_t i(0);
433 
434  for (std::vector<LauResonanceInfo>::const_iterator iter=resInfo_.begin(); iter!=resInfo_.end(); ++iter) {
435 
436  if (name.BeginsWith((*iter).getName(), TString::kExact) == kTRUE) {
437  // We have recognised the resonance from those that are available
438  resTypInt = i;
439  return resTypInt;
440  }
441  ++i;
442  }
443 
444  return resTypInt;
445 }
446 
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.
ClassImp(LauAbsCoeffSet)
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 terms of Babar nonresonant model.
Definition: LauPolNR.hh:33
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.
File containing declaration of LauPolNR class.
UInt_t nResDefMax_
The number of known resonances.
Class for defining a uniform nonresonant amplitude.
Definition: LauFlatNR.hh:30
Class for defining the Flatte resonance model.
Definition: LauFlatteRes.hh:31
File containing declaration of LauKappaRes class.
File containing declaration of LauFlatteRes class.
File containing declaration of LauFlatNR class.