Loading...
Searching...
No Matches
Public Types | Public Member Functions | Private Attributes | List of all members
RadioBio::IonLet Class Reference

class to save and hold data for LET of different ions More...

#include <Doxymodules_medical.h>

Public Types

using array_type = std::valarray< G4double >
 

Public Member Functions

 IonLet (G4int trackID, G4int PDG, G4String fullname, G4String name, G4int Z, G4int A, G4int voxNumber)
 
 ~IonLet ()=default
 
G4bool IsPrimary () const
 
G4int GetPDGencoding () const
 
G4String GetFullName () const
 
G4String GetName () const
 
G4int GetZ () const
 
G4int GetA () const
 
array_type GetLETDN () const
 
array_type GetLETDD () const
 
array_type GetLETTN () const
 
array_type GetLETTD () const
 
array_type GetLETD () const
 
array_type GetLETT () const
 
void SetLETDN (array_type LETDN)
 
void SetLETDD (array_type LETDD)
 
void SetLETTN (array_type LETTN)
 
void SetLETTD (array_type LETTD)
 
void Update (G4int voxel, G4double DE, G4double DEELETrons, G4double Lsn, G4double DX)
 
void Merge (const IonLet *lhs)
 
void Calculate ()
 
G4bool operator< (const IonLet &a) const
 

Private Attributes

G4bool fIsPrimary = true
 
G4int fPDGencoding = -1
 
G4String fFullName
 
G4String fName
 
G4int fZ = -1
 
G4int fA = -1
 
array_type fLETDN = {}
 
array_type fLETDD = {}
 
array_type fLETTN = {}
 
array_type fLETTD = {}
 
array_type fLETD = {}
 
array_type fLETT = {}
 

Detailed Description

class to save and hold data for LET of different ions

Definition at line 133 of file Doxymodules_medical.h.

Member Typedef Documentation

◆ array_type

using RadioBio::IonLet::array_type = std::valarray<G4double>

Definition at line 50 of file IonLet.hh.

Constructor & Destructor Documentation

◆ IonLet()

RadioBio::IonLet::IonLet ( G4int  trackID,
G4int  PDG,
G4String  fullname,
G4String  name,
G4int  Z,
G4int  A,
G4int  voxNumber 
)

Definition at line 37 of file IonLet.cc.

39 : fIsPrimary(trackID == 1), fPDGencoding(PDG), fFullName(fullname), fName(name), fZ(Z), fA(A)
40{
41 fLETDN = array_type(0.0, voxNumber);
42 fLETDD = array_type(0.0, voxNumber);
43 fLETTN = array_type(0.0, voxNumber);
44 fLETTD = array_type(0.0, voxNumber);
45
46 fLETD = array_type(0.0, voxNumber);
47 fLETT = array_type(0.0, voxNumber);
48}
array_type fLETDN
Definition IonLet.hh:99
array_type fLETDD
Definition IonLet.hh:100
array_type fLETTN
Definition IonLet.hh:101
array_type fLETTD
Definition IonLet.hh:102
G4String fFullName
Definition IonLet.hh:92
array_type fLETD
Definition IonLet.hh:103
array_type fLETT
Definition IonLet.hh:104
std::valarray< G4double > array_type
Definition IonLet.hh:50
G4String fName
Definition IonLet.hh:93
G4int fPDGencoding
Definition IonLet.hh:91
G4bool fIsPrimary
Definition IonLet.hh:90

◆ ~IonLet()

RadioBio::IonLet::~IonLet ( )
default

Member Function Documentation

◆ IsPrimary()

G4bool RadioBio::IonLet::IsPrimary ( ) const
inline

Definition at line 52 of file IonLet.hh.

52{ return fIsPrimary; }

◆ GetPDGencoding()

G4int RadioBio::IonLet::GetPDGencoding ( ) const
inline

Definition at line 53 of file IonLet.hh.

53{ return fPDGencoding; }

◆ GetFullName()

G4String RadioBio::IonLet::GetFullName ( ) const
inline

Definition at line 54 of file IonLet.hh.

54{ return fFullName; }

◆ GetName()

G4String RadioBio::IonLet::GetName ( ) const
inline

Definition at line 55 of file IonLet.hh.

55{ return fName; }

◆ GetZ()

G4int RadioBio::IonLet::GetZ ( ) const
inline

Definition at line 56 of file IonLet.hh.

56{ return fZ; }

◆ GetA()

G4int RadioBio::IonLet::GetA ( ) const
inline

Definition at line 57 of file IonLet.hh.

57{ return fA; }

◆ GetLETDN()

array_type RadioBio::IonLet::GetLETDN ( ) const
inline

Definition at line 60 of file IonLet.hh.

60{ return fLETDN; }

◆ GetLETDD()

array_type RadioBio::IonLet::GetLETDD ( ) const
inline

Definition at line 61 of file IonLet.hh.

61{ return fLETDD; }

◆ GetLETTN()

array_type RadioBio::IonLet::GetLETTN ( ) const
inline

Definition at line 62 of file IonLet.hh.

62{ return fLETTN; }

◆ GetLETTD()

