Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
7 changes: 7 additions & 0 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,13 @@ jobs:
do
root "gdml2root.C(\"$F\", \"jsroot/${F%.gdml}.root\")"
done
- name: Add files to dropdown menu
run: |
for F in *.gdml
do
sed -i -e "s|<ROOTFILES>|${F%.gdml}.root;<ROOTFILES>|" jsroot/jsroot.htm
done
sed -i -e "s|;<ROOTFILES>||" jsroot/jsroot.htm
- name: Replace heading in html
run: |
sed -i -e "s|master|$GITHUB_REF_NAME|" jsroot/index.htm
Expand Down
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
# Changelog

All notable changes to this project will be documented in this file.
Expand All @@ -12,6 +12,7 @@

### Changed
- Removed the stale SAND tracker geometry options from the default `sandopt` list. Only the supported full STT, full Drift-Chamber and Initial STT geometries are now built.
- Updated TMS cassette ordering to the final design (50 X, 32 Y; 8×(X+Y) + 22×(X+X+Y))

## [v2025.08.11]

Expand Down
21 changes: 16 additions & 5 deletions duneggd/Config/TMS.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -15,15 +15,26 @@ BFieldDownHigh = '(0.0 T, 1.0 T, 0 T)'

Module_layers_thin=34
Module_layers_thick=22
Module_layers_double=25
Module_layers_double=25

# c,d geometries
thin_horizontal = [1, 4, 7, 14, 21, 28]
thick_horizontal = [0, 7, 14,21]
double_horizontal = [6, 13,20,24]
#Default, orhogonal design, 8*(X+Y) + 22*(X+X+Y) cassettes.
thin_horizontal = [1,3,5,7,9,11,13,15,18,21,24,27,30,33]
Comment thread
AsaNehm marked this conversation as resolved.
thick_horizontal = [1,4,7,10,13,16,19]
double_horizontal = [0,3,6,9,12,15,18,21,24]
thin_vertical = [2, 4, 6, 8, 10, 12, 14, 16, 17, 19, 20, 22, 23, 25, 26, 28, 29, 31, 32, 34] #vertical bars
thick_vertical = [0, 2, 3, 5, 6, 8, 9, 11, 12, 14, 15, 17, 18, 20, 21]
double_vertical = [1, 2, 4, 5, 7, 8, 10, 11, 13, 14, 16, 17, 19, 20, 22, 23]

# PDR test c,d geometries
#thin_horizontal = [1, 4, 7, 14, 21, 28]
#thick_horizontal = [0, 7, 14,21]
#double_horizontal = [6, 13,20,24]
thin_U = [2, 5, 8, 10, 12, 15, 17, 19, 22, 24, 26, 29, 31, 33]
thick_U = [1, 3, 5, 8, 10, 12, 15, 17, 19]
double_U = [0, 2, 4, 7, 9, 11, 14, 16, 18,21,23]
thin_V = [3, 6, 9, 11, 13, 16, 18, 20, 23, 25, 27, 30, 32, 34]
thick_V = [2, 4, 6, 9, 11, 13, 16, 18, 20]
double_V = [1, 3, 5, 8, 10, 12, 15, 17,19, 22]



