Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
nptool
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
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
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
np
nptool
Commits
a5824996
Commit
a5824996
authored
11 years ago
by
adrien-matta
Browse files
Options
Downloads
Patches
Plain Diff
* Correcting geometry for Tiara Inner Barrel
parent
3b86e539
No related branches found
No related tags found
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
NPSimulation/Tiara/Tiara.cc
+26
-15
26 additions, 15 deletions
NPSimulation/Tiara/Tiara.cc
NPSimulation/Tiara/Tiara.hh
+6
-3
6 additions, 3 deletions
NPSimulation/Tiara/Tiara.hh
with
32 additions
and
18 deletions
NPSimulation/Tiara/Tiara.cc
+
26
−
15
View file @
a5824996
...
...
@@ -141,7 +141,8 @@ void Tiara::ReadConfiguration(string Path){
void
Tiara
::
ConstructDetector
(
G4LogicalVolume
*
world
){
ConstructChamber
(
world
);
ConstructInnerBarrel
(
world
);
ConstructOuterBarrel
(
world
);
ConstructHyball
(
world
);
}
// Read sensitive part and fill the Root tree.
// Called at in the EventAction::EndOfEventAvtion
...
...
@@ -164,7 +165,7 @@ void Tiara::ConstructInnerBarrel(G4LogicalVolume* world){
// The Barrel is made of 8 identical resistive strip detector
// The PCB is made from a G4ExtrudeSolid, because it has beveled edge
// the pcb is a substracted volume
// the wafer goes into the hole
// the wafer goes into the hole
, but a 15mm part is still covered by some PCB
// the whole things is design so the local reference is the one of the wafer
// Start by making a full pcb
...
...
@@ -190,9 +191,21 @@ void Tiara::ConstructInnerBarrel(G4LogicalVolume* world){
// A box having Wafer dimension but thicker than the PCB
// Will be used to remove material from the PCB to have space for the wafer
G4Box
*
WaferShape
=
new
G4Box
(
"WaferShape"
,
// Calculate the hole shift within the PCB
G4ThreeVector
HoleShift
=
G4ThreeVector
(
0
,
0
,
INNERBARREL_PCB_Offset
-
(
INNERBARREL_PCB_Length
/
2
-
INNERBARREL_PCB_HoleLength
/
2
));
G4Box
*
HoleShape
=
new
G4Box
(
"HoleShape"
,
INNERBARREL_Wafer_Width
/
2.
,
INNERBARREL_PCB_Thickness
/
2.
+
0.1
*
mm
,
INNERBARREL_PCB_HoleLength
/
2.
);
G4Box
*
WaferShape
=
new
G4Box
(
"WaferShape"
,
INNERBARREL_Wafer_Width
/
2.
,
INNERBARREL_PCB_Thickness
/
2.
,
INNERBARREL_Wafer_Length
/
2.
);
// The Silicon Wafer itself
...
...
@@ -201,21 +214,19 @@ void Tiara::ConstructInnerBarrel(G4LogicalVolume* world){
INNERBARREL_Wafer_Thickness
/
2
,
INNERBARREL_Wafer_Length
/
2.
);
// Calculate the wafer shift within the PCB
G4ThreeVector
WaferShift
=
G4ThreeVector
(
0
,
0
,
INNERBARREL_PCB_Offset
-
(
INNERBARREL_PCB_Length
/
2
-
INNERBARREL_Wafer_Length
/
2
));
// Substracting the hole Shape from the Stock PCB
G4SubtractionSolid
*
PCB_1
=
new
G4SubtractionSolid
(
"PCB_1"
,
PCBFull
,
HoleShape
,
new
G4RotationMatrix
,
HoleShift
);
// Substracting the
W
afer
Shap
e from the Stock PCB
G4SubtractionSolid
*
PCB
=
new
G4SubtractionSolid
(
"PCB"
,
PCB
Full
,
WaferShape
,
new
G4RotationMatrix
,
WaferShift
);
// Substracting the
w
afer
spac
e from the Stock PCB
G4SubtractionSolid
*
PCB
=
new
G4SubtractionSolid
(
"PCB"
,
PCB
_1
,
WaferShape
,
new
G4RotationMatrix
,
G4ThreeVector
(
0
,
INNERBARREL_PCB_Thickness
/
2.
+
INNERBARREL_PCB_WaferDepth
,
0
)
);
// Master Volume that encompass everything else
G4LogicalVolume
*
logicBarrelDetector
=
new
G4LogicalVolume
(
PCBFull
,
m_MaterialVacuum
,
"logicBoxDetector"
,
0
,
0
,
0
);
logicBarrelDetector
->
SetVisAttributes
(
G4VisAttributes
::
Invisible
);
// Sub Volume PCB
G4LogicalVolume
*
logicPCB
=
new
G4LogicalVolume
(
PCB
,
m_MaterialPCB
,
"logicPCB"
,
0
,
0
,
0
);
...
...
@@ -240,7 +251,7 @@ void Tiara::ConstructInnerBarrel(G4LogicalVolume* world){
false
,
i
+
1
);
new
G4PVPlacement
(
new
G4RotationMatrix
(
0
,
0
,
0
),
WaferShift
,
G4ThreeVector
(
0
,
0.5
*
(
-
INNERBARREL_PCB_WaferDepth
-
INNERBARREL_Wafer_Thickness
),
0
)
,
logicWafer
,
"Barrel_Wafer"
,
logicBarrelDetector
,
false
,
i
+
1
);
...
...
@@ -250,9 +261,9 @@ void Tiara::ConstructInnerBarrel(G4LogicalVolume* world){
// Detector are rotate by 45deg with each other
G4RotationMatrix
*
DetectorRotation
=
new
G4RotationMatrix
(
0
*
deg
,
0
*
deg
,
i
*
45
*
deg
);
// There center is also rotated by 45deg
G4ThreeVector
DetectorPosition
(
0
,
DistanceFromTarget
,
-
WaferShift
.
z
()
);
G4ThreeVector
DetectorPosition
(
0
,
DistanceFromTarget
,
0
);
DetectorPosition
.
rotate
(
i
*
45
*
deg
,
G4ThreeVector
(
0
,
0
,
-
1
));
// Place the Master volume with its two daugther volume at the final place
...
...
This diff is collapsed.
Click to expand it.
NPSimulation/Tiara/Tiara.hh
+
6
−
3
View file @
a5824996
...
...
@@ -73,12 +73,15 @@ namespace TIARA
const
G4double
INNERBARREL_PCB_Length
=
98.00
*
mm
;
const
G4double
INNERBARREL_PCB_Width
=
27.76
*
mm
;
const
G4double
INNERBARREL_PCB_Thickness
=
1.60
*
mm
;
const
G4double
INNERBARREL_PCB_HoleLength
=
82
*
mm
;
const
G4double
INNERBARREL_PCB_WaferDepth
=
1.1
*
mm
;
const
G4double
INNERBARREL_PCB_Bevel1_Theta
=
50
*
deg
;
const
G4double
INNERBARREL_PCB_Bevel2_Theta
=
67.5
*
deg
;
// offset between the edge of the PCB and the Edge of the Waffer
const
G4double
INNERBARREL_PCB_Offset
=
15
*
mm
;
// offset between the edge of the PCB and the Edge of the hole
// 15mm - 1mm for the edge at the top
const
G4double
INNERBARREL_PCB_Offset
=
14
*
mm
;
// Different from Marc code, to be checked
const
G4double
INNERBARREL_Wafer_Length
=
82
.00
*
mm
;
const
G4double
INNERBARREL_Wafer_Length
=
94
.00
*
mm
;
const
G4double
INNERBARREL_Wafer_Width
=
24.80
*
mm
;
const
G4double
INNERBARREL_Wafer_Thickness
=
400
*
um
;
...
...
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