]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TEvtGen/EvtGenBase/EvtDalitzPoint.hh
Updates EvtGen Code
[u/mrichter/AliRoot.git] / TEvtGen / EvtGenBase / EvtDalitzPoint.hh
1 /*******************************************************************************
2  * Project: BaBar detector at the SLAC PEP-II B-factory
3  * Package: EvtGenBase
4  *    File: $Id: EvtDalitzPoint.hh,v 1.2 2009-03-16 16:44:53 robbep Exp $
5  *  Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002
6  *
7  * Copyright (C) 2002 Caltech
8  *******************************************************************************/
9
10 // This class describes the complete kinematics of the Dalitz decay.
11 // It holds all the six invariant momentum products, three daughter
12 // particle masses and three invariant masses of pairs of particles.
13 // This description is completely symmetric with respect to particle 
14 // permutations.
15 //
16 // Another way to slice the six coordinate is to make a transformation 
17 // to the mass of the decaying particle. The four masses make up a 
18 // Dalitz plot. The other two are coordinates of a point in the plot.
19
20 #ifndef EVT_DALITZ_POINT_HH
21 #define EVT_DALITZ_POINT_HH
22
23 #include "EvtGenBase/EvtCyclic3.hh"
24 #include "EvtGenBase/EvtDalitzCoord.hh"
25 #include "EvtGenBase/EvtDalitzPlot.hh"
26
27 class EvtDalitzPoint {
28
29 public:
30
31   EvtDalitzPoint();
32   EvtDalitzPoint(double mA, double mB, double mC, 
33                  double qAB, double qBC, double qCA);
34   EvtDalitzPoint(double mA, double mB, double mC, 
35                  EvtCyclic3::Pair i, double qres, double qhel, double qsum);
36   EvtDalitzPoint(const EvtDalitzPlot&, const EvtDalitzCoord&);
37   EvtDalitzPoint(const EvtDalitzPoint& other);
38   ~EvtDalitzPoint();
39
40   EvtDalitzCoord getDalitzPoint(EvtCyclic3::Pair i, EvtCyclic3::Pair j) const;
41   EvtDalitzPlot  getDalitzPlot() const;
42
43   double q(EvtCyclic3::Pair) const;
44   double bigM() const;
45   double m(EvtCyclic3::Index) const;
46
47   // Zemach variables
48
49   double qres(EvtCyclic3::Pair i) const;
50   double qhel(EvtCyclic3::Pair i) const;
51   double qsum() const;
52
53   // Kinematic quantities
54   //
55   // pp  - 4 momentum product
56   // e,p,cosTh - energy/moementum in rest-frame of j
57
58
59   double qMin(EvtCyclic3::Pair i, EvtCyclic3::Pair j) const;
60   double qMax(EvtCyclic3::Pair i, EvtCyclic3::Pair j) const;
61   double pp(EvtCyclic3::Index i, EvtCyclic3::Index j) const; 
62   double e(EvtCyclic3::Index i, EvtCyclic3::Pair j) const;
63   double p(EvtCyclic3::Index i, EvtCyclic3::Pair j) const;
64   double cosTh(EvtCyclic3::Pair pairAng, EvtCyclic3::Pair pairRes) const;
65
66   bool isValid() const;
67
68   void print() const;
69
70 private:
71
72   double _mA, _mB, _mC;     // masses
73   double _qAB, _qBC, _qCA;  // masses squared
74 };
75
76 #endif