Geant4-11
source
error_propagation
src
G4ErrorTrajState.cc
Go to the documentation of this file.
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
// ------------------------------------------------------------
28
// GEANT 4 class implementation file
29
// ------------------------------------------------------------
30
//
31
32
#include "
G4ErrorTrajState.hh
"
33
#include "
G4ParticleTable.hh
"
34
#include "
G4ParticleDefinition.hh
"
35
#include "
G4ErrorPropagatorData.hh
"
36
37
#include <iomanip>
38
39
//--------------------------------------------------------------------------
40
G4ErrorTrajState::G4ErrorTrajState
(
const
G4String
& partType,
41
const
G4Point3D
&
pos
,
const
G4Vector3D
& mom,
42
const
G4ErrorTrajErr
& errmat)
43
: fParticleType(partType)
44
, fPosition(
pos
)
45
, fMomentum(mom)
46
, fError(errmat)
47
, theTSType(
G4eTS_FREE
)
48
{
49
iverbose
=
G4ErrorPropagatorData::verbose
();
50
}
51
52
//--------------------------------------------------------------------------
53
G4ErrorTrajState::G4ErrorTrajState
(
const
G4ErrorTrajState
&
ts
) { *
this
=
ts
; }
54
55
//--------------------------------------------------------------------------
56
G4ErrorTrajState::G4ErrorTrajState
(
G4ErrorTrajState
&&
ts
)
57
: fParticleType(
ts
.fParticleType)
58
, fPosition(
ts
.fPosition)
59
, fMomentum(
ts
.fMomentum)
60
, fCharge(
ts
.fCharge)
61
, fError(
ts
.fError)
62
, theTSType(
ts
.theTSType)
63
, theG4Track(
ts
.theG4Track)
64
, iverbose(
ts
.iverbose)
65
{
66
// Release data from source object
67
ts
.theG4Track =
nullptr
;
68
}
69
70
//--------------------------------------------------------------------------
71
G4ErrorTrajState
&
G4ErrorTrajState::operator=
(
const
G4ErrorTrajState
&
ts
)
72
{
73
if
(
this
!= &
ts
)
74
{
75
fParticleType
=
ts
.fParticleType;
76
fPosition
=
ts
.fPosition;
77
fMomentum
=
ts
.fMomentum;
78
fCharge
=
ts
.fCharge;
79
fError
=
ts
.fError;
80
theTSType
=
ts
.theTSType;
81
iverbose
=
ts
.iverbose;
82
delete
theG4Track
;
83
theG4Track
=
new
G4Track
(*
ts
.theG4Track);
84
}
85
return
*
this
;
86
}
87
88
//--------------------------------------------------------------------------
89
G4ErrorTrajState
&
G4ErrorTrajState::operator=
(
G4ErrorTrajState
&&
ts
)
90
{
91
if
(
this
!= &
ts
)
92
{
93
fParticleType
=
ts
.fParticleType;
94
fPosition
=
ts
.fPosition;
95
fMomentum
=
ts
.fMomentum;
96
fCharge
=
ts
.fCharge;
97
fError
=
ts
.fError;
98
theTSType
=
ts
.theTSType;
99
iverbose
=
ts
.iverbose;
100
delete
theG4Track
;
101
theG4Track
=
ts
.theG4Track;
102
103
// Release data from source object
104
ts
.theG4Track =
nullptr
;
105
}
106
return
*
this
;
107
}
108
109
//--------------------------------------------------------------------------
110
G4int
G4ErrorTrajState::PropagateError
(
const
G4Track
*)
111
{
112
std::ostringstream message;
113
message <<
"Wrong trajectory state type !"
<<
G4endl
114
<<
"Called for trajectory state type: "
<<
G4int
(
GetTSType
());
115
G4Exception
(
"G4ErrorTrajState::PropagateError()"
,
"GEANT4e-Error"
,
116
FatalException
, message);
117
return
-1;
118
}
119
120
//--------------------------------------------------------------------------
121
void
G4ErrorTrajState::UpdatePosMom
(
const
G4Point3D
&
pos
,
const
G4Vector3D
& mom)
122
{
123
fPosition
=
pos
;
124
fMomentum
= mom;
125
}
126
127
//--------------------------------------------------------------------------
128
void
G4ErrorTrajState::SetData
(
const
G4String
& partType,
const
G4Point3D
&
pos
,
129
const
G4Vector3D
& mom)
130
{
131
fParticleType
= partType;
132
BuildCharge
();
133
fPosition
=
pos
;
134
fMomentum
= mom;
135
}
136
137
//--------------------------------------------------------------------------
138
void
G4ErrorTrajState::BuildCharge
()
139
{
140
G4ParticleTable
* particleTable =
G4ParticleTable::GetParticleTable
();
141
G4ParticleDefinition
* particle = particleTable->
FindParticle
(
fParticleType
);
142
if
(particle ==
nullptr
)
143
{
144
std::ostringstream message;
145
message <<
"Particle type not defined: "
<<
fParticleType
;
146
G4Exception
(
"G4ErrorTrajState::BuildCharge()"
,
"GEANT4e-error"
,
147
FatalException
, message);
148
}
149
else
150
{
151
fCharge
= particle->
GetPDGCharge
();
152
}
153
}
154
155
//------------------------------------------------------------------------
156
void
G4ErrorTrajState::DumpPosMomError
(std::ostream& out)
const
157
{
158
out << *
this
;
159
}
160
161
//--------------------------------------------------------------------------
162
std::ostream&
operator<<
(std::ostream& out,
const
G4ErrorTrajState
&
ts
)
163
{
164
// long mode = out.setf(std::ios::fixed,std::ios::floatfield);
165
out <<
" G4ErrorTrajState of type "
<<
ts
.theTSType
166
<<
" : partycle: "
<<
ts
.fParticleType <<
" position: "
<< std::setw(6)
167
<<
ts
.fPosition <<
" momentum: "
<<
ts
.fMomentum
168
<<
" error matrix "
;
169
G4cout
<<
ts
.fError <<
G4endl
;
170
171
return
out;
172
}
pos
static const G4double pos
Definition:
G4ElectroNuclearCrossSection.cc:66
G4ErrorPropagatorData.hh
G4ErrorTrajState.hh
G4eTS_FREE
@ G4eTS_FREE
Definition:
G4ErrorTrajState.hh:48
FatalException
@ FatalException
Definition:
G4ExceptionSeverity.hh:61
G4Exception
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
Definition:
G4Exception.cc:35
G4ParticleDefinition.hh
G4ParticleTable.hh
G4int
int G4int
Definition:
G4Types.hh:85
G4endl
#define G4endl
Definition:
G4ios.hh:57
G4cout
G4GLOB_DLL std::ostream G4cout
G4ErrorPropagatorData::verbose
static G4int verbose()
Definition:
G4ErrorPropagatorData.cc:64
G4ErrorSymMatrix
Definition:
G4ErrorSymMatrix.hh:44
G4ErrorTrajState
Definition:
G4ErrorTrajState.hh:53
G4ErrorTrajState::DumpPosMomError
void DumpPosMomError(std::ostream &out=G4cout) const
Definition:
G4ErrorTrajState.cc:156
G4ErrorTrajState::theG4Track
G4Track * theG4Track
Definition:
G4ErrorTrajState.hh:131
G4ErrorTrajState::fPosition
G4Point3D fPosition
Definition:
G4ErrorTrajState.hh:124
G4ErrorTrajState::fParticleType
G4String fParticleType
Definition:
G4ErrorTrajState.hh:123
G4ErrorTrajState::fError
G4ErrorTrajErr fError
Definition:
G4ErrorTrajState.hh:127
G4ErrorTrajState::PropagateError
virtual G4int PropagateError(const G4Track *)
Definition:
G4ErrorTrajState.cc:110
G4ErrorTrajState::UpdatePosMom
void UpdatePosMom(const G4Point3D &pos, const G4Vector3D &mom)
Definition:
G4ErrorTrajState.cc:121
G4ErrorTrajState::iverbose
G4int iverbose
Definition:
G4ErrorTrajState.hh:133
G4ErrorTrajState::BuildCharge
void BuildCharge()
Definition:
G4ErrorTrajState.cc:138
G4ErrorTrajState::SetData
void SetData(const G4String &partType, const G4Point3D &pos, const G4Vector3D &mom)
Definition:
G4ErrorTrajState.cc:128
G4ErrorTrajState::fMomentum
G4Vector3D fMomentum
Definition:
G4ErrorTrajState.hh:125
G4ErrorTrajState::operator=
G4ErrorTrajState & operator=(const G4ErrorTrajState &)
Definition:
G4ErrorTrajState.cc:71
G4ErrorTrajState::G4ErrorTrajState
G4ErrorTrajState()
Definition:
G4ErrorTrajState.hh:55
G4ErrorTrajState::fCharge
G4double fCharge
Definition:
G4ErrorTrajState.hh:126
G4ErrorTrajState::GetTSType
virtual G4eTSType GetTSType() const
Definition:
G4ErrorTrajState.hh:120
G4ErrorTrajState::theTSType
G4eTSType theTSType
Definition:
G4ErrorTrajState.hh:129
G4ParticleDefinition
Definition:
G4ParticleDefinition.hh:61
G4ParticleDefinition::GetPDGCharge
G4double GetPDGCharge() const
Definition:
G4ParticleDefinition.hh:113
G4ParticleTable
Definition:
G4ParticleTable.hh:60
G4ParticleTable::FindParticle
G4ParticleDefinition * FindParticle(G4int PDGEncoding)
Definition:
G4ParticleTable.cc:586
G4ParticleTable::GetParticleTable
static G4ParticleTable * GetParticleTable()
Definition:
G4ParticleTable.cc:87
G4String
Definition:
G4String.hh:62
G4Track
Definition:
G4Track.hh:67
HepGeom::BasicVector3D::operator<<
std::ostream & operator<<(std::ostream &, const BasicVector3D< float > &)
Definition:
BasicVector3D.cc:106
HepGeom::Point3D< G4double >
HepGeom::Vector3D< G4double >
geant4_check_module_cycles.ts
ts
Definition:
geant4_check_module_cycles.py:71
Generated by
1.9.3