]>
Commit | Line | Data |
---|---|---|
da0e9ce3 | 1 | /******************************************************************************* |
2 | * Project: BaBar detector at the SLAC PEP-II B-factory | |
3 | * Package: EvtGenBase | |
4 | * File: $Id: EvtDalitzPoint.hh,v 1.10 2003/06/19 02:17:11 dvoretsk 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 |