53 for (
G4int i=0 ; i<9 ; ++i ) {
w[i] = 1; }
183 return w[0] * w[1] * w[2] * w[3] * w[4] * w[5] * w[6] * w[7] * w[8];
200 if (atype ==
"biasx") {
205 }
else if (atype ==
"biasy") {
210 }
else if (atype ==
"biasz") {
215 }
else if (atype ==
"biast") {
220 }
else if (atype ==
"biasp") {
225 }
else if (atype ==
"biase") {
230 }
else if (atype ==
"biaspt") {
235 }
else if (atype ==
"biaspp") {
282 vals[0] =
XBiasH(std::size_t(0));
284 for (ii=1; ii<maxbin; ++ii)
287 vals[ii] =
XBiasH(std::size_t(ii)) + vals[ii - 1];
288 sum = sum +
XBiasH(std::size_t(ii));
291 for (ii=0; ii<maxbin; ++ii)
293 vals[ii] = vals[ii] / sum;
311 G4int biasn2 = numberOfBin / 2;
312 G4int biasn3 = numberOfBin - 1;
313 while (biasn1 != biasn3 - 1)
319 biasn2 = biasn1 + (biasn3 - biasn1 + 1) / 2;
329 w[0] = NatProb / w[0];
332 G4cout <<
"X bin weight " << w[0] <<
" " << rndm <<
G4endl;
364 vals[0] =
YBiasH(std::size_t(0));
366 for (ii=1; ii<maxbin; ++ii)
369 vals[ii] =
YBiasH(std::size_t(ii)) + vals[ii - 1];
370 sum = sum +
YBiasH(std::size_t(ii));
373 for (ii=0; ii<maxbin; ++ii)
375 vals[ii] = vals[ii] / sum;
387 G4int biasn2 = numberOfBin / 2;
388 G4int biasn3 = numberOfBin - 1;
389 while (biasn1 != biasn3 - 1)
395 biasn2 = biasn1 + (biasn3 - biasn1 + 1) / 2;
402 w[1] = NatProb / w[1];
405 G4cout <<
"Y bin weight " << w[1] <<
" " << rndm <<
G4endl;
437 vals[0] =
ZBiasH(std::size_t(0));
439 for (ii=1; ii<maxbin; ++ii)
442 vals[ii] =
ZBiasH(std::size_t(ii)) + vals[ii - 1];
443 sum = sum +
ZBiasH(std::size_t(ii));
446 for (ii=0; ii<maxbin; ++ii)
448 vals[ii] = vals[ii] / sum;
460 G4int biasn2 = numberOfBin / 2;
461 G4int biasn3 = numberOfBin - 1;
462 while (biasn1 != biasn3 - 1)
468 biasn2 = biasn1 + (biasn3 - biasn1 + 1) / 2;
475 w[2] = NatProb / w[2];
478 G4cout <<
"Z bin weight " << w[2] <<
" " << rndm <<
G4endl;
513 for (ii=1; ii<maxbin; ++ii)
516 vals[ii] =
ThetaBiasH(std::size_t(ii)) + vals[ii - 1];
520 for (ii=0; ii<maxbin; ++ii)
522 vals[ii] = vals[ii] / sum;
534 G4int biasn2 = numberOfBin / 2;
535 G4int biasn3 = numberOfBin - 1;
536 while (biasn1 != biasn3 - 1)
542 biasn2 = biasn1 + (biasn3 - biasn1 + 1) / 2;
549 w[3] = NatProb / w[3];
552 G4cout <<
"Theta bin weight " << w[3] <<
" " << rndm <<
G4endl;
586 for (ii=1; ii<maxbin; ++ii)
589 vals[ii] =
PhiBiasH(std::size_t(ii)) + vals[ii - 1];
590 sum = sum +
PhiBiasH(std::size_t(ii));
593 for (ii=0; ii<maxbin; ++ii)
595 vals[ii] = vals[ii] / sum;
607 G4int biasn2 = numberOfBin / 2;
608 G4int biasn3 = numberOfBin - 1;
609 while (biasn1 != biasn3 - 1)
615 biasn2 = biasn1 + (biasn3 - biasn1 + 1) / 2;
622 w[4] = NatProb / w[4];
625 G4cout <<
"Phi bin weight " << w[4] <<
" " << rndm <<
G4endl;
659 for (ii=1; ii<maxbin; ++ii)
662 vals[ii] =
EnergyBiasH(std::size_t(ii)) + vals[ii - 1];
666 for (ii=0; ii<maxbin; ++ii)
668 vals[ii] = vals[ii] / sum;
680 G4int biasn2 = numberOfBin / 2;
681 G4int biasn3 = numberOfBin - 1;
682 while (biasn1 != biasn3 - 1)
688 biasn2 = biasn1 + (biasn3 - biasn1 + 1) / 2;
695 w[5] = NatProb / w[5];
698 G4cout <<
"Energy bin weight " << w[5] <<
" " << rndm <<
G4endl;
733 for (ii=1; ii<maxbin; ++ii)
740 for (ii=0; ii<maxbin; ++ii)
742 vals[ii] = vals[ii] / sum;
754 G4int biasn2 = numberOfBin / 2;
755 G4int biasn3 = numberOfBin - 1;
756 while (biasn1 != biasn3 - 1)
762 biasn2 = biasn1 + (biasn3 - biasn1 + 1) / 2;
769 w[6] = NatProb / w[6];
772 G4cout <<
"PosTheta bin weight " << w[6] <<
" " << rndm <<
G4endl;
806 for (ii=1; ii<maxbin; ++ii)
809 vals[ii] =
PosPhiBiasH(std::size_t(ii)) + vals[ii - 1];
813 for (ii=0; ii<maxbin; ++ii)
815 vals[ii] = vals[ii] / sum;
827 G4int biasn2 = numberOfBin / 2;
828 G4int biasn3 = numberOfBin - 1;
829 while (biasn1 != biasn3 - 1)
835 biasn2 = biasn1 + (biasn3 - biasn1 + 1) / 2;
842 w[7] = NatProb / w[7];
845 G4cout <<
"PosPhi bin weight " << w[7] <<
" " << rndm <<
G4endl;
#define G4MUTEXDESTROY(mutex)
#define G4MUTEXINIT(mutex)
G4GLOB_DLL std::ostream G4cout
void InsertValues(const G4double energy, const G4double value)
G4double GetEnergy(const G4double value) const
G4double GetLowEdgeEnergy(const std::size_t index) const
std::size_t GetVectorLength() const
G4PhysicsFreeVector IPDFPosThetaBiasH
void SetIntensityWeight(G4double weight)
G4PhysicsFreeVector IPDFXBiasH
G4Cache< a_check > local_IPDFYBias
void SetXBias(const G4ThreeVector &)
G4Cache< a_check > local_IPDFPosThetaBias
G4PhysicsFreeVector PosThetaBiasH
G4PhysicsFreeVector IPDFEnergyBiasH
void SetEnergyBias(const G4ThreeVector &)
G4Cache< a_check > local_IPDFXBias
G4PhysicsFreeVector ZBiasH
void SetPosPhiBias(const G4ThreeVector &)
G4PhysicsFreeVector IPDFPosPhiBiasH
G4PhysicsFreeVector IPDFThetaBiasH
G4PhysicsFreeVector EnergyBiasH
G4PhysicsFreeVector PhiBiasH
G4PhysicsFreeVector XBiasH
G4Cache< a_check > local_IPDFPosPhiBias
G4Cache< a_check > local_IPDFThetaBias
G4PhysicsFreeVector YBiasH
void SetThetaBias(const G4ThreeVector &)
G4double GetBiasWeight() const
G4PhysicsFreeVector PosPhiBiasH
void SetYBias(const G4ThreeVector &)
G4Cache< a_check > local_IPDFPhiBias
void SetVerbosity(G4int a)
G4Cache< a_check > local_IPDFEnergyBias
void SetPosThetaBias(const G4ThreeVector &)
G4double GenRandPosTheta()
G4PhysicsFreeVector ThetaBiasH
G4Cache< a_check > local_IPDFZBias
G4PhysicsFreeVector IPDFZBiasH
void SetPhiBias(const G4ThreeVector &)
void SetZBias(const G4ThreeVector &)
G4PhysicsFreeVector IPDFYBiasH
G4PhysicsFreeVector IPDFPhiBiasH
void ReSetHist(const G4String &)
G4Cache< bweights_t > bweights
static const G4double bins[31]
G4PhysicsFreeVector ZeroPhysVector
G4double & operator[](const int i)