Line data Source code
1 : /*******************************************************************************
2 : * Project: BaBar detector at the SLAC PEP-II B-factory
3 : * Package: EvtGenBase
4 : * File: $Id: EvtTwoBodyVertex.hh,v 1.2 2009-03-16 16:34:38 robbep Exp $
5 : * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002
6 : *
7 : * Copyright (C) 2002 Caltech
8 : *******************************************************************************/
9 :
10 : // Two-body propagator vertex AB->A,B with an attached Blatt-Weisskopf form factor.
11 :
12 : #ifndef EVT_TWO_BODY_VERTEX_HH
13 : #define EVT_TWO_BODY_VERTEX_HH
14 :
15 : #include <iostream>
16 : #include "EvtGenBase/EvtTwoBodyKine.hh"
17 : #include "EvtGenBase/EvtBlattWeisskopf.hh"
18 :
19 : #include <iosfwd>
20 :
21 : class EvtTwoBodyVertex {
22 :
23 : public:
24 :
25 : EvtTwoBodyVertex();
26 : EvtTwoBodyVertex(double mA, double mB, double mAB, int L);
27 : EvtTwoBodyVertex(const EvtTwoBodyVertex& other);
28 : ~EvtTwoBodyVertex();
29 :
30 : double widthFactor(EvtTwoBodyKine x) const;
31 : double formFactor(EvtTwoBodyKine x) const;
32 : double phaseSpaceFactor(EvtTwoBodyKine x, EvtTwoBodyKine::Index) const;
33 :
34 0 : inline int L() const { return _LL; }
35 0 : inline double mA() const { return _kine.mA(); }
36 0 : inline double mB() const { return _kine.mB(); }
37 0 : inline double mAB() const { return _kine.mAB(); }
38 0 : inline double pD() const { return _p0; }
39 : void print(std::ostream& os) const;
40 :
41 : void set_f(double R);
42 :
43 : private:
44 :
45 : EvtTwoBodyKine _kine;
46 : int _LL;
47 : double _p0;
48 : EvtBlattWeisskopf* _f; // optional Blatt-Weisskopf form factor
49 :
50 : };
51 :
52 : std::ostream& operator<<(std::ostream& os, const EvtTwoBodyVertex& v);
53 :
54 : #endif
|