Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
S
simc-file-input
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container registry
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
GitLab community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Burcu Duran
simc-file-input
Commits
4940e538
Commit
4940e538
authored
Jan 17, 2019
by
Sylvester Joosten
Browse files
Options
Downloads
Patches
Plain Diff
changed input file format to use simple 4-vectors
parent
91f31e40
Branches
Branches containing commit
No related tags found
No related merge requests found
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
README.md
+7
-7
7 additions, 7 deletions
README.md
share/examples/sample_events.dat
+1000
-1000
1000 additions, 1000 deletions
share/examples/sample_events.dat
simc/event.f
+2
-4
2 additions, 4 deletions
simc/event.f
simc/get_file_event.f
+63
-17
63 additions, 17 deletions
simc/get_file_event.f
with
1072 additions
and
1028 deletions
README.md
+
7
−
7
View file @
4940e538
...
@@ -86,17 +86,17 @@ simc reads in your events from a plain text file. The format for this file is
...
@@ -86,17 +86,17 @@ simc reads in your events from a plain text file. The format for this file is
one line per event where the following HMS and SHMS variables are given.
one line per event where the following HMS and SHMS variables are given.
Note that at this point, we don't pass the vertex information yet
**TODO**
.
Note that at this point, we don't pass the vertex information yet
**TODO**
.
```
bash
```
bash
hms_xptar hms_yptar hms_particle_mom shms_xptar shms_yptar shms_particle_mom
weight
px_HMS py_HMS pz_HMS E_HMS vz_HMS px_SHMS py_SHMS pz_SHMS E_SHMS vz_SHMS
weight
```
```
Definitions:
Definitions:
```
```
hms_* : HMS particle
*_HMS : HMS particle
shms_*: SHMS particle
*_SHMS: SHMS particle
*_xptar: dx/dz relative to the central ray
px,py,pz: paricle 3-momentum components in GeV
*_yptar: dy/dz relative to the central ray
E: particle Energy in GeV
*_particle_momentum: Particle momentum in MeV
weight: event weight
weight: event weight
```
```
Make sure you use the right coordinate system!
The coordinate system is at the target center with z pointing along the central
The coordinate system is at the target center with z pointing along the central
spectrometer angle, +x pointing vertical down and +y pointing to the left
spectrometer angle, +x pointing vertical down and +y pointing to the left
(i.e. smaller HMS angles and larger SHMS angles).
(i.e. smaller HMS angles and larger SHMS angles).
...
...
This diff is collapsed.
Click to expand it.
share/examples/sample_events.dat
+
1000
−
1000
View file @
4940e538
Source diff could not be displayed: it is too large. Options to address this:
view the blob
.
This diff is collapsed.
Click to expand it.
simc/event.f
+
2
−
4
View file @
4940e538
...
@@ -300,14 +300,12 @@ C modified 5/15/06 for poinct
...
@@ -300,14 +300,12 @@ C modified 5/15/06 for poinct
if
(
doing_2pi
)
then
if
(
doing_2pi
)
then
ok_2pi
=
.true.
ok_2pi
=
.true.
call
get_file_event
(
spec
%
e
%
theta
,
spec
%
p
%
theta
,
call
get_file_event
(
spec
%
e
%
theta
,
spec
%
p
%
theta
,
>
vertex
%
e
%
xptar
,
vertex
%
e
%
yptar
,
vertex
%
e
%
p
,
>
vertex
%
e
%
xptar
,
vertex
%
e
%
yptar
,
vertex
%
e
%
p
,
vertex
%
e
%
E
,
>
vertex
%
p
%
xptar
,
vertex
%
p
%
yptar
,
vertex
%
p
%
p
,
>
vertex
%
p
%
xptar
,
vertex
%
p
%
yptar
,
vertex
%
p
%
p
,
vertex
%
p
%
E
,
>
main
%
gen_weight
)
>
main
%
gen_weight
)
if
(
.not.
ok_2pi
)
goto
100
if
(
.not.
ok_2pi
)
goto
100
vertex
%
e
%
delta
=
100.
*
(
vertex
%
e
%
P
-
spec
%
e
%
P
)/
spec
%
e
%
P
vertex
%
e
%
delta
=
100.
*
(
vertex
%
e
%
P
-
spec
%
e
%
P
)/
spec
%
e
%
P
vertex
%
p
%
delta
=
100.
*
(
vertex
%
p
%
P
-
spec
%
p
%
P
)/
spec
%
p
%
P
vertex
%
p
%
delta
=
100.
*
(
vertex
%
p
%
P
-
spec
%
p
%
P
)/
spec
%
p
%
P
vertex
%
e
%
E
=
sqrt
(
vertex
%
e
%
P
*
vertex
%
e
%
P
+
0.511
*
0.511
)
vertex
%
p
%
E
=
sqrt
(
vertex
%
p
%
P
*
vertex
%
p
%
P
+
0.511
*
0.511
)
if
(
debug
(
5
))
then
if
(
debug
(
5
))
then
write
(
*
,
*
)
' E and Delta: '
write
(
*
,
*
)
' E and Delta: '
write
(
*
,
*
)
' HMS: '
,
vertex
%
e
%
E
,
vertex
%
e
%
delta
write
(
*
,
*
)
' HMS: '
,
vertex
%
e
%
E
,
vertex
%
e
%
delta
...
...
This diff is collapsed.
Click to expand it.
simc/get_file_event.f
+
63
−
17
View file @
4940e538
subroutine
get_file_event
(
th_spec_e
,
th_spec_p
,
subroutine
get_file_event
(
th_spec_e
,
th_spec_p
,
>
dxdz
,
dydz
,
e_mom
,
dxdzp
,
dydzp
,
p_mom
,
weight
)
>
dxdz
,
dydz
,
e_mom
,
e_E
,
dxdzp
,
dydzp
,
p_mom
,
p_E
,
weight
)
c
c
c
input
variables
:
c
input
variables
:
c
th_spec_e
:
central
spec
angle
for
electron
(
rad
)
c
th_spec_e
:
central
spec
angle
for
electron
(
rad
)
...
@@ -8,19 +8,25 @@ c output variables:
...
@@ -8,19 +8,25 @@ c output variables:
c
dxdz
:
xptar
for
electron
c
dxdz
:
xptar
for
electron
c
dydz
:
yptar
for
electron
c
dydz
:
yptar
for
electron
c
e_mom
:
electron
momentum
(
MeV
)
c
e_mom
:
electron
momentum
(
MeV
)
c
e_E
:
electron
Energy
(
MeV
)
c
dxdzp
:
xptar
for
proton
c
dxdzp
:
xptar
for
proton
c
dydzp
:
yptar
for
proton
c
dydzp
:
yptar
for
proton
c
p_mom
:
proton
momentum
(
MeV
)
c
p_mom
:
proton
momentum
(
MeV
)
c
p_E
:
proton
Energy
(
MeV
)
c
weight
:
event
weight
c
c
NOTE
:
vertex
also
read
in
but
currently
ignored
c
c
implicit
none
implicit
none
include
'simulate.inc'
include
'simulate.inc'
c
c
real
*
8
e_mom
real
*
8
e_4v
(
4
),
e_4vr
(
4
)
real
*
8
p_mom
real
*
8
p_4v
(
4
),
p_4vr
(
4
)
real
*
8
cth_hms
,
sth_hms
,
cth_shms
,
sth_shms
real
*
8
th_spec_e
real
*
8
th_spec_e
real
*
8
th_spec_p
real
*
8
th_spec_p
real
*
8
dxdz
,
dydz
real
*
8
e_mom
,
e_E
,
dxdz
,
dydz
,
e_vz
real
*
8
dxdzp
,
dydzp
real
*
8
p_mom
,
p_E
,
dxdzp
,
dydzp
,
p_vz
real
*
8
w
,
weight
real
*
8
w
,
weight
character
*
80
multpifile
character
*
80
multpifile
integer
count
,
count_miss
integer
count
,
count_miss
...
@@ -41,23 +47,63 @@ c
...
@@ -41,23 +47,63 @@ c
c
c
c
c
end_of_2pi_file
=
.false.
end_of_2pi_file
=
.false.
read
(
51
,
*
,
end
=
999
,
err
=
999
)
dxdz
,
dydz
,
e_mom
,
dxdzp
,
dydzp
,
p_mom
,
w
read
(
51
,
*
,
end
=
999
,
err
=
999
)
e_4v
,
e_vz
,
p_4v
,
p_vz
,
w
count
=
count
+
1
count
=
count
+
1
if
(
debug
(
5
))
then
write
(
*
,
*
)
' '
write
(
*
,
*
)
' NEW EVENT: '
,
count
,
weight
write
(
*
,
*
)
' HMS: '
,
e_4v
(
1
),
e_4v
(
2
),
e_4v
(
3
),
e_4v
(
4
)
write
(
*
,
*
)
' SHMS: '
,
p_4v
(
1
),
p_4v
(
2
),
p_4v
(
3
),
p_4v
(
4
)
write
(
*
,
*
)
' vertex: '
,
e_vz
,
p_vz
endif
!debug
c
c
p_mom
=
p_mom
*
1000.
c
Rotate
4
-
vectors
to
their
respective
frames
c
This
is
a
rotation
around
the
x
-
axis
,
which
points
downwards
c
-->
the
HMS
is
at
negative
angles
,
and
the
SHMS
at
positive
angles
cth_hms
=
cos
(
th_spec_e
)
sth_hms
=
sin
(
-
th_spec_e
)
cth_shms
=
cos
(
th_spec_p
)
sth_shms
=
sin
(
th_spec_p
)
c
Rotatation
about
the
x
-
axis
-->
only
y
,
and
z
change
e_4vr
(
1
)
=
e_4v
(
1
)
e_4vr
(
2
)
=
cth_hms
*
e_4v
(
2
)
-
sth_hms
*
e_4v
(
3
)
e_4vr
(
3
)
=
sth_hms
*
e_4v
(
2
)
+
cth_hms
*
e_4v
(
3
)
e_4vr
(
4
)
=
e_4v
(
4
)
p_4vr
(
1
)
=
p_4v
(
1
)
p_4vr
(
2
)
=
cth_shms
*
p_4v
(
2
)
-
sth_shms
*
p_4v
(
3
)
p_4vr
(
3
)
=
sth_shms
*
p_4v
(
2
)
+
cth_shms
*
p_4v
(
3
)
p_4vr
(
4
)
=
p_4v
(
4
)
if
(
debug
(
5
))
then
write
(
*
,
*
)
' '
write
(
*
,
*
)
' SPEC:'
write
(
*
,
*
)
' HMS: '
,
-
th_spec_e
/
pi
*
180
write
(
*
,
*
)
' SHMS: '
,
th_spec_p
/
pi
*
180
write
(
*
,
*
)
' ROTATED: '
write
(
*
,
*
)
' HMS: '
,
e_4vr
(
1
),
e_4vr
(
2
),
e_4vr
(
3
),
e_4vr
(
4
)
write
(
*
,
*
)
' SHMS: '
,
p_4vr
(
1
),
p_4vr
(
2
),
p_4vr
(
3
),
p_4vr
(
4
)
endif
!debug
c
Calculate
dxdz
and
dydz
e_mom
=
sqrt
(
e_4vr
(
1
)
**
2
+
e_4vr
(
2
)
**
2
+
e_4vr
(
3
)
**
2
)
p_mom
=
sqrt
(
p_4vr
(
1
)
**
2
+
p_4vr
(
2
)
**
2
+
p_4vr
(
3
)
**
2
)
dxdz
=
e_4vr
(
1
)/
e_mom
dydz
=
e_4vr
(
2
)/
e_mom
dxdzp
=
p_4vr
(
1
)/
p_mom
dydzp
=
p_4vr
(
2
)/
p_mom
c
Convert
momenta
and
energies
into
MeV
e_mom
=
e_mom
*
1000.
e_mom
=
e_mom
*
1000.
dxdz
=
dxdz
/
1.
p_mom
=
p_mom
*
1000.
dydz
=
dydz
/
1.
e_E
=
e_4vr
(
4
)
*
1000.
p_E
=
p_4vr
(
4
)
*
1000.
dxdzp
=
dxdzp
/
1.
c
Weight
and
vertex
positions
are
read
in
correctly
.
dydzp
=
dydzp
/
1.
c
Vertez
z
is
read
in
cm
e_vz
=
e_vz
*
1.
p_vz
=
p_vz
*
1.
weight
=
w
weight
=
w
if
(
debug
(
5
))
then
if
(
debug
(
5
))
then
write
(
*
,
*
)
' '
write
(
*
,
*
)
' '
write
(
*
,
*
)
'
NEW EVENT: '
,
count
write
(
*
,
*
)
'
SIMC INPUT: '
write
(
*
,
*
)
' HMS: '
,
dxdz
,
dydz
,
e_mom
write
(
*
,
*
)
' HMS: '
,
dxdz
,
dydz
,
e_mom
,
e_E
,
e_vz
write
(
*
,
*
)
' SHMS: '
,
dxdzp
,
dydzp
,
p_mom
write
(
*
,
*
)
' SHMS: '
,
dxdzp
,
dydzp
,
p_mom
,
p_E
,
p_vz
endif
!debug
endif
!debug
c
c
return
return
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment