BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
EvtVVS.cc
Go to the documentation of this file.
1//--------------------------------------------------------------------------
2//
3// Environment:
4// This software is part of models developed at BES collaboration
5// based on the EvtGen framework. If you use all or part
6// of it, please give an appropriate acknowledgement.
7//
8// Copyright Information: See EvtGen/BesCopyright
9// Copyright (A) 2006 Ping Rong-Gang @IHEP
10//
11// Module: VVS.hh
12//
13// Description: To define the helicity for vector(s=+1,-1)->vector(s=-1,0,1)+Pseudoscalar
14//
15// Modification history:
16//
17// Ping R.-G. Apr., 2006 Module created
18//
19//------------------------------------------------------------------------
20//
24#include <math.h>
25#include <stdlib.h>
26
31#include "EvtVVS.hh"
32#include <string>
33using namespace std;
34
35double VVS::R00( double r ) { return r; }
36
37double VVS::Fij( int i, int j, double r ) {
38 double mpsi = ( _pd[0] + _pd[1] + _pd[2] ).mass();
39 double temp = mpsi * r;
40 if ( i == 0 && j == 0 ) return 0;
41 if ( i == 1 && j == 0 ) return temp;
42 if ( i == -1 && j == 0 ) return -temp;
43 std::cerr << __FILE__ << ":" << __LINE__ << ": should not reach here" << std::endl;
44 exit( 1 );
45}
46
47EvtComplex VVS::amps1( int m, int i, int j ) {
48 double mrho = _res[0];
49 double wrho = _res[1];
50 double s;
51 EvtComplex img( 0.0, 1.0 ), dpro;
52 EvtVector4R prho;
53 prho = _pd[i] + _pd[j];
54 s = prho.mass2();
55 dpro = s - mrho * mrho + img * sqrt( s ) * wrho;
56 EvtHelSys angles( prho, _pd[i] ), labAngles;
57 double theta, phi, ct1, st1, phi1, st, ct;
58 double rpp = angles.getHelAng( 0 );
59 theta = angles.getHelAng( 1 );
60 phi = angles.getHelAng( 2 );
61 ct1 = labAngles.Angles( prho, 1 );
62 phi1 = labAngles.Angles( prho, 2 );
63 int lamb;
64 EvtComplex temp( 0.0, 0.0 );
65 for ( lamb = -1; lamb <= 1; lamb++ )
66 temp = temp + Fij( lamb, 0, prho.d3mag() ) * Djmn( 1, m, lamb, phi1, ct1, 0.0 ) / dpro *
67 R00( rpp ) * Djmn( 1, lamb, 0, phi, theta, 0.0 );
68 return temp;
69}
70
71double VVS::amps() {
72 double r1 = _par[0];
73 double phase1 = _par[1];
74 double r2 = _par[2];
75 double phase2 = _par[3];
76 double temp = 0.0;
77 int m;
78 for ( m = -1; m <= 1; m += 2 )
79 temp = temp + pow( abs( r1 * exp( EvtComplex( 0, phase1 ) ) * amps1( m, 0, 1 ) +
80 r2 * exp( EvtComplex( 0, phase2 ) ) * amps1( m, 0, 2 ) +
81 amps1( m, 1, 2 ) ),
82 2. );
83 return temp;
84}
double mass
Double_t phi1
EvtComplex exp(const EvtComplex &c)
EvtComplex Djmn(int j, int m, int n, double phi, double theta, double gamma)
Definition EvtHelSys.cc:165
XmlRpcServer s
double Angles(EvtVector4R, int)
Definition EvtHelSys.cc:110
double d3mag() const
double mass2() const
double R00(double r)
Definition EvtVVS.cc:35
EvtComplex amps1(int m, int i, int j)
Definition EvtVVS.cc:47
double Fij(int i, int j, double r)
Definition EvtVVS.cc:37
double amps()
Definition EvtVVS.cc:71