evtgen is hosted by Hepforge, IPPP Durham
EvtGen  2.0.0
Monte Carlo generator of particle decays, in particular the weak decays of heavy flavour particles such as B mesons.
EvtdFunction.cpp
Go to the documentation of this file.
1 
2 /***********************************************************************
3 * Copyright 1998-2020 CERN for the benefit of the EvtGen authors *
4 * *
5 * This file is part of EvtGen. *
6 * *
7 * EvtGen is free software: you can redistribute it and/or modify *
8 * it under the terms of the GNU General Public License as published by *
9 * the Free Software Foundation, either version 3 of the License, or *
10 * (at your option) any later version. *
11 * *
12 * EvtGen is distributed in the hope that it will be useful, *
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
15 * GNU General Public License for more details. *
16 * *
17 * You should have received a copy of the GNU General Public License *
18 * along with EvtGen. If not, see <https://www.gnu.org/licenses/>. *
19 ***********************************************************************/
20 
22 
23 #include "EvtGenBase/EvtPatches.hh"
25 
26 #include <assert.h>
27 #include <iostream>
28 #include <math.h>
29 #include <stdlib.h>
30 
31 double EvtdFunction::d( int j, int m1, int m2, double theta )
32 {
33  int m1p = m1;
34  int m2p = m2;
35 
36  int signp = 1;
37  //make |m2p|>|m1p|
38  if ( abs( m2p ) < abs( m1p ) ) {
39  int tmp = m1p;
40  m1p = m2p;
41  m2p = tmp;
42  if ( ( m1p - m2p ) % 4 != 0 )
43  signp = -signp;
44  }
45 
46  //make m2p non-negative
47  if ( m2p < 0 ) {
48  m1p = -m1p;
49  m2p = -m2p;
50  if ( ( m1p - m2p ) % 4 != 0 )
51  signp = -signp;
52  }
53 
55 
56  df.init( j, m1p, m2p );
57 
58  double d = df.d( j, m1p, m2p, theta ) * signp;
59 
60  return d;
61 }
void init(int j, int m1, int m2)
double d(int j, int m1, int m2, double theta)
double abs(const EvtComplex &c)
Definition: EvtComplex.hh:201
static double d(int j, int m1, int m2, double theta)