1 | !The Polymorphic Tracking Code |
---|
2 | !Copyright (C) Etienne Forest and CERN |
---|
3 | |
---|
4 | TYPE AFFINE_FRAME |
---|
5 | REAL(DP), POINTER,DIMENSION(:) :: ANGLE(:) |
---|
6 | REAL(DP), POINTER,DIMENSION(:) :: D(:) |
---|
7 | REAL(DP), POINTER,DIMENSION(:) :: A |
---|
8 | REAL(DP), POINTER,DIMENSION(:,:):: ENT |
---|
9 | REAL(DP), POINTER,DIMENSION(:) :: B |
---|
10 | REAL(DP), POINTER,DIMENSION(:,:):: EXI |
---|
11 | END TYPE AFFINE_FRAME |
---|
12 | |
---|
13 | |
---|
14 | TYPE MAGNET_FRAME |
---|
15 | REAL(DP), POINTER,DIMENSION(:) :: A |
---|
16 | REAL(DP), POINTER,DIMENSION(:,:):: ENT |
---|
17 | REAL(DP), POINTER,DIMENSION(:) :: O |
---|
18 | REAL(DP), POINTER,DIMENSION(:,:):: MID |
---|
19 | REAL(DP), POINTER,DIMENSION(:) :: B |
---|
20 | REAL(DP), POINTER,DIMENSION(:,:):: EXI |
---|
21 | END TYPE MAGNET_FRAME |
---|
22 | |
---|
23 | TYPE PATCH |
---|
24 | INTEGER(2), POINTER:: PATCH ! IF TRUE, SPACIAL PATCHES NEEDED |
---|
25 | INTEGER, POINTER :: A_X1,A_X2 ! FOR ROTATION OF PI AT ENTRANCE = -1, DEFAULT = 1 , |
---|
26 | INTEGER, POINTER :: B_X1,B_X2 ! FOR ROTATION OF PI AT EXIT = -1 , DEFAULT = 1 |
---|
27 | REAL(DP),DIMENSION(:), POINTER:: A_D,B_D !ENTRACE AND EXIT TRANSLATIONS A_D(3) |
---|
28 | REAL(DP),DIMENSION(:), POINTER:: A_ANG,B_ANG !ENTRACE AND EXIT ROTATIONS A_ANG(3) |
---|
29 | INTEGER(2), POINTER:: ENERGY ! IF TRUE, ENERGY PATCHES NEEDED |
---|
30 | INTEGER(2), POINTER:: TIME ! IF TRUE, TIME PATCHES NEEDED |
---|
31 | REAL(DP), POINTER:: A_T,B_T ! TIME SHIFT NEEDED SOMETIMES WHEN RELATIVE TIME IS USED |
---|
32 | END TYPE PATCH |
---|
33 | |
---|
34 | TYPE CHART |
---|
35 | type(magnet_frame), pointer :: f |
---|
36 | ! FIBRE MISALIGNMENTS |
---|
37 | real(dp),dimension(:), POINTER:: D_IN,ANG_IN |
---|
38 | real(dp),dimension(:), POINTER:: D_OUT,ANG_OUT |
---|
39 | END TYPE CHART |
---|