#include <G4ecpssrFormFactorLixsModel.hh>
Inheritance diagram for G4ecpssrFormFactorLixsModel:
Public Member Functions | |
G4ecpssrFormFactorLixsModel () | |
virtual | ~G4ecpssrFormFactorLixsModel () |
G4double | CalculateL1CrossSection (G4int zTarget, G4double massIncident, G4double energyIncident) |
G4double | CalculateL2CrossSection (G4int zTarget, G4double massIncident, G4double energyIncident) |
G4double | CalculateL3CrossSection (G4int zTarget, G4double massIncident, G4double energyIncident) |
Definition at line 47 of file G4ecpssrFormFactorLixsModel.hh.
G4ecpssrFormFactorLixsModel::G4ecpssrFormFactorLixsModel | ( | ) |
Definition at line 53 of file G4ecpssrFormFactorLixsModel.cc.
00054 { 00055 interpolation = new G4LinInterpolation(); 00056 00057 for (G4int i=6; i<93; i++) 00058 { 00059 protonL1DataSetMap[i] = new G4EMDataSet(i,interpolation); 00060 protonL1DataSetMap[i]->LoadData("pixe/ecpssr/proton/l1-"); 00061 00062 protonL2DataSetMap[i] = new G4EMDataSet(i,interpolation); 00063 protonL2DataSetMap[i]->LoadData("pixe/ecpssr/proton/l2-"); 00064 00065 protonL3DataSetMap[i] = new G4EMDataSet(i,interpolation); 00066 protonL3DataSetMap[i]->LoadData("pixe/ecpssr/proton/l3-"); 00067 } 00068 00069 for (G4int i=6; i<93; i++) 00070 { 00071 alphaL1DataSetMap[i] = new G4EMDataSet(i,interpolation); 00072 alphaL1DataSetMap[i]->LoadData("pixe/ecpssr/alpha/l1-"); 00073 00074 alphaL2DataSetMap[i] = new G4EMDataSet(i,interpolation); 00075 alphaL2DataSetMap[i]->LoadData("pixe/ecpssr/alpha/l2-"); 00076 00077 alphaL3DataSetMap[i] = new G4EMDataSet(i,interpolation); 00078 alphaL3DataSetMap[i]->LoadData("pixe/ecpssr/alpha/l3-"); 00079 } 00080 00081 }
G4ecpssrFormFactorLixsModel::~G4ecpssrFormFactorLixsModel | ( | ) | [virtual] |
Definition at line 85 of file G4ecpssrFormFactorLixsModel.cc.
00086 { 00087 protonL1DataSetMap.clear(); 00088 alphaL1DataSetMap.clear(); 00089 00090 protonL2DataSetMap.clear(); 00091 alphaL2DataSetMap.clear(); 00092 00093 protonL3DataSetMap.clear(); 00094 alphaL3DataSetMap.clear(); 00095 00096 delete interpolation; 00097 }
G4double G4ecpssrFormFactorLixsModel::CalculateL1CrossSection | ( | G4int | zTarget, | |
G4double | massIncident, | |||
G4double | energyIncident | |||
) | [virtual] |
Implements G4VecpssrLiModel.
Definition at line 101 of file G4ecpssrFormFactorLixsModel.cc.
References G4Alpha::Alpha(), G4ParticleDefinition::GetPDGMass(), and G4Proton::Proton().
00102 { 00103 G4Proton* aProton = G4Proton::Proton(); 00104 G4Alpha* aAlpha = G4Alpha::Alpha(); 00105 G4double sigma = 0; 00106 00107 if (energyIncident > 0.1*MeV && energyIncident < 100.*MeV && zTarget < 93 && zTarget > 5) { 00108 00109 if (massIncident == aProton->GetPDGMass()) 00110 { 00111 sigma = protonL1DataSetMap[zTarget]->FindValue(energyIncident/MeV); 00112 if (sigma !=0 && energyIncident > protonL1DataSetMap[zTarget]->GetEnergies(0).back()*MeV) return 0.; 00113 } 00114 else if (massIncident == aAlpha->GetPDGMass()) 00115 { 00116 sigma = alphaL1DataSetMap[zTarget]->FindValue(energyIncident/MeV); 00117 if (sigma !=0 && energyIncident > alphaL1DataSetMap[zTarget]->GetEnergies(0).back()*MeV) return 0.; 00118 } 00119 else 00120 { 00121 sigma = 0.; 00122 } 00123 } 00124 00125 // sigma is in internal units: it has been converted from 00126 // the input file in barns bt the EmDataset 00127 return sigma; 00128 }
G4double G4ecpssrFormFactorLixsModel::CalculateL2CrossSection | ( | G4int | zTarget, | |
G4double | massIncident, | |||
G4double | energyIncident | |||
) | [virtual] |
Implements G4VecpssrLiModel.
Definition at line 132 of file G4ecpssrFormFactorLixsModel.cc.
References G4Alpha::Alpha(), G4ParticleDefinition::GetPDGMass(), and G4Proton::Proton().
00133 { 00134 G4Proton* aProton = G4Proton::Proton(); 00135 G4Alpha* aAlpha = G4Alpha::Alpha(); 00136 G4double sigma = 0; 00137 00138 if (energyIncident > 0.1*MeV && energyIncident < 100.*MeV && zTarget < 93 && zTarget > 5) { 00139 00140 if (massIncident == aProton->GetPDGMass()) 00141 { 00142 sigma = protonL2DataSetMap[zTarget]->FindValue(energyIncident/MeV); 00143 if (sigma !=0 && energyIncident > protonL2DataSetMap[zTarget]->GetEnergies(0).back()*MeV) return 0.; 00144 } 00145 else if (massIncident == aAlpha->GetPDGMass()) 00146 { 00147 sigma = alphaL2DataSetMap[zTarget]->FindValue(energyIncident/MeV); 00148 if (sigma !=0 && energyIncident > alphaL2DataSetMap[zTarget]->GetEnergies(0).back()*MeV) return 0.; 00149 } 00150 else 00151 { 00152 sigma = 0.; 00153 } 00154 } 00155 00156 // sigma is in internal units: it has been converted from 00157 // the input file in barns bt the EmDataset 00158 return sigma; 00159 }
G4double G4ecpssrFormFactorLixsModel::CalculateL3CrossSection | ( | G4int | zTarget, | |
G4double | massIncident, | |||
G4double | energyIncident | |||
) | [virtual] |
Implements G4VecpssrLiModel.
Definition at line 163 of file G4ecpssrFormFactorLixsModel.cc.
References G4Alpha::Alpha(), G4ParticleDefinition::GetPDGMass(), and G4Proton::Proton().
00164 { 00165 G4Proton* aProton = G4Proton::Proton(); 00166 G4Alpha* aAlpha = G4Alpha::Alpha(); 00167 G4double sigma = 0; 00168 00169 if (energyIncident > 0.1*MeV && energyIncident < 100.*MeV && zTarget < 93 && zTarget > 5) { 00170 00171 if (massIncident == aProton->GetPDGMass()) 00172 { 00173 sigma = protonL3DataSetMap[zTarget]->FindValue(energyIncident/MeV); 00174 if (sigma !=0 && energyIncident > protonL3DataSetMap[zTarget]->GetEnergies(0).back()*MeV) return 0.; 00175 } 00176 else if (massIncident == aAlpha->GetPDGMass()) 00177 { 00178 sigma = alphaL3DataSetMap[zTarget]->FindValue(energyIncident/MeV); 00179 if (sigma !=0 && energyIncident > alphaL3DataSetMap[zTarget]->GetEnergies(0).back()*MeV) return 0.; 00180 } 00181 else 00182 { 00183 sigma = 0.; 00184 } 00185 } 00186 00187 // sigma is in internal units: it has been converted from 00188 // the input file in barns bt the EmDataset 00189 return sigma; 00190 }