BOSS
8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
EvtHighSpinParticle.cc
Go to the documentation of this file.
1
//--------------------------------------------------------------------------
2
//
3
// Environment:
4
// This software is part of the EvtGen package developed jointly
5
// for the BaBar and CLEO collaborations. If you use all or part
6
// of it, please give an appropriate acknowledgement.
7
//
8
// Copyright Information: See EvtGen/COPYRIGHT
9
// Copyright (C) 1998 Caltech, UCSB
10
//
11
// Module: EvtHighSpinParticle.cc
12
//
13
// Description: Class to describe particles with spin>2.
14
//
15
// Modification history:
16
//
17
// RYD August 8, 2000 Module created
18
//
19
//------------------------------------------------------------------------
20
//
21
#include "
EvtHighSpinParticle.hh
"
22
#include "
EvtPDL.hh
"
23
#include "
EvtPatches.hh
"
24
#include "
EvtSpinDensity.hh
"
25
#include "
EvtVector4R.hh
"
26
#include "
EvtdFunction.hh
"
27
#include <assert.h>
28
#include <iostream>
29
#include <math.h>
30
31
EvtHighSpinParticle::~EvtHighSpinParticle
() {}
32
33
void
EvtHighSpinParticle::init
(
EvtId
id
,
const
EvtVector4R
& p4 ) {
34
35
_validP4
=
true
;
36
setp
( p4 );
37
setpart_num
(
id
);
38
39
setLifetime
();
40
}
41
42
EvtSpinDensity
EvtHighSpinParticle::rotateToHelicityBasis
()
const
{
43
44
int
n
=
EvtSpinType::getSpinStates
(
EvtPDL::getSpinType
(
getId
() ) );
45
46
EvtSpinDensity
R;
47
R.SetDiag(
n
);
48
49
return
R;
50
}
51
52
EvtSpinDensity
EvtHighSpinParticle::rotateToHelicityBasis
(
double
alpha
,
double
beta,
53
double
gamma )
const
{
54
55
int
i, j;
56
57
int
n
=
EvtSpinType::getSpinStates
(
EvtPDL::getSpinType
(
getId
() ) );
58
59
EvtSpinDensity
R;
60
R.SetDim(
n
);
61
62
int
J2 =
EvtSpinType::getSpin2
(
EvtPDL::getSpinType
(
getId
() ) );
63
64
assert(
n
== J2 + 1 );
65
66
int
* lambda2;
67
68
lambda2 =
new
int
[J2 + 1];
69
70
for
( i = 0; i < J2 + 1; i++ ) { lambda2[i] = J2 - i * 2; }
71
72
for
( i = 0; i <
n
; i++ )
73
{
74
for
( j = 0; j <
n
; j++ )
75
{
76
R.Set(
77
i, j,
78
EvtdFunction::d
( J2, lambda2[j], lambda2[i], -beta ) *
79
exp
(
EvtComplex
( 0.0, -0.5 * (
alpha
* lambda2[i] - gamma * lambda2[j] ) ) ) );
80
}
81
}
82
83
delete
[] lambda2;
84
85
return
R;
86
}
n
const Int_t n
Definition
DataBase/tau_mode.c:57
exp
EvtComplex exp(const EvtComplex &c)
Definition
EvtComplex.hh:209
EvtHighSpinParticle.hh
EvtPDL.hh
EvtPatches.hh
alpha
double alpha
Definition
EvtPhokharaDef.hh:17
EvtSpinDensity.hh
EvtVector4R.hh
EvtdFunction.hh
EvtComplex
Definition
EvtComplex.hh:28
EvtHighSpinParticle::init
void init(EvtId id, const EvtVector4R &p)
Definition
EvtHighSpinParticle.cc:33
EvtHighSpinParticle::~EvtHighSpinParticle
virtual ~EvtHighSpinParticle()
Definition
EvtHighSpinParticle.cc:31
EvtHighSpinParticle::rotateToHelicityBasis
EvtSpinDensity rotateToHelicityBasis() const
Definition
EvtHighSpinParticle.cc:42
EvtId
Definition
EvtId.hh:27
EvtPDL::getSpinType
static EvtSpinType::spintype getSpinType(EvtId i)
Definition
EvtPDL.hh:66
EvtParticle::_validP4
bool _validP4
Definition
EvtParticle.hh:398
EvtParticle::getId
EvtId getId() const
Definition
EvtParticle.cc:100
EvtParticle::setLifetime
void setLifetime()
Definition
EvtParticle.cc:86
EvtParticle::setp
void setp(double e, double px, double py, double pz)
Definition
EvtParticle.hh:392
EvtParticle::setpart_num
void setpart_num(EvtId particle_number)
Definition
EvtParticle.hh:394
EvtSpinDensity
Definition
EvtSpinDensity.hh:26
EvtSpinType::getSpin2
static int getSpin2(spintype stype)
Definition
EvtSpinType.hh:45
EvtSpinType::getSpinStates
static int getSpinStates(spintype stype)
Definition
EvtSpinType.hh:67
EvtVector4R
Definition
EvtVector4R.hh:29
EvtdFunction::d
static double d(int j, int m1, int m2, double theta)
Definition
EvtdFunction.cc:29
8.0.0
BOSS_Gen
BesEvtGen
src
EvtGen
EvtGenBase
EvtHighSpinParticle.cc
Generated by
1.16.1