Last version:
FLUKA 2023.3.4, April 10th 2024
(last respin 2023.3.4)
flair-2.3-0d 13-Sep-2023

News:

-- Fluka Release
( 10.04.2024 )

FLUKA 2023.3.4 has been released.


font_small font_med font_big print_ascii

 [ 1 ]  [ 2 ]  [ 3 ]  [ 4 ]  [ 5 ]  [ 6 ]  [ 7 ]  [ 8 ]  [ 9 ]  [ 10 ]  [ back ] 




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:

lead block
  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
* lead block
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

Informativa cookies