BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
EvtFlatte.hh
Go to the documentation of this file.
1//--------------------------------------------------------------------------
2//
3// Environment:
4// This software is part of the EvtGen package developed jointly
5// for the BaBar and CLEO collaborations. If you use all or part
6// of it, please give an appropriate acknowledgement.
7//
8// Copyright Information: See EvtGen/COPYRIGHT
9// Copyright (C) 1998 Caltech, UCSB
10//
11// Module: EvtGen/EvtFlatte.hh
12//
13// Description:resonance-defining class
14//
15// Modification history:
16//
17// ponyisi 18 Feb 2008 created
18//
19//------------------------------------------------------------------------
20
21#ifndef EVTFLATTE_HH
22#define EVTFLATTE_HH
23
24#include "EvtComplex.hh"
25#include "EvtVector4R.hh"
26#include "TComplex.h"
27#include <vector>
28
29using std::vector;
30
31// Helper class
32
34public:
35 EvtFlatteParam( double m1, double m2, double g ) : _m1( m1 ), _m2( m2 ), _g( g ) {}
36
37 inline double m1() const { return _m1; }
38 inline double m2() const { return _m2; }
39 inline double g() const { return _g; }
40
41private:
42 double _m1, _m2, _g;
43};
44
45// class declaration
46
47class EvtFlatte {
48public:
49 // operator
50 EvtFlatte& operator=( const EvtFlatte& );
51
52 // constructor with all information about the resonance
54 double ampl, double theta, double mass, vector<EvtFlatteParam>& params
55 // double m1a = 0.0, double m1b = 0.0, double g1 = 0.0,
56 // double m2a = 0.0, double m2b = 0.0, double g2 = 0.0
57 );
58
59 // destructor
60 virtual ~EvtFlatte();
61
62 // accessors
63 // return 4-momenta of the particles involved
64 inline const EvtVector4R& p4_p() { return _p4_p; }
65 inline const EvtVector4R& p4_d1() { return _p4_d1; }
66 inline const EvtVector4R& p4_d2() { return _p4_d2; }
67
68 // return amplitude
69 inline double amplitude() { return _ampl; }
70
71 // return theta
72 inline double theta() { return _theta; }
73
74 // return bwm
75 inline double mass() { return _mass; }
76
77 // functions
78
79 // calculate amplitude for this resonance
81
82private:
83 inline EvtComplex sqrtCplx( double in ) {
84 return ( in > 0 ) ? EvtComplex( sqrt( in ), 0 ) : EvtComplex( 0, sqrt( -in ) );
85 }
86
87 EvtVector4R _p4_p, _p4_d1, _p4_d2;
88 double _ampl, _theta, _mass;
89 vector<EvtFlatteParam> _params;
90 // double _m1a, _m1b, _g1;
91 // double _m2a, _m2b, _g2;
92};
93
94#endif
double m1() const
Definition EvtFlatte.hh:37
double g() const
Definition EvtFlatte.hh:39
EvtFlatteParam(double m1, double m2, double g)
Definition EvtFlatte.hh:35
double m2() const
Definition EvtFlatte.hh:38
EvtComplex resAmpl()
Definition EvtFlatte.cc:73
double amplitude()
Definition EvtFlatte.hh:69
virtual ~EvtFlatte()
Definition EvtFlatte.cc:30
EvtFlatte(const EvtVector4R &p4_p, const EvtVector4R &p4_d1, const EvtVector4R &p4_d2, double ampl, double theta, double mass, vector< EvtFlatteParam > &params)
Definition EvtFlatte.cc:54
EvtFlatte & operator=(const EvtFlatte &)
Definition EvtFlatte.cc:34
const EvtVector4R & p4_d2()
Definition EvtFlatte.hh:66
const EvtVector4R & p4_d1()
Definition EvtFlatte.hh:65
const EvtVector4R & p4_p()
Definition EvtFlatte.hh:64
double mass()
Definition EvtFlatte.hh:75
double theta()
Definition EvtFlatte.hh:72