Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

18 implement detailed geometry for sand ecal endcaps #40

Merged
merged 33 commits into from
Jan 20, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
fd93be1
Implementation of detailed ECAL geometry
Nov 22, 2023
afa0042
Solving conflicts
Nov 22, 2023
e263bbc
Wrong subbuilder name corrected
Nov 22, 2023
07291e0
Corrected wrong Builder name
Nov 23, 2023
b9e539b
tab replaced with space at line 37 to avoid TabError: inconsistent us…
mt82 Nov 30, 2023
ffd2519
Merge remote-tracking branch 'origin/18-implement-detailed-geometry-f…
mt82 Jan 12, 2024
4b0ce52
alignment in config SAND_ECAL.cgf
mt82 Jan 12, 2024
4aebb1a
just code alignment
mt82 Jan 12, 2024
a574657
aluminum palte put inside mother volume
mt82 Jan 12, 2024
14dd40a
ECAL ec module element construction moved to function
mt82 Jan 12, 2024
3dd2a6c
renaming ActiveMat to ScintMat, so that they have the same names in t…
mt82 Jan 16, 2024
bbce300
single values
mt82 Jan 16, 2024
ad5dc23
definition of a shape for ECAL endcap module
mt82 Jan 16, 2024
3a1198b
The endcap module volume now is filled with the ECAL active/passive l…
mt82 Jan 17, 2024
48e3dad
renaming of ec module volume name
mt82 Jan 17, 2024
df7fce3
number of barrel modules into config file
mt82 Jan 17, 2024
7af1196
the whole endcap is now constructed and placed on both side of the ba…
mt82 Jan 17, 2024
64411f0
Corrected Al_plate position.
AlessandroRuggeri Sep 17, 2024
4dc062b
Added dev option for the drift configuration.
AlessandroRuggeri Sep 20, 2024
89d2557
Slab index starts at 0 at the outer radius.
AlessandroRuggeri Sep 20, 2024
c40dbc3
Merge pull request #31 from DUNE/29-fix-potitioning-of-the-active-and…
AlessandroRuggeri Sep 20, 2024
dd1d222
Fixed horizontal section IDs and positioning
AlessandroRuggeri Sep 20, 2024
fd33e4e
Merge branch '18-implement-detailed-geometry-for-sand-ecal-endcaps' i…
AlessandroRuggeri Sep 20, 2024
7859fb5
Merge pull request #32 from DUNE/30-fix-potitioning-of-the-active-and…
AlessandroRuggeri Sep 20, 2024
40a5cec
Updated but buggy geometry
AlessandroRuggeri Dec 10, 2024
c8a0f19
Added develop configuration.
AlessandroRuggeri Dec 10, 2024
cbe44b1
no overlaps; volume for yoke endcaps are removed from ecal endcap vol…
mt82 Dec 11, 2024
4faf4fd
Merge remote-tracking branch 'origin/master' into 18-implement-detail…
mt82 Jan 20, 2025
b1d2963
indentaion fixed
mt82 Jan 20, 2025
d0e5f99
removed useless commented lines
mt82 Jan 20, 2025
49b84b3
tab removed, 4 spaces instead
mt82 Jan 20, 2025
dca26d9
removed useless comments
mt82 Jan 20, 2025
bac7415
update of changelog
mt82 Jan 20, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ Geometry releases will be tagged as `Descriptive_tag_v_X.Y.Z`.

- Bump gegede to version 0.8.0
- Define default geometries in Makefile instead of bash script
- Implementation of the C-shaped volumes of the SAND ECAL Endcaps

### Removed

Expand Down
46 changes: 33 additions & 13 deletions duneggd/Component/SandECalBarrelMod.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,44 +9,64 @@
class SandECalBarrelModBuilder(gegede.builder.Builder):
#^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^
def configure(self,
trapezoidDim=None,
ScintMat=None,
PasMat=None,
PasSlabThickness=None,
ActiveSlabThickness=None,
nSlabs=None,
**kwds):
trapezoidDim=None,
ScintMat=None,
PasMat=None,
PasSlabThickness=None,
ActiveSlabThickness=None,
nSlabs=None,
BackPlateThick=None,
**kwds):
self.trapezoidDim = trapezoidDim
self.ScintMat = ScintMat
self.PasMat = PasMat
self.PasSlabThickness = PasSlabThickness
self.ActiveSlabThickness = ActiveSlabThickness
self.nSlabs = nSlabs
self.BackPlateThick = BackPlateThick
#^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^
def construct(self, geom):

AlPlateThick = self.BackPlateThick

ECAL_shape = geom.shapes.Trapezoid('ECAL_shape',
dx1=self.trapezoidDim[0],
dx2=self.trapezoidDim[1],
dx2=self.trapezoidDim[1]+Q('0.33cm'),
dy1=self.trapezoidDim[2],
dy2=self.trapezoidDim[2],
dz=self.trapezoidDim[3])
dz=self.trapezoidDim[3]+AlPlateThick/2.)

ECAL_lv = geom.structure.Volume('ECAL_lv', material='Air', shape=ECAL_shape)
self.add_volume(ECAL_lv)
# ECAL_position = geom.structure.Position('ECAL_position', Position[0], Position[1], Position[2])
# ECAL_place = geom.structure.Placement('ECAL_place', volume = ECAL_lv, pos=ECAL_position)

######## Aluminum back plate##################

ECAL_Alplate_shape = geom.shapes.Box('ECAL_Alplate_shape',
dx = self.trapezoidDim[1],
dy = self.trapezoidDim[2],
dz = AlPlateThick/2.)

ECAL_Alplate_lv = geom.structure.Volume('ECAL_Alplate_lv', material = 'Aluminum',
shape = ECAL_Alplate_shape)

ECAL_Alplate_pos = geom.structure.Position('ECAL_Alplate_pos', Q('0cm'), Q('0cm'),
self.trapezoidDim[3])

ECAL_Alplate_place = geom.structure.Placement('ECAL_Alplate_place',
volume = ECAL_Alplate_lv, pos = ECAL_Alplate_pos)

ECAL_lv.placements.append(ECAL_Alplate_place.name)

for i in range(self.nSlabs): #nSlabs
#tan = math.tan(math.pi/self.Segmentation)
tan = 0.5*(self.trapezoidDim[1] - self.trapezoidDim[0])/self.trapezoidDim[3]
xposSlab=Q('0cm')
yposSlab=Q('0cm')
zposSlabActive = (-self.trapezoidDim[3] +
zposSlabActive = (-self.trapezoidDim[3]-AlPlateThick/2. +
(i+0.5)*self.ActiveSlabThickness +
i*self.PasSlabThickness)
#print("active slab position= "+ str(zposSlabActive))
zposSlabPassive = (-self.trapezoidDim[3] +
zposSlabPassive = (-self.trapezoidDim[3]-AlPlateThick/2. +
(i+1.)*self.ActiveSlabThickness +
(i+0.5)*self.PasSlabThickness)
#print("passive slab position= "+ str(zposSlabPassive))
Expand Down
Loading
Loading