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
G4VTrajectory.hh
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file G4VTrajectory.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
//
28
//---------------------------------------------------------------
29
//
30
// G4VTrajectory.hh
31
//
32
// class description:
33
// This class is the abstract base class which represents a trajectory of
34
// a particle tracked.
35
// Its concrete class includes information of
36
// 1) List of trajectory points which compose the trajectory,
37
// 2) static information of particle which generated the
38
// trajectory,
39
// 3) trackID and parent particle ID of the trajectory,
40
//
41
// ---------------------------------------------------------------
42
43
#ifndef G4VTrajectory_h
44
#define G4VTrajectory_h 1
45
46
#include "
globals.hh
"
47
#include <vector>
48
#include <map>
49
#include "
G4ThreeVector.hh
"
50
51
class
G4Step
;
52
class
G4VTrajectoryPoint
;
53
class
G4AttDef
;
54
class
G4AttValue
;
55
56
class
G4VTrajectory
57
{
58
public
:
// with description
59
60
// Constructor/Destrcutor
61
62
G4VTrajectory
();
63
virtual
~G4VTrajectory
();
64
65
// Operators
66
G4bool
operator ==
(
const
G4VTrajectory
&
right
)
const
;
67
68
// Get/Set functions
69
virtual
G4int
GetTrackID
()
const
= 0;
70
virtual
G4int
GetParentID
()
const
= 0;
71
virtual
G4String
GetParticleName
()
const
= 0;
72
virtual
G4double
GetCharge
()
const
= 0;
73
// Charge is that of G4DynamicParticle
74
virtual
G4int
GetPDGEncoding
()
const
= 0;
75
// Zero will be returned if the particle does not have PDG code.
76
virtual
G4ThreeVector
GetInitialMomentum
()
const
= 0;
77
// Momentum at the origin of the track in global coordinate system.
78
79
// Other member functions
80
virtual
int
GetPointEntries
()
const
= 0;
81
// Returns the number of trajectory points
82
virtual
G4VTrajectoryPoint
*
GetPoint
(
G4int
i)
const
= 0;
83
// Returns i-th trajectory point.
84
virtual
void
ShowTrajectory
(std::ostream& os=
G4cout
)
const
;
85
// Convert attributes in trajectory (and trajectory point if
86
// needed) to ostream. A default implementation in this base class
87
// may be used or may be overridden in the concrete class. Note:
88
// the user needs to follow with new-line or end-of-string,
89
// depending on the nature of os.
90
virtual
void
DrawTrajectory
()
const
;
91
// Draw the trajectory. A default implementation in this base
92
// class may be used or may be overridden in the concrete class.
93
virtual
const
std::map<G4String,G4AttDef>*
GetAttDefs
()
const
94
{
return
0; }
95
// If implemented by a derived class, returns a pointer to a map of
96
// attribute definitions for the attribute values below. The user
97
// must test the validity of this pointer. See G4Trajectory for an
98
// example of a concrete implementation of this method.
99
virtual
std::vector<G4AttValue>*
CreateAttValues
()
const
100
{
return
0; }
101
// If implemented by a derived class, returns a pointer to a list
102
// of attribute values suitable, e.g., for picking. Each must
103
// refer to an attribute definition in the above map; its name is
104
// the key. The user must test the validity of this pointer (it
105
// must be non-zero and conform to the G4AttDefs, which may be
106
// checked with G4AttCheck) and delete the list after use. See
107
// G4Trajectory for an example of a concrete implementation of this
108
// method and G4VTrajectory::ShowTrajectory for an example of its
109
// use.
110
111
public
:
112
// Following methods MUST be invoked exclusively by G4TrackingManager
113
virtual
void
AppendStep
(
const
G4Step
* aStep) = 0;
114
virtual
void
MergeTrajectory
(
G4VTrajectory
* secondTrajectory) = 0;
115
116
};
117
118
#endif
119
120
121
122
123
124
125
126
127
128
geant4
tree
geant4-10.6-release
source
tracking
include
G4VTrajectory.hh
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:25:53
using
1.8.2 with
ECCE GitHub integration