laura is hosted by Hepforge, IPPP Durham
Laura++  v2r2p1
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_S0", 0.0, 0.0, 0, 0 ));
231  resInfo_.push_back(LauResonanceInfo("PolNR_S1", 0.0, 0.0, 0, 0 ));
232  resInfo_.push_back(LauResonanceInfo("PolNR_S2", 0.0, 0.0, 0, 0 ));
233  resInfo_.push_back(LauResonanceInfo("PolNR_P0", 0.0, 0.0, 1, 0 ));
234  resInfo_.push_back(LauResonanceInfo("PolNR_P1", 0.0, 0.0, 1, 0 ));
235  resInfo_.push_back(LauResonanceInfo("PolNR_P2", 0.0, 0.0, 1, 0 ));
236 
237  // LASS nonresonant model
238  resInfo_.push_back(LauResonanceInfo("LASSNR", 1.412, 0.294, 0, 0 ));
239 
240  nResDefMax_ = resInfo_.size();
241 }
242 
243 LauAbsResonance* LauResonanceMaker::getResonance(const TString& resName, const Int_t resPairAmpInt, const LauAbsResonance::LauResonanceModel resType)
244 {
245  // Routine to return the appropriate LauAbsResonance object given the resonance
246  // name (resName), which daughter is the bachelor track (resPairAmpInt = 1,2 or 3),
247  // and the resonance type ("BW" = Breit-Wigner, "Flatte" = Flatte distribution).
248 
249  Double_t resMass(0.0);
250  Double_t resWidth(0.0);
251  Int_t resSpin(0);
252  Int_t resCharge(0);
253  //Double_t resRange(0.0);
254 
255  Bool_t gotResonance(kFALSE);
256 
257  // Loop over all possible resonance states we have defined in
258  // createResonanceVector() until we get a match with the name of the resonance
259 
260  for (std::vector<LauResonanceInfo>::const_iterator iter=resInfo_.begin(); iter!=resInfo_.end(); ++iter) {
261 
262  if (resName == (*iter).getName()) {
263  // We have recognised the resonance name.
264  std::cout<<"INFO in LauResonanceMaker::getResonance : Creating resonance: "<<resName<<std::endl;
265 
266  resMass = (*iter).getMass();
267  resWidth = (*iter).getWidth();
268  resSpin = (*iter).getSpin();
269  resCharge = (*iter).getCharge();
270  //resRange = (*iter).getRange();
271 
272  // stop looping
273  gotResonance = kTRUE;
274  break;
275  }
276  }
277 
278  // if we couldn't find the right resonance then we should return a null pointer
279  if (!gotResonance) {
280  std::cout<<"WARNING in LauResonanceMaker::getResonance : Creating resonance: "<<resName<<std::endl;
281  return 0;
282  }
283 
284  LauAbsResonance* theResonance(0);
285 
286  // Now construct the resonnace using the right type.
287  // If we don't recognise the resonance model name, just use a simple Breit-Wigner.
288 
289  if ( resType == LauAbsResonance::Flatte ) {
290 
291  // Flatte distribution - coupled channel Breit-Wigner
292  std::cout<<" : Using Flatte lineshape. "<<std::endl;
293  theResonance =
294  new LauFlatteRes(resName, resMass, resWidth, resSpin, resCharge,
295  resPairAmpInt, daughters_);
296 
297  } else if ( resType == LauAbsResonance::RelBW ) {
298 
299  // Relativistic Breit-Wigner with Blatt-Weisskopf factors.
300  std::cout<<" : Using relativistic Breit-Wigner lineshape. "<<std::endl;
301  theResonance =
302  new LauRelBreitWignerRes(resName, resMass, resWidth, resSpin, resCharge,
303  resPairAmpInt, daughters_);
304 
305  // Set the Blatt-Weisskopf barrier radius for the resonance and its parent
306  //Double_t parentRange = 4.0;
307  //theResonance->setBarrierRadii(resRange, parentRange);
308 
309  } else if ( resType == LauAbsResonance::Dabba ) {
310 
311  // Dabba model - should only be used for the D-pi system
312  std::cout<<" : Using Dabba lineshape. "<<std::endl;
313  theResonance =
314  new LauDabbaRes(resName, resMass, resWidth, resSpin, resCharge,
315  resPairAmpInt, daughters_);
316 
317  } else if ( resType == LauAbsResonance::Kappa ) {
318 
319  // Kappa model - should only be used for the K-pi system
320  std::cout<<" : Using Kappa lineshape. "<<std::endl;
321  theResonance =
322  new LauKappaRes(resName, resMass, resWidth, resSpin, resCharge,
323  resPairAmpInt, daughters_);
324 
325  } else if ( resType == LauAbsResonance::Sigma ) {
326 
327  // Sigma model - should only be used for the pi-pi system
328  std::cout<<" : Using Sigma lineshape. "<<std::endl;
329  theResonance =
330  new LauSigmaRes(resName, resMass, resWidth, resSpin, resCharge,
331  resPairAmpInt, daughters_);
332 
333  } else if ( resType == LauAbsResonance::LASS_BW ) {
334 
335  // LASS function to try and model the K-pi S-wave better
336  std::cout<<" : Using LASS lineshape (resonant part only). "<<std::endl;
337  theResonance =
338  new LauLASSBWRes(resName, resMass, resWidth, resSpin, resCharge,
339  resPairAmpInt, daughters_);
340 
341  } else if ( resType == LauAbsResonance::LASS_NR ) {
342 
343  // LASS function to try and model the K-pi S-wave better
344  std::cout<<" : Using LASS lineshape (nonresonant part only). "<<std::endl;
345  theResonance =
346  new LauLASSNRRes(resName, resMass, resWidth, resSpin, resCharge,
347  resPairAmpInt, daughters_);
348 
349  } else if ( resType == LauAbsResonance::LASS ) {
350 
351  // LASS function to try and model the K-pi S-wave better
352  std::cout<<" : Using LASS lineshape. "<<std::endl;
353  theResonance =
354  new LauLASSRes(resName, resMass, resWidth, resSpin, resCharge,
355  resPairAmpInt, daughters_);
356 
357  } else if ( resType == LauAbsResonance::GS ) {
358 
359  // Gounaris-Sakurai function to try and model the rho(770) better
360  std::cout<<" : Using Gounaris-Sakurai lineshape. "<<std::endl;
361  theResonance =
362  new LauGounarisSakuraiRes(resName, resMass, resWidth, resSpin, resCharge,
363  resPairAmpInt, daughters_);
364 
365  // Set the Blatt-Weisskopf barrier radius for the resonance and its parent
366  //Double_t parentRange = 4.0;
367  //theResonance->setBarrierRadii(resRange, parentRange);
368 
369  } else if ( resType == LauAbsResonance::FlatNR ) {
370 
371  // uniform NR amplitude - arguments are there to preserve the interface
372  std::cout<<" : Using uniform NR lineshape. "<<std::endl;
373  theResonance =
374  new LauFlatNR(resName, resMass, resWidth, resSpin, resCharge,
375  resPairAmpInt, daughters_);
376 
377  } else if ( resType == LauAbsResonance::NRModel ) {
378 
379  // NR amplitude model - arguments are there to preserve the interface
380  std::cout<<" : Using NR-model lineshape. "<<std::endl;
381  theResonance =
382  new LauNRAmplitude(resName, resMass, resWidth, resSpin, resCharge,
383  resPairAmpInt, daughters_);
384 
385  } else if ( resType == LauAbsResonance::BelleSymNR || resType == LauAbsResonance::TaylorNR ) {
386 
387  // Belle NR amplitude model - arguments are there to preserve the interface
388  std::cout<<" : Using Belle symmetric NR lineshape. "<<std::endl;
389  theResonance =
390  new LauBelleSymNR(resName, resType, resMass, resWidth, resSpin, resCharge,
391  resPairAmpInt, daughters_);
392 
393  } else if ( resType == LauAbsResonance::BelleNR || resType == LauAbsResonance::PowerLawNR ) {
394 
395  // Belle NR amplitude model - arguments are there to preserve the interface
396  std::cout<<" : Using Belle NR lineshape. "<<std::endl;
397  theResonance =
398  new LauBelleNR(resName, resType, resMass, resWidth, resSpin, resCharge,
399  resPairAmpInt, daughters_);
400 
401  } else if ( resType == LauAbsResonance::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 ( resType == LauAbsResonance::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 \"" << resType << "\"." << 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, const Int_t resPairAmpInt, const LauAbsResonance::LauResonanceModel 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.
LauResonanceModel
Define the allowed resonance types.
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.