forked from lzambell/lardon
-
Notifications
You must be signed in to change notification settings - Fork 0
/
lar_param.py
49 lines (36 loc) · 1.13 KB
/
lar_param.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
import config as cf
import numpy as np
import math
def driftVelocity(E=cf.E_drift):
""" for E > 0.5 kV/cm :
Walkowiak NIM A 449 (2000) 288
for E < 0.5 kV/cm :
ICARUS NIM A 516 (2004) 68
"""
T = cf.LAr_Temperature
#E = cf.E_drift
T_walk = 90.371 #K
walk = [-0.01481, -0.0075, 0.141, 12.4, 1.627, 0.317]
icarus = [-0.03229, 6.231, -10.62, 12.74, -9.112, 2.83]
vd = 0.
dt = T-T_walk
if(E > 0.5):
vd = (walk[0]*dt+1.) * (walk[2]*E*math.log(1.+walk[3]/E)+walk[4]*pow(E,walk[5]))+walk[1]*dt
else:
for p in range(len(icarus)):
vd += icarus[p]*pow(E,p)
Etmp = 0.5
tmp1 = 0.
for p in range(len(icarus)):
tmp1 += icarus[p]*pow(Etmp,p)
tmp2 = (walk[0]*dt+1.) * (walk[2]*Etmp*math.log(1.+walk[3]/Etmp)+walk[4]*pow(Etmp,walk[5]))+walk[1]*dt
vd = vd * tmp2/tmp1
return vd # in mm/us
def recombination(E=cf.E_drift):
""" following ICARUS NIM A 523 (2004) 275 """
A = 0.8
k = 0.0486
rho = 1.39
alpha = 0.83
dEdx = 2.11 #for muon at mip (MeV/cm)
return A/(1.+(k/E)*dEdx/rho)