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
184ca47b
Commit
184ca47b
authored
11 years ago
by
adrien-matta
Browse files
Options
Downloads
Patches
Plain Diff
* An even more accurate Tiara Barrel Geometry, with guard ring
parent
a5824996
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
NPSimulation/Tiara/Tiara.cc
+48
-17
48 additions, 17 deletions
NPSimulation/Tiara/Tiara.cc
NPSimulation/Tiara/Tiara.hh
+8
-9
8 additions, 9 deletions
NPSimulation/Tiara/Tiara.hh
with
56 additions
and
26 deletions
NPSimulation/Tiara/Tiara.cc
+
48
−
17
View file @
184ca47b
...
@@ -73,7 +73,8 @@ Tiara::Tiara(){
...
@@ -73,7 +73,8 @@ Tiara::Tiara(){
PADVisAtt
=
new
G4VisAttributes
(
G4Colour
(
0.5
,
0.5
,
0.2
))
;
PADVisAtt
=
new
G4VisAttributes
(
G4Colour
(
0.5
,
0.5
,
0.2
))
;
// Light Grey
// Light Grey
FrameVisAtt
=
new
G4VisAttributes
(
G4Colour
(
0.5
,
0.5
,
0.5
))
;
FrameVisAtt
=
new
G4VisAttributes
(
G4Colour
(
0.5
,
0.5
,
0.5
))
;
// Light Blue
GuardRingVisAtt
=
new
G4VisAttributes
(
G4Colour
(
0.0
,
0.8
,
0.9
))
;
}
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
Tiara
::~
Tiara
(){
Tiara
::~
Tiara
(){
...
@@ -199,20 +200,31 @@ void Tiara::ConstructInnerBarrel(G4LogicalVolume* world){
...
@@ -199,20 +200,31 @@ void Tiara::ConstructInnerBarrel(G4LogicalVolume* world){
INNERBARREL_PCB_Offset
-
(
INNERBARREL_PCB_Length
/
2
-
INNERBARREL_PCB_HoleLength
/
2
));
INNERBARREL_PCB_Offset
-
(
INNERBARREL_PCB_Length
/
2
-
INNERBARREL_PCB_HoleLength
/
2
));
G4Box
*
HoleShape
=
new
G4Box
(
"HoleShape"
,
G4Box
*
HoleShape
=
new
G4Box
(
"HoleShape"
,
INNERBARREL_Wafer_Width
/
2.
,
INNERBARREL_
Active
Wafer_Width
/
2.
,
INNERBARREL_PCB_Thickness
/
2.
+
0.1
*
mm
,
INNERBARREL_PCB_Thickness
/
2.
+
0.1
*
mm
,
INNERBARREL_PCB_HoleLength
/
2.
);
INNERBARREL_PCB_HoleLength
/
2.
);
G4Box
*
WaferShape
=
new
G4Box
(
"WaferShape"
,
G4Box
*
WaferShape
=
new
G4Box
(
"WaferShape"
,
INNERBARREL_Wafer_Width
/
2.
,
INNERBARREL_
Inert
Wafer_Width
/
2.
,
INNERBARREL_PCB_Thickness
/
2.
,
INNERBARREL_PCB_Thickness
/
2.
,
INNERBARREL_Wafer_Length
/
2.
);
INNERBARREL_
Inert
Wafer_Length
/
2.
);
// The Silicon Wafer itself
// The Silicon Wafer itself
G4Box
*
Wafer
=
new
G4Box
(
"Wafer"
,
G4Box
*
InertWaferFull
=
new
G4Box
(
"InertWaferFull"
,
INNERBARREL_Wafer_Width
/
2.
,
INNERBARREL_InertWafer_Width
/
2.
,
INNERBARREL_Wafer_Thickness
/
2
,
INNERBARREL_ActiveWafer_Thickness
/
2.
,
INNERBARREL_Wafer_Length
/
2.
);
INNERBARREL_InertWafer_Length
/
2.
);
G4Box
*
ActiveWafer
=
new
G4Box
(
"ActiveWafer"
,
INNERBARREL_ActiveWafer_Width
/
2.
,
INNERBARREL_ActiveWafer_Thickness
/
2.
,
INNERBARREL_ActiveWafer_Length
/
2.
);
G4Box
*
ActiveWaferShape
=
new
G4Box
(
"ActiveWaferShape"
,
INNERBARREL_ActiveWafer_Width
/
2.
,
INNERBARREL_PCB_Thickness
/
2.
,
INNERBARREL_ActiveWafer_Length
/
2.
);
// Substracting the hole Shape from the Stock PCB
// Substracting the hole Shape from the Stock PCB
G4SubtractionSolid
*
PCB_1
=
new
G4SubtractionSolid
(
"PCB_1"
,
PCBFull
,
HoleShape
,
G4SubtractionSolid
*
PCB_1
=
new
G4SubtractionSolid
(
"PCB_1"
,
PCBFull
,
HoleShape
,
...
@@ -220,7 +232,13 @@ void Tiara::ConstructInnerBarrel(G4LogicalVolume* world){
...
@@ -220,7 +232,13 @@ void Tiara::ConstructInnerBarrel(G4LogicalVolume* world){
// Substracting the wafer space from the Stock PCB
// Substracting the wafer space from the Stock PCB
G4SubtractionSolid
*
PCB
=
new
G4SubtractionSolid
(
"PCB"
,
PCB_1
,
WaferShape
,
G4SubtractionSolid
*
PCB
=
new
G4SubtractionSolid
(
"PCB"
,
PCB_1
,
WaferShape
,
new
G4RotationMatrix
,
G4ThreeVector
(
0
,
INNERBARREL_PCB_Thickness
/
2.
+
INNERBARREL_PCB_WaferDepth
,
0
));
new
G4RotationMatrix
,
G4ThreeVector
(
0
,
INNERBARREL_PCB_Thickness
/
2.
-
INNERBARREL_PCB_WaferDepth
,
0
));
// Substract active part from inert part of the Wafer
G4SubtractionSolid
*
InertWafer
=
new
G4SubtractionSolid
(
"InertWafer"
,
InertWaferFull
,
ActiveWaferShape
,
new
G4RotationMatrix
,
G4ThreeVector
(
0
,
0
,
0
));
// Master Volume that encompass everything else
// Master Volume that encompass everything else
G4LogicalVolume
*
logicBarrelDetector
=
G4LogicalVolume
*
logicBarrelDetector
=
...
@@ -233,9 +251,13 @@ void Tiara::ConstructInnerBarrel(G4LogicalVolume* world){
...
@@ -233,9 +251,13 @@ void Tiara::ConstructInnerBarrel(G4LogicalVolume* world){
logicPCB
->
SetVisAttributes
(
PCBVisAtt
);
logicPCB
->
SetVisAttributes
(
PCBVisAtt
);
// Sub Volume Wafer
// Sub Volume Wafer
G4LogicalVolume
*
logicWafer
=
G4LogicalVolume
*
logicInertWafer
=
new
G4LogicalVolume
(
Wafer
,
m_MaterialSilicon
,
"logicWafer"
,
0
,
0
,
0
);
new
G4LogicalVolume
(
InertWafer
,
m_MaterialSilicon
,
"logicInertWafer"
,
0
,
0
,
0
);
logicWafer
->
SetVisAttributes
(
SiliconVisAtt
);
logicInertWafer
->
SetVisAttributes
(
GuardRingVisAtt
);
G4LogicalVolume
*
logicActiveWafer
=
new
G4LogicalVolume
(
ActiveWafer
,
m_MaterialSilicon
,
"logicActiveWafer"
,
0
,
0
,
0
);
logicActiveWafer
->
SetVisAttributes
(
SiliconVisAtt
);
// The Distance from target is given by half the lenght of a detector
// The Distance from target is given by half the lenght of a detector
// plus the length of a detector inclined by 45 deg.
// plus the length of a detector inclined by 45 deg.
...
@@ -249,13 +271,22 @@ void Tiara::ConstructInnerBarrel(G4LogicalVolume* world){
...
@@ -249,13 +271,22 @@ void Tiara::ConstructInnerBarrel(G4LogicalVolume* world){
G4ThreeVector
(
0
,
0
,
0
),
G4ThreeVector
(
0
,
0
,
0
),
logicPCB
,
"Tiara_Barrel_PCB"
,
logicBarrelDetector
,
logicPCB
,
"Tiara_Barrel_PCB"
,
logicBarrelDetector
,
false
,
i
+
1
);
false
,
i
+
1
);
G4ThreeVector
WaferPosition
(
0
,
0.5
*
(
INNERBARREL_PCB_Thickness
-
INNERBARREL_PCB_WaferDepth
+
INNERBARREL_ActiveWafer_Thickness
),
0
);
new
G4PVPlacement
(
new
G4RotationMatrix
(
0
,
0
,
0
),
new
G4PVPlacement
(
new
G4RotationMatrix
(
0
,
0
,
0
),
G4ThreeVector
(
0
,
0.5
*
(
-
INNERBARREL_PCB_WaferDepth
-
INNERBARREL_Wafer_Thickness
),
0
)
,
WaferPosition
,
logicWafer
,
"Barrel_Wafer"
,
logic
Active
Wafer
,
"Barrel_Wafer"
,
logicBarrelDetector
,
false
,
i
+
1
);
logicBarrelDetector
,
false
,
i
+
1
);
// The following build the barrel, with detector one at the top
new
G4PVPlacement
(
new
G4RotationMatrix
(
0
,
0
,
0
),
WaferPosition
,
logicInertWafer
,
"Barrel_Wafer_GuardRing"
,
logicBarrelDetector
,
false
,
i
+
1
);
// The following build the barrel, with detector one at the top
// and going clowise looking upstrea
// and going clowise looking upstrea
// Detector are rotate by 45deg with each other
// Detector are rotate by 45deg with each other
...
@@ -279,7 +310,7 @@ void Tiara::ConstructOuterBarrel(G4LogicalVolume* world){
...
@@ -279,7 +310,7 @@ void Tiara::ConstructOuterBarrel(G4LogicalVolume* world){
// Put the needed geometry parameter definition here instead of the namespace
// Put the needed geometry parameter definition here instead of the namespace
// to facilitate the merge
// to facilitate the merge
// Respect Naming convention :example : OUTERBARREL_PCB_Length / OUTERBARREL_Wafer_Length
// Respect Naming convention :example : OUTERBARREL_PCB_Length / OUTERBARREL_
Active
Wafer_Length
}
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
...
@@ -289,7 +320,7 @@ void Tiara::ConstructHyball(G4LogicalVolume* world){
...
@@ -289,7 +320,7 @@ void Tiara::ConstructHyball(G4LogicalVolume* world){
// Put the needed geometry parameter definition here instead of the namespace
// Put the needed geometry parameter definition here instead of the namespace
// to facilitate the merge
// to facilitate the merge
// Respect Naming convention: example HYBALL_PCB_Radius / HYBALL_Wafer_Radius
// Respect Naming convention: example HYBALL_PCB_Radius / HYBALL_
Active
Wafer_Radius
}
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
...
...
This diff is collapsed.
Click to expand it.
NPSimulation/Tiara/Tiara.hh
+
8
−
9
View file @
184ca47b
...
@@ -78,15 +78,13 @@ namespace TIARA
...
@@ -78,15 +78,13 @@ namespace TIARA
const
G4double
INNERBARREL_PCB_Bevel1_Theta
=
50
*
deg
;
const
G4double
INNERBARREL_PCB_Bevel1_Theta
=
50
*
deg
;
const
G4double
INNERBARREL_PCB_Bevel2_Theta
=
67.5
*
deg
;
const
G4double
INNERBARREL_PCB_Bevel2_Theta
=
67.5
*
deg
;
// offset between the edge of the PCB and the Edge of the hole
// 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
=
15
*
mm
;
const
G4double
INNERBARREL_PCB_Offset
=
14
*
mm
;
// Different from Marc code, to be checked
// Different from Marc code, to be checked
const
G4double
INNERBARREL_Wafer_Length
=
94.00
*
mm
;
const
G4double
INNERBARREL_ActiveWafer_Length
=
94.00
*
mm
;
const
G4double
INNERBARREL_Wafer_Width
=
24.80
*
mm
;
const
G4double
INNERBARREL_ActiveWafer_Width
=
24.0
*
mm
;
const
G4double
INNERBARREL_Wafer_Thickness
=
400
*
um
;
const
G4double
INNERBARREL_ActiveWafer_Thickness
=
400
*
um
;
const
G4double
INNERBARREL_InertWafer_Length
=
97.00
*
mm
;
const
G4double
INNERBARREL_InertWafer_Width
=
24.80
*
mm
;
}
}
using
namespace
TIARA
;
using
namespace
TIARA
;
...
@@ -193,6 +191,7 @@ private:/// Visualisation Attribute:
...
@@ -193,6 +191,7 @@ private:/// Visualisation Attribute:
G4VisAttributes
*
PADVisAtt
;
G4VisAttributes
*
PADVisAtt
;
// Light Grey
// Light Grey
G4VisAttributes
*
FrameVisAtt
;
G4VisAttributes
*
FrameVisAtt
;
// Light Blue
G4VisAttributes
*
GuardRingVisAtt
;
};
};
#endif
#endif
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