flamedisx.lxe_blocks package
Submodules
flamedisx.lxe_blocks.detection module
- class flamedisx.lxe_blocks.detection.DetectElectrons(source)[source]
Bases:
flamedisx.lxe_blocks.detection.DetectPhotonsOrElectrons
- _compute(data_tensor, ptensor, electrons_produced, electrons_detected)[source]
Return (n_batch_events, …dimensions…) tensor
- dimensions: Tuple[str] = ('electrons_produced', 'electrons_detected')
Names of dimensions of the block’s compute result
- electron_acceptance = 1.0
- extra_dimensions: Tuple[Tuple[str, bool]] = ()
Additional dimensions used in the block computation. Label True if they represent an internally contracted hidden variable; these will be added to inner_dimensions so domain tensors are calculated automatically. Label False otherwise; these will be added to bonus_dimensions. Thus, any additional domain tensors utilising them will need calculating via the block overriding _domain_dict_bonus())
- model_functions: Tuple[str] = ('electron_detection_eff', 'electron_acceptance')
Names of model functions defined in this block
- quanta_name: str = 'electron'
- special_model_functions: Tuple[str] = ('electron_acceptance',)
Names of model functions that take an additional first argument (‘bonus arg’) defined in this block; must be a subset of model_functions
- class flamedisx.lxe_blocks.detection.DetectPhotons(source)[source]
Bases:
flamedisx.lxe_blocks.detection.DetectPhotonsOrElectrons
- _compute(data_tensor, ptensor, photons_produced, photons_detected)[source]
Return (n_batch_events, …dimensions…) tensor
- dimensions: Tuple[str] = ('photons_produced', 'photons_detected')
Names of dimensions of the block’s compute result
- extra_dimensions: Tuple[Tuple[str, bool]] = ()
Additional dimensions used in the block computation. Label True if they represent an internally contracted hidden variable; these will be added to inner_dimensions so domain tensors are calculated automatically. Label False otherwise; these will be added to bonus_dimensions. Thus, any additional domain tensors utilising them will need calculating via the block overriding _domain_dict_bonus())
- model_functions: Tuple[str] = ('photon_detection_eff', 'photon_acceptance', 'penning_quenching_eff')
Names of model functions defined in this block
- photon_detection_eff = 0.1
- quanta_name: str = 'photon'
- special_model_functions: Tuple[str] = ('photon_acceptance', 'penning_quenching_eff')
Names of model functions that take an additional first argument (‘bonus arg’) defined in this block; must be a subset of model_functions
flamedisx.lxe_blocks.double_pe module
- class flamedisx.lxe_blocks.double_pe.MakeS1Photoelectrons(source)[source]
Bases:
flamedisx.block_source.Block
- _compute(data_tensor, ptensor, photons_detected, photoelectrons_detected)[source]
Return (n_batch_events, …dimensions…) tensor
- _simulate(d)[source]
Simulate extra columns in place.
Use the p_accepted column to modify acceptances; do not remove events here.
- dimensions: Tuple[str] = ('photons_detected', 'photoelectrons_detected')
Names of dimensions of the block’s compute result
- double_pe_fraction = 0.219
- extra_dimensions: Tuple[Tuple[str, bool]] = ()
Additional dimensions used in the block computation. Label True if they represent an internally contracted hidden variable; these will be added to inner_dimensions so domain tensors are calculated automatically. Label False otherwise; these will be added to bonus_dimensions. Thus, any additional domain tensors utilising them will need calculating via the block overriding _domain_dict_bonus())
- model_functions: Tuple[str] = ('double_pe_fraction',)
Names of model functions defined in this block
flamedisx.lxe_blocks.energy_spectrum module
- class flamedisx.lxe_blocks.energy_spectrum.EnergySpectrum(source)[source]
Bases:
flamedisx.block_source.FirstBlock
- dimensions: Tuple[str] = ('energy',)
Names of dimensions of the block’s compute result
- draw_positions(n_events, **params)[source]
Return dictionary with x, y, z, r, theta, drift_time randomly drawn.
- draw_time(n_events, **params)[source]
Return n_events event_times drawn uniformaly between t_start and t_stop
- drift_velocity = 0.0001335
Electron drift velocity in cm/ns
- energies = <tf.Tensor: shape=(1000,), dtype=float32, numpy= array([ 0. , 0.01001001, 0.02002002, 0.03003003, 0.04004004, 0.05005005, 0.06006006, 0.07007007, 0.08008008, 0.09009009, 0.1001001 , 0.1101101 , 0.12012012, 0.13013013, 0.14014013, 0.15015015, 0.16016015, 0.17017016, 0.18018018, 0.19019018, 0.2002002 , 0.2102102 , 0.22022021, 0.23023023, 0.24024023, 0.25025025, 0.26026025, 0.27027026, 0.28028026, 0.29029027, 0.3003003 , 0.3103103 , 0.3203203 , 0.3303303 , 0.34034032, 0.35035035, 0.36036035, 0.37037036, 0.38038036, 0.39039037, 0.4004004 , 0.4104104 , 0.4204204 , 0.4304304 , 0.44044042, 0.45045042, 0.46046045, 0.47047046, 0.48048046, 0.49049047, 0.5005005 , 0.5105105 , 0.5205205 , 0.5305305 , 0.5405405 , 0.5505505 , 0.5605605 , 0.5705705 , 0.58058053, 0.5905906 , 0.6006006 , 0.6106106 , 0.6206206 , 0.6306306 , 0.6406406 , 0.6506506 , 0.6606606 , 0.6706706 , 0.68068063, 0.69069064, 0.7007007 , 0.7107107 , 0.7207207 , 0.7307307 , 0.7407407 , 0.7507507 , 0.7607607 , 0.7707707 , 0.78078073, 0.79079074, 0.8008008 , 0.8108108 , 0.8208208 , 0.8308308 , 0.8408408 , 0.8508508 , 0.8608608 , 0.8708708 , 0.88088083, 0.89089084, 0.90090084, 0.9109109 , 0.9209209 , 0.9309309 , 0.9409409 , 0.9509509 , 0.9609609 , 0.9709709 , 0.98098093, 0.99099094, 1.001001 , 1.011011 , 1.021021 , 1.031031 , 1.041041 , 1.051051 , 1.061061 , 1.071071 , 1.081081 , 1.091091 , 1.101101 , 1.111111 , 1.121121 , 1.131131 , 1.141141 , 1.1511511 , 1.1611611 , 1.1711711 , 1.1811812 , 1.1911912 , 1.2012012 , 1.2112112 , 1.2212212 , 1.2312312 , 1.2412412 , 1.2512512 , 1.2612612 , 1.2712712 , 1.2812812 , 1.2912912 , 1.3013012 , 1.3113112 , 1.3213212 , 1.3313313 , 1.3413413 , 1.3513513 , 1.3613613 , 1.3713713 , 1.3813813 , 1.3913914 , 1.4014014 , 1.4114114 , 1.4214214 , 1.4314314 , 1.4414414 , 1.4514514 , 1.4614614 , 1.4714714 , 1.4814814 , 1.4914914 , 1.5015014 , 1.5115114 , 1.5215214 , 1.5315315 , 1.5415415 , 1.5515515 , 1.5615615 , 1.5715715 , 1.5815815 , 1.5915915 , 1.6016016 , 1.6116116 , 1.6216216 , 1.6316316 , 1.6416416 , 1.6516516 , 1.6616616 , 1.6716716 , 1.6816816 , 1.6916916 , 1.7017016 , 1.7117116 , 1.7217216 , 1.7317317 , 1.7417417 , 1.7517517 , 1.7617617 , 1.7717717 , 1.7817817 , 1.7917917 , 1.8018017 , 1.8118117 , 1.8218218 , 1.8318318 , 1.8418418 , 1.8518518 , 1.8618618 , 1.8718718 , 1.8818818 , 1.8918918 , 1.9019018 , 1.9119118 , 1.9219218 , 1.9319319 , 1.9419419 , 1.9519519 , 1.9619619 , 1.9719719 , 1.9819819 , 1.9919919 , 2.002002 , 2.012012 , 2.022022 , 2.032032 , 2.042042 , 2.052052 , 2.062062 , 2.072072 , 2.082082 , 2.092092 , 2.102102 , 2.112112 , 2.122122 , 2.132132 , 2.142142 , 2.152152 , 2.162162 , 2.172172 , 2.182182 , 2.192192 , 2.202202 , 2.212212 , 2.222222 , 2.232232 , 2.242242 , 2.252252 , 2.262262 , 2.272272 , 2.282282 , 2.292292 , 2.3023021 , 2.3123121 , 2.3223221 , 2.3323321 , 2.3423421 , 2.3523524 , 2.3623624 , 2.3723724 , 2.3823824 , 2.3923924 , 2.4024024 , 2.4124124 , 2.4224224 , 2.4324324 , 2.4424424 , 2.4524524 , 2.4624624 , 2.4724724 , 2.4824824 , 2.4924924 , 2.5025024 , 2.5125124 , 2.5225224 , 2.5325325 , 2.5425425 , 2.5525525 , 2.5625625 , 2.5725725 , 2.5825825 , 2.5925925 , 2.6026025 , 2.6126125 , 2.6226225 , 2.6326325 , 2.6426425 , 2.6526525 , 2.6626625 , 2.6726725 , 2.6826825 , 2.6926925 , 2.7027025 , 2.7127125 , 2.7227225 , 2.7327325 , 2.7427425 , 2.7527525 , 2.7627625 , 2.7727726 , 2.7827828 , 2.7927928 , 2.8028028 , 2.8128128 , 2.8228228 , 2.8328328 , 2.8428428 , 2.8528528 , 2.8628628 , 2.8728728 , 2.8828828 , 2.8928928 , 2.9029028 , 2.9129128 , 2.9229228 , 2.9329329 , 2.9429429 , 2.9529529 , 2.9629629 , 2.9729729 , 2.9829829 , 2.9929929 , 3.003003 , 3.013013 , 3.023023 , 3.033033 , 3.043043 , 3.053053 , 3.063063 , 3.073073 , 3.083083 , 3.093093 , 3.103103 , 3.113113 , 3.123123 , 3.133133 , 3.143143 , 3.153153 , 3.163163 , 3.173173 , 3.183183 , 3.193193 , 3.2032032 , 3.2132132 , 3.2232232 , 3.2332332 , 3.2432432 , 3.2532532 , 3.2632632 , 3.2732732 , 3.2832832 , 3.2932932 , 3.3033032 , 3.3133132 , 3.3233232 , 3.3333333 , 3.3433433 , 3.3533533 , 3.3633633 , 3.3733733 , 3.3833833 , 3.3933933 , 3.4034033 , 3.4134133 , 3.4234233 , 3.4334333 , 3.4434433 , 3.4534533 , 3.4634633 , 3.4734733 , 3.4834833 , 3.4934933 , 3.5035033 , 3.5135133 , 3.5235233 , 3.5335333 , 3.5435433 , 3.5535533 , 3.5635633 , 3.5735734 , 3.5835834 , 3.5935934 , 3.6036034 , 3.6136134 , 3.6236234 , 3.6336336 , 3.6436436 , 3.6536536 , 3.6636636 , 3.6736736 , 3.6836836 , 3.6936936 , 3.7037036 , 3.7137136 , 3.7237236 , 3.7337337 , 3.7437437 , 3.7537537 , 3.7637637 , 3.7737737 , 3.7837837 , 3.7937937 , 3.8038037 , 3.8138137 , 3.8238237 , 3.8338337 , 3.8438437 , 3.8538537 , 3.8638637 , 3.8738737 , 3.8838837 , 3.8938937 , 3.9039037 , 3.9139137 , 3.9239237 , 3.9339337 , 3.9439437 , 3.9539537 , 3.9639637 , 3.9739738 , 3.9839838 , 3.9939938 , 4.004004 , 4.014014 , 4.024024 , 4.034034 , 4.044044 , 4.054054 , 4.064064 , 4.074074 , 4.084084 , 4.094094 , 4.104104 , 4.114114 , 4.124124 , 4.134134 , 4.144144 , 4.154154 , 4.164164 , 4.174174 , 4.184184 , 4.194194 , 4.204204 , 4.214214 , 4.224224 , 4.234234 , 4.244244 , 4.254254 , 4.264264 , 4.2742743 , 4.284284 , 4.2942944 , 4.304304 , 4.3143144 , 4.324324 , 4.3343344 , 4.344344 , 4.3543544 , 4.364364 , 4.3743744 , 4.384384 , 4.3943944 , 4.404404 , 4.4144144 , 4.424424 , 4.4344344 , 4.444444 , 4.4544544 , 4.464464 , 4.4744744 , 4.484484 , 4.4944944 , 4.504504 , 4.5145144 , 4.524524 , 4.5345345 , 4.544544 , 4.5545545 , 4.564564 , 4.5745745 , 4.584584 , 4.5945945 , 4.6046042 , 4.6146145 , 4.6246243 , 4.6346345 , 4.6446443 , 4.6546545 , 4.6646643 , 4.6746745 , 4.6846843 , 4.6946945 , 4.7047048 , 4.7147145 , 4.724725 , 4.7347345 , 4.744745 , 4.7547545 , 4.764765 , 4.7747746 , 4.784785 , 4.7947946 , 4.804805 , 4.8148146 , 4.824825 , 4.8348346 , 4.844845 , 4.8548546 , 4.864865 , 4.8748746 , 4.884885 , 4.8948946 , 4.904905 , 4.9149146 , 4.924925 , 4.9349346 , 4.944945 , 4.9549546 , 4.964965 , 4.9749746 , 4.984985 , 4.9949946 , 5.005005 , 5.0150146 , 5.025025 , 5.0350347 , 5.045045 , 5.0550547 , 5.065065 , 5.0750747 , 5.085085 , 5.0950947 , 5.105105 , 5.1151147 , 5.125125 , 5.135135 , 5.145145 , 5.155155 , 5.165165 , 5.175175 , 5.185185 , 5.195195 , 5.205205 , 5.215215 , 5.225225 , 5.235235 , 5.245245 , 5.255255 , 5.265265 , 5.275275 , 5.285285 , 5.2952952 , 5.305305 , 5.3153152 , 5.325325 , 5.3353353 , 5.345345 , 5.3553553 , 5.365365 , 5.3753753 , 5.385385 , 5.3953953 , 5.405405 , 5.4154153 , 5.425425 , 5.4354353 , 5.445445 , 5.4554553 , 5.465465 , 5.4754753 , 5.485485 , 5.4954953 , 5.505505 , 5.5155153 , 5.525525 , 5.5355353 , 5.545545 , 5.5555553 , 5.5655656 , 5.5755754 , 5.5855856 , 5.5955954 , 5.6056056 , 5.6156154 , 5.6256256 , 5.6356354 , 5.6456456 , 5.6556554 , 5.6656656 , 5.6756754 , 5.6856856 , 5.6956954 , 5.7057056 , 5.7157154 , 5.7257257 , 5.7357354 , 5.7457457 , 5.7557554 , 5.7657657 , 5.7757754 , 5.7857857 , 5.7957954 , 5.8058057 , 5.8158154 , 5.8258257 , 5.8358355 , 5.8458457 , 5.8558555 , 5.8658657 , 5.8758755 , 5.8858857 , 5.8958955 , 5.9059057 , 5.9159155 , 5.9259257 , 5.9359355 , 5.9459457 , 5.9559555 , 5.9659657 , 5.9759755 , 5.9859858 , 5.995996 , 6.006006 , 6.016016 , 6.026026 , 6.036036 , 6.046046 , 6.056056 , 6.066066 , 6.076076 , 6.086086 , 6.096096 , 6.106106 , 6.116116 , 6.126126 , 6.136136 , 6.146146 , 6.156156 , 6.166166 , 6.176176 , 6.186186 , 6.196196 , 6.206206 , 6.216216 , 6.226226 , 6.236236 , 6.246246 , 6.256256 , 6.266266 , 6.276276 , 6.286286 , 6.296296 , 6.306306 , 6.316316 , 6.326326 , 6.336336 , 6.346346 , 6.356356 , 6.366366 , 6.376376 , 6.386386 , 6.396396 , 6.4064064 , 6.416416 , 6.4264264 , 6.436436 , 6.4464464 , 6.456456 , 6.4664664 , 6.476476 , 6.4864864 , 6.496496 , 6.5065064 , 6.516516 , 6.5265265 , 6.536536 , 6.5465465 , 6.556556 , 6.5665665 , 6.576576 , 6.5865865 , 6.5965962 , 6.6066065 , 6.6166162 , 6.6266265 , 6.6366363 , 6.6466465 , 6.6566563 , 6.6666665 , 6.6766763 , 6.6866865 , 6.6966963 , 6.7067065 , 6.7167163 , 6.7267265 , 6.7367363 , 6.7467465 , 6.7567563 , 6.7667665 , 6.7767763 , 6.7867866 , 6.7967963 , 6.8068066 , 6.8168163 , 6.8268266 , 6.836837 , 6.8468466 , 6.856857 , 6.8668666 , 6.876877 , 6.8868866 , 6.896897 , 6.9069066 , 6.916917 , 6.9269266 , 6.936937 , 6.9469466 , 6.956957 , 6.9669666 , 6.976977 , 6.9869866 , 6.996997 , 7.0070066 , 7.017017 , 7.0270267 , 7.037037 , 7.0470467 , 7.057057 , 7.0670667 , 7.077077 , 7.0870867 , 7.097097 , 7.1071067 , 7.117117 , 7.1271267 , 7.137137 , 7.1471467 , 7.157157 , 7.1671667 , 7.177177 , 7.1871867 , 7.197197 , 7.2072067 , 7.217217 , 7.2272267 , 7.237237 , 7.2472467 , 7.257257 , 7.267267 , 7.277277 , 7.287287 , 7.297297 , 7.3073072 , 7.317317 , 7.3273273 , 7.337337 , 7.3473473 , 7.357357 , 7.3673673 , 7.377377 , 7.3873873 , 7.397397 , 7.4074073 , 7.417417 , 7.4274273 , 7.437437 , 7.4474473 , 7.457457 , 7.4674673 , 7.477477 , 7.4874873 , 7.497497 , 7.5075073 , 7.517517 , 7.5275273 , 7.537537 , 7.5475473 , 7.557557 , 7.5675673 , 7.577577 , 7.5875874 , 7.597597 , 7.6076074 , 7.617617 , 7.6276274 , 7.637637 , 7.6476474 , 7.657657 , 7.6676674 , 7.677677 , 7.6876874 , 7.6976976 , 7.7077074 , 7.7177176 , 7.7277274 , 7.7377377 , 7.7477474 , 7.7577577 , 7.7677674 , 7.7777777 , 7.7877874 , 7.7977977 , 7.8078074 , 7.8178177 , 7.8278275 , 7.8378377 , 7.8478475 , 7.8578577 , 7.8678675 , 7.8778777 , 7.8878875 , 7.8978977 , 7.9079075 , 7.9179177 , 7.9279275 , 7.9379377 , 7.9479475 , 7.9579577 , 7.9679675 , 7.9779778 , 7.9879875 , 7.9979978 , 8.008008 , 8.018018 , 8.028028 , 8.038037 , 8.048048 , 8.058058 , 8.068068 , 8.078077 , 8.088088 , 8.098098 , 8.108108 , 8.118118 , 8.128128 , 8.138138 , 8.148148 , 8.158158 , 8.168168 , 8.178178 , 8.188188 , 8.198198 , 8.208208 , 8.218218 , 8.228228 , 8.238238 , 8.248248 , 8.258258 , 8.268268 , 8.278278 , 8.288288 , 8.298298 , 8.308308 , 8.318318 , 8.328328 , 8.338338 , 8.348348 , 8.358358 , 8.368368 , 8.378378 , 8.388388 , 8.398398 , 8.408408 , 8.418418 , 8.428428 , 8.438438 , 8.448448 , 8.458458 , 8.468468 , 8.478478 , 8.488488 , 8.498498 , 8.508508 , 8.518518 , 8.528528 , 8.538538 , 8.548549 , 8.558558 , 8.568568 , 8.578578 , 8.588589 , 8.5985985 , 8.608608 , 8.618618 , 8.628629 , 8.6386385 , 8.648648 , 8.658658 , 8.668669 , 8.6786785 , 8.688688 , 8.698698 , 8.708709 , 8.718719 , 8.728728 , 8.738738 , 8.748749 , 8.758759 , 8.768768 , 8.778778 , 8.788789 , 8.798799 , 8.808808 , 8.818818 , 8.828829 , 8.838839 , 8.848848 , 8.858858 , 8.868869 , 8.878879 , 8.888888 , 8.898898 , 8.908909 , 8.918919 , 8.928928 , 8.938938 , 8.948949 , 8.958959 , 8.968968 , 8.978979 , 8.988989 , 8.998999 , 9.009008 , 9.019019 , 9.029029 , 9.039039 , 9.049048 , 9.059059 , 9.069069 , 9.079079 , 9.089088 , 9.099099 , 9.109109 , 9.119119 , 9.129128 , 9.139139 , 9.149149 , 9.159159 , 9.169168 , 9.179179 , 9.189189 , 9.199199 , 9.2092085 , 9.219219 , 9.229229 , 9.239239 , 9.2492485 , 9.259259 , 9.269269 , 9.279279 , 9.2892885 , 9.299299 , 9.309309 , 9.319319 , 9.329329 , 9.339339 , 9.349349 , 9.359359 , 9.369369 , 9.379379 , 9.389389 , 9.399399 , 9.4094095 , 9.419419 , 9.429429 , 9.439439 , 9.44945 , 9.459459 , 9.469469 , 9.479479 , 9.48949 , 9.499499 , 9.509509 , 9.519519 , 9.52953 , 9.539539 , 9.549549 , 9.559559 , 9.56957 , 9.579579 , 9.589589 , 9.599599 , 9.60961 , 9.619619 , 9.629629 , 9.639639 , 9.64965 , 9.659659 , 9.669669 , 9.679679 , 9.68969 , 9.699699 , 9.709709 , 9.719719 , 9.72973 , 9.739739 , 9.749749 , 9.759759 , 9.76977 , 9.779779 , 9.789789 , 9.799799 , 9.80981 , 9.819819 , 9.829829 , 9.83984 , 9.84985 , 9.859859 , 9.869869 , 9.87988 , 9.88989 , 9.8998995 , 9.909909 , 9.91992 , 9.92993 , 9.9399395 , 9.949949 , 9.95996 , 9.96997 , 9.9799795 , 9.989989 , 10. ], dtype=float32)>
Tensor listing energies this source can produce. Approximate the energy spectrum as a sequence of delta functions.
- extra_dimensions: Tuple[Tuple[str, bool]] = ()
Additional dimensions used in the block computation. Label True if they represent an internally contracted hidden variable; these will be added to inner_dimensions so domain tensors are calculated automatically. Label False otherwise; these will be added to bonus_dimensions. Thus, any additional domain tensors utilising them will need calculating via the block overriding _domain_dict_bonus())
- fv_high = 0.0
Maximum z value (-depth) at which events are allowed in cm
- fv_low = -97.6
Minimum z value (-depth) at which events are allowed in cm Fiducial volume defaults to full (2t) XENON1T dimensions.
- fv_radius = 47.9
Maximum radius at which events are allowed in cm Fiducial volume defaults to full (2t) XENON1T dimensions.
- model_attributes: Tuple[str] = ('energies', 'fv_radius', 'fv_high', 'fv_low', 'drift_velocity', 't_start', 't_stop')
Additional attributes this Block will furnish the source with. These can be overriden by Source attributes, just like model functions.
- random_truth(n_events, fix_truth=None, **params)[source]
Return pandas dataframe with event positions and times randomly drawn.
- t_start = Timestamp('2019-09-01 08:28:00')
Earliest time at which events are allowed, datetime.datetime The default time boundaries are one year apart, starting and ending at Sept. 1, when the WIMP speed is average. The WIMP speed is also average at the halfway point.
- t_stop = Timestamp('2020-09-01 08:28:00')
Last time at which events are allowed, datetime.datetime
- class flamedisx.lxe_blocks.energy_spectrum.FixedShapeEnergySpectrum(source)[source]
Bases:
flamedisx.lxe_blocks.energy_spectrum.EnergySpectrum
For a source whose energy spectrum has the same shape throughout space and time.
- If you add a rate variation with space, you must override draw_positions
and mu_before_efficiencies. If you add a rate variation with time, you must override draw_times. If you add a rate variation depending on both space and time, you must override all of random_truth!
By default, this uses a flat 0 - 10 keV spectrum, sampled at 1000 points.
- energy_spectrum_rate_multiplier = 1.0
Model function describing a rate multiplier to the energy spectrum. You probably have to update random_truth when modifying this!
- model_attributes: Tuple[str] = ('rates_vs_energy', 'energies', 'fv_radius', 'fv_high', 'fv_low', 'drift_velocity', 't_start', 't_stop')
Additional attributes this Block will furnish the source with. These can be overriden by Source attributes, just like model functions.
- model_functions: Tuple[str] = ('energy_spectrum_rate_multiplier',)
Names of model functions defined in this block
- rates_vs_energy = <tf.Tensor: shape=(1000,), dtype=float32, numpy= array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=float32)>
Tensor listing the number of events for each energy the souce produces Recall we approximate energy spectra by a sequence of delta functions.
- class flamedisx.lxe_blocks.energy_spectrum.SpatialRateEnergySpectrum(source)[source]
Bases:
flamedisx.lxe_blocks.energy_spectrum.FixedShapeEnergySpectrum
- draw_positions(n_events, **params)[source]
Return dictionary with x, y, z, r, theta, drift_time drawn from the spatial rate histogram.
- energy_spectrum_rate_multiplier(x, y, z)[source]
Convert a string or number to a floating point number, if possible.
- frozen_model_functions: ty.Tuple[str] = ('energy_spectrum_rate_multiplier',)
Frozen model functions defined in this block
- model_attributes: ty.Tuple[str] = ('spatial_hist', 'rates_vs_energy', 'energies', 'fv_radius', 'fv_high', 'fv_low', 'drift_velocity', 't_start', 't_stop')
Additional attributes this Block will furnish the source with. These can be overriden by Source attributes, just like model functions.
- setup()[source]
Do any necessary initialization.
Called after the block’s attributes have been properly overriden by source attributes, if specified.
- spatial_hist: multihist.Histdd
multihist.Histdd of events/bin produced by this source. Axes can be either (r, theta, z) or (x, y, z). Do not apply any normalization yourself, flamedisx will multiply by appropriate physical bin volume factors.
- class flamedisx.lxe_blocks.energy_spectrum.VariableEnergySpectrum(source)[source]
Bases:
flamedisx.lxe_blocks.energy_spectrum.EnergySpectrum
- For a source for which the entire energy spectrum (not just the rate)
depends on observables (e.g. reconstruction position or time).
You must implement both energy_spectrum and random_truth.
- Note that you cannot draw homogeneous positions/times first, then
energies, if your energy spectrum depends on positions/time.
- model_functions: Tuple[str] = ('energy_spectrum',)
Names of model functions defined in this block
- class flamedisx.lxe_blocks.energy_spectrum.WIMPEnergySpectrum(source)[source]
Bases:
flamedisx.lxe_blocks.energy_spectrum.VariableEnergySpectrum
- array_columns: Tuple[str] = (('energy_spectrum', 99),)
Names of columns this block expects to be array-valued
- clip_j2000_times(ts)[source]
Return J2000 time(s) ts, clipped to the range of the energy-time histogram. If times are more than one day out, raises InvalidEventTimes.
- Parameters
ts – J2000 timestamp, or array of timestamps
- energy_edges = array([ 0.7 , 0.73084288, 0.76304473, 0.79666544, 0.83176752, 0.86841624, 0.90667975, 0.9466292 , 0.98833887, 1.03188632, 1.07735253, 1.12482203, 1.1743831 , 1.22612789, 1.28015263, 1.33655776, 1.39544817, 1.45693337, 1.52112768, 1.58815048, 1.65812638, 1.73118551, 1.80746372, 1.88710284, 1.97025095, 2.05706268, 2.14769945, 2.24232978, 2.34112964, 2.44428275, 2.55198092, 2.6644244 , 2.78182229, 2.90439287, 3.03236406, 3.16597383, 3.30547061, 3.45111379, 3.6031742 , 3.76193457, 3.92769013, 4.10074909, 4.28143324, 4.47007856, 4.66703583, 4.87267129, 5.0873673 , 5.31152309, 5.54555546, 5.78989959, 6.04500984, 6.31136056, 6.58944702, 6.87978633, 7.18291835, 7.49940675, 7.82984002, 8.1748326 , 8.53502598, 8.91108994, 9.30372374, 9.71365749, 10.14165343, 10.5885074 , 11.05505033, 11.54214972, 12.05071132, 12.58168079, 13.13604543, 13.71483608, 14.31912897, 14.95004776, 15.60876563, 16.29650743, 17.014552 , 17.76423451, 18.54694898, 19.36415083, 20.21735962, 21.10816185, 22.03821395, 23.00924532, 24.02306154, 25.08154778, 26.18667226, 27.3404899 , 28.5451462 , 29.80288116, 31.11603351, 32.487045 , 33.91846497, 35.4129551 , 36.97329435, 38.6023841 , 40.30325359, 42.07906552, 43.93312196, 45.86887045, 47.88991044, 50. ])
Bin edges to use for energy histogram. Centers of the bins correspond to allowed energies.
- frozen_model_functions: Tuple[str] = ('energy_spectrum',)
Frozen model functions defined in this block
- model_attributes: Tuple[str] = ('pretend_wimps_dont_modulate', 'mw', 'sigma_nucleon', 'n_time_bins', 'energy_edges', 'energies', 'fv_radius', 'fv_high', 'fv_low', 'drift_velocity', 't_start', 't_stop')
Additional attributes this Block will furnish the source with. These can be overriden by Source attributes, just like model functions.
- mw = 1000.0
WIMP Mass in GeV/c^2
- n_time_bins = 24
Number of time bins to use for annual modulation computation
- pretend_wimps_dont_modulate = False
If set to True, the energy spectrum at each time will be set to its average over the data taking period.
- random_truth(n_events, fix_truth=None, **params)[source]
Draw n_events random energies and times from the energy/ time spectrum and add them to the data dict.
- setup()[source]
Do any necessary initialization.
Called after the block’s attributes have been properly overriden by source attributes, if specified.
- sigma_nucleon = 1e-45
WIMP-nucleon cross-section in cm^2
flamedisx.lxe_blocks.final_signals module
- class flamedisx.lxe_blocks.final_signals.MakeS1(source)[source]
Bases:
flamedisx.lxe_blocks.final_signals.MakeFinalSignals
- _compute(data_tensor, ptensor, photoelectrons_detected, s1)[source]
Return (n_batch_events, …dimensions…) tensor
- dimensions: Tuple[str] = ('photoelectrons_detected', 's1')
Names of dimensions of the block’s compute result
- extra_dimensions: Tuple[Tuple[str, bool]] = ()
Additional dimensions used in the block computation. Label True if they represent an internally contracted hidden variable; these will be added to inner_dimensions so domain tensors are calculated automatically. Label False otherwise; these will be added to bonus_dimensions. Thus, any additional domain tensors utilising them will need calculating via the block overriding _domain_dict_bonus())
- model_functions: Tuple[str] = ('photoelectron_gain_mean', 'photoelectron_gain_std', 's1_acceptance', 'reconstruction_bias_s1')
Names of model functions defined in this block
- photoelectron_gain_mean = 1.0
- photoelectron_gain_std = 0.5
- quanta_name: str = 'photoelectron'
- static reconstruction_bias_s1(sig)[source]
Dummy method for pax s2 reconstruction bias mean. Overwrite it in source specific class. See x1t_sr1.py for example.
- signal_name: str = 's1'
- special_model_functions: Tuple[str] = ('reconstruction_bias_s1',)
Names of model functions that take an additional first argument (‘bonus arg’) defined in this block; must be a subset of model_functions
- class flamedisx.lxe_blocks.final_signals.MakeS2(source)[source]
Bases:
flamedisx.lxe_blocks.final_signals.MakeFinalSignals
- _compute(data_tensor, ptensor, electrons_detected, s2)[source]
Return (n_batch_events, …dimensions…) tensor
- dimensions: Tuple[str] = ('electrons_detected', 's2')
Names of dimensions of the block’s compute result
- electron_gain_std = 5.0
- extra_dimensions: Tuple[Tuple[str, bool]] = ()
Additional dimensions used in the block computation. Label True if they represent an internally contracted hidden variable; these will be added to inner_dimensions so domain tensors are calculated automatically. Label False otherwise; these will be added to bonus_dimensions. Thus, any additional domain tensors utilising them will need calculating via the block overriding _domain_dict_bonus())
- model_functions: Tuple[str] = ('electron_gain_mean', 'electron_gain_std', 's2_acceptance', 'reconstruction_bias_s2')
Names of model functions defined in this block
- quanta_name: str = 'electron'
- static reconstruction_bias_s2(sig)[source]
Dummy method for pax s2 reconstruction bias mean. Overwrite it in source specific class. See x1t_sr1.py for example.
- signal_name: str = 's2'
- special_model_functions: Tuple[str] = ('reconstruction_bias_s2',)
Names of model functions that take an additional first argument (‘bonus arg’) defined in this block; must be a subset of model_functions
flamedisx.lxe_blocks.quanta_generation module
- class flamedisx.lxe_blocks.quanta_generation.MakeERQuanta(source)[source]
Bases:
flamedisx.block_source.Block
- _calculate_dimsizes_special()[source]
Re-calculate dimension size and steps differently for any dimensions; will need to override _calculate_dimsizes_special() within a block
- _compute(data_tensor, ptensor, quanta_produced, energy, rate_vs_energy, quanta_produced_noStep, energy_noStep)[source]
Return (n_batch_events, …dimensions…) tensor
- _domain_dict_bonus(d)[source]
Calculate any additional intenal tensors arising from the use of bonus_dimensions in a block. Override within block
- _simulate(d)[source]
Simulate extra columns in place.
Use the p_accepted column to modify acceptances; do not remove events here.
- depends_on: Tuple[Tuple[Tuple[str], str]] = ((('energy',), 'rate_vs_energy'),)
Blocks whose result this block expects as an extra keyword argument to compute. Specify as ((block_dims, argument_name), …), where block_dims is the dimensions-tuple of the block, and argument_name the expected name of the compute keyword argument.
- dimensions: Tuple[str] = ('quanta_produced', 'energy')
Names of dimensions of the block’s compute result
- extra_dimensions: Tuple[Tuple[str, bool]] = (('quanta_produced_noStep', False),)
Additional dimensions used in the block computation. Label True if they represent an internally contracted hidden variable; these will be added to inner_dimensions so domain tensors are calculated automatically. Label False otherwise; these will be added to bonus_dimensions. Thus, any additional domain tensors utilising them will need calculating via the block overriding _domain_dict_bonus())
- model_functions: Tuple[str] = ('work',)
Names of model functions defined in this block
- work = 0.0137
- class flamedisx.lxe_blocks.quanta_generation.MakeNRQuanta(source)[source]
Bases:
flamedisx.block_source.Block
- _calculate_dimsizes_special()[source]
Re-calculate dimension size and steps differently for any dimensions; will need to override _calculate_dimsizes_special() within a block
- _compute(data_tensor, ptensor, quanta_produced, energy, rate_vs_energy, quanta_produced_noStep, energy_noStep)[source]
Return (n_batch_events, …dimensions…) tensor
- _domain_dict_bonus(d)[source]
Calculate any additional intenal tensors arising from the use of bonus_dimensions in a block. Override within block
- _simulate(d)[source]
Simulate extra columns in place.
Use the p_accepted column to modify acceptances; do not remove events here.
- depends_on: Tuple[Tuple[Tuple[str], str]] = ((('energy',), 'rate_vs_energy'),)
Blocks whose result this block expects as an extra keyword argument to compute. Specify as ((block_dims, argument_name), …), where block_dims is the dimensions-tuple of the block, and argument_name the expected name of the compute keyword argument.
- dimensions: Tuple[str] = ('quanta_produced', 'energy')
Names of dimensions of the block’s compute result
- extra_dimensions: Tuple[Tuple[str, bool]] = (('quanta_produced_noStep', False),)
Additional dimensions used in the block computation. Label True if they represent an internally contracted hidden variable; these will be added to inner_dimensions so domain tensors are calculated automatically. Label False otherwise; these will be added to bonus_dimensions. Thus, any additional domain tensors utilising them will need calculating via the block overriding _domain_dict_bonus())
- static lindhard_l(e, lindhard_k=<tf.Tensor: shape=(), dtype=float32, numpy=0.138>)[source]
Return Lindhard quenching factor at energy e in keV
- model_functions: Tuple[str] = ('work', 'lindhard_l')
Names of model functions defined in this block
- special_model_functions: Tuple[str] = ('lindhard_l',)
Names of model functions that take an additional first argument (‘bonus arg’) defined in this block; must be a subset of model_functions
- work = 0.0137
flamedisx.lxe_blocks.quanta_splitting module
- class flamedisx.lxe_blocks.quanta_splitting.MakePhotonsElectronsBetaBinomial(source)[source]
Bases:
flamedisx.lxe_blocks.quanta_splitting.MakePhotonsElectronsBinomial
- do_pel_fluct = True
- model_functions: Tuple[str] = ('p_electron', 'p_electron_fluctuation')
Names of model functions defined in this block
- special_model_functions: Tuple[str] = ('p_electron', 'p_electron_fluctuation')
Names of model functions that take an additional first argument (‘bonus arg’) defined in this block; must be a subset of model_functions
- class flamedisx.lxe_blocks.quanta_splitting.MakePhotonsElectronsBinomial(source)[source]
Bases:
flamedisx.block_source.Block
- _compute(data_tensor, ptensor, electrons_produced, photons_produced, quanta_produced, rate_vs_quanta)[source]
Return (n_batch_events, …dimensions…) tensor
- _simulate(d)[source]
Simulate extra columns in place.
Use the p_accepted column to modify acceptances; do not remove events here.
- depends_on: Tuple[Tuple[Tuple[str], str]] = ((('quanta_produced',), 'rate_vs_quanta'),)
Blocks whose result this block expects as an extra keyword argument to compute. Specify as ((block_dims, argument_name), …), where block_dims is the dimensions-tuple of the block, and argument_name the expected name of the compute keyword argument.
- dimensions: Tuple[str] = ('electrons_produced', 'photons_produced')
Names of dimensions of the block’s compute result
- do_pel_fluct = False
- extra_dimensions: Tuple[Tuple[str, bool]] = ()
Additional dimensions used in the block computation. Label True if they represent an internally contracted hidden variable; these will be added to inner_dimensions so domain tensors are calculated automatically. Label False otherwise; these will be added to bonus_dimensions. Thus, any additional domain tensors utilising them will need calculating via the block overriding _domain_dict_bonus())
- model_functions: Tuple[str] = ('p_electron',)
Names of model functions defined in this block
- p_electron = 0.5
- special_model_functions: Tuple[str] = ('p_electron',)
Names of model functions that take an additional first argument (‘bonus arg’) defined in this block; must be a subset of model_functions