StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
EvtTwoBodyVertex.hh
1 /*******************************************************************************
2  * Project: BaBar detector at the SLAC PEP-II B-factory
3  * Package: EvtGenBase
4  * File: $Id: EvtTwoBodyVertex.hh,v 1.1 2016/09/23 18:37:33 jwebb 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 
22 
23 public:
24 
26  EvtTwoBodyVertex(double mA, double mB, double mAB, int L);
27  EvtTwoBodyVertex(const EvtTwoBodyVertex& other);
29 
30  double widthFactor(EvtTwoBodyKine x) const;
31  double formFactor(EvtTwoBodyKine x) const;
32  double phaseSpaceFactor(EvtTwoBodyKine x, EvtTwoBodyKine::Index) const;
33 
34  inline int L() const { return _LL; }
35  inline double mA() const { return _kine.mA(); }
36  inline double mB() const { return _kine.mB(); }
37  inline double mAB() const { return _kine.mAB(); }
38  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