Geant4 9.6.0
Toolkit for the simulation of the passage of particles through matter
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
G4ErrorTrajState.hh
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// $Id$
28//
29//
30// Class Description:
31//
32// Base class for the trajectory state
33
34// History:
35// - Created: P. Arce
36// --------------------------------------------------------------------
37
38#ifndef G4ErrorTrajState_hh
39#define G4ErrorTrajState_hh
40
41#include "globals.hh"
42#include "G4Track.hh"
43#include "G4Point3D.hh"
44#include "G4Vector3D.hh"
45#include "G4ErrorTrajErr.hh"
46
48
50{
51 public: // with description
52
54
55 G4ErrorTrajState( const G4String& partType, const G4Point3D& pos,
56 const G4Vector3D& mom,
57 const G4ErrorTrajErr& errmat = G4ErrorTrajErr(5,0) );
58 // Constructor by providing particle, position and momentum
59
61
62 void SetData( const G4String& partType, const G4Point3D& pos,
63 const G4Vector3D& mom );
64 // Set particle, position and momentum
65
66 void BuildCharge();
67 // Build charge based on particle type
68
69 friend
70 std::ostream& operator<<(std::ostream&, const G4ErrorTrajState& ts);
71
72 virtual G4int PropagateError( const G4Track* );
73 // Propagate the error along the step
74
75 virtual G4int Update( const G4Track* ){ return -1; }
76 // Update parameters from G4Track
77
78 void UpdatePosMom( const G4Point3D& pos, const G4Vector3D& mom );
79 // Update position and momentum
80
81 void DumpPosMomError( std::ostream& out = G4cout ) const;
82 // Dump position, momentum and error
83
84 virtual void Dump( std::ostream& out = G4cout ) const = 0;
85 // Abstract method to dump all TrajState parameters
86
87 // Set and Get methods
88
90 { return fParticleType;}
91 void SetParticleType( const G4String& partType )
92 { fParticleType = partType;}
93
95 { return fPosition; }
96 virtual void SetPosition( const G4Point3D pos )
97 { fPosition = pos; }
98
100 { return fMomentum; }
101 virtual void SetMomentum( const G4Vector3D& mom )
102 { fMomentum = mom; }
103
105 { return fError; }
106 virtual void SetError( G4ErrorTrajErr em )
107 { fError = em; }
108
110 { return theG4Track; }
111 void SetG4Track( G4Track* trk )
112 { theG4Track = trk; }
113
115 { return fCharge; }
117 { fCharge = ch; }
118
119 virtual G4eTSType GetTSType() const
120 { return theTSType; }
121
122 protected:
123
129
131
133
135};
136
137#endif
G4ErrorSymMatrix G4ErrorTrajErr
G4eTSType
@ G4eTS_FREE
@ G4eTS_OS
double G4double
Definition: G4Types.hh:64
int G4int
Definition: G4Types.hh:66
G4DLLIMPORT std::ostream G4cout
virtual void SetError(G4ErrorTrajErr em)
void DumpPosMomError(std::ostream &out=G4cout) const
void SetG4Track(G4Track *trk)
G4ErrorTrajErr fError
virtual ~G4ErrorTrajState()
G4Track * GetG4Track() const
virtual G4int PropagateError(const G4Track *)
void UpdatePosMom(const G4Point3D &pos, const G4Vector3D &mom)
G4ErrorTrajErr GetError() const
void SetCharge(G4double ch)
virtual void SetMomentum(const G4Vector3D &mom)
void SetData(const G4String &partType, const G4Point3D &pos, const G4Vector3D &mom)
virtual void SetPosition(const G4Point3D pos)
G4Vector3D GetMomentum() const
G4double GetCharge() const
virtual G4int Update(const G4Track *)
const G4String & GetParticleType() const
void SetParticleType(const G4String &partType)
friend std::ostream & operator<<(std::ostream &, const G4ErrorTrajState &ts)
virtual G4eTSType GetTSType() const
virtual void Dump(std::ostream &out=G4cout) const =0
G4Point3D GetPosition() const