TDCRPy 2.5.0__tar.gz → 2.7.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of TDCRPy might be problematic. Click here for more details.

Files changed (87) hide show
  1. {tdcrpy-2.5.0/TDCRPy.egg-info → tdcrpy-2.7.0}/PKG-INFO +1 -1
  2. {tdcrpy-2.5.0 → tdcrpy-2.7.0/TDCRPy.egg-info}/PKG-INFO +1 -1
  3. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/setup.py +1 -1
  4. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/tdcrpy/TDCR_model_lib.py +68 -40
  5. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/tdcrpy/config.toml +2 -0
  6. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/LICENCE.md +0 -0
  7. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/MANIFEST.in +0 -0
  8. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/README.md +0 -0
  9. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/TDCRPy.egg-info/SOURCES.txt +0 -0
  10. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/TDCRPy.egg-info/dependency_links.txt +0 -0
  11. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/TDCRPy.egg-info/requires.txt +0 -0
  12. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/TDCRPy.egg-info/top_level.txt +0 -0
  13. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/setup.cfg +0 -0
  14. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/tdcrpy/MCNP-MATRIX/Spectra_for_analytical_model/dep_spectrum_C-14.txt +0 -0
  15. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/tdcrpy/MCNP-MATRIX/Spectra_for_analytical_model/dep_spectrum_Ca-45.txt +0 -0
  16. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/tdcrpy/MCNP-MATRIX/Spectra_for_analytical_model/dep_spectrum_Co-60.txt +0 -0
  17. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/tdcrpy/MCNP-MATRIX/Spectra_for_analytical_model/dep_spectrum_H-3.txt +0 -0
  18. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/tdcrpy/MCNP-MATRIX/Spectra_for_analytical_model/dep_spectrum_Ni-63.txt +0 -0
  19. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/tdcrpy/MCNP-MATRIX/Spectra_for_analytical_model/dep_spectrum_Pm-147.txt +0 -0
  20. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/tdcrpy/MCNP-MATRIX/Spectra_for_analytical_model/dep_spectrum_Pu-241.txt +0 -0
  21. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/tdcrpy/MCNP-MATRIX/Spectra_for_analytical_model/dep_spectrum_S-35.txt +0 -0
  22. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/tdcrpy/MCNP-MATRIX/Spectra_for_analytical_model/dep_spectrum_Sr-89.txt +0 -0
  23. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/tdcrpy/MCNP-MATRIX/Spectra_for_analytical_model/dep_spectrum_Sr-90.txt +0 -0
  24. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/tdcrpy/MCNP-MATRIX/Spectra_for_analytical_model/dep_spectrum_Tc-99.txt +0 -0
  25. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/tdcrpy/MCNP-MATRIX/matrice/fichier/E_depose.txt +0 -0
  26. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/tdcrpy/MCNP-MATRIX/matrice/fichier/matrice_10ml-beta-_1_200k.txt +0 -0
  27. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/tdcrpy/MCNP-MATRIX/matrice/fichier/matrice_10ml-beta-_2000_10000k.txt +0 -0
  28. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/tdcrpy/MCNP-MATRIX/matrice/fichier/matrice_10ml-beta-_200_2000k.txt +0 -0
  29. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/tdcrpy/MCNP-MATRIX/matrice/fichier/matrice_10ml-photon_1_200k.txt +0 -0
  30. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/tdcrpy/MCNP-MATRIX/matrice/fichier/matrice_10ml-photon_2000_10000k.txt +0 -0
  31. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/tdcrpy/MCNP-MATRIX/matrice/fichier/matrice_10ml-photon_200_2000k.txt +0 -0
  32. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/tdcrpy/MCNP-MATRIX/matrice/fichier/matrice_13ml-beta-_1_200k.txt +0 -0
  33. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/tdcrpy/MCNP-MATRIX/matrice/fichier/matrice_13ml-beta-_2000_10000k.txt +0 -0
  34. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/tdcrpy/MCNP-MATRIX/matrice/fichier/matrice_13ml-beta-_200_2000k.txt +0 -0
  35. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/tdcrpy/MCNP-MATRIX/matrice/fichier/matrice_13ml-photon_1_200k.txt +0 -0
  36. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/tdcrpy/MCNP-MATRIX/matrice/fichier/matrice_13ml-photon_2000_10000k.txt +0 -0
  37. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/tdcrpy/MCNP-MATRIX/matrice/fichier/matrice_13ml-photon_200_2000k.txt +0 -0
  38. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/tdcrpy/MCNP-MATRIX/matrice/fichier/matrice_16ml-beta-_1_200k.txt +0 -0
  39. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/tdcrpy/MCNP-MATRIX/matrice/fichier/matrice_16ml-beta-_2000_10000k.txt +0 -0
  40. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/tdcrpy/MCNP-MATRIX/matrice/fichier/matrice_16ml-beta-_200_2000k.txt +0 -0
  41. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/tdcrpy/MCNP-MATRIX/matrice/fichier/matrice_16ml-photon_1_200k.txt +0 -0
  42. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/tdcrpy/MCNP-MATRIX/matrice/fichier/matrice_16ml-photon_2000_10000k.txt +0 -0
  43. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/tdcrpy/MCNP-MATRIX/matrice/fichier/matrice_16ml-photon_200_2000k.txt +0 -0
  44. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/tdcrpy/Micelle/2nmfaq01.csv +0 -0
  45. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/tdcrpy/Micelle/faq01.csv +0 -0
  46. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/tdcrpy/Quenching/QuenchEnergyAlpha_0.015.txt +0 -0
  47. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/tdcrpy/Quenching/QuenchEnergyAlpha_1.1e-05.txt +0 -0
  48. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/tdcrpy/Quenching/QuenchEnergyAlpha_1.2e-05.txt +0 -0
  49. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/tdcrpy/Quenching/QuenchEnergyAlpha_1.3e-05.txt +0 -0
  50. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/tdcrpy/Quenching/QuenchEnergyAlpha_1.4e-05.txt +0 -0
  51. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/tdcrpy/Quenching/QuenchEnergyAlpha_1.5e-05.txt +0 -0
  52. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/tdcrpy/Quenching/QuenchEnergyAlpha_1e-05.txt +0 -0
  53. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/tdcrpy/Quenching/QuenchEnergyAlpha_6e-06.txt +0 -0
  54. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/tdcrpy/Quenching/QuenchEnergyAlpha_7e-06.txt +0 -0
  55. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/tdcrpy/Quenching/QuenchEnergyAlpha_8e-06.txt +0 -0
  56. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/tdcrpy/Quenching/QuenchEnergyAlpha_9e-06.txt +0 -0
  57. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/tdcrpy/Quenching/QuenchEnergyElectron_0.006.txt +0 -0
  58. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/tdcrpy/Quenching/QuenchEnergyElectron_0.007.txt +0 -0
  59. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/tdcrpy/Quenching/QuenchEnergyElectron_0.008.txt +0 -0
  60. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/tdcrpy/Quenching/QuenchEnergyElectron_0.009.txt +0 -0
  61. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/tdcrpy/Quenching/QuenchEnergyElectron_0.01.txt +0 -0
  62. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/tdcrpy/Quenching/QuenchEnergyElectron_0.011.txt +0 -0
  63. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/tdcrpy/Quenching/QuenchEnergyElectron_0.012.txt +0 -0
  64. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/tdcrpy/Quenching/QuenchEnergyElectron_0.013.txt +0 -0
  65. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/tdcrpy/Quenching/QuenchEnergyElectron_0.014.txt +0 -0
  66. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/tdcrpy/Quenching/QuenchEnergyElectron_0.015.txt +0 -0
  67. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/tdcrpy/Quenching/TandataUG.txt +0 -0
  68. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/tdcrpy/Quenching/alpha_toulene.txt +0 -0
  69. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/tdcrpy/Quenching/inputVecteurAlpha.txt +0 -0
  70. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/tdcrpy/Quenching/inputVecteurElectron.txt +0 -0
  71. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/tdcrpy/TDCRPy.py +0 -0
  72. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/tdcrpy/TDCRPy1.py +0 -0
  73. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/tdcrpy/TDCRoptimize.py +0 -0
  74. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/tdcrpy/__init__.py +0 -0
  75. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/tdcrpy/decayData/All-nuclides_BetaShape.zip +0 -0
  76. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/tdcrpy/decayData/All-nuclides_Ensdf.zip +0 -0
  77. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/tdcrpy/decayData/All-nuclides_PenNuc.zip +0 -0
  78. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/tdcrpy/decayData/atom-ENDF-VII0.zip +0 -0
  79. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/tdcrpy/decayData/photo-ENDF.zip +0 -0
  80. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/tdcrpy/docs/_build/html/genindex.html +0 -0
  81. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/tdcrpy/docs/_build/html/index.html +0 -0
  82. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/tdcrpy/docs/_build/html/search.html +0 -0
  83. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/tdcrpy/docs/_build/html/source/modules.html +0 -0
  84. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/tdcrpy/docs/_build/html/source/tdcrpy.html +0 -0
  85. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/tdcrpy/test/__init__.py +0 -0
  86. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/tdcrpy/test/test_tdcrpy.py +0 -0
  87. {tdcrpy-2.5.0 → tdcrpy-2.7.0}/tdcrpy/test2.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: TDCRPy
