Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
S
solid
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
Package registry
Container registry
Model registry
Operate
Environments
Terraform modules
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
EIC
detectors
solid
Commits
60e263d8
Commit
60e263d8
authored
May 3, 2024
by
Chao Peng
Browse files
Options
Downloads
Patches
Plain Diff
fix gas cherenkov code
parent
64e700db
No related branches found
No related tags found
No related merge requests found
Pipeline
#90674
passed with warnings
May 3, 2024
Stage: build
Stage: test
Changes
2
Pipelines
1
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
compact/LGC.xml
+2
-2
2 additions, 2 deletions
compact/LGC.xml
src/GasCherenkov_geo.cpp
+26
-29
26 additions, 29 deletions
src/GasCherenkov_geo.cpp
with
28 additions
and
31 deletions
compact/LGC.xml
+
2
−
2
View file @
60e263d8
...
...
@@ -49,10 +49,10 @@
<comment>
Light Gas Cherenkov: Winston cones
</comment>
<winston_cone>
<winston_cone
material=
"PyrexGlass"
>
<placement
x=
"0*cm"
y=
"255*cm"
z=
"-40*cm"
/>
<rotation
x=
"55.0*degree"
y=
"0"
z=
"0"
/>
<cone_dimensions
thickness=
"4*mm"
length=
"30.*cm"
radius1=
"7.0*cm"
radius2=
"21.0*cm"
inset_length=
"7.90909*cm"
/>
<cone_dimensions
thickness=
"4*mm"
length=
"30.*cm"
radius1=
"7.0*cm"
radius2=
"21.0*cm"
/>
<tube_dimensions
radius=
"11.28*cm"
length=
"30.*cm"
/>
</winston_cone>
...
...
This diff is collapsed.
Click to expand it.
src/GasCherenkov_geo.cpp
+
26
−
29
View file @
60e263d8
...
...
@@ -91,7 +91,7 @@ static Ref_t createDetector(Detector& desc, xml::Handle_t handle, SensitiveDetec
mdim
.
length
()
/
2.
,
mdim
.
length
()
/
2.
);
auto
mir_trans
=
RotationX
(
M_PI
/
2.
)
*
Transform3D
(
Position
(
0.
,
0.
,
-
mdim
.
radius
()));
Volume
v_mir
(
"vol_mirror_"
+
std
::
to_string
(
i
),
IntersectionSolid
(
mir_cutout
,
mir_shell
,
mir_trans
),
mmat
);
auto
mir_trans2
=
Transform3D
(
Position
(
0.
,
mloc
.
y
(),
mloc
.
z
()))
*
RotationZYX
(
mrot
.
z
(),
mrot
.
y
(),
mrot
.
x
());
auto
mir_trans2
=
Transform3D
(
Position
(
mloc
.
x
()
,
mloc
.
y
(),
mloc
.
z
()))
*
RotationZYX
(
mrot
.
z
(),
mrot
.
y
(),
mrot
.
x
());
PlacedVolume
pv_mir
=
v_sector
.
placeVolume
(
v_mir
,
mir_trans2
);
}
...
...
@@ -108,36 +108,33 @@ static Ref_t createDetector(Detector& desc, xml::Handle_t handle, SensitiveDetec
// ---------------
// Winston Cone
auto
x_winston
=
x_det
.
child
(
_Unicode
(
winston_cone
));
auto
winston_mat
=
desc
.
material
(
x_winston
.
attr
<
std
::
string
>
(
_Unicode
(
material
)));
xml_dim_t
wpl
=
x_winston
.
child
(
_U
(
placement
));
xml_dim_t
wrot
=
x_winston
.
child
(
_U
(
rotation
));
xml_dim_t
cdims
=
x_winston
.
child
(
_Unicode
(
cone_dimensions
));
double
cone_thickness
=
cdims
.
thickness
();
double
cone_length
=
cdims
.
length
1
(
);
double
cone_radius1
=
cdims
.
radius1
(
);
double
cone_radius2
=
cdims
.
radius2
(
);
double
cone_inset_length
=
cdims
.
inset_length
(
);
double
cone_length
=
cdims
.
attr
<
double
>
(
_Unicode
(
length
)
);
double
cone_radius1
=
cdims
.
attr
<
double
>
(
_Unicode
(
radius1
)
);
double
cone_radius2
=
cdims
.
attr
<
double
>
(
_Unicode
(
radius2
)
);
//
double
cone_inset_length = cdims.
attr<double>(_Unicode(
inset_length
)
);
xml_dim_t
tdims
=
x_winston
.
child
(
_Unicode
(
tube_dimensions
));
double
tube_radius
=
tdims
.
radius
();
double
tube_length
=
tdims
.
length
();
auto
winston_mat
=
desc
.
material
(
x_winstone
.
materialStr
());
DetElement
de_wcone
(
det
,
"de_winston_cone1"
,
1
);
Tube
winston_tube
(
LGC_winston_tube_inner_radius
,
LGC_winston_tube_inner_radius
+
LGC_winston_cone_thickness
,
LGC_winston_tube_length
/
2.0
);
Paraboloid
winston_cone1
(
LGC_winston_cone_inner_radius1
+
LGC_winston_cone_thickness
,
LGC_winston_cone_inner_radius2
+
LGC_winston_cone_thickness
,
LGC_winston_cone_length
/
2.0
);
Paraboloid
winston_cone2
(
LGC_winston_cone_inner_radius1
,
LGC_winston_cone_inner_radius2
,
LGC_winston_cone_length
/
2.0
);
Tube
winston_tube
(
tube_radius
,
tube_radius
+
cone_thickness
,
tube_length
/
2.0
);
Paraboloid
winston_cone1
(
cone_radius1
+
cone_thickness
,
cone_radius2
+
cone_thickness
,
cone_length
/
2.0
);
Paraboloid
winston_cone2
(
cone_radius1
,
cone_radius2
,
cone_length
/
2.0
);
SubtractionSolid
winston_cone
(
winston_cone1
,
winston_cone2
);
Volume
v_winston_cone_solid
(
"v_winston_cone_solid"
,
winston_cone
,
winston_mat
);
PlacedVolume
pv_winston_cone_solid
=
v_sector
.
placeVolume
(
v_winston_cone_solid
,
Transform3D
(
Position
(
0
,
LGC_pmt_y_pos
,
LGC_pmt_z_pos
))
*
Rotation
X
(
LGC_pmt_tilt_angle
)
*
Transform3D
(
Position
(
0
,
0
,
LGC_winston_
tube_length
/
2.0
+
5.0
*
mm
)));
v_winston_cone_solid
,
Transform3D
(
Position
(
wpl
.
x
(),
wpl
.
y
(),
wpl
.
z
()
))
*
Rotation
ZYX
(
wrot
.
z
(),
wrot
.
y
(),
wrot
.
x
()
)
*
Transform3D
(
Position
(
0
,
0
,
tube_length
/
2.0
+
5.0
*
mm
)));
//// ---------------
return
det
;
...
...
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