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
G4ErrorSurfaceTrajState.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// Represents a trajectory state on a surface.
33// It can be represented by the 5 variables:
34// 1/p, v', w', v, w
35// where v'=dv/du and w'=dw/du in an orthonormal coordinate system
36// with axis u, v and w.
37
38// History:
39//
40// - Created: P. Arce
41// --------------------------------------------------------------------
42
43#ifndef G4ErrorSurfaceTrajState_hh
44#define G4ErrorSurfaceTrajState_hh
45
46#include "globals.hh"
47
48#include "G4ErrorTrajState.hh"
51
52#include "G4Point3D.hh"
53#include "G4Vector3D.hh"
54#include "G4Plane3D.hh"
55
57{
58
59 public: // with description
60
61 G4ErrorSurfaceTrajState( const G4String& partType, const G4Point3D& pos,
62 const G4Vector3D& mom, const G4Plane3D& plane,
63 const G4ErrorTrajErr& errmat = G4ErrorTrajErr(5,0) );
64 // Constructor by providing particle, position, momentum and
65 // G4Plane3D surface
66
67 G4ErrorSurfaceTrajState( const G4String& partType, const G4Point3D& pos,
68 const G4Vector3D& mom, const G4Vector3D& vecV,
69 const G4Vector3D& vecW,
70 const G4ErrorTrajErr& errmat = G4ErrorTrajErr(5,0) );
71 // Constructor by providing particle, position, momentum and
72 // two vectors on surface
73
75 // Constructor by providing G4ErrorFreeTrajState and G4Plane3D surface
76
78 const G4Vector3D& vecW );
79 // Constructor by providing G4ErrorFreeTrajState and two vectors on surface
80
82
83 void BuildErrorMatrix( G4ErrorFreeTrajState& tpSC, const G4Vector3D& vecV,
84 const G4Vector3D& vecW );
85 // Build the error matrix from a free state plus the vectors of the surface
86
87 virtual void Dump( std::ostream& out = G4cout ) const;
88
89 friend
90 std::ostream& operator<<(std::ostream&, const G4ErrorSurfaceTrajState& ts);
91
92 // Set and Get methods
93
95 { return fTrajParam; }
96 void SetParameters( const G4Point3D& pos, const G4Vector3D& mom,
97 const G4Vector3D& vecV, const G4Vector3D& vecW )
98 {
99 fPosition = pos;
100 fMomentum = mom;
101 fTrajParam.SetParameters( pos, mom, vecV, vecW );
102 }
103
104 void SetParameters( const G4Point3D& pos, const G4Vector3D& mom,
105 const G4Plane3D& plane )
106 {
107 fPosition = pos;
108 fMomentum = mom;
109 fTrajParam.SetParameters( pos, mom, plane );
110 }
111
113 { return fTrajParam.GetVectorV(); }
114
116 { return fTrajParam.GetVectorW(); }
117
118 virtual void SetPosition( const G4Point3D pos )
120
121 virtual void SetMomentum( const G4Vector3D& mom )
123
124 private:
125
126 void Init();
127 // Define Trajectory State type and build charge
128
129 private:
130
131 G4ErrorSurfaceTrajParam fTrajParam;
132
133};
134
135#endif
G4ErrorSymMatrix G4ErrorTrajErr
G4DLLIMPORT std::ostream G4cout
void SetParameters(const G4Point3D &pos, const G4Vector3D &mom, const G4Vector3D &vecV, const G4Vector3D &vecW)
void SetParameters(const G4Point3D &pos, const G4Vector3D &mom, const G4Plane3D &plane)
virtual void Dump(std::ostream &out=G4cout) const
void BuildErrorMatrix(G4ErrorFreeTrajState &tpSC, const G4Vector3D &vecV, const G4Vector3D &vecW)
virtual void SetMomentum(const G4Vector3D &mom)
G4ErrorSurfaceTrajParam GetParameters() const
friend std::ostream & operator<<(std::ostream &, const G4ErrorSurfaceTrajState &ts)
virtual void SetPosition(const G4Point3D pos)
void SetParameters(const G4Point3D &pos, const G4Vector3D &mom, const G4Vector3D &vecV, const G4Vector3D &vecW)