EvtGen 2.2.0
Monte Carlo generator of particle decays, in particular the weak decays of heavy flavour particles such as B mesons.
Loading...
Searching...
No Matches
EvtHighSpinParticle.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/EvtPDL.hh"
27
28#include <assert.h>
29#include <iostream>
30#include <math.h>
31
33{
34 m_validP4 = true;
35 setp( p4 );
36 setpart_num( id );
37
39}
40
50
52 double beta,
53 double gamma ) const
54{
56
58
59 R.setDim( n );
60
62
63 assert( n == J2 + 1 );
64
65 auto lambda2 = [J2]( int i ) { return J2 - i * 2; };
66
67 for ( int i = 0; i < n; i++ ) {
68 for ( int j = 0; j < n; j++ ) {
69 R.set( i, j,
70 EvtdFunction::d( J2, lambda2( j ), lambda2( i ), beta ) *
71 exp( EvtComplex( 0.0, 0.5 * ( alpha * lambda2( i ) -
72 gamma * lambda2( j ) ) ) ) );
73 }
74 }
75
76 return R;
77}
EvtComplex exp(const EvtComplex &c)
EvtSpinDensity rotateToHelicityBasis() const override
void init(EvtId id, const EvtVector4R &p) override
Definition EvtId.hh:27
static EvtSpinType::spintype getSpinType(EvtId i)
Definition EvtPDL.cpp:371
EvtId getId() const
void setLifetime()
void setp(double e, double px, double py, double pz)
void setpart_num(EvtId particle_number)
void setDim(int n)
void setDiag(int n)
void set(int i, int j, const EvtComplex &rhoij)
static int getSpin2(spintype stype)
static int getSpinStates(spintype stype)
static double d(int j, int m1, int m2, double theta)