#include <G4AdjointhMultipleScattering.hh>
Inheritance diagram for G4AdjointhMultipleScattering:
Public Member Functions | |
G4AdjointhMultipleScattering (const G4String &processName="msc") | |
virtual | ~G4AdjointhMultipleScattering () |
G4bool | IsApplicable (const G4ParticleDefinition &p) |
void | PrintInfo () |
void | Setsamplez (G4bool value) |
void | Setdtrl (G4double value) |
void | SetLambdalimit (G4double value) |
Protected Member Functions | |
void | InitialiseProcess (const G4ParticleDefinition *) |
Definition at line 73 of file G4AdjointhMultipleScattering.hh.
G4AdjointhMultipleScattering::G4AdjointhMultipleScattering | ( | const G4String & | processName = "msc" |
) |
Definition at line 52 of file G4AdjointhMultipleScattering.cc.
References fMinimal, and G4VMultipleScattering::SetStepLimitType().
00053 : G4VMultipleScattering(processName) 00054 { 00055 isInitialized = false; 00056 isIon = false; 00057 SetStepLimitType(fMinimal); 00058 00059 dtrl=0.; 00060 lambdalimit=0.; 00061 samplez=0.; 00062 }
G4AdjointhMultipleScattering::~G4AdjointhMultipleScattering | ( | ) | [virtual] |
void G4AdjointhMultipleScattering::InitialiseProcess | ( | const G4ParticleDefinition * | ) | [protected, virtual] |
Implements G4VMultipleScattering.
Definition at line 78 of file G4AdjointhMultipleScattering.cc.
References G4VMultipleScattering::AddEmModel(), fMinimal, G4VMultipleScattering::GeomFactor(), G4ParticleDefinition::GetParticleName(), G4ParticleDefinition::GetParticleType(), G4ParticleDefinition::GetPDGMass(), G4VMultipleScattering::LateralDisplasmentFlag(), G4VMultipleScattering::RangeFactor(), G4VMscModel::SetGeomFactor(), G4VMultipleScattering::SetLateralDisplasmentFlag(), G4VMscModel::SetLateralDisplasmentFlag(), G4VMscModel::SetRangeFactor(), G4VMscModel::SetSkin(), G4VMultipleScattering::SetStepLimitType(), G4VMscModel::SetStepLimitType(), G4VMultipleScattering::Skin(), and G4VMultipleScattering::StepLimitType().
00079 { 00080 // Modification of parameters between runs 00081 if(isInitialized) { 00082 if (p->GetParticleType() != "adjoint_nucleus" && p->GetPDGMass() < GeV) { 00083 mscUrban->SetStepLimitType(StepLimitType()); 00084 mscUrban->SetLateralDisplasmentFlag(LateralDisplasmentFlag()); 00085 mscUrban->SetSkin(Skin()); 00086 mscUrban->SetRangeFactor(RangeFactor()); 00087 mscUrban->SetGeomFactor(GeomFactor()); 00088 } 00089 return; 00090 } 00091 00092 // defaults for ions, which cannot be overwritten 00093 if (p->GetParticleType() == "adjoint_nucleus" || p->GetPDGMass() > GeV) { 00094 SetStepLimitType(fMinimal); 00095 SetLateralDisplasmentFlag(false); 00096 //SetBuildLambdaTable(false); 00097 if(p->GetParticleType() == "adjoint_nucleus") isIon = true; 00098 } 00099 00100 // initialisation of parameters 00101 G4String part_name = p->GetParticleName(); 00102 mscUrban = new G4UrbanMscModel95(); 00103 00104 mscUrban->SetStepLimitType(StepLimitType()); 00105 mscUrban->SetLateralDisplasmentFlag(LateralDisplasmentFlag()); 00106 mscUrban->SetSkin(Skin()); 00107 mscUrban->SetRangeFactor(RangeFactor()); 00108 mscUrban->SetGeomFactor(GeomFactor()); 00109 00110 AddEmModel(1,mscUrban); 00111 isInitialized = true; 00112 }
G4bool G4AdjointhMultipleScattering::IsApplicable | ( | const G4ParticleDefinition & | p | ) | [virtual] |
Implements G4VMultipleScattering.
Definition at line 71 of file G4AdjointhMultipleScattering.cc.
References G4ParticleDefinition::GetPDGCharge(), and G4ParticleDefinition::IsShortLived().
00072 { 00073 return (p.GetPDGCharge() != 0.0 && !p.IsShortLived()); 00074 }
void G4AdjointhMultipleScattering::PrintInfo | ( | ) | [virtual] |
Implements G4VMultipleScattering.
Definition at line 116 of file G4AdjointhMultipleScattering.cc.
References G4cout, G4endl, G4VMultipleScattering::LateralDisplasmentFlag(), G4VMultipleScattering::RangeFactor(), G4VMultipleScattering::Skin(), and G4VMultipleScattering::StepLimitType().
00117 { 00118 G4cout << " RangeFactor= " << RangeFactor() 00119 << ", step limit type: " << StepLimitType() 00120 << ", lateralDisplacement: " << LateralDisplasmentFlag() 00121 << ", skin= " << Skin() 00122 // << ", geomFactor= " << GeomFactor() 00123 << G4endl; 00124 }
void G4AdjointhMultipleScattering::Setdtrl | ( | G4double | value | ) | [inline] |
void G4AdjointhMultipleScattering::SetLambdalimit | ( | G4double | value | ) | [inline] |
void G4AdjointhMultipleScattering::Setsamplez | ( | G4bool | value | ) | [inline] |