Geant4 11.2.2
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4ChannelingTrackData.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//
28// --------------------------------------------------------------------
29// GEANT 4 class header file
30//
31// Class Description:
32// Extends G4Track properties with information needed for the
33// channeling biasing operator.
34//
35// ------------------ G4ChannelingTrackData ------------------
36//
37// Author: M.Verderi (LLR), E. Bagli (INFN) April 2016
38//
39// --------------------------------------------------------------------
40
41#ifndef G4ChannelingTrackData_hh
42#define G4ChannelingTrackData_hh
43
44class G4Channeling;
46#include "G4ThreeVector.hh"
47
49 friend class G4Channeling;
50
51public:
54
55 void Print() const;
56
57private:
58 const G4Channeling* fChannelingProcess;
59
60public:
61 void Reset(){
62 fChannelingProcess = nullptr;
63 fNuD = fElD = 1.;
64 fPosCh = fMomCh = fDBL;
65 }
66
67public:
68 G4double GetDensity() {return (fNuD + fElD) * 0.5;}
69
70 void SetNuD(G4double aDouble) {fNuD = aDouble;};
71 G4double GetNuD() {return fNuD;};
72
73 void SetElD(G4double aDouble) {fElD = aDouble;};
74 G4double GetElD() {return fElD;};
75
76 void SetEFX(G4double aDouble) {fEFX = aDouble;};
77 G4double GetEFX() {return fEFX;};
78
79 void SetEFY(G4double aDouble) {fEFY = aDouble;};
80 G4double GetEFY() {return fEFY;};
81
82 G4ThreeVector GetMomCh() {return fMomCh;}
83 void SetMomCh(G4ThreeVector a3vec) {fMomCh = a3vec;}
84
85 G4ThreeVector GetPosCh() {return fPosCh;}
86 void SetPosCh(G4ThreeVector a3vec) {fPosCh = a3vec;}
87
88private:
89 // ----------
90 // DBL_MAX vector for reset
91 // ----------
92 G4ThreeVector fDBL;
93
94 // ----------
95 // Positiona and momentum in the crystal reference frame
96 // ----------
97 G4ThreeVector fMomCh;
98 G4ThreeVector fPosCh;
99
100 G4double fNuD;
101 G4double fElD;
102
103 G4double fEFX;
104 G4double fEFY;
105};
106
107#endif
double G4double
Definition G4Types.hh:83
void SetPosCh(G4ThreeVector a3vec)
void SetNuD(G4double aDouble)
void SetElD(G4double aDouble)
void SetEFY(G4double aDouble)
void SetEFX(G4double aDouble)
void SetMomCh(G4ThreeVector a3vec)