StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
EvtDalitzCoord.hh
1 /*******************************************************************************
2  * Project: BaBar detector at the SLAC PEP-II B-factory
3  * Package: EvtGenBase
4  * File: $Id: EvtDalitzCoord.hh,v 1.1 2016/09/23 18:37:30 jwebb 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 
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  inline EvtCyclic3::Pair pair1() const { return _i1; }
32  inline EvtCyclic3::Pair pair2() const { return _i2; }
33  inline double q1() const { return _q1; }
34  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