Line data Source code
1 : /*******************************************************************************
2 : * Project: BaBar detector at the SLAC PEP-II B-factory
3 : * Package: EvtGenBase
4 : * File: $Id: EvtDalitzCoord.hh,v 1.2 2009-03-16 16:43:40 robbep Exp $
5 : * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002
6 : *
7 : * Copyright (C) 2002 Caltech
8 : *******************************************************************************/
9 :
10 : // Two dimensional coordinate of a point in a Dalitz plot
11 :
12 : #ifndef EVT_DALITZ_COORD_HH
13 : #define EVT_DALITZ_COORD_HH
14 :
15 : #include "EvtGenBase/EvtCyclic3.hh"
16 :
17 : #include <iostream>
18 :
19 : class EvtDalitzCoord {
20 :
21 :
22 : public:
23 :
24 : // ctor, dtor
25 :
26 : EvtDalitzCoord();
27 : EvtDalitzCoord(EvtCyclic3::Pair i1, double q1, EvtCyclic3::Pair i2, double q2);
28 : EvtDalitzCoord(const EvtDalitzCoord& other);
29 : ~EvtDalitzCoord();
30 :
31 0 : inline EvtCyclic3::Pair pair1() const { return _i1; }
32 0 : inline EvtCyclic3::Pair pair2() const { return _i2; }
33 0 : inline double q1() const { return _q1; }
34 0 : inline double q2() const { return _q2; }
35 :
36 :
37 : // It's nice to have an equality operator for
38 : // a coordinate. However, beware effects of numerical precision
39 :
40 : bool operator==(const EvtDalitzCoord&) const;
41 :
42 : void print(std::ostream&) const;
43 :
44 : private:
45 :
46 : // Two coordinates define the point
47 :
48 : EvtCyclic3::Pair _i1;
49 : EvtCyclic3::Pair _i2;
50 :
51 : double _q1;
52 : double _q2;
53 : };
54 :
55 : std::ostream& operator<<(std::ostream&,const EvtDalitzCoord&);
56 :
57 : #endif
58 :
59 :
60 :
61 :
62 :
63 :
|