ECCE @ EIC Software
Reference for
ECCE @ EIC
simulation and reconstruction software on GitHub
Home page
Related Pages
Modules
Namespaces
Classes
Files
External Links
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
G4StokesVector.hh
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file G4StokesVector.hh
1
//
2
// ********************************************************************
3
// * License and Disclaimer *
4
// * *
5
// * The Geant4 software is copyright of the Copyright Holders of *
6
// * the Geant4 Collaboration. It is provided under the terms and *
7
// * conditions of the Geant4 Software License, included in the file *
8
// * LICENSE and available at http://cern.ch/geant4/license . These *
9
// * include a list of copyright holders. *
10
// * *
11
// * Neither the authors of this software system, nor their employing *
12
// * institutes,nor the agencies providing financial support for this *
13
// * work make any representation or warranty, express or implied, *
14
// * regarding this software system or assume any liability for its *
15
// * use. Please see the license in the file LICENSE and URL above *
16
// * for the full disclaimer and the limitation of liability. *
17
// * *
18
// * This code implementation is the result of the scientific and *
19
// * technical work of the GEANT4 collaboration. *
20
// * By using, copying, modifying or distributing the software (or *
21
// * any work based on the software) you agree to acknowledge its *
22
// * use in resulting scientific publications, and indicate your *
23
// * acceptance of all terms of the Geant4 Software license. *
24
// ********************************************************************
25
//
26
//
27
// GEANT4 Class header file
28
//
29
// File name: G4StokesVector
30
//
31
// Author: Andreas Schaelicke
32
//
33
// Creation date: 01.05.2005
34
//
35
// Modifications:
36
// 27-07-06 added some test routines (P.Starovoitov)
37
// 25-08-06 modified name of test routines (A.Schaelicke)
38
//
39
// Class Description:
40
//
41
// Provides Stokesvector representation employed in implementation of
42
// polarized processes.
43
//
44
// aim:
45
// - store three components of a stokesvector
46
// - distinguish between boson or fermion state (different transformations)
47
// - provide unique definition of reference frame (cf. G4PolarizationHelper)
48
//
49
50
#ifndef G4StokesVector_h
51
#define G4StokesVector_h 1
52
53
#include "
G4ThreeVector.hh
"
54
#include "
G4RotationMatrix.hh
"
55
56
57
class
G4StokesVector
:
public
G4ThreeVector
58
{
59
public
:
60
// standard vectors:
61
static
const
G4StokesVector
ZERO
;
62
static
const
G4StokesVector
P1
;
63
static
const
G4StokesVector
P2
;
64
static
const
G4StokesVector
P3
;
65
static
const
G4StokesVector
M1
;
66
static
const
G4StokesVector
M2
;
67
static
const
G4StokesVector
M3
;
68
public
:
69
G4StokesVector
();
70
G4StokesVector
(
const
G4ThreeVector
&
v
);
71
~G4StokesVector
() =
default
;
72
73
G4bool
IsZero
()
const
;
74
75
inline
G4double
p1
()
const
{
return
x
(); }
76
inline
G4double
p2
()
const
{
return
y
(); }
77
inline
G4double
p3
()
const
{
return
z
(); }
78
79
inline
G4double
Transverse
()
const
{
return
perp
(); }
80
81
inline
G4ThreeVector
PolSqr
()
const
{
82
return
G4ThreeVector
(
x
()*
x
(),
y
()*
y
(),
z
()*
z
());
83
}
84
inline
G4ThreeVector
PolSqrt
()
const
{
85
return
G4ThreeVector
(std::sqrt(
x
()),std::sqrt(
y
()),std::sqrt(
z
()));
86
}
87
G4ThreeVector
PolError
(
const
G4StokesVector
& sum2,
long
n
);
88
89
// Ratio of 3-vectors.
90
G4ThreeVector
PolDiv
(
const
G4StokesVector
& );
91
92
inline
void
SetPhoton
() {
isPhoton
=
true
; }
93
94
void
RotateAz
(
G4ThreeVector
nInteractionFrame,
95
G4ThreeVector
particleDirection);
96
void
InvRotateAz
(
G4ThreeVector
nInteractionFrame,
97
G4ThreeVector
particleDirection);
98
void
RotateAz
(
G4double
cosphi,
G4double
sinphi);
99
G4double
GetBeta
();
100
101
void
DiceUniform
();
102
void
DiceP1
();
103
void
DiceP2
();
104
void
DiceP3
();
105
106
void
FlipP3
();
107
private
:
108
G4bool
isPhoton
;
109
};
110
111
112
#endif
geant4
tree
geant4-10.6-release
source
processes
electromagnetic
polarisation
include
G4StokesVector.hh
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:25:33
using
1.8.2 with
ECCE GitHub integration