b0df5c6bf93e32d0166734c4d1ec18d8ac253aa8
[u/mrichter/AliRoot.git] / TEvtGen / EvtGenBase / EvtResonance2.hh
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/EvtResonance2.hh
12 //
13 // Description:resonance-defining class
14 //
15 // Modification history:
16 //
17 //    lange   Nov 21, 2000         Module created
18 //
19 //------------------------------------------------------------------------
20
21 #ifndef EVTRESONANCE2_HH
22 #define EVTRESONANCE2_HH
23
24 #include "EvtGenBase/EvtVector4R.hh"
25
26 class EvtComplex;
27
28
29
30 class EvtResonance2 {
31 public:
32
33     //operator
34     EvtResonance2& operator = (const EvtResonance2 &);
35     
36     //constructor with all information about the resonance
37     // invmass_angdenom chooses whether to use the resonance mass (false)
38     // or the daughter invariant mass (true) for the denominators in
39     // angular distributions
40
41     EvtResonance2(const EvtVector4R& p4_p, const EvtVector4R& p4_d1, 
42                   const EvtVector4R& p4_d2, 
43                   double ampl = 0.0, double theta = 0.0, double gamma = 0.0, 
44                   double bwm = 0.0, int spin = 0, bool invmass_angdenom = false);
45
46     //destructor
47     virtual ~EvtResonance2();
48
49     //accessors
50     //return 4-momenta of the particles involved
51     inline const EvtVector4R& p4_p() { return _p4_p; }
52     inline const EvtVector4R& p4_d1() { return _p4_d1; }
53     inline const EvtVector4R& p4_d2() { return _p4_d2; }  
54     
55
56     //return amplitude
57     inline double amplitude() { return _ampl; }  
58
59     //return theta
60     inline double theta() { return _theta; } 
61
62     //return gamma
63     inline double gamma() { return _gamma; } 
64
65     //return bwm
66     inline double bwm() { return _bwm; } 
67     
68     //return spin
69     inline int spin() { return _spin; } 
70
71     //calculate amplitude for this resonance
72     EvtComplex resAmpl();
73    
74   private:
75
76     EvtVector4R _p4_p, _p4_d1, _p4_d2;
77     double _ampl, _theta, _gamma, _bwm;
78     int _spin;
79     bool _invmass_angdenom;
80
81 }; 
82
83 #endif
84