44 fITTL =
new std::vector<size_t>;
45 fITTU =
new std::vector<size_t>;
52 if (fPAC)
delete fPAC;
55 if (fITTL)
delete fITTL;
56 if (fITTU)
delete fITTU;
63 size_t points = fX->size();
66 if (fPAC->size() != points || fA->size() != points ||
67 fB->size() != points || fITTL->size() != points ||
68 fITTU->size() != points)
71 ed <<
"Data vectors look to have different dimensions !" <<
G4endl;
72 G4Exception(
"G4PenelopeSamplingData::GetNumberOfStoredPoints()",
"em2040",
82 if (fPAC)
delete fPAC;
85 if (fITTL)
delete fITTL;
86 if (fITTU)
delete fITTU;
92 fITTL =
new std::vector<size_t>;
93 fITTU =
new std::vector<size_t>;
98 size_t ITTL0,
size_t ITTU0)
101 fPAC->push_back(pac0);
104 fITTL->push_back(ITTL0);
105 fITTU->push_back(ITTU0);
110 if (nOfPoints > ((
size_t)fNP))
112 G4cout <<
"G4PenelopeSamplingData::AddPoint() " <<
G4endl;
113 G4cout <<
"WARNING: Up to now there are " << nOfPoints <<
" points in the table" <<
G4endl;
114 G4cout <<
"while the anticipated (declared) number is " << fNP <<
G4endl;
123 G4cout <<
"*************************************************************************" <<
G4endl;
125 G4cout <<
"*************************************************************************" <<
G4endl;
128 G4cout << i <<
" " << (*fX)[i] <<
" " << (*fPAC)[i] <<
" " << (*fA)[i] <<
" " <<
129 (*fB)[i] <<
" " << (*fITTL)[i] <<
" " << (*fITTU)[i] <<
G4endl;
131 G4cout <<
"*************************************************************************" <<
G4endl;
137 if (index < fX->size())
146 if (index < fPAC->size())
147 return (*fPAC)[index];
155 if (index < fA->size())
164 if (index < fB->size())
177 size_t itn = (size_t) (maxRand*(points-1));
178 size_t i = (*fITTL)[itn];
179 size_t j = (*fITTU)[itn];
184 if (maxRand > (*fPAC)[k])
196 G4double d = (*fPAC)[i+1]-(*fPAC)[i];
198 ((1.0+(*fA)[i]+(*fB)[i])*d*rr/
199 (d*d+((*fA)[i]*d+(*fB)[i]*rr)*rr))*((*fX)[i+1]-(*fX)[i]);
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
std::ostringstream G4ExceptionDescription
G4GLOB_DLL std::ostream G4cout
G4double GetA(size_t index)
G4double GetPAC(size_t index)
size_t GetNumberOfStoredPoints()
void AddPoint(G4double x0, G4double pac0, G4double a0, G4double b0, size_t ITTL0, size_t ITTU0)
G4double GetX(size_t index)
G4PenelopeSamplingData(G4int npoints=150)
~G4PenelopeSamplingData()
G4double SampleValue(G4double rndm)
G4double GetB(size_t index)