Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
CEPCSW_OTE_development
Manage
Activity
Members
Labels
Plan
Issues
0
Issue boards
Milestones
Wiki
Code
Merge requests
0
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package 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
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
yudian2002@sjtu.edu.cn
CEPCSW_OTE_development
Commits
9cbe7f1e
Commit
9cbe7f1e
authored
3 years ago
by
myliu@ihep.ac.cn
Browse files
Options
Downloads
Patches
Plain Diff
Add layer volume to shorten initialization time
parent
61649729
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
Detector/DetDriftChamber/compact/det.xml
+0
-1
0 additions, 1 deletion
Detector/DetDriftChamber/compact/det.xml
Detector/DetDriftChamber/src/driftchamber/DriftChamber.cpp
+19
-11
19 additions, 11 deletions
Detector/DetDriftChamber/src/driftchamber/DriftChamber.cpp
with
19 additions
and
12 deletions
Detector/DetDriftChamber/compact/det.xml
+
0
−
1
View file @
9cbe7f1e
...
...
@@ -113,7 +113,6 @@
<segmentation
type=
"GridDriftChamber"
cell_size=
"SDT_chamber_cell_width"
epsilon0=
"Epsilon"
detector_length=
"DC_length"
identifier_phi=
"cellID"
DC_rbegin=
"DC_chamber_layer_rbegin"
DC_rend=
"DC_chamber_layer_rend"
DC_rmin=
"SDT_chamber_radius_min"
DC_rmax=
"SDT_chamber_radius_max"
safe_distance=
"DC_safe_distance"
layerID=
"layer"
layer_width=
"SDT_chamber_layer_width"
/>
<!-- <id>system:8,chamber:1,layer:8,cellID:16</id> -->
<id>
system:5,layer:7:9,chamber:8,cellID:32:16
</id>
</readout>
</readouts>
...
...
This diff is collapsed.
Click to expand it.
Detector/DetDriftChamber/src/driftchamber/DriftChamber.cpp
+
19
−
11
View file @
9cbe7f1e
...
...
@@ -59,6 +59,7 @@ static dd4hep::Ref_t create_detector(dd4hep::Detector& theDetector,
double
chamber_layer_rend
=
theDetector
.
constant
<
double
>
(
"DC_chamber_layer_rend"
);
int
chamber_layer_number
=
floor
((
chamber_layer_rend
-
chamber_layer_rbegin
)
/
chamber_layer_width
);
double
safe_distance
=
theDetector
.
constant
<
double
>
(
"DC_safe_distance"
);
double
epsilon
=
theDetector
.
constant
<
double
>
(
"Epsilon"
);
// =======================================================================
...
...
@@ -83,12 +84,6 @@ static dd4hep::Ref_t create_detector(dd4hep::Detector& theDetector,
// - chamber volume
dd4hep
::
Tube
det_chamber_solid
(
chamber_radius_min
,
chamber_radius_max
,
chamber_half_length
);
dd4hep
::
Volume
det_chamber_vol
(
det_name
+
"_chamber_vol"
,
det_chamber_solid
,
chamber_mat
);
if
(
x_det
.
isSensitive
()
)
{
det_chamber_vol
.
setRegion
(
theDetector
,
x_det
.
regionStr
());
det_chamber_vol
.
setLimitSet
(
theDetector
,
x_det
.
limitsStr
());
det_chamber_vol
.
setSensitiveDetector
(
sens
);
sd
.
setType
(
"tracker"
);
}
// - wall
double
chamber_inner_wall_rmin
=
theDetector
.
constant
<
double
>
(
"SDT_chamber_inner_wall_radius_min"
);
...
...
@@ -177,6 +172,18 @@ static dd4hep::Ref_t create_detector(dd4hep::Detector& theDetector,
DCHseg
->
setGeomParams
(
chamber_id
,
layerIndex
,
layer_Phi
,
rmid
,
epsilon
,
offset
);
DCHseg
->
setWiresInLayer
(
chamber_id
,
layerIndex
,
numWire
);
dd4hep
::
Tube
layer_vol_solid
(
rmin
,
rmax
,
chamber_half_length
);
dd4hep
::
Volume
layer_vol
(
det_name
+
"_layer_vol"
,
layer_vol_solid
,
det_mat
);
current_vol_ptr
=
&
layer_vol
;
if
(
x_det
.
isSensitive
()
)
{
layer_vol
.
setRegion
(
theDetector
,
x_det
.
regionStr
());
layer_vol
.
setLimitSet
(
theDetector
,
x_det
.
limitsStr
());
layer_vol
.
setSensitiveDetector
(
sens
);
sd
.
setType
(
"tracker"
);
}
// - wire vol
//phi <-------------------> -phi
// | F8 F7 F6 F5| Only on the outermost layer.
...
...
@@ -185,7 +192,6 @@ static dd4hep::Ref_t create_detector(dd4hep::Detector& theDetector,
// | |
// | F0 F1 F2 F3|
// -----------------------
if
(
layer_id
==
0
||
layer_id
==
1
||
layer_id
==
2
||
layer_id
==
99
)
{
for
(
int
icell
=
0
;
icell
<
numWire
;
icell
++
)
{
double
wire_phi
=
(
icell
+
0.5
)
*
layer_Phi
+
offset
;
// - signal wire
...
...
@@ -193,7 +199,7 @@ static dd4hep::Ref_t create_detector(dd4hep::Detector& theDetector,
dd4hep
::
PlacedVolume
module_phy
=
(
*
current_vol_ptr
).
placeVolume
(
module_vol
,
transform_module
);
// - Field wire
dd4hep
::
PlacedVolume
Module_phy
;
double
radius
[
9
]
=
{
rmid
-
chamber_layer_width
*
0.5
,
rmid
-
chamber_layer_width
*
0.5
,
rmid
-
chamber_layer_width
*
0.5
,
rmid
-
chamber_layer_width
*
0.5
,
rmid
,
rmid
+
chamber_layer_width
*
0.5
,
rmid
+
chamber_layer_width
*
0.5
,
rmid
+
chamber_layer_width
*
0.5
,
rmid
+
chamber_layer_width
*
0.5
};
double
radius
[
9
]
=
{
rmid
-
chamber_layer_width
*
0.5
+
safe_distance
,
rmid
-
chamber_layer_width
*
0.5
+
safe_distance
,
rmid
-
chamber_layer_width
*
0.5
+
safe_distance
,
rmid
-
chamber_layer_width
*
0.5
+
safe_distance
,
rmid
,
rmid
+
chamber_layer_width
*
0.5
-
safe_distance
,
rmid
+
chamber_layer_width
*
0.5
-
safe_distance
,
rmid
+
chamber_layer_width
*
0.5
-
safe_distance
,
rmid
+
chamber_layer_width
*
0.5
-
safe_distance
};
double
phi
[
9
]
=
{
wire_phi
+
layer_Phi
*
0.25
,
wire_phi
,
wire_phi
-
layer_Phi
*
0.25
,
wire_phi
-
layer_Phi
*
0.5
,
wire_phi
-
layer_Phi
*
0.5
,
wire_phi
-
layer_Phi
*
0.5
,
wire_phi
-
layer_Phi
*
0.25
,
wire_phi
,
wire_phi
+
layer_Phi
*
0.25
};
int
num
=
5
;
if
(
layer_id
==
(
chamber_layer_number
-
1
))
{
...
...
@@ -206,9 +212,11 @@ static dd4hep::Ref_t create_detector(dd4hep::Detector& theDetector,
Module_phy
=
(
*
current_vol_ptr
).
placeVolume
(
Module_vol
,
transform_Module
);
}
}
}
}
dd4hep
::
Transform3D
transform_layer
(
dd4hep
::
Rotation3D
(),
dd4hep
::
Position
(
0
,
0
,
0
));
dd4hep
::
PlacedVolume
layer_phy
=
det_chamber_vol
.
placeVolume
(
layer_vol
,
transform_layer
);
layer_phy
.
addPhysVolID
(
"layer"
,
layer_id
);
}
// - place in det
// - chamber
...
...
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