Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
A
athena
Manage
Activity
Members
Labels
Plan
Issues
38
Issue boards
Milestones
Wiki
Code
Merge requests
34
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
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
EIC
detectors
athena
Commits
5997dac2
Commit
5997dac2
authored
3 years ago
by
Whitney Armstrong
Browse files
Options
Downloads
Patches
Plain Diff
Resolve "Add services to tracker"
parent
598909e2
No related branches found
No related tags found
1 merge request
!179
Resolve "Add services to tracker"
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
compact/central_tracker.xml
+57
-51
57 additions, 51 deletions
compact/central_tracker.xml
src/TrapEndcapTracker_geo.cpp
+28
-7
28 additions, 7 deletions
src/TrapEndcapTracker_geo.cpp
with
85 additions
and
58 deletions
compact/central_tracker.xml
+
57
−
51
View file @
5997dac2
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>
<lccdd>
<lccdd>
<comment>
<documentation>
---------------
### Silicon Tracker
Silicon Tracker
---------------
#### Some references:
Some references:
- With some added info on ITS3 chip from https://indico.bnl.gov/event/10677/contributions/45591/attachments/33204/53254/20210318-IR2%40EIC-SVT.pdf
With some added info on ITS3 chip from
To be used as standin until we get more detailed specs from the working group on the tracker.
https://indico.bnl.gov/event/10677/contributions/45591/attachments/33204/53254/20210318-IR2%40EIC-SVT.pdf
- https://wiki.bnl.gov/athena/index.php/Tracking
To be used as standin until we get more detailed specs from the working group on the tracker.
Note: initial implementation with hard-coded values,
Note: initial implementation with hard-coded values,
TODO: add parametrization
TODO: add parametrization
#### ITS3 sensors
----
Aug 04, 2021, Shujie Li
ITS3 sensor thickness:
- 40um, pixel size: 10um (segmentation)
udpated stave and disck material budget for the baseline design.
- total X0 0.55% per barrel layer:
see https://eicweb.phy.anl.gov/EIC/detectors/athena/-/issues/63
- 0.35 mm aluminum ~ 0.4% X0.
- 2 x carbonfiber (RL ~ 28) 0.12 mm (!!! material scan shows ~0.17mm, need to check later) to match Si (RL~9) of 0.04mm ~ 0.04%
ITS3 sensor thickness: 40um, pixel size: 10um (segmentation)
total X0 0.55% per barrel layer:
total X0 0.24% per disk layer (4 sectors per disk):
0.35 mm aluminum ~ 0.4% X0.
- 0.15 mm aluminum ~ 0.16% X0.
2 x carbonfiber (RL ~ 28) 0.12 mm (!!! material scan shows ~0.17mm, need to check later) to match Si (RL~9) of 0.04mm ~ 0.04%
- 1 x carbonfiber (RL ~ 28) 0.12 mm to match Si (RL~9) of 0.04mm ~ 0.04%
total X0 0.24% per disk layer (4 sectors per disk):
</documentation>
0.15 mm aluminum ~ 0.16% X0.
1 x carbonfiber (RL ~ 28) 0.12 mm to match Si (RL~9) of 0.04mm ~ 0.04%
</comment>
<define>
<define>
<comment>
<comment>
...
@@ -64,15 +60,12 @@ ITS3 sensor thickness: 40um, pixel size: 10um (segmentation)
...
@@ -64,15 +60,12 @@ ITS3 sensor thickness: 40um, pixel size: 10um (segmentation)
<constant
name=
"TrackerEndcapInner_nLayers"
value=
"1"
/>
<constant
name=
"TrackerEndcapInner_nLayers"
value=
"1"
/>
<constant
name=
"TrackerEndcapOuter_nLayers"
value=
"3"
/>
<constant
name=
"TrackerEndcapOuter_nLayers"
value=
"3"
/>
<constant
name=
"TrackerEndcapLayer_dz"
value=
"2*cm"
/>
<constant
name=
"TrackerEndcapLayer_dz"
value=
"2*cm"
/>
<constant
name=
"TrackerEndcap
Layer
Module_dz"
value=
"2.5*mm"
/>
<constant
name=
"TrackerEndcapModule_dz"
value=
"2.5*mm"
/>
<constant
name=
"TrackerEndcapInner_zmin"
value=
"49*cm"
/>
<constant
name=
"TrackerEndcapInner_zmin"
value=
"49*cm"
/>
<!-- <constant name="TrackerEndcapInnerLayer_dz" value="TrackerEndcapLayer_dz"/> -->
<constant
name=
"TrackerEndcapInner_zmax"
value=
"TrackerEndcapInner_zmin+TrackerEndcapLayer_dz"
/>
<constant
name=
"TrackerEndcapInner_zmax"
value=
"TrackerEndcapInner_zmin+TrackerEndcapLayer_dz"
/>
<constant
name=
"TrackerEndcapInner_length"
value=
"TrackerEndcapLayer_dz"
/>
<constant
name=
"TrackerEndcapInner_length"
value=
"TrackerEndcapLayer_dz"
/>
<constant
name=
"TrackerEndcapInnerLayer_thickness"
value=
"min(5.0*cm,TrackerEndcapLayer_dz - 0.5*cm)"
/>
<constant
name=
"TrackerEndcapInnerLayer_thickness"
value=
"min(3.0*cm,TrackerEndcapLayer_dz - 0.5*cm)"
/>
<comment>
Note, the -1.0*cm is so the layers do not touch surfaces.
This is a limitation of ACTS geometry which will likely go away in the future.
</comment>
<constant
name=
"TrackerEndcapOuter_zmin1"
value=
"73*cm"
/>
<constant
name=
"TrackerEndcapOuter_zmin1"
value=
"73*cm"
/>
<constant
name=
"TrackerEndcapOuter_zmin2"
value=
"97*cm"
/>
<constant
name=
"TrackerEndcapOuter_zmin2"
value=
"97*cm"
/>
...
@@ -80,6 +73,7 @@ ITS3 sensor thickness: 40um, pixel size: 10um (segmentation)
...
@@ -80,6 +73,7 @@ ITS3 sensor thickness: 40um, pixel size: 10um (segmentation)
<constant
name=
"TrackerEndcapOuter_zmin"
value=
"TrackerEndcapOuter_zmin1"
/>
<constant
name=
"TrackerEndcapOuter_zmin"
value=
"TrackerEndcapOuter_zmin1"
/>
<constant
name=
"TrackerEndcapOuter_zmax"
value=
"TrackerEndcapOuter_zmin3 + TrackerEndcapLayer_dz"
/>
<constant
name=
"TrackerEndcapOuter_zmax"
value=
"TrackerEndcapOuter_zmin3 + TrackerEndcapLayer_dz"
/>
<constant
name=
"TrackerEndcapOuterLayer_thickness"
value=
"min(5.0*cm,TrackerEndcapLayer_dz - 1.0*cm)"
/>
<constant
name=
"TrackerEndcapOuterLayer_thickness"
value=
"min(5.0*cm,TrackerEndcapLayer_dz - 1.0*cm)"
/>
<comment>
Note, the -1.0*cm is so the layers do not touch surfaces.
<comment>
Note, the -1.0*cm is so the layers do not touch surfaces.
This is a limitation of ACTS geometry which will likely go away in the future.
</comment>
This is a limitation of ACTS geometry which will likely go away in the future.
</comment>
...
@@ -101,8 +95,6 @@ ITS3 sensor thickness: 40um, pixel size: 10um (segmentation)
...
@@ -101,8 +95,6 @@ ITS3 sensor thickness: 40um, pixel size: 10um (segmentation)
<constant
name=
"TrackerEndcapOuterShell_zmin"
value=
"TrackerEndcapOuter_rmax1 * TrackerEndcapInner_zmin/TrackerEndcapInner_rmax1+1*cm"
/>
<constant
name=
"TrackerEndcapOuterShell_zmin"
value=
"TrackerEndcapOuter_rmax1 * TrackerEndcapInner_zmin/TrackerEndcapInner_rmax1+1*cm"
/>
<constant
name=
"TrackerEndcapOuterShell_length"
value=
"TrackerEndcapOuter_zmax- TrackerEndcapOuterShell_zmin"
/>
<constant
name=
"TrackerEndcapOuterShell_length"
value=
"TrackerEndcapOuter_zmax- TrackerEndcapOuterShell_zmin"
/>
<constant
name=
"TrackerEndcap_NModules"
value=
"12"
/>
<constant
name=
"TrackerEndcap_NModules"
value=
"12"
/>
<comment>
nmodules = np.pi/np.arcsin(frame_width*np.cos(tilt_angle)/2.0/R)
</comment>
<comment>
nmodules = np.pi/np.arcsin(frame_width*np.cos(tilt_angle)/2.0/R)
</comment>
...
@@ -138,9 +130,7 @@ ITS3 sensor thickness: 40um, pixel size: 10um (segmentation)
...
@@ -138,9 +130,7 @@ ITS3 sensor thickness: 40um, pixel size: 10um (segmentation)
<comment>
<comment>
-----------------------------------
#### Inner Tracker Subassembly
Inner Tracker Subassembly (group 1)
-----------------------------------
</comment>
</comment>
<detector
<detector
...
@@ -212,6 +202,12 @@ ITS3 sensor thickness: 40um, pixel size: 10um (segmentation)
...
@@ -212,6 +202,12 @@ ITS3 sensor thickness: 40um, pixel size: 10um (segmentation)
readout=
"TrackerEndcapHits"
readout=
"TrackerEndcapHits"
vis=
"AnlRed"
vis=
"AnlRed"
reflect=
"false"
>
reflect=
"false"
>
<support
material=
"CarbonFiber"
name=
"sup_cylinder"
vis=
"TrackerSupportVis"
>
<shape
type=
"Cone"
rmin1=
"TrackerEndcapInner_rmax1-14.0*cm"
rmax1=
"TrackerEndcapInner_rmax1-14.0*cm+0.2*mm"
rmin2=
"TrackerEndcapInner_rmax1"
rmax2=
"TrackerEndcapInner_rmax1+0.2*mm"
z=
"8*cm"
/>
<position
x=
"0*cm"
y=
"0*cm"
z=
"TrackerEndcapInner_zmin-10.0*cm"
/>
</support>
<module
name=
"Module1"
vis=
"AnlProcess_Blue"
>
<module
name=
"Module1"
vis=
"AnlProcess_Blue"
>
<trd
x1=
"TrackerEndcapInnerMod1_x1/2.0"
x2=
"TrackerEndcapInnerMod1_x2/2.0"
z=
"TrackerEndcapInnerMod1_y/2"
/>
<trd
x1=
"TrackerEndcapInnerMod1_x1/2.0"
x2=
"TrackerEndcapInnerMod1_x2/2.0"
z=
"TrackerEndcapInnerMod1_y/2"
/>
<module_component
thickness=
"ITS3Thickness"
material=
"Silicon"
sensitive=
"true"
/>
<module_component
thickness=
"ITS3Thickness"
material=
"Silicon"
sensitive=
"true"
/>
...
@@ -227,7 +223,7 @@ ITS3 sensor thickness: 40um, pixel size: 10um (segmentation)
...
@@ -227,7 +223,7 @@ ITS3 sensor thickness: 40um, pixel size: 10um (segmentation)
<ring
vis=
"AnlRed"
<ring
vis=
"AnlRed"
r=
"TrackerEndcapInner_rmin1+TrackerEndcapInnerMod1_y/2.0"
r=
"TrackerEndcapInner_rmin1+TrackerEndcapInnerMod1_y/2.0"
zstart=
"0.0"
zstart=
"0.0"
nmodules=
"TrackerEndcap_NModules"
dz=
"TrackerEndcap
Layer
Module_dz"
module=
"Module1"
/>
nmodules=
"TrackerEndcap_NModules"
dz=
"TrackerEndcapModule_dz"
module=
"Module1"
/>
</layer>
</layer>
</detector>
</detector>
...
@@ -238,10 +234,16 @@ ITS3 sensor thickness: 40um, pixel size: 10um (segmentation)
...
@@ -238,10 +234,16 @@ ITS3 sensor thickness: 40um, pixel size: 10um (segmentation)
readout=
"TrackerEndcapHits"
readout=
"TrackerEndcapHits"
vis=
"AnlRed"
vis=
"AnlRed"
reflect=
"true"
>
reflect=
"true"
>
<support
material=
"CarbonFiber"
name=
"sup_cylinder"
vis=
"TrackerSupportVis"
>
<shape
type=
"Cone"
rmin2=
"TrackerEndcapInner_rmax1-14.0*cm"
rmax2=
"TrackerEndcapInner_rmax1-14.0*cm+0.2*mm"
rmin1=
"TrackerEndcapInner_rmax1-1.0*cm"
rmax1=
"TrackerEndcapInner_rmax1-1.0*cm+0.2*mm"
z=
"8*cm"
/>
<position
x=
"0*cm"
y=
"0*cm"
z=
"-1.0*(TrackerEndcapInner_zmin-10.0*cm)"
/>
</support>
<module
name=
"Module1"
vis=
"AnlProcess_Blue"
>
<module
name=
"Module1"
vis=
"AnlProcess_Blue"
>
<trd
x1=
"TrackerEndcapInnerMod1_x1/2.0"
x2=
"TrackerEndcapInnerMod1_x2/2.0"
z=
"TrackerEndcapInnerMod1_y/2"
/>
<trd
x1=
"TrackerEndcapInnerMod1_x1/2.0"
x2=
"TrackerEndcapInnerMod1_x2/2.0"
z=
"TrackerEndcapInnerMod1_y/2"
/>
<module_component
thickness=
"ITS3Thickness"
material=
"Silicon"
sensitive=
"true"
/>
<module_component
thickness=
"ITS3Thickness"
material=
"Silicon"
sensitive=
"true"
/>
<module_component
thickness=
"TrackerEndcapAluminum_thickness"
material=
"Aluminum"
/>
<module_component
thickness=
"TrackerEndcapAluminum_thickness"
material=
"Aluminum"
/>
<module_component
thickness=
"TrackerCarbon_thickness"
material=
"CarbonFiber"
/>
<module_component
thickness=
"TrackerCarbon_thickness"
material=
"CarbonFiber"
/>
</module>
</module>
<layer
id=
"1"
>
<layer
id=
"1"
>
...
@@ -253,7 +255,7 @@ ITS3 sensor thickness: 40um, pixel size: 10um (segmentation)
...
@@ -253,7 +255,7 @@ ITS3 sensor thickness: 40um, pixel size: 10um (segmentation)
<ring
vis=
"AnlRed"
<ring
vis=
"AnlRed"
r=
"TrackerEndcapInner_rmin1+TrackerEndcapInnerMod1_y/2.0"
r=
"TrackerEndcapInner_rmin1+TrackerEndcapInnerMod1_y/2.0"
zstart=
"0"
zstart=
"0"
nmodules=
"TrackerEndcap_NModules"
dz=
"TrackerEndcap
Layer
Module_dz"
module=
"Module1"
/>
nmodules=
"TrackerEndcap_NModules"
dz=
"TrackerEndcapModule_dz"
module=
"Module1"
/>
</layer>
</layer>
</detector>
</detector>
...
@@ -361,7 +363,7 @@ ITS3 sensor thickness: 40um, pixel size: 10um (segmentation)
...
@@ -361,7 +363,7 @@ ITS3 sensor thickness: 40um, pixel size: 10um (segmentation)
<ring
vis=
"AnlRed"
<ring
vis=
"AnlRed"
r=
"TrackerEndcapOuter_rmin1+TrackerEndcapOuterMod1_y/2.0"
r=
"TrackerEndcapOuter_rmin1+TrackerEndcapOuterMod1_y/2.0"
zstart=
"0.0*mm"
zstart=
"0.0*mm"
nmodules=
"TrackerEndcap_NModules"
dz=
"TrackerEndcap
Layer
Module_dz"
module=
"Module1"
/>
nmodules=
"TrackerEndcap_NModules"
dz=
"TrackerEndcapModule_dz"
module=
"Module1"
/>
</layer>
</layer>
<layer
id=
"2"
>
<layer
id=
"2"
>
<envelope
vis=
"AnlRed"
<envelope
vis=
"AnlRed"
...
@@ -372,7 +374,7 @@ ITS3 sensor thickness: 40um, pixel size: 10um (segmentation)
...
@@ -372,7 +374,7 @@ ITS3 sensor thickness: 40um, pixel size: 10um (segmentation)
<ring
vis=
"AnlRed"
<ring
vis=
"AnlRed"
r=
"TrackerEndcapOuter_rmin2+TrackerEndcapOuterMod2_y/2.0"
r=
"TrackerEndcapOuter_rmin2+TrackerEndcapOuterMod2_y/2.0"
zstart=
"0.0*mm"
zstart=
"0.0*mm"
nmodules=
"TrackerEndcap_NModules"
dz=
"TrackerEndcap
Layer
Module_dz"
module=
"Module2"
/>
nmodules=
"TrackerEndcap_NModules"
dz=
"TrackerEndcapModule_dz"
module=
"Module2"
/>
</layer>
</layer>
<layer
id=
"3"
>
<layer
id=
"3"
>
<envelope
vis=
"AnlRed"
<envelope
vis=
"AnlRed"
...
@@ -383,7 +385,7 @@ ITS3 sensor thickness: 40um, pixel size: 10um (segmentation)
...
@@ -383,7 +385,7 @@ ITS3 sensor thickness: 40um, pixel size: 10um (segmentation)
<ring
vis=
"AnlRed"
<ring
vis=
"AnlRed"
r=
"TrackerEndcapOuter_rmin3+TrackerEndcapOuterMod3_y/2.0"
r=
"TrackerEndcapOuter_rmin3+TrackerEndcapOuterMod3_y/2.0"
zstart=
"0.0*mm"
zstart=
"0.0*mm"
nmodules=
"TrackerEndcap_NModules"
dz=
"TrackerEndcap
Layer
Module_dz"
module=
"Module3"
/>
nmodules=
"TrackerEndcap_NModules"
dz=
"TrackerEndcapModule_dz"
module=
"Module3"
/>
</layer>
</layer>
</detector>
</detector>
...
@@ -394,9 +396,13 @@ ITS3 sensor thickness: 40um, pixel size: 10um (segmentation)
...
@@ -394,9 +396,13 @@ ITS3 sensor thickness: 40um, pixel size: 10um (segmentation)
readout=
"TrackerEndcapHits"
readout=
"TrackerEndcapHits"
vis=
"AnlRed"
vis=
"AnlRed"
reflect=
"true"
>
reflect=
"true"
>
<support
vis=
"TrackerSupportVis"
material=
"CarbonFiber"
<support
material=
"CarbonFiber"
name=
"sup_cylinder"
vis=
"TrackerSupportVis"
rmin=
"TrackerEndcapOuter_rmax3+1.0*mm"
rmin=
"TrackerEndcapOuter_rmax3+1.0*mm"
thickness=
"2.0*mm"
length=
"TrackerEndcapOuterShell_length"
zstart=
"TrackerEndcapOuterShell_zmin"
/>
thickness=
"2.0*mm"
length=
"TrackerEndcapOuterShell_length"
zstart=
"TrackerEndcapOuterShell_zmin"
/>
<module
name=
"Module1"
vis=
"AnlProcess_Blue"
>
<module
name=
"Module1"
vis=
"AnlProcess_Blue"
>
<trd
x1=
"TrackerEndcapOuterMod1_x1/2.0"
x2=
"TrackerEndcapOuterMod1_x2/2.0"
z=
"TrackerEndcapOuterMod1_y/2"
/>
<trd
x1=
"TrackerEndcapOuterMod1_x1/2.0"
x2=
"TrackerEndcapOuterMod1_x2/2.0"
z=
"TrackerEndcapOuterMod1_y/2"
/>
<module_component
thickness=
"ITS3Thickness"
material=
"Silicon"
sensitive=
"true"
/>
<module_component
thickness=
"ITS3Thickness"
material=
"Silicon"
sensitive=
"true"
/>
...
@@ -424,7 +430,7 @@ ITS3 sensor thickness: 40um, pixel size: 10um (segmentation)
...
@@ -424,7 +430,7 @@ ITS3 sensor thickness: 40um, pixel size: 10um (segmentation)
<ring
vis=
"AnlRed"
<ring
vis=
"AnlRed"
r=
"TrackerEndcapOuter_rmin1+TrackerEndcapOuterMod1_y/2.0"
r=
"TrackerEndcapOuter_rmin1+TrackerEndcapOuterMod1_y/2.0"
zstart=
"0.0*mm"
zstart=
"0.0*mm"
nmodules=
"TrackerEndcap_NModules"
dz=
"TrackerEndcap
Layer
Module_dz"
module=
"Module1"
/>
nmodules=
"TrackerEndcap_NModules"
dz=
"TrackerEndcapModule_dz"
module=
"Module1"
/>
</layer>
</layer>
<layer
id=
"2"
>
<layer
id=
"2"
>
<envelope
vis=
"AnlRed"
<envelope
vis=
"AnlRed"
...
@@ -435,7 +441,7 @@ ITS3 sensor thickness: 40um, pixel size: 10um (segmentation)
...
@@ -435,7 +441,7 @@ ITS3 sensor thickness: 40um, pixel size: 10um (segmentation)
<ring
vis=
"AnlRed"
<ring
vis=
"AnlRed"
r=
"TrackerEndcapOuter_rmin2+TrackerEndcapOuterMod2_y/2.0"
r=
"TrackerEndcapOuter_rmin2+TrackerEndcapOuterMod2_y/2.0"
zstart=
"0.0*mm"
zstart=
"0.0*mm"
nmodules=
"TrackerEndcap_NModules"
dz=
"TrackerEndcap
Layer
Module_dz"
module=
"Module2"
/>
nmodules=
"TrackerEndcap_NModules"
dz=
"TrackerEndcapModule_dz"
module=
"Module2"
/>
</layer>
</layer>
<layer
id=
"3"
>
<layer
id=
"3"
>
<envelope
vis=
"AnlRed"
<envelope
vis=
"AnlRed"
...
@@ -446,7 +452,7 @@ ITS3 sensor thickness: 40um, pixel size: 10um (segmentation)
...
@@ -446,7 +452,7 @@ ITS3 sensor thickness: 40um, pixel size: 10um (segmentation)
<ring
vis=
"AnlRed"
<ring
vis=
"AnlRed"
r=
"TrackerEndcapOuter_rmin3+TrackerEndcapOuterMod3_y/2.0"
r=
"TrackerEndcapOuter_rmin3+TrackerEndcapOuterMod3_y/2.0"
zstart=
"0.0*mm"
zstart=
"0.0*mm"
nmodules=
"TrackerEndcap_NModules"
dz=
"TrackerEndcap
Layer
Module_dz"
module=
"Module3"
/>
nmodules=
"TrackerEndcap_NModules"
dz=
"TrackerEndcapModule_dz"
module=
"Module3"
/>
</layer>
</layer>
</detector>
</detector>
...
@@ -466,4 +472,4 @@ ITS3 sensor thickness: 40um, pixel size: 10um (segmentation)
...
@@ -466,4 +472,4 @@ ITS3 sensor thickness: 40um, pixel size: 10um (segmentation)
</readouts>
</readouts>
</lccdd>
</lccdd>
\ No newline at end of file
This diff is collapsed.
Click to expand it.
src/TrapEndcapTracker_geo.cpp
+
28
−
7
View file @
5997dac2
...
@@ -2,6 +2,7 @@
...
@@ -2,6 +2,7 @@
#include
"DD4hep/DetFactoryHelper.h"
#include
"DD4hep/DetFactoryHelper.h"
#include
"Acts/Plugins/DD4hep/ActsExtension.hpp"
#include
"Acts/Plugins/DD4hep/ActsExtension.hpp"
#include
"Acts/Definitions/Units.hpp"
#include
"Acts/Definitions/Units.hpp"
#include
"XML/Utilities.h"
using
namespace
std
;
using
namespace
std
;
using
namespace
dd4hep
;
using
namespace
dd4hep
;
...
@@ -46,16 +47,36 @@ static Ref_t create_detector(Detector& description, xml_h e, SensitiveDetector s
...
@@ -46,16 +47,36 @@ static Ref_t create_detector(Detector& description, xml_h e, SensitiveDetector s
double
support_length
=
getAttrOrDefault
(
x_support
,
_U
(
length
),
2.0
*
mm
);
double
support_length
=
getAttrOrDefault
(
x_support
,
_U
(
length
),
2.0
*
mm
);
double
support_rmin
=
getAttrOrDefault
(
x_support
,
_U
(
rmin
),
2.0
*
mm
);
double
support_rmin
=
getAttrOrDefault
(
x_support
,
_U
(
rmin
),
2.0
*
mm
);
double
support_zstart
=
getAttrOrDefault
(
x_support
,
_U
(
zstart
),
2.0
*
mm
);
double
support_zstart
=
getAttrOrDefault
(
x_support
,
_U
(
zstart
),
2.0
*
mm
);
std
::
string
support_name
=
getAttrOrDefault
<
std
::
string
>
(
x_support
,
_Unicode
(
name
),
"support_tube"
);
std
::
string
support_vis
=
getAttrOrDefault
<
std
::
string
>
(
x_support
,
_Unicode
(
vis
),
"AnlRed"
);
std
::
string
support_vis
=
getAttrOrDefault
<
std
::
string
>
(
x_support
,
_Unicode
(
vis
),
"AnlRed"
);
Material
support_mat
=
description
.
material
(
x_support
.
materialStr
());
xml_dim_t
pos
(
x_support
.
child
(
_U
(
position
),
false
));
Tube
support_tub
(
support_rmin
,
support_rmin
+
support_thickness
,
support_length
/
2
);
xml_dim_t
rot
(
x_support
.
child
(
_U
(
rotation
),
false
));
Volume
support_vol
(
"support_tube"
,
support_tub
,
support_mat
);
// Create the layer envelope volume.
Solid
support_solid
;
support_vol
.
setVisAttributes
(
description
.
visAttributes
(
support_vis
));
if
(
x_support
.
hasChild
(
"shape"
)){
if
(
reflect
)
{
xml_comp_t
shape
(
x_support
.
child
(
_U
(
shape
)));
pv
=
assembly
.
placeVolume
(
support_vol
,
Position
(
0
,
0
,
-
1.0
*
(
support_zstart
+
support_length
/
2
)));
string
shape_type
=
shape
.
typeStr
();
support_solid
=
xml
::
createShape
(
description
,
shape_type
,
shape
);
}
else
{
}
else
{
pv
=
assembly
.
placeVolume
(
support_vol
,
Position
(
0
,
0
,
support_zstart
+
support_length
/
2
));
support_solid
=
Tube
(
support_rmin
,
support_rmin
+
support_thickness
,
support_length
/
2
);
}
Transform3D
tr
=
Transform3D
(
Rotation3D
(),
Position
(
0
,
0
,(
reflect
?-
1.0
:
1.0
)
*
(
support_zstart
+
support_length
/
2
)));
if
(
pos
.
ptr
()
&&
rot
.
ptr
()
)
{
Rotation3D
rot3D
(
RotationZYX
(
rot
.
z
(
0
),
rot
.
y
(
0
),
rot
.
x
(
0
)));
Position
pos3D
(
pos
.
x
(
0
),
pos
.
y
(
0
),
pos
.
z
(
0
));
tr
=
Transform3D
(
rot3D
,
pos3D
);
}
else
if
(
pos
.
ptr
()
)
{
tr
=
Transform3D
(
Rotation3D
(),
Position
(
pos
.
x
(
0
),
pos
.
y
(
0
),
pos
.
z
(
0
)));
}
}
else
if
(
rot
.
ptr
()
)
{
Rotation3D
rot3D
(
RotationZYX
(
rot
.
z
(
0
),
rot
.
y
(
0
),
rot
.
x
(
0
)));
tr
=
Transform3D
(
rot3D
,
Position
());
}
Material
support_mat
=
description
.
material
(
x_support
.
materialStr
());
Volume
support_vol
(
support_name
,
support_solid
,
support_mat
);
support_vol
.
setVisAttributes
(
description
.
visAttributes
(
support_vis
));
pv
=
assembly
.
placeVolume
(
support_vol
,
tr
);
// pv = assembly.placeVolume(support_vol, Position(0, 0, support_zstart + support_length / 2));
}
}
for
(
xml_coll_t
mi
(
x_det
,
_U
(
module
));
mi
;
++
mi
,
++
m_id
)
{
for
(
xml_coll_t
mi
(
x_det
,
_U
(
module
));
mi
;
++
mi
,
++
m_id
)
{
...
...
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