array_type RadioBio::IonLet::GetLETTD ( ) const
inline

Definition at line 63 of file IonLet.hh.

63{ return fLETTD; }

◆ GetLETD()

array_type RadioBio::IonLet::GetLETD ( ) const
inline

Definition at line 66 of file IonLet.hh.

66{ return fLETD; }

◆ GetLETT()

array_type RadioBio::IonLet::GetLETT ( ) const
inline

Definition at line 67 of file IonLet.hh.

67{ return fLETT; }

◆ SetLETDN()

void RadioBio::IonLet::SetLETDN ( array_type  LETDN)
inline

Definition at line 69 of file IonLet.hh.

69{ fLETDN = LETDN; }

◆ SetLETDD()

void RadioBio::IonLet::SetLETDD ( array_type  LETDD)
inline

Definition at line 70 of file IonLet.hh.

70{ fLETDD = LETDD; }

◆ SetLETTN()

void RadioBio::IonLet::SetLETTN ( array_type  LETTN)
inline

Definition at line 71 of file IonLet.hh.

71{ fLETTN = LETTN; }

◆ SetLETTD()

void RadioBio::IonLet::SetLETTD ( array_type  LETTD)
inline

Definition at line 72 of file IonLet.hh.

72{ fLETTD = LETTD; }

◆ Update()

void RadioBio::IonLet::Update ( G4int  voxel,
G4double  DE,
G4double  DEELETrons,
G4double  Lsn,
G4double  DX 
)

Definition at line 52 of file IonLet.cc.

53{
54 // ions dose LET Numerator, including secondary electrons energy deposit
55 fLETDN[voxel] += (DE + DEELETrons) * Lsn;
56 // ions dose LET Denominator, including secondary electrons energy deposit
57 fLETDD[voxel] += DE + DEELETrons;
58 // ions track LET Numerator
59 fLETTN[voxel] += DX * Lsn;
60 // ions track LET Denominator
61 fLETTD[voxel] += DX;
62}

◆ Merge()

void RadioBio::IonLet::Merge ( const IonLet lhs)

Definition at line 66 of file IonLet.cc.

67{
68 // If programmed correctly, this exception should never appear
69 if (rhs->GetPDGencoding() != fPDGencoding || rhs->IsPrimary() != fIsPrimary)
70 G4Exception("IonLet::merge", "mergingdifferentions", FatalException,
71 "Cannotmerge ions, probably merging of data from different ions");
72
73 fLETDN += rhs->GetLETDN();
74 fLETDD += rhs->GetLETDD();
75 fLETTN += rhs->GetLETTN();
76 fLETTD += rhs->GetLETTD();
77}

◆ Calculate()

void RadioBio::IonLet::Calculate ( )

Definition at line 81 of file IonLet.cc.

82{
83 for (unsigned int v = 0; v < fLETD.size(); v++) {
84 if (fLETDD[v] > 0.) fLETD[v] = fLETDN[v] / fLETDD[v];
85 if (fLETTD[v] > 0.) fLETT[v] = fLETTN[v] / fLETTD[v];
86 }
87}

◆ operator<()

G4bool RadioBio::IonLet::operator< ( const IonLet a) const
inline

Definition at line 84 of file IonLet.hh.

85 {
86 return (this->fZ == a.fZ) ? this->fA < a.fA : this->fZ < a.fZ;
87 }
std::vector< ExP01TrackerHit * > a

Member Data Documentation

◆ fIsPrimary

G4bool RadioBio::IonLet::fIsPrimary = true
private

Definition at line 90 of file IonLet.hh.

◆ fPDGencoding

G4int RadioBio::IonLet::fPDGencoding = -1
private

Definition at line 91 of file IonLet.hh.

◆ fFullName

G4String RadioBio::IonLet::fFullName
private

Definition at line 92 of file IonLet.hh.

◆ fName

G4String RadioBio::IonLet::fName
private

Definition at line 93 of file IonLet.hh.

◆ fZ

G4int RadioBio::IonLet::fZ = -1
private

Definition at line 94 of file IonLet.hh.

◆ fA

G4int RadioBio::IonLet::fA = -1
private

Definition at line 95 of file IonLet.hh.

◆ fLETDN

array_type RadioBio::IonLet::fLETDN = {}
private

Definition at line 99 of file IonLet.hh.

99{};

◆ fLETDD

array_type RadioBio::IonLet::fLETDD = {}
private

Definition at line 100 of file IonLet.hh.

100{};

◆ fLETTN

array_type RadioBio::IonLet::fLETTN = {}
private

Definition at line 101 of file IonLet.hh.

101{};

◆ fLETTD

array_type RadioBio::IonLet::fLETTD = {}
private

Definition at line 102 of file IonLet.hh.

102{};

◆ fLETD

array_type RadioBio::IonLet::fLETD = {}
private

Definition at line 103 of file IonLet.hh.

103{};

◆ fLETT

array_type RadioBio::IonLet::fLETT = {}
private

Definition at line 104 of file IonLet.hh.

104{};

The documentation for this class was generated from the following files:

Applications | User Support | Publications | Collaboration