3
- Version: 2.5.0
3
+ Version: 2.7.0
4
4
  Summary: TDCR model
5
5
  Home-page: https://pypi.org/project/TDCRPy/
6
6
  Author: RomainCoulon (Romain Coulon)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: TDCRPy
3
- Version: 2.5.0
3
+ Version: 2.7.0
4
4
  Summary: TDCR model
5
5
  Home-page: https://pypi.org/project/TDCRPy/
6
6
  Author: RomainCoulon (Romain Coulon)
@@ -2,7 +2,7 @@ from setuptools import setup, find_packages
2
2
  import codecs
3
3
  import os
4
4
 
5
- VERSION = "2.5.0"
5
+ VERSION = "2.7.0"
6
6
 
7
7
  DESCRIPTION = "TDCR model"
8
8
 
@@ -61,6 +61,7 @@ def readParameters(disp=False):
61
61
  fAq = config["Inputs"].getfloat("fAq")
62
62
  micCorr = config["Inputs"].getboolean("micCorr")
63
63
  alphaDir = config["Inputs"].getfloat("alphaDir")
64
+ effQuantic = config["Inputs"].getfloat("effQuantum")
64
65
 
65
66
  if disp:
66
67
  print(f"number of integration bins for electrons = {nE_electron}")
@@ -78,13 +79,14 @@ def readParameters(disp=False):
78
79
  print(f"diameter of micelle = {diam_micelle} nm")
