Last version:
FLUKA 2023.3.3, January 31st 2024
(last respin 2023.3.3)
flair-2.3-0d 13-Sep-2023

News:

-- Fluka Release
( 31.01.2024 )

FLUKA 2023.3.3 has been released.
Next FLUKA Course
The 23rd FLUKA course
will be held at the Lanzhou University, China, on June 1-8, 2024

A) Building one module with trapezoid shape.
```
1. WORK WITH 1 module with RECTANGULAR shape.

1.1 Almost all parts of this geometry are the same (as were develped
for single module with rectangular shape), structure of lattices, and base cell in
rectangular part, (more informations you can find in [2] and [9]
positions in bibliography).

Modification was based on shifting a lattices 1,3,5,7,.....(odd numbers) on x axis on
0.135/2.0 cm in geometry file in order to produce the following
structure of fibers:

o o o o o
o o o o o
o o o o o

z
/\
|
|
-------> x

2. Description:

2.1 Implementation a new base cell with:

RPP  774 0.520350000000000E+02 0.521700000000000E+02-0.215000000000000E+03
0.215000000000000E+03 0.105376086559900E+01 0.117067429511000E+01

one glue cylinder
* bdjj glue
YCC  775 1.112217580350000E+00 0.521025000000000E+02 0.550000000000000E-01
one fiber cylinder
*  bdjj  fiber
YCC  776 1.112217580350000E+00 0.521025000000000E+02 0.500000000000000E-01

These cylinders were located in the triangle areas:
22.....3 2 1                1 2 3 4 ..... 22
*   -------------------------------
*    ooooo|                 |ooooo
*      oooo|                 |oooo
*      ooo|                 |ooo
*        oo|                 |oo
*        o|                 |X
*          |                 |
*          -------------------
*
*
* X - base cell which was replicated
* o - new lattices = 199 - 9 = 190
*

New lattices are situated in 22 columns on the left side of old rectangular part
and the same 22 columns for the right side (one box = a new base cell).

****************************************************************************
*             new lattices on the right and left side			   *
****************************************************************************
*
*     777  lattice     10      lattice right side column 1
RPP  777 0.519675000000000E+02 0.521025000000000E+02-0.215000000000000E+03
0.215000000000000E+03 0.117067429511000E+01 0.128758772462100E+01
.
.
.
.
.
.
*    5020  lattice     198     lattice left side column 22
RPP 5020-0.297750000000000E+01-0.284250000000000E+01-0.215000000000000E+03
0.215000000000000E+03 0.231503990431781E+02 0.232673124726891E+02
*    5021  lattice     199     lattice left side column 22
RPP 5021-0.291000000000000E+01-0.277500000000000E+01-0.215000000000000E+03
0.215000000000000E+03 0.232673124726891E+02 0.233842259022001E+02
*
*
* Each lattice is declared as a region.
*

***************************************************************************
****** Old 199 lattices in rectangular shape - modificated - new coordinates.
*
*
*     5022  lattice     1
RPP 5022 0.600000000000000E-01 0.520350000000000E+02-0.215000000000000E+03
0.215000000000000E+03 0.118453429511000E+00 0.235366859022000E+00
.
.
.
.
.
*     5220  lattice     199
RPP 5220 0.600000000000000E-01 0.520350000000000E+02-0.215000000000000E+03
0.215000000000000E+03 0.232673124726891E+02 0.233842259022001E+02
*
*

2.2. Input file:

* Declared all new numbers of the regions with material
* We are using GLOBAL card:
GLOBAL    5000.0

*------------ new modyficated code by JJ ---------------------------*
*
*----- old fibers regions
*
ASSIGNMAT   23.0    6.0       390.0               1.0
*
*----- old glue region
*
ASSIGNMAT   31.0    391.0                         1.0
*
*----- old vacuum region
*
ASSIGNMAT   2.0     392.0
*
*----- old lattices
*
ASSIGNMAT   24.     393.0     591.0               1.0
*
*--- new parts for trapesoidal areas ----------------------------------*
*
ASSIGNMAT   24.     592.0     4836.0              1.0
ASSIGNMAT   22.0    3.0                           1.0
*  775 - glue
ASSIGNMAT   31.0    5.0                           1.0
*  776 - fiber
ASSIGNMAT   23.0    4.0                           1.0
*
*--------------------------------------------------------------*

For a new lattice areas was not needing to declare a materials.

2.3. mgdraw.f routine:

- Declarations a lfibra variable tru for all regions with fibers,
- One fiber is contained in 1 region.

2.4 lattic.f routine:

- For the old part is the same,
- For the new part is based on using IF conditions.

------------- For example:

*  First column on the right (899  + 189  = 1088)
*  not + 190 (because the first is a base cell)
*
IF (IRLTGG.GT.(898).AND.IRLTGG.LT.(1089)) THEN
IF(MOD((IRLTGG),2).EQ.0) THEN
SB (1) = XB (1)
ELSE
SB (1) = XB (1) + 0.135D+00/TWOTWO
ENDIF
SB (2) = XB (2)
SB (3) = XB (3)-1.169134295110000D-01*(1+IRLTGG-899)
UB (1) = WB (1)
UB (2) = WB (2)
UB (3) = WB (3)

END IF

*
*  Second column on the right (1089 + 181  = 1270)
*
IF (IRLTGG.GT.(1088).AND.IRLTGG.LT.(1271)) THEN
IF(MOD((IRLTGG),2).EQ.0) THEN
SB (1) = XB (1) - 0.135D+00
ELSE
SB (1) = XB (1) + 0.135D+00/TWOTWO - 0.135D+00
ENDIF
SB (2) = XB (2)
SB (3) = XB (3)-1.169134295110000D-01 * (9+IRLTGG - 1089)
UB (1) = WB (1)
UB (2) = WB (2)
UB (3) = WB (3)

END IF

-------------------

2.5 Some details:

TOTAL NUMBER of regions: 4836
TOTAL NUMBER of  bodies: 5220

NUMBER of lines in geometry file: 21230
```
B) Lattice replication for 24 modules.
```
Below is presented the source code of the lattice transformation
routine, which build in fly the whole barrel calorimeter geometry,
this is the heart of the whole simulation which allows to build barrel calorimeter geometry in FLUKA simulation.

*=== lattic ===========================================================*
*
SUBROUTINE LATTIC (XB, WB, DIST, SB, UB, IR, IRLTGG, IFLAG)

INCLUDE '(DBLPRC)'
INCLUDE '(DIMPAR)'
INCLUDE '(IOUNIT)'
INCLUDE '(RTGMMV)'

c      INCLUDE '(GLTLOC)'

*----------------------------------------------------------------------*
*     LATTIC: user written routine which must return the tracking point
*     and direction ( SB, UB ) corresponding to region number IR, cell
*     number IRLTGG and real position/direction XB, WB
*
*     Created on 16 December 1993  by    Alfredo Ferrari & Paola Sala
*                                                   Infn - Milan
*
*     Last change on 26-may-98     by    Alfredo Ferrari
*----------------------------------------------------------------------*

DIMENSION XB (3), WB (3), SB (3), UB (3), UN (3)

DOUBLE PRECISION UNN(3),UBB(3)
include 'kloecal.inc'

LOGICAL LFIRST
DATA LFIRST /.TRUE./

IF (LFIRST) THEN
LFIRST = .FALSE.
ENDIF

c  rewritting to variable which we can modificate
c  X,W - where particle hit
c  S,U - response in the lattice cell

KMOD=0

SB(1)=XB(1)
SB(2)=XB(2)
SB(3)=XB(3)

UB(1)=WB(1)
UB(2)=WB(2)
UB(3)=WB(3)

IF(IRLTGG.lt.1.or.IRLTGG.gt.4822) THEN
WRITE (LUNOUT,*)' NON-EXISTENT LATTICE: ',IRLTGG

c rotation of 23 trapesoids to tha base trapesoid

ELSEIF (IRLTGG.GE.4800.and.IRLTGG.LE.4822) THEN
XRT    =  SB(1)-XO
YRT    =  SB(2)-YO
ZRT    =  SB(3)-ZO
THETA  =  -TWOTWO*PIPIPI/24.0D0*(IRLTGG-4799)

CALL ROTATE(SB(1),SB(2),SB(3),XRT,YRT,ZRT,THETA)
SB(1)=SB(1)+XO
SB(2)=SB(2)+YO
SB(3)=SB(3)+ZO
CALL ROTATE(UBB(1),UBB(2),UBB(3),UB(1),UB(2),UB(3),THETA)
DO i=1,3
UB(i) = UBB(i)
ENDDO

c transformation from 199 lattices into trapes 1

ELSEIF (IRLTGG.GE.1.AND.IRLTGG.LE.199) THEN
IF(MOD((IRLTGG),2).EQ.0) THEN
SB (1) = SB (1)
ELSE
SB (1) = SB (1) - 0.135D+00/TWOTWO
ENDIF

SB (3) = SB (3) - 1.169134295110000D-01 * IRLTGG
c
c --------------------------------------------------
c transformation of the 200 layers for 2 - 24 trapesoids objects
c
* in which trapesoid I am
* KMOD from 2 to the 24, but rotation for 1 - 23
* KLAYER - layer number in each trapesoid 1-200
c

ELSEIF (IRLTGG.GE.200.AND.IRLTGG.LE.4799) THEN
KMOD   = (IRLTGG - 200)/200 + 1 + 1
THETA  = -TWOTWO*PIPIPI/24.0D0*(KMOD - 1)
KLAYER = IRLTGG - 200 * (KMOD-1) + 1
XRT=SB(1)-XO
YRT=SB(2)-YO
ZRT=SB(3)-ZO
CALL ROTATE(SB(1),SB(2),SB(3),XRT,YRT,ZRT,THETA)
SB(1)=SB(1)+XO
SB(2)=SB(2)+YO
SB(3)=SB(3)+ZO
CALL ROTATE(UBB(1),UBB(2),UBB(3),UB(1),UB(2),UB(3),THETA)
DO i=1,3
UB(i) = UBB(i)
ENDDO

IF(MOD((KLAYER),2).EQ.0) THEN
SB (1) = SB (1) - 0.135D+00/TWOTWO
ENDIF

*
* first layer without transformation because it is on the base cell level
*
*
SB (3) = SB (3) - 1.169134295110000D-01 * (KLAYER-1)
ENDIF

RETURN

*=== lantor =======================================================*

ENTRY LATNOR ( UN, IRLTNO )
*
*--------------------------------------------------------------------*
*   LATtice cell NORmal transformation:
*
*   Input variables:  un(i) = normal components in the tracking re-
*                               ference system
*                     irltno = present lattice cell \#
*   Output variables:  un(i) = normal components in the problem re-
*                                ference system
*--------------------------------------------------------------------*
*
c rotation of the 23 trapesoids

IF (IRLTNO.GE.4800.and.IRLTNO.LE.4822) THEN
THETA=+TWOTWO*PIPIPI/24.0D0*(IRLTNO-4799)

CALL ROTATE(UNN(1),UNN(2),UNN(3),UN(1),UN(2),UN(3),THETA)
DO I=1,3
UN(I)=UNN(I)
ENDDO

c for the 199 lattices in trapesoid-1

ELSEIF (IRLTNO.GE.1.AND.IRLTNO.LE.199) THEN

c for the 1 - 200 layers in trapesoids number 2 - 24

ELSEIF (IRLTNO.GE.200.and.IRLTNO.LE.4799) THEN
KMOD   = (IRLTNO - 200)/200 + 1 + 1
THETA  = +TWOTWO*PIPIPI/24.0D0*(KMOD - 1)

CALL ROTATE(UNN(1),UNN(2),UNN(3),UN(1),UN(2),UN(3),THETA)
DO I=1,3
UN(I)=UNN(I)
ENDDO
ENDIF

RETURN
*=== End of subroutine lattic =======================================*

END

*--------------------------------------------------------------------

SUBROUTINE ROTATE(XOUT,YOUT,ZOUT,XIN,YIN,ZIN,THETA)
DOUBLE PRECISION XIN,YIN,ZIN
DOUBLE PRECISION XOUT,YOUT,ZOUT
DOUBLE PRECISION THETA

XOUT = COS(THETA)*XIN+SIN(THETA)*ZIN
YOUT = YIN
ZOUT = -SIN(THETA)*XIN+COS(THETA)*ZIN
END

c===================================================================
c===================================================================

```

Giuseppe Battistoni; INFN, Milano
Jaroslaw Zdebik; UJ, Cracow

Last updated: 26th of October, 2010

© FLUKA Team 2000–2024