26 changes: 12 additions & 14 deletions duneggd/SubDetector/TMS.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
from gegede import Quantity as Q
global Pos
class tmsBuilder(gegede.builder.Builder):
def configure(self, mat=None, thinbox1Dimension=None, gapPosition=None, BFieldUpLow = None, BFieldUpHigh = None, BFieldDownLow = None , BFieldDownHigh = None, thin_horizontal=None, thick_horizontal=None, double_horizontal=None, thin_U=None, thick_U=None, double_U=None, thin_V=None, thick_V=None, double_V=None, **kwds):
def configure(self, mat=None, thinbox1Dimension=None, gapPosition=None, BFieldUpLow = None, BFieldUpHigh = None, BFieldDownLow = None , BFieldDownHigh = None, thin_horizontal=None, thick_horizontal=None, double_horizontal=None, thin_U=None, thick_U=None, double_U=None, thin_V=None, thick_V=None, double_V=None, thin_vertical=None, thick_vertical=None, double_vertical=None, **kwds):
self.BFieldUpLow = BFieldUpLow
self.BFieldUpHigh = BFieldUpHigh
self.BFieldDownLow = BFieldDownLow
Expand All @@ -21,15 +21,18 @@ def configure(self, mat=None, thinbox1Dimension=None, gapPosition=None, BFieldUp
self.thin_V = thin_V
self.thick_V = thick_V
self.double_V = double_V
self.thin_vertical = thin_vertical
self.thick_vertical = thick_vertical
self.double_vertical = double_vertical



def construct(self, geom):

six_width = False #6m
hybrid = False #6m, 4.2c, UVX set by rules in TMS.cfg
XY = False #6m, 4.2d, XY UVX set by rules in TMS.cfg
PDR_3_2b = True #7m, 3.2b, UVXUVXUVX...
six_width = False #6m wide configuration
hybrid = False # 4.2c (stereo): double scintillator layers (U,V) placed, before the first steel plate and subsequently according to TMS.cfg rules
XY = True # 4.2d (orthogonal): double scintillator layers (X,Y) placed, before the first steel plate and subsequently according to TMS.cfg rules
PDR_3_2b = False # 7 m configuration, PDR 3.2b: repeating UVX pattern (UVXUVXUVX...)


#Make Boxes for steel and logical volumes
Expand Down Expand Up @@ -560,6 +563,7 @@ def construct(self, geom):

tms_lv.placements.append(thin_Modlayer_pla_first[module].name)
elif XY:
# Very first layer consist of Y X before the first steel plate to improve matching performace.
thinModlayer_pos_first = [geom.structure.Position('q')]*(Module_layers_thin+1)
thin_Modlayer_pla_first = [geom.structure.Placement('r',volume=Module_layer_lv4,pos=thinModlayer_pos[1])]*(Module_layers_thin+1)
zpos = -Q("3.650m") -Q("0.0325m") -Q("0.065m") # first layer of thin steel - half plane thickness + plane thickness
Expand All @@ -580,9 +584,7 @@ def construct(self, geom):
#4_2d
if module in self.thin_horizontal:
thin_Modlayer_pla_first[module] = geom.structure.Placement( 'thinModlayerpla'+self.name+str(module), volume=Module_layer_lv3, pos=thinModlayer_pos_first[module] )#x
if module in self.thin_U:
thin_Modlayer_pla_first[module] = geom.structure.Placement( 'thinModlayerpla'+self.name+str(module), volume=Module_layer_lv4, pos=thinModlayer_pos_first[module] )#y
if module in self.thin_V:
if module in self.thin_vertical:
thin_Modlayer_pla_first[module] = geom.structure.Placement( 'thinModlayerpla'+self.name+str(module), volume=Module_layer_lv4, pos=thinModlayer_pos_first[module] )#y

tms_lv.placements.append(thin_Modlayer_pla_first[module].name)
Expand Down Expand Up @@ -630,9 +632,7 @@ def construct(self, geom):
#4_2d
if module in self.thick_horizontal:
thick_Modlayer_pla[module] = geom.structure.Placement( 'thickModlayerpla'+self.name+str(module), volume=Module_layer_lv3, pos=thickModlayer_pos[module] )#x
if module in self.thick_U:
thick_Modlayer_pla[module] = geom.structure.Placement( 'thickModlayerpla'+self.name+str(module), volume=Module_layer_lv4, pos=thickModlayer_pos[module] )
if module in self.thick_V:
if module in self.thick_vertical:
thick_Modlayer_pla[module] = geom.structure.Placement( 'thickModlayerpla'+self.name+str(module), volume=Module_layer_lv4, pos=thickModlayer_pos[module] )
elif PDR_3_2b:
#3_2b
Expand Down Expand Up @@ -670,9 +670,7 @@ def construct(self, geom):
#XY version (XY)
if module in self.double_horizontal:
double_Modlayer_pla[module] = geom.structure.Placement( 'doubleModlayerpla'+self.name+str(module), volume=Module_layer_lv3, pos=doubleModlayer_pos[module] )
if module in self.double_U:
double_Modlayer_pla[module] = geom.structure.Placement( 'doubleModlayerpla'+self.name+str(module), volume=Module_layer_lv4, pos=doubleModlayer_pos[module] )
if module in self.double_V:
if module in self.double_vertical:
double_Modlayer_pla[module] = geom.structure.Placement( 'doubleModlayerpla'+self.name+str(module), volume=Module_layer_lv4, pos=doubleModlayer_pos[module] )
elif PDR_3_2b:
#UVX
Expand Down
2 changes: 1 addition & 1 deletion jsroot/jsroot.htm
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
</style>
</head>
<body>
<div id="simpleGUI" path="./" files="nd_hall_with_lar_tms_sand.root;anti_fiducial_nd_hall_with_lar_tms_sand.root">
<div id="simpleGUI" path="./" files="<ROOTFILES>">
loading scripts ...
</div>
<script type="module">
Expand Down