79
80
  print(f"acqueous fraction = {fAq}")
80
81
  print(f"alpha parameter of the hidden Dirichlet process = {alphaDir}")
82
+ print(f"quantum efficiency of the photocathodes = {effQuantic}")
81
83
  print(f"coincidence resolving time = {tau} ns")
82
84
  print(f"extended dead time = {extDT} µs")
83
85
  print(f"measurement time = {measTime} min")
84
86
 
85
- return nE_electron, nE_alpha, RHO, Z, A, depthSpline, Einterp_a, Einterp_e, diam_micelle, fAq, tau, extDT, measTime, micCorr, alphaDir, pH,pC,pN,pO,pP,pCl
87
+ return nE_electron, nE_alpha, RHO, Z, A, depthSpline, Einterp_a, Einterp_e, diam_micelle, fAq, tau, extDT, measTime, micCorr, alphaDir, effQuantic, pH,pC,pN,pO,pP,pCl
86
88
 
87
- nE_electron, nE_alpha, RHO, Z, A, depthSpline, Einterp_a, Einterp_e, diam_micelle, fAq, tau, extDT, measTime, micCorr, alphaDir, pH,pC,pN,pO,pP,pCl = readParameters()
89
+ nE_electron, nE_alpha, RHO, Z, A, depthSpline, Einterp_a, Einterp_e, diam_micelle, fAq, tau, extDT, measTime, micCorr, alphaDir, effQuantic, pH,pC,pN,pO,pP,pCl = readParameters()
88
90
 
89
91
  p_atom = np.array([pH,pC,pN,pO,pP,pCl]) # atom abondance in the scintillator
90
92
  p_atom /= sum(p_atom)
@@ -200,6 +202,12 @@ def modifyAlphaDir(x):
200
202
  x0 = readParameters()[14]
201
203
  data1 = data0.replace(f"alphaDir = {x0}",f"alphaDir = {x}")
202
204
  writeConfifAsstr(data1)
205
+
206
+ def modifyEffQ(x):
207
+ data0 = readConfigAsstr()
208
+ x0 = readParameters()[15]
209
+ data1 = data0.replace(f"effQuantum = {x0}",f"effQuantum = {x}")
210
+ writeConfifAsstr(data1)
203
211
 
204
212
  def read_temp_files(copy=False, path="C:"):
205
213
 
@@ -3012,7 +3020,7 @@ def detectProbabilities(L, e_quenching, e_quenching2, t1, evenement, extDT, meas
3012
3020
  return efficiency0_S, efficiency0_D, efficiency0_T, efficiency0_AB, efficiency0_BC, efficiency0_AC, efficiency0_D2
3013
3021
 
3014
3022
 
3015
- def detectProbabilitiesMC(L, e_quenching, e_quenching2, t1, evenement, extDT, measTime, dir_param = alphaDir):
3023
+ def detectProbabilitiesMC(L, e_quenching, e_quenching2, t1, evenement, extDT, measTime, dir_param = alphaDir, effQuantic = effQuantic):
3016
3024
  """
3017
3025
  Calculate detection probabilities for LS counting systems - see Broda, R., Cassette, P., Kossert, K., 2007. Radionuclide metrology using liquid scintillation counting. Metrologia 44. https://doi.org/10.1088/0026-1394/44/4/S06
3018
3026
 
@@ -3056,11 +3064,11 @@ def detectProbabilitiesMC(L, e_quenching, e_quenching2, t1, evenement, extDT, me
3056
3064
  else:
3057
3065
  symm = True
3058
3066
 
3059
- alpha = 1
3067
+ mu = effQuantic
3060
3068
 
3061
- if alpha < 1000:
3062
- dirichTD = np.random.dirichlet([alpha, alpha, alpha])
3063
- dirichCN = np.random.dirichlet([alpha, alpha])
3069
+ if dir_param < 1000:
3070
+ dirichTD = np.random.dirichlet([dir_param, dir_param, dir_param])
3071
+ dirichCN = np.random.dirichlet([dir_param, dir_param])
3064
3072
  else:
3065
3073
  dirichTD = [1/3, 1/3, 1/3]
3066
3074
  dirichCN = [1/2, 1/2]
@@ -3068,63 +3076,83 @@ def detectProbabilitiesMC(L, e_quenching, e_quenching2, t1, evenement, extDT, me
3068
3076
  efficiency0_S = 0; efficiency0_T = 0; efficiency0_D = 0
3069
3077
  efficiency0_AB = 0; efficiency0_BC = 0; efficiency0_AC = 0
3070
3078
  efficiency0_D2 = 0;
3079
+ n_e = np.zeros(3); n_eCN = np.zeros(2); n_e2 = np.zeros(3); n_e2CN = np.zeros(2)
3071
3080
 
3072
3081
  if symm:
3073
- n_ph = np.random.poisson(sum(np.asarray(e_quenching))*L)
3082
+ n_ph = np.random.poisson(sum(np.asarray(e_quenching))*L/mu)
3074
3083
  # TDCR
3075
3084
  n_phPMT = np.random.multinomial(n_ph, dirichTD)
3076
- if sum(n_phPMT>1)>0: efficiency0_S =1
3077
- if sum(n_phPMT>1)>1: efficiency0_D =1
3078
- if sum(n_phPMT>1)>2: efficiency0_T =1
3079
- if n_phPMT[0]>1 and n_phPMT[1]>1: efficiency0_AB =1
3080
- if n_phPMT[1]>1 and n_phPMT[2]>1: efficiency0_BC =1
3081
- if n_phPMT[0]>1 and n_phPMT[2]>1: efficiency0_AC =1
3085
+ n_e[0]=np.random.binomial(n_phPMT[0],mu)
3086
+ n_e[1]=np.random.binomial(n_phPMT[1],mu)
3087
+ n_e[2]=np.random.binomial(n_phPMT[2],mu)
3088
+ if sum(n_e>1)>0: efficiency0_S =1
3089
+ if sum(n_e>1)>1: efficiency0_D =1
3090
+ if sum(n_e>1)>2: efficiency0_T =1
3091
+ if n_e[0]>1 and n_e[1]>1: efficiency0_AB =1
3092
+ if n_e[1]>1 and n_e[2]>1: efficiency0_BC =1
3093
+ if n_e[0]>1 and n_e[2]>1: efficiency0_AC =1
3082
3094
  # C/N
3083
3095
  n_phPMT = np.random.multinomial(n_ph, dirichCN)
3084
- if sum(n_phPMT>1)>1: efficiency0_D2 =1
3096
+ n_eCN[0]=np.random.binomial(n_phPMT[0],mu)
3097
+ n_eCN[1]=np.random.binomial(n_phPMT[1],mu)
3098
+ if sum(n_e>1)>1: efficiency0_D2 =1
3085
3099
 
3086
3100
  if evenement !=1 and t1 > extDT*1e-6 and t1 < measTime*60:
3087
- n_ph2 = np.random.poisson(sum(np.asarray(e_quenching2))*L)
3101
+ n_ph2 = np.random.poisson(sum(np.asarray(e_quenching2))*L/mu)
3088
3102
  # TDCR
3089
3103
  n_phPMT2 = np.random.multinomial(n_ph2, dirichTD)
3090
- if sum(n_phPMT2>1)>0: efficiency0_S +=1
3091
- if sum(n_phPMT2>1)>1: efficiency0_D +=1
3092
- if sum(n_phPMT2>1)>2: efficiency0_T +=1
3093
- if n_phPMT2[0]>1 and n_phPMT2[1]>1: efficiency0_AB +=1
3094
- if n_phPMT2[1]>1 and n_phPMT2[2]>1: efficiency0_BC +=1
3095
- if n_phPMT2[0]>1 and n_phPMT2[2]>1: efficiency0_AC +=1
3104
+ n_e2[0]=np.random.binomial(n_phPMT2[0],mu)
3105
+ n_e2[1]=np.random.binomial(n_phPMT2[1],mu)
3106
+ n_e2[2]=np.random.binomial(n_phPMT2[2],mu)
3107
+ if sum(n_e2>1)>0: efficiency0_S +=1
3108
+ if sum(n_e2>1)>1: efficiency0_D +=1
3109
+ if sum(n_e2>1)>2: efficiency0_T +=1
3110
+ if n_e2[0]>1 and n_e2[1]>1: efficiency0_AB +=1
3111
+ if n_e2[1]>1 and n_e2[2]>1: efficiency0_BC +=1
3112
+ if n_e2[0]>1 and n_e2[2]>1: efficiency0_AC +=1
3096
3113
  # C/N
3097
3114
  n_phPMT2 = np.random.multinomial(n_ph2, dirichCN)
3098
- if sum(n_phPMT2>1)>1: efficiency0_D2 +=1
3115
+ n_e2CN[0]=np.random.binomial(n_phPMT2[0],mu)
3116
+ n_e2CN[1]=np.random.binomial(n_phPMT2[1],mu)
3117
+ if sum(n_e2CN>1)>1: efficiency0_D2 +=1
3099
3118
 
3100
3119
  else: # asym
3101
3120
  Lm = np.mean(L)
3102
- n_ph = np.random.poisson(sum(np.asarray((e_quenching))*Lm))
3121
+ n_ph = np.random.poisson(sum(np.asarray((e_quenching))*Lm/mu))
3103
3122
  # TDCR
3104
3123
  n_phPMT = np.random.multinomial(n_ph, [L[0]*dirichTD[0]/Lm, L[1]*dirichTD[1]/Lm, L[2]*dirichTD[2]/Lm])
3105
- if sum(n_phPMT>1)>0: efficiency0_S =1
3106
- if sum(n_phPMT>1)>1: efficiency0_D =1
3107
- if sum(n_phPMT>1)>2: efficiency0_T =1
3108
- if n_phPMT[0]>1 and n_phPMT[1]>1: efficiency0_AB =1
3109
- if n_phPMT[1]>1 and n_phPMT[2]>1: efficiency0_BC =1
3110
- if n_phPMT[0]>1 and n_phPMT[2]>1: efficiency0_AC =1
3124
+ n_e[0]=np.random.binomial(n_phPMT[0],mu)
3125
+ n_e[1]=np.random.binomial(n_phPMT[1],mu)
3126
+ n_e[2]=np.random.binomial(n_phPMT[2],mu)
3127
+ if sum(n_e>1)>0: efficiency0_S =1
3128
+ if sum(n_e>1)>1: efficiency0_D =1
3129
+ if sum(n_e>1)>2: efficiency0_T =1
3130
+ if n_e[0]>1 and n_e[1]>1: efficiency0_AB =1
3131
+ if n_e[1]>1 and n_e[2]>1: efficiency0_BC =1
3132
+ if n_e[0]>1 and n_e[2]>1: efficiency0_AC =1
3111
3133
  # C/N
3112
3134
  n_phPMT = np.random.multinomial(n_ph, [L[0]/(2*Lm), L[1]/(2*Lm)])
3113
- if sum(n_phPMT>1)>1: efficiency0_D2 =1
3135
+ n_eCN[0]=np.random.binomial(n_phPMT[0],mu)
3136
+ n_eCN[1]=np.random.binomial(n_phPMT[1],mu)
3137
+ if sum(n_eCN>1)>1: efficiency0_D2 =1
3114
3138
 
3115
3139
  if evenement !=1 and t1 > extDT*1e-6 and t1 < measTime*60:
3116
- n_ph2 = np.random.poisson(sum(np.asarray(e_quenching2))*Lm)
3140
+ n_ph2 = np.random.poisson(sum(np.asarray(e_quenching2))*Lm/mu)
3117
3141
  # TDCR
3118
3142
  n_phPMT2 = np.random.multinomial(n_ph2, [L[0]*dirichCN[0]/Lm, L[1]*dirichCN[1]/Lm, L[2]*dirichCN[2]/Lm])
3119
- if sum(n_phPMT2>1)>0: efficiency0_S +=1
3120
- if sum(n_phPMT2>1)>1: efficiency0_D +=1
3121
- if sum(n_phPMT2>1)>2: efficiency0_T +=1
3122
- if n_phPMT2[0]>1 and n_phPMT2[1]>1: efficiency0_AB +=1
3123
- if n_phPMT2[1]>1 and n_phPMT2[2]>1: efficiency0_BC +=1
3124
- if n_phPMT2[0]>1 and n_phPMT2[2]>1: efficiency0_AC +=1
3143
+ n_e2[0]=np.random.binomial(n_phPMT2[0],mu)
3144
+ n_e2[1]=np.random.binomial(n_phPMT2[1],mu)
3145
+ n_e2[2]=np.random.binomial(n_phPMT2[2],mu)
3146
+ if sum(n_e2>1)>0: efficiency0_S +=1
3147
+ if sum(n_e2>1)>1: efficiency0_D +=1
3148
+ if sum(n_e2>1)>2: efficiency0_T +=1
3149
+ if n_e2[0]>1 and n_e2[1]>1: efficiency0_AB +=1
3150
+ if n_e2[1]>1 and n_e2[2]>1: efficiency0_BC +=1
3151
+ if n_e2[0]>1 and n_e2[2]>1: efficiency0_AC +=1
3125
3152
  # C/N
3126
- n_phPMT2 = np.random.multinomial(n_ph2, [L[0]/(2*Lm), L[1]/(2*Lm)])
3127
- if sum(n_phPMT2>1)>1: efficiency0_D2 +=1
3153
+ n_e2CN[0]=np.random.binomial(n_phPMT2[0],mu)
3154
+ n_e2CN[1]=np.random.binomial(n_phPMT2[1],mu)
3155
+ if sum(n_e2CN>1)>1: efficiency0_D2 +=1
3128
3156
 
3129
3157
  return efficiency0_S, efficiency0_D, efficiency0_T, efficiency0_AB, efficiency0_BC, efficiency0_AC, efficiency0_D2
3130
3158
 
@@ -34,6 +34,8 @@ fAq = 0.1
34
34
  ## OPTICAL PROPERTIES
35
35
  # Dirichlet parameter
36
36
  alphaDir = 100000
37
+ # Quantum efficiency
38
+ effQuantum = 0.25
37
39
 
38
40
  ## PROPERTIES OF THE COUNTER
39
41
  # Coincidence resolving time (ns)
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes