TDCRPy 2.9.0__tar.gz → 2.11.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.9.0/TDCRPy.egg-info → tdcrpy-2.11.0}/PKG-INFO +1 -1
  2. {tdcrpy-2.9.0 → tdcrpy-2.11.0/TDCRPy.egg-info}/PKG-INFO +1 -1
  3. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/setup.py +1 -1
  4. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/tdcrpy/TDCR_model_lib.py +81 -120
  5. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/tdcrpy/config.toml +1 -1
  6. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/LICENCE.md +0 -0
  7. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/MANIFEST.in +0 -0
  8. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/README.md +0 -0
  9. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/TDCRPy.egg-info/SOURCES.txt +0 -0
  10. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/TDCRPy.egg-info/dependency_links.txt +0 -0
  11. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/TDCRPy.egg-info/requires.txt +0 -0
  12. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/TDCRPy.egg-info/top_level.txt +0 -0
  13. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/setup.cfg +0 -0
  14. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/tdcrpy/MCNP-MATRIX/Spectra_for_analytical_model/dep_spectrum_C-14.txt +0 -0
  15. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/tdcrpy/MCNP-MATRIX/Spectra_for_analytical_model/dep_spectrum_Ca-45.txt +0 -0
  16. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/tdcrpy/MCNP-MATRIX/Spectra_for_analytical_model/dep_spectrum_Co-60.txt +0 -0
  17. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/tdcrpy/MCNP-MATRIX/Spectra_for_analytical_model/dep_spectrum_H-3.txt +0 -0
  18. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/tdcrpy/MCNP-MATRIX/Spectra_for_analytical_model/dep_spectrum_Ni-63.txt +0 -0
  19. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/tdcrpy/MCNP-MATRIX/Spectra_for_analytical_model/dep_spectrum_Pm-147.txt +0 -0
  20. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/tdcrpy/MCNP-MATRIX/Spectra_for_analytical_model/dep_spectrum_Pu-241.txt +0 -0
  21. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/tdcrpy/MCNP-MATRIX/Spectra_for_analytical_model/dep_spectrum_S-35.txt +0 -0
  22. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/tdcrpy/MCNP-MATRIX/Spectra_for_analytical_model/dep_spectrum_Sr-89.txt +0 -0
  23. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/tdcrpy/MCNP-MATRIX/Spectra_for_analytical_model/dep_spectrum_Sr-90.txt +0 -0
  24. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/tdcrpy/MCNP-MATRIX/Spectra_for_analytical_model/dep_spectrum_Tc-99.txt +0 -0
  25. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/tdcrpy/MCNP-MATRIX/matrice/fichier/E_depose.txt +0 -0
  26. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/tdcrpy/MCNP-MATRIX/matrice/fichier/matrice_10ml-beta-_1_200k.txt +0 -0
  27. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/tdcrpy/MCNP-MATRIX/matrice/fichier/matrice_10ml-beta-_2000_10000k.txt +0 -0
  28. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/tdcrpy/MCNP-MATRIX/matrice/fichier/matrice_10ml-beta-_200_2000k.txt +0 -0
  29. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/tdcrpy/MCNP-MATRIX/matrice/fichier/matrice_10ml-photon_1_200k.txt +0 -0
  30. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/tdcrpy/MCNP-MATRIX/matrice/fichier/matrice_10ml-photon_2000_10000k.txt +0 -0
  31. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/tdcrpy/MCNP-MATRIX/matrice/fichier/matrice_10ml-photon_200_2000k.txt +0 -0
  32. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/tdcrpy/MCNP-MATRIX/matrice/fichier/matrice_13ml-beta-_1_200k.txt +0 -0
  33. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/tdcrpy/MCNP-MATRIX/matrice/fichier/matrice_13ml-beta-_2000_10000k.txt +0 -0
  34. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/tdcrpy/MCNP-MATRIX/matrice/fichier/matrice_13ml-beta-_200_2000k.txt +0 -0
  35. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/tdcrpy/MCNP-MATRIX/matrice/fichier/matrice_13ml-photon_1_200k.txt +0 -0
  36. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/tdcrpy/MCNP-MATRIX/matrice/fichier/matrice_13ml-photon_2000_10000k.txt +0 -0
  37. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/tdcrpy/MCNP-MATRIX/matrice/fichier/matrice_13ml-photon_200_2000k.txt +0 -0
  38. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/tdcrpy/MCNP-MATRIX/matrice/fichier/matrice_16ml-beta-_1_200k.txt +0 -0
  39. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/tdcrpy/MCNP-MATRIX/matrice/fichier/matrice_16ml-beta-_2000_10000k.txt +0 -0
  40. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/tdcrpy/MCNP-MATRIX/matrice/fichier/matrice_16ml-beta-_200_2000k.txt +0 -0
  41. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/tdcrpy/MCNP-MATRIX/matrice/fichier/matrice_16ml-photon_1_200k.txt +0 -0
  42. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/tdcrpy/MCNP-MATRIX/matrice/fichier/matrice_16ml-photon_2000_10000k.txt +0 -0
  43. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/tdcrpy/MCNP-MATRIX/matrice/fichier/matrice_16ml-photon_200_2000k.txt +0 -0
  44. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/tdcrpy/Micelle/2nmfaq01.csv +0 -0
  45. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/tdcrpy/Micelle/faq01.csv +0 -0
  46. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/tdcrpy/Quenching/QuenchEnergyAlpha_0.015.txt +0 -0
  47. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/tdcrpy/Quenching/QuenchEnergyAlpha_1.1e-05.txt +0 -0
  48. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/tdcrpy/Quenching/QuenchEnergyAlpha_1.2e-05.txt +0 -0
  49. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/tdcrpy/Quenching/QuenchEnergyAlpha_1.3e-05.txt +0 -0
  50. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/tdcrpy/Quenching/QuenchEnergyAlpha_1.4e-05.txt +0 -0
  51. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/tdcrpy/Quenching/QuenchEnergyAlpha_1.5e-05.txt +0 -0
  52. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/tdcrpy/Quenching/QuenchEnergyAlpha_1e-05.txt +0 -0
  53. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/tdcrpy/Quenching/QuenchEnergyAlpha_6e-06.txt +0 -0
  54. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/tdcrpy/Quenching/QuenchEnergyAlpha_7e-06.txt +0 -0
  55. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/tdcrpy/Quenching/QuenchEnergyAlpha_8e-06.txt +0 -0
  56. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/tdcrpy/Quenching/QuenchEnergyAlpha_9e-06.txt +0 -0
  57. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/tdcrpy/Quenching/QuenchEnergyElectron_0.006.txt +0 -0
  58. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/tdcrpy/Quenching/QuenchEnergyElectron_0.007.txt +0 -0
  59. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/tdcrpy/Quenching/QuenchEnergyElectron_0.008.txt +0 -0
  60. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/tdcrpy/Quenching/QuenchEnergyElectron_0.009.txt +0 -0
  61. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/tdcrpy/Quenching/QuenchEnergyElectron_0.01.txt +0 -0
  62. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/tdcrpy/Quenching/QuenchEnergyElectron_0.011.txt +0 -0
  63. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/tdcrpy/Quenching/QuenchEnergyElectron_0.012.txt +0 -0
  64. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/tdcrpy/Quenching/QuenchEnergyElectron_0.013.txt +0 -0
  65. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/tdcrpy/Quenching/QuenchEnergyElectron_0.014.txt +0 -0
  66. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/tdcrpy/Quenching/QuenchEnergyElectron_0.015.txt +0 -0
  67. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/tdcrpy/Quenching/TandataUG.txt +0 -0
  68. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/tdcrpy/Quenching/alpha_toulene.txt +0 -0
  69. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/tdcrpy/Quenching/inputVecteurAlpha.txt +0 -0
  70. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/tdcrpy/Quenching/inputVecteurElectron.txt +0 -0
  71. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/tdcrpy/TDCRPy.py +0 -0
  72. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/tdcrpy/TDCRPy1.py +0 -0
  73. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/tdcrpy/TDCRoptimize.py +0 -0
  74. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/tdcrpy/__init__.py +0 -0
  75. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/tdcrpy/decayData/All-nuclides_BetaShape.zip +0 -0
  76. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/tdcrpy/decayData/All-nuclides_Ensdf.zip +0 -0
  77. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/tdcrpy/decayData/All-nuclides_PenNuc.zip +0 -0
  78. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/tdcrpy/decayData/atom-ENDF-VII0.zip +0 -0
  79. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/tdcrpy/decayData/photo-ENDF.zip +0 -0
  80. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/tdcrpy/docs/_build/html/genindex.html +0 -0
  81. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/tdcrpy/docs/_build/html/index.html +0 -0
  82. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/tdcrpy/docs/_build/html/search.html +0 -0
  83. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/tdcrpy/docs/_build/html/source/modules.html +0 -0
  84. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/tdcrpy/docs/_build/html/source/tdcrpy.html +0 -0
  85. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/tdcrpy/test/__init__.py +0 -0
  86. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/tdcrpy/test/test_tdcrpy.py +0 -0
  87. {tdcrpy-2.9.0 → tdcrpy-2.11.0}/tdcrpy/test2.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: TDCRPy
3
- Version: 2.9.0
3
+ Version: 2.11.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.9.0
3
+ Version: 2.11.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.9.0"
5
+ VERSION = "2.11.0"
6
6
 
7
7
  DESCRIPTION = "TDCR model"
8
8
 
@@ -61,7 +61,11 @@ 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
+ effQuantic = config["Inputs"].get("effQuantum")
65
+ effQuantic = effQuantic.split(',')
66
+ for i, iS in enumerate(effQuantic):
67
+ iS=iS.replace(" ","")
68
+ if iS != 'None': effQuantic[i]=float(iS)
65
69
  optionModel = config["Inputs"].get("optionModel")
66
70
 
67
71
  if disp:
@@ -3067,11 +3071,6 @@ def detectProbabilitiesMC(L, e_quenching, e_quenching2, t1, evenement, extDT, me
3067
3071
  detection probability of coincidences in a C/N system.
3068
3072
 
3069
3073
  """
3070
- if isinstance(L, (tuple, list)):
3071
- symm = False
3072
- else:
3073
- symm = True
3074
-
3075
3074
  mu = effQuantic
3076
3075
 
3077
3076
  if dir_param < 1000:
@@ -3081,129 +3080,91 @@ def detectProbabilitiesMC(L, e_quenching, e_quenching2, t1, evenement, extDT, me
3081
3080
  dirichTD = [1/3, 1/3, 1/3]
3082
3081
  dirichCN = [1/2, 1/2]
3083
3082
 
3083
+ if type(L) == float:
3084
+ L = [L, L, L]
3085
+
3086
+ def PMBmodel(e_q, dirichTD, dirichCN, L, mu):
3087
+ n_e=np.zeros(3); n_eCN=np.zeros(2)
3088
+ n_ph = np.random.poisson(sum(np.asarray(e_q))*np.mean(L)/np.mean(mu))
3089
+ # TDCR
3090
+ n_phPMT = np.random.multinomial(n_ph, dirichTD)
3091
+ n_e[0]=np.random.binomial(n_phPMT[0],mu[0])
3092
+ n_e[1]=np.random.binomial(n_phPMT[1],mu[0])
3093
+ n_e[2]=np.random.binomial(n_phPMT[2],mu[0])
3094
+ # C/N
3095
+ n_phPMTCN = np.random.multinomial(n_ph, dirichCN)
3096
+ n_eCN[0]=np.random.binomial(n_phPMTCN[0],mu[0])
3097
+ n_eCN[1]=np.random.binomial(n_phPMTCN[1],mu[0])
3098
+ return n_e, n_eCN
3099
+
3100
+ def Pmodel(e_q, dirichTD, dirichCN, L, mu):
3101
+ n_e=np.zeros(3); n_eCN=np.zeros(2)
3102
+ n_e[0] = np.random.poisson(sum(np.asarray(e_q))*L[0]*mu[0]*dirichTD[0])
3103
+ n_e[1] = np.random.poisson(sum(np.asarray(e_q))*L[1]*mu[1]*dirichTD[1])
3104
+ n_e[2] = np.random.poisson(sum(np.asarray(e_q))*L[2]*mu[2]*dirichTD[2])
3105
+ n_eCN[0] = np.random.poisson(sum(np.asarray(e_q))*L[0]*mu[0]*dirichCN[0])
3106
+ n_eCN[1] = np.random.poisson(sum(np.asarray(e_q))*L[1]*mu[1]*dirichCN[1])
3107
+ return n_e, n_eCN
3108
+
3109
+ def EPmodel(e_q, dirichTD, dirichCN, L, mu):
3110
+ n_e=np.zeros(3); n_eCN=np.zeros(2)
3111
+ n_e[0] = sum(np.asarray(e_q))*L[0]*mu[0]*dirichTD[0]
3112
+ n_e[1] = sum(np.asarray(e_q))*L[1]*mu[1]*dirichTD[1]
3113
+ n_e[2] = sum(np.asarray(e_q))*L[2]*mu[2]*dirichTD[2]
3114
+ n_eCN[0] = sum(np.asarray(e_q))*L[0]*mu[0]*dirichCN[0]
3115
+ n_eCN[1] = sum(np.asarray(e_q))*L[1]*mu[1]*dirichCN[1]
3116
+ return n_e, n_eCN
3117
+
3118
+ # def Amodel(e_q, dirichTD, dirichCN, L, mu):
3119
+ # n_e=np.zeros(3); n_eCN=np.zeros(2)
3120
+ # n_e[0] = 1-np.exp(-L[0]*np.sum(np.asarray(e_q))*dirichTD[0])
3121
+ # n_e[1] = 1-np.exp(-L[0]*np.sum(np.asarray(e_q))*dirichTD[0])
3122
+ # n_e[2] = 1-np.exp(-L[0]*np.sum(np.asarray(e_q))*dirichTD[0])
3123
+ # n_eCN[0] = 1-np.exp(-L[0]*np.sum(np.asarray(e_q))*dirichTD[0])
3124
+ # n_eCN[1] = 1-np.exp(-L[0]*np.sum(np.asarray(e_q))*dirichTD[0])
3125
+ # return n_e, n_eCN
3126
+
3127
+
3084
3128
  efficiency0_S = 0; efficiency0_T = 0; efficiency0_D = 0
3085
3129
  efficiency0_AB = 0; efficiency0_BC = 0; efficiency0_AC = 0
3086
3130
  efficiency0_D2 = 0;
3087
- n_e = np.zeros(3); n_eCN = np.zeros(2); n_e2 = np.zeros(3); n_e2CN = np.zeros(2)
3088
-
3089
- if symm:
3090
- if optionModel == "poisson-multinomial-binomial":
3091
- n_ph = np.random.poisson(sum(np.asarray(e_quenching))*L/mu)
3092
- # TDCR
3093
- n_phPMT = np.random.multinomial(n_ph, dirichTD)
3094
- n_e[0]=np.random.binomial(n_phPMT[0],mu)
3095
- n_e[1]=np.random.binomial(n_phPMT[1],mu)
3096
- n_e[2]=np.random.binomial(n_phPMT[2],mu)
3097
- # C/N
3098
- n_phPMTCN = np.random.multinomial(n_ph, dirichCN)
3099
- n_eCN[0]=np.random.binomial(n_phPMTCN[0],mu)
3100
- n_eCN[1]=np.random.binomial(n_phPMTCN[1],mu)
3101
- elif optionModel == "poisson":
3102
- n_e[0] = np.random.poisson(sum(np.asarray(e_quenching))*L*mu*dirichTD[0])
3103
- n_e[1] = np.random.poisson(sum(np.asarray(e_quenching))*L*mu*dirichTD[1])
3104
- n_e[2] = np.random.poisson(sum(np.asarray(e_quenching))*L*mu*dirichTD[2])
3105
- n_eCN[0] = np.random.poisson(sum(np.asarray(e_quenching))*L*mu*dirichCN[0])
3106
- n_eCN[1] = np.random.poisson(sum(np.asarray(e_quenching))*L*mu*dirichCN[1])
3107
- else:
3108
- print("unknown model")
3109
-
3110
- if sum(n_e>1)>0: efficiency0_S =1
3111
- if sum(n_e>1)>1: efficiency0_D =1
3112
- if sum(n_e>1)>2: efficiency0_T =1
3113
- if n_e[0]>1 and n_e[1]>1: efficiency0_AB =1
3114
- if n_e[1]>1 and n_e[2]>1: efficiency0_BC =1
3115
- if n_e[0]>1 and n_e[2]>1: efficiency0_AC =1
3116
- if sum(n_eCN>1)>1: efficiency0_D2 =1
3117
-
3118
- if evenement !=1 and t1 > extDT*1e-6 and t1 < measTime*60:
3119
- if optionModel == "poisson-multinomial-binomial":
3120
- n_ph2 = np.random.poisson(sum(np.asarray(e_quenching2))*L/mu)
3121
- # TDCR
3122
- n_phPMT2 = np.random.multinomial(n_ph2, dirichTD)
3123
- n_e2[0]=np.random.binomial(n_phPMT2[0],mu)
3124
- n_e2[1]=np.random.binomial(n_phPMT2[1],mu)
3125
- n_e2[2]=np.random.binomial(n_phPMT2[2],mu)
3126
- # C/N
3127
- n_phPMT2CN = np.random.multinomial(n_ph2, dirichCN)
3128
- n_e2CN[0]=np.random.binomial(n_phPMT2CN[0],mu)
3129
- n_e2CN[1]=np.random.binomial(n_phPMT2CN[1],mu)
3130
- elif optionModel == "poisson":
3131
- n_e2[0] = np.random.poisson(sum(np.asarray(e_quenching2))*L*mu*dirichTD[0])
3132
- n_e2[1] = np.random.poisson(sum(np.asarray(e_quenching2))*L*mu*dirichTD[1])
3133
- n_e2[2] = np.random.poisson(sum(np.asarray(e_quenching2))*L*mu*dirichTD[2])
3134
- n_e2CN[0] = np.random.poisson(sum(np.asarray(e_quenching2))*L*mu*dirichCN[0])
3135
- n_e2CN[1] = np.random.poisson(sum(np.asarray(e_quenching2))*L*mu*dirichCN[1])
3136
- else:
3137
- print("unknown model")
3138
-
3139
-
3140
- if sum(n_e2>1)>0: efficiency0_S +=1
3141
- if sum(n_e2>1)>1: efficiency0_D +=1
3142
- if sum(n_e2>1)>2: efficiency0_T +=1
3143
- if n_e2[0]>1 and n_e2[1]>1: efficiency0_AB +=1
3144
- if n_e2[1]>1 and n_e2[2]>1: efficiency0_BC +=1
3145
- if n_e2[0]>1 and n_e2[2]>1: efficiency0_AC +=1
3146
- if sum(n_e2CN>1)>1: efficiency0_D2 +=1
3131
+ # n_e = np.zeros(3); n_eCN = np.zeros(2); n_e2 = np.zeros(3); n_e2CN = np.zeros(2)
3132
+
3133
+ if optionModel == "poisson-multinomial-binomial":
3134
+ n_e, n_eCN = PMBmodel(e_quenching, dirichTD, dirichCN, L, mu)
3135
+ elif optionModel == "poisson":
3136
+ n_e, n_eCN = Pmodel(e_quenching, dirichTD, dirichCN, L, mu)
3137
+ elif optionModel == "expectation":
3138
+ n_e, n_eCN = EPmodel(e_quenching, dirichTD, dirichCN, L, mu)
3139
+ else:
3140
+ print("unknown model")
3147
3141
 
3148
- else: # asym
3142
+ if sum(n_e>0)>0: efficiency0_S =1
3143
+ if sum(n_e>0)>1: efficiency0_D =1
3144
+ if sum(n_e>0)>2: efficiency0_T =1
3145
+ if n_e[0]>0 and n_e[1]>0: efficiency0_AB =1
3146
+ if n_e[1]>0 and n_e[2]>0: efficiency0_BC =1
3147
+ if n_e[0]>0 and n_e[2]>0: efficiency0_AC =1
3148
+ if sum(n_eCN>1)>1: efficiency0_D2 =1
3149
+
3150
+ if evenement !=1 and t1 > extDT*1e-6 and t1 < measTime*60:
3149
3151
  if optionModel == "poisson-multinomial-binomial":
3150
- Lm = np.mean(L)
3151
- n_ph = np.random.poisson(sum(np.asarray((e_quenching))*Lm/mu))
3152
- # TDCR
3153
- n_phPMT = np.random.multinomial(n_ph, [L[0]*dirichTD[0]/Lm, L[1]*dirichTD[1]/Lm, L[2]*dirichTD[2]/Lm])
3154
- n_e[0]=np.random.binomial(n_phPMT[0],mu)
3155
- n_e[1]=np.random.binomial(n_phPMT[1],mu)
3156
- n_e[2]=np.random.binomial(n_phPMT[2],mu)
3157
- # C/N
3158
- n_phPMTCN = np.random.multinomial(n_ph, [L[0]/(2*Lm), L[1]/(2*Lm)])
3159
- n_eCN[0]=np.random.binomial(n_phPMTCN[0],mu)
3160
- n_eCN[1]=np.random.binomial(n_phPMTCN[1],mu)
3152
+ n_e2, n_e2CN = PMBmodel(e_quenching2, dirichTD, dirichCN, L, mu)
3161
3153
  elif optionModel == "poisson":
3162
- n_e[0] = np.random.poisson(sum(np.asarray(e_quenching))*L[0]*mu*dirichTD[0])
3163
- n_e[1] = np.random.poisson(sum(np.asarray(e_quenching))*L[1]*mu*dirichTD[1])
3164
- n_e[2] = np.random.poisson(sum(np.asarray(e_quenching))*L[2]*mu*dirichTD[2])
3165
- n_eCN[0] = np.random.poisson(sum(np.asarray(e_quenching))*L[0]*mu*dirichCN[0])
3166
- n_eCN[1] = np.random.poisson(sum(np.asarray(e_quenching))*L[1]*mu*dirichCN[1])
3154
+ n_e2, n_e2CN = Pmodel(e_quenching2, dirichTD, dirichCN, L, mu)
3155
+ elif optionModel == "expectation":
3156
+ n_e2, n_e2CN = EPmodel(e_quenching2, dirichTD, dirichCN, L, mu)
3167
3157
  else:
3168
3158
  print("unknown model")
3169
-
3170
- if sum(n_e>1)>0: efficiency0_S =1
3171
- if sum(n_e>1)>1: efficiency0_D =1
3172
- if sum(n_e>1)>2: efficiency0_T =1
3173
- if n_e[0]>1 and n_e[1]>1: efficiency0_AB =1
3174
- if n_e[1]>1 and n_e[2]>1: efficiency0_BC =1
3175
- if n_e[0]>1 and n_e[2]>1: efficiency0_AC =1
3176
- if sum(n_eCN>1)>1: efficiency0_D2 =1
3177
-
3178
- if evenement !=1 and t1 > extDT*1e-6 and t1 < measTime*60:
3179
- if optionModel == "poisson-multinomial-binomial":
3180
- n_ph2 = np.random.poisson(sum(np.asarray(e_quenching2))*Lm/mu)
3181
- # TDCR
3182
- n_phPMT2 = np.random.multinomial(n_ph2, [L[0]*dirichCN[0]/Lm, L[1]*dirichCN[1]/Lm, L[2]*dirichCN[2]/Lm])
3183
- n_e2[0]=np.random.binomial(n_phPMT2[0],mu)
3184
- n_e2[1]=np.random.binomial(n_phPMT2[1],mu)
3185
- n_e2[2]=np.random.binomial(n_phPMT2[2],mu)
3186
- # C/N
3187
- n_phPMT2CN = np.random.multinomial(n_ph2, [L[0]/(2*Lm), L[1]/(2*Lm)])
3188
- n_e2CN[0]=np.random.binomial(n_phPMT2CN[0],mu)
3189
- n_e2CN[1]=np.random.binomial(n_phPMT2CN[1],mu)
3190
- elif optionModel == "poisson":
3191
- n_e2[0] = np.random.poisson(sum(np.asarray(e_quenching2))*L[0]*mu*dirichTD[0])
3192
- n_e2[1] = np.random.poisson(sum(np.asarray(e_quenching2))*L[1]*mu*dirichTD[1])
3193
- n_e2[2] = np.random.poisson(sum(np.asarray(e_quenching2))*L[2]*mu*dirichTD[2])
3194
- n_e2CN[0] = np.random.poisson(sum(np.asarray(e_quenching2))*L[0]*mu*dirichCN[0])
3195
- n_e2CN[1] = np.random.poisson(sum(np.asarray(e_quenching2))*L[1]*mu*dirichCN[1])
3196
- else:
3197
- print("unknown model")
3198
-
3199
- if sum(n_e2>1)>0: efficiency0_S +=1
3200
- if sum(n_e2>1)>1: efficiency0_D +=1
3201
- if sum(n_e2>1)>2: efficiency0_T +=1
3202
- if n_e2[0]>1 and n_e2[1]>1: efficiency0_AB +=1
3203
- if n_e2[1]>1 and n_e2[2]>1: efficiency0_BC +=1
3204
- if n_e2[0]>1 and n_e2[2]>1: efficiency0_AC +=1
3205
- if sum(n_e2CN>1)>1: efficiency0_D2 +=1
3206
3159
 
3160
+ if sum(n_e2>0)>0: efficiency0_S +=1
3161
+ if sum(n_e2>0)>1: efficiency0_D +=1
3162
+ if sum(n_e2>0)>2: efficiency0_T +=1
3163
+ if n_e2[0]>0 and n_e2[1]>0: efficiency0_AB +=1
3164
+ if n_e2[1]>0 and n_e2[2]>0: efficiency0_BC +=1
3165
+ if n_e2[0]>0 and n_e2[2]>0: efficiency0_AC +=1
3166
+ if sum(n_e2CN>1)>1: efficiency0_D2 +=1
3167
+
3207
3168
  return efficiency0_S, efficiency0_D, efficiency0_T, efficiency0_AB, efficiency0_BC, efficiency0_AC, efficiency0_D2
3208
3169
 
3209
3170
 
@@ -35,7 +35,7 @@ fAq = 0.1
35
35
  # Dirichlet parameter
36
36
  alphaDir = 100000
37
37
  # Quantum efficiency
38
- effQuantum = 0.25
38
+ effQuantum = 0.25, 0.25, 0.25
39
39
  # Optical MC model
40
40
  optionModel = poisson-multinomial-binomial
41
41
 
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