Skip to content

Commit b812be3

Browse files
Merge pull request #11 from sealden89/laserTests
Adding tests for laser interaction rates.
2 parents d8647ba + 56d87b6 commit b812be3

8 files changed

+250
-0
lines changed
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
2+
lb1: laserflux, wavelength=532.0*nm,
3+
m2=1.2,
4+
pulseDuration=71.0*ps,
5+
pulseEnergy={{ LASER_ENERGY }}*mJ,
6+
w0=2.3*um;
7+
8+
laser1: laserwire, l=0.01*m, wireLength=0.1*m, laserOffsetTheta=-pi/2, laserOffsetPhi=0,laserOffsetY=0.0*m, laserOffsetZ=0*m, laserOffsetX=0, laserBeam="lb1";
9+
10+
lat : line=(laser1);
11+
use, lat;
12+
13+
beam, particle="e-",
14+
energy={{ BEAM_ENERGY }}*GeV,
15+
X0=0.0*m,
16+
Xp0=0.0,
17+
Y0=0.0*m,
18+
Yp0=0.0,
19+
distrType="gauss",
20+
sigmaX=119*um,
21+
sigmaY=1.07*um,
22+
sigmaE=0,
23+
sigmaT=0;
24+
option,
25+
physicsList="laser_cumulative_compton_scattering";
26+
27+
sample, range=laser1;
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
2+
lb1: laserflux, wavelength=532.0*nm,
3+
m2=1.2,
4+
pulseDuration=71.0*ps,
5+
pulseEnergy={{ LASER_ENERGY }}*mJ,
6+
w0=2.3*um;
7+
8+
laser1: laserwire, l=0.01*m, wireLength=0.1*m, laserOffsetTheta=-pi/2, laserOffsetPhi=0,laserOffsetY=0.0*m, laserOffsetZ=0*m, laserOffsetX=0, laserBeam="lb1";
9+
10+
lat : line=(laser1);
11+
use, lat;
12+
13+
beam, particle="e-",
14+
energy={{ BEAM_ENERGY }}*GeV,
15+
X0=0.0*m,
16+
Xp0=0.0,
17+
Y0=0.0*m,
18+
Yp0=0.0,
19+
distrType="gauss",
20+
sigmaX=119*um,
21+
sigmaY=1.07*um,
22+
sigmaE=0,
23+
sigmaT=0;
24+
option,
25+
physicsList="laser_compton_scattering", scaleFactorLaser=1000;
26+
27+
sample, range=laser1;
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
lb1: laserflux, wavelength=1064.0*nm,
2+
m2=1.2,
3+
pulseDuration=106.0*ns,
4+
pulseEnergy={{ LASER_ENERGY }}*mJ,
5+
w0=50*mm;
6+
7+
laser1: laserwire, l=0.01*m, wireLength=0.1*m, laserOffsetTheta=-pi/2, laserOffsetPhi=0,laserOffsetY=0.0*m, laserOffsetZ=0*m, laserOffsetX=0, laserBeam="lb1";
8+
9+
lat : line=(laser1);
10+
use, lat;
11+
12+
beam, particle="ion 1 1 -1",
13+
energy={{ BEAM_ENERGY }}*MeV,
14+
X0=0.0*m,
15+
Xp0=0.0,
16+
Y0=0.0*m,
17+
Yp0=0.0,
18+
distrType="gauss",
19+
sigmaX=2*mm,
20+
sigmaY=4*mm,
21+
sigmaE=0,
22+
sigmaT=0;
23+
option,
24+
physicsList="laser_cumulative_photo_detachment";
25+
26+
sample, range=laser1;
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
lb1: laserflux, wavelength=1064.0*nm,
2+
m2=1.2,
3+
pulseDuration=106.0*ns,
4+
pulseEnergy={{ LASER_ENERGY }}*mJ,
5+
w0=50*mm;
6+
7+
laser1: laserwire, l=0.01*m, wireLength=0.1*m, laserOffsetTheta=-pi/2, laserOffsetPhi=0,laserOffsetY=0.0*m, laserOffsetZ=0*m, laserOffsetX=0, laserBeam="lb1";
8+
9+
lat : line=(laser1);
10+
use, lat;
11+
12+
beam, particle="ion 1 1 -1",
13+
energy={{ BEAM_ENERGY }}*MeV,
14+
X0=0.0*m,
15+
Xp0=0.0,
16+
Y0=0.0*m,
17+
Yp0=0.0,
18+
distrType="gauss",
19+
sigmaX=2*mm,
20+
sigmaY=4*mm,
21+
sigmaE=0,
22+
sigmaT=0;
23+
option,
24+
physicsList="laser_photo_detachment", scaleFactorLaser=1000;
25+
26+
sample, range=laser1;
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
import pytest
2+
import pybdsim
3+
import os
4+
5+
def test() :
6+
7+
os.chdir(os.path.dirname(__file__))
8+
9+
base_name = "laserwire_compton_cumulative"
10+
template_name = base_name+".tpl"
11+
gmad_name = base_name+".gmad"
12+
root_name = base_name+".root"
13+
14+
data = {
15+
'LASER_ENERGY': '150',
16+
'BEAM_ENERGY' : '1.3'
17+
}
18+
19+
pybdsim.Run.RenderGmadJinjaTemplate(template_name,gmad_name,data)
20+
pybdsim.Run.Bdsim(gmad_name,base_name,10000,1)
21+
22+
d = pybdsim.Data.Load(root_name)
23+
samplerData = pybdsim.Data.SamplerData(d,'laser1')
24+
weights=samplerData.data.get("weight")
25+
partid=samplerData.data.get("partID")
26+
wpho=[]
27+
28+
for i in range(len(partid)):
29+
if partid[i]==22:
30+
wpho.append(weights[i])
31+
32+
33+
Npho=sum(wpho)
34+
ref_Npho=0.626774271968543
35+
36+
37+
print('test ',sum(wpho))
38+
print('ref ', ref_Npho)
39+
assert (Npho==pytest.approx(ref_Npho,abs=1e-3))
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
import pytest
2+
import pybdsim
3+
import os
4+
5+
def test() :
6+
7+
os.chdir(os.path.dirname(__file__))
8+
9+
base_name = "laserwire_compton_multiStep"
10+
template_name = base_name+".tpl"
11+
gmad_name = base_name+".gmad"
12+
root_name = base_name+".root"
13+
14+
l = 2.0
15+
data = {
16+
'LASER_ENERGY': '150',
17+
'BEAM_ENERGY' : '1.3'
18+
}
19+
20+
pybdsim.Run.RenderGmadJinjaTemplate(template_name,gmad_name,data)
21+
pybdsim.Run.Bdsim(gmad_name,base_name,10000,1)
22+
23+
d = pybdsim.Data.Load(root_name)
24+
samplerData = pybdsim.Data.SamplerData(d,'laser1')
25+
partid=samplerData.data.get('partID')
26+
Npho=0
27+
for i in range(len(partid)):
28+
if partid[i]==22:
29+
Npho+=1
30+
31+
ref_Npho=637
32+
33+
print('test ',Npho)
34+
print('ref ', ref_Npho)
35+
assert (Npho==ref_Npho)
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
import pytest
2+
import pybdsim
3+
import os
4+
5+
def test() :
6+
7+
os.chdir(os.path.dirname(__file__))
8+
9+
base_name = "laserwire_photodetachment_cumulative"
10+
template_name = base_name+".tpl"
11+
gmad_name = base_name+".gmad"
12+
root_name = base_name+".root"
13+
14+
data = {
15+
'LASER_ENERGY': '67.4',
16+
'BEAM_ENERGY' : '0.942022+0.003'
17+
}
18+
19+
pybdsim.Run.RenderGmadJinjaTemplate(template_name,gmad_name,data)
20+
pybdsim.Run.Bdsim(gmad_name,base_name,10000,1)
21+
22+
d = pybdsim.Data.Load(root_name)
23+
samplerData = pybdsim.Data.SamplerData(d,'laser1')
24+
weights=samplerData.data.get("weight")
25+
partid=samplerData.data.get("partID")
26+
27+
we=[]
28+
for i in range(len(weights)):
29+
if partid[i]==11:
30+
we.append(weights[i])
31+
Ne=sum(we)
32+
ref_Ne=5.843840659450507
33+
34+
print('test ', Ne)
35+
print('ref ', ref_Ne)
36+
assert (Ne==ref_Ne)
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
import pytest
2+
import pybdsim
3+
import os
4+
5+
def test() :
6+
7+
os.chdir(os.path.dirname(__file__))
8+
9+
base_name = "laserwire_photodetachment_multiStep"
10+
template_name = base_name+".tpl"
11+
gmad_name = base_name+".gmad"
12+
root_name = base_name+".root"
13+
14+
data = {
15+
'LASER_ENERGY': '67.4',
16+
'BEAM_ENERGY' : '0.942022+0.003'
17+
}
18+
19+
pybdsim.Run.RenderGmadJinjaTemplate(template_name,gmad_name,data)
20+
pybdsim.Run.Bdsim(gmad_name,base_name,10000,1)
21+
22+
d = pybdsim.Data.Load(root_name)
23+
samplerData = pybdsim.Data.SamplerData(d,'laser1')
24+
partid=samplerData.data.get('partID')
25+
Ne=0
26+
for i in range(len(partid)):
27+
if partid[i]==11:
28+
Ne+=1
29+
30+
ref_Ne=6852
31+
32+
print('test ',Ne)
33+
print('ref ', ref_Ne)
34+
assert (Ne==ref_Ne)

0 commit comments

Comments
 (0)