Fundamental Technologies

Voyager LECP Pages

An Analysis of the Performance of the Magnetic Deflection System in the Voyager Low Energy Charged Particle Experiment

by Sheela Shodhan

E.11 TRAJ2PT

****************************************************************************
*                       PROGRAM TRAJ1PHI                                   *
* PURPOSE : THIS IS THE MAIN PROGRAM IN A SET OF ROUTINES TO FOLLOW  THE   *
*           PARTICLE TRAJECTORIES INSIDE THE SENSOR SUBSYSTEM, IDENTIFY THE*
*           IMPACT ON SURFACES AND COUNT THOSE THAT ESCAPE THE SENSOR SUB  *
*          -SYSTEM.                                                        *
* ROUTINES TO BE LINKED : TRAJ2PT,CHECHITSEN1,FDMOD1,TIMER,TRACKSUB1,      *
*           TRAJRT2BDET                                                    *
* DESCRIPTION :(1)TRAJ2PT:THIS IS THE MAIN ROUTINE MAINLY USED TO PLOT THE *
*           PARTICLE TRAJECTORIES INSIDE THE SENSOR SUBSYSTEM. IT LOOPS    *
*           OVER THE USER SPECIFIED POLAR ANGLE (THETA) AND THE AZIMUTHAL  *
*           ANGLE (PHI).                                                   *
* FOR DETAILED EXPLANATIONS, PLEASE SEE THE COMMENTS IN THE ROUTINES THEMSE*
* -LVES.                                                                   *
*         (2)CHECHITSEN1:THIS CONTAINS THE SET OF ROUTINES TO DETERMINE WHE*
*           -THER THE LINE-SEGMENT HAS HIT ANY OF THE POLYGON SURFACES OF  *
*           THE SENSOR OR NOT.                                             *
*         (3)FDMOD1:CALCULATES THE MAGNETIC FIELD AT THE GIVEN POINT IN SPA*
*           -CE.                                                           *
*         (4)TIMER:SHORT ROUTINE TO DETERMINE THE C.P.U. TIME REQUIRED TO  *
*           RUN THIS PROGRAM.                                              *
*         (5)TRACKSUB1:CONTAINS A SET OF ROUTINES TO PERFORM VARIOUS TASKS.*
*         (6)TRAJRT2BDET:CONTAINS THE DIFFERENTIAL EQUATION SOLVER DHPCG   *
*           AND A SET OF ROUTINES THAT ARE NEEDED BY IT.                   *
* VARIABLES :                                                              *
* INPUT :                                                                  *
* X0,Y0,Z0 : INITIAL POSITION OF THE PARTICLE (* 10**2 INCHES).            *
* EK : INCIDENT ELECTRON ENERGY (MEV).                                     *
* NPHI,NTHETA : THE NUMBER OF PHIs AND THETAs TO BE SCANNED.               *
* PHIMIN : THE MINIMUM AZIMUTHAL ANGLE AT WHICH SCANNING STARTS(DEGREES).  *
* PRMT : 1-D ARRAY THAT IS TO BE PASSED TO THE ROUTINE DHPCG               *
*        (1) INITIAL TIME, (2) FINAL TIME, (3)TIME STEP, (4) ERROR BOUND.  *
*        (* 10**-8 SECONDS).                                               *
* STEPHI,STEPTHETA : INTERVALS AT WHICH AZIMUTHAL AND POLAR ANGLES ARE SCAN*
*                   -NED RESPECTIVELY (DEGREES).                           *
* THETAMIN : (DEGREES)MINIMUM POLAR ANGLE AT WHICH THETAs ARE SCANNED.     *
* OUTPUT:                                                                  *
* NPAS : NUMBER OF PARTICLES THAT PASS THE SENSOR SUBSYSTEM.               *
* *.E* : FILE THAT RECORDS THE ANGLES AT THE DETECTOR,AND ANGLES,POSITIONS *
*      AND VELOCITIES AT THE APERTURE, OF THE ESCAPING TRAJECTORIES.       *
* *.E*IN, *.E*OUT, *.E*OUTVEL : FILES OF ANGLES AT THE DETECTOR,APERTURE   *
*      AND ANGLES COMPUTED FROM Vx,Vy and Vz AT THE APERTURE RESPECTIVELY. *
* *.E*** : FILE FOR EACH PARTICLE CONTAINING ITS POSITION COORDINATES AT   *
*        EVERY POINT IN THE TRAJECTORY. THIS FILE CAN BE USED TO PLOT THE  *
*        TRAJECTORY OF THE PARTICLE INSIDE THE SENSOR SUBSYSTEM.           *
* OTHERS:                                                                  *
* NHIT : INDICATES WHETHER THE PARTICLE IS LOST OR NOT-THETAs ARE SCANNED  *
*       UNITL THE PARTICLE ESCAPES FROM THE SENSOR SUBSYSTEM (NHIT=2).     *
* PAS : 1-D ARRAY, (1)-(4)POLAR & AZIMUTHAL ANGLES AT THE DETECTOR AND AT  *
*      THE APERTURE,(5)-(10) x,y,z,Vx,Vy,Vz OF THE ESCAPING PARTICLE.      *
* QMC : q/mc CONSTANT (C.G.S. UNITS).                                      *
* QMCP : QMC * sqrt(1 - (v/c)^2) TO TAKE CARE OF THE RELATIVITIC MASS.     *
* PHI,THETA : INITIAL AZIMUTHAL AND POLAR ANGLE AT THE DETECTOR SURFACE.   *
* V : VELOCITY OF THE PARTICLE FOR GIVEN ENERGY EK.                        *
* Y : 1-D ARRAY TO BE PASSSED TO THE ROUTINE DHPCG                         *
*    (1)-(3) POSITION COORDINATES, (4)-(6) VELOCITY COMPONENTS.            *
* PLEASE NOTE : (1)ROUTINES TRACKSUB1 AND TRACKSUB5 ARE BASICALLY THE SAME *
* EXCEPT THAT THE SUBROUTINE 'PASSOUTPUT' IN TRACKSUB5 INCLUDES PASS5.CMN  *
* WHILST 'PASSOUTPUT' IN TRACKSUB1 INCLUDES PASS.CMN. BESIDES, 'PASSOUTPUT'*
* IN TRACKSUB5 ALSO WRITES IN THE FILE *.E*OUTVEL, POLAR ANGLES AND AZIMUTH*
* AL ANGLES AT THE APERTURE OF THE ESCAPING PARTICLE CALULATED FROM THE VEL*
* -OCITY COMPONENTS Vx,Vy AND Vz OF THE PARTICLE.                          *
* THE DIFFERENCE BETWEEN PASS5.CMN AND PASS.CMN IS THAT IN THE FORMER THE  *
* DIMENSION OF THE ARRAY 'PAS' IS MUCH LARGER.                             *
* (2)DIFFERENCES BETWEEN TRAJRT2BDET AND TRAJRT2BDET5 ARE:                 *
* AT EVERY FEW STEPS OF THE TRAJECTORY, FORMER WRITES THE POSITION COORDINA*
* -TES IN THE FILE *.E***, SO THAT THE TRAJECTORY CAN BE PLOTTED.          *
* FORMER INCLUDES DIFFERENTIAL EQUATION SOLVER DHPCG WHILE THE LATTER DOES *
* NOT. FORMER WRITES THE POSITION AND VELOCITY COMPONENTS AT EVERY FEW STEP*
* -S IN A FILE 'TRAJSH.DAT' WHILE THE LATTER DOES NOT. LATTER ALSO COMPUTES*
* THE OUTGOING ANGLES FROM THE VELOCITY COMPONENTS OF THE PARTICLE AS IT   *
* ESCAPES THE APERTURE, THE FORMER DOES NOT. TRAJRT2BDET INCLUDES FILE     *
* 'PASS.CMN' WHILE TRAJRT2BDET5 INCLUDES FILE 'PASS5.CMN'.                 *
* (3) THUS, TRAJ2PT IS MAINLY SUITED FOR PLOTTING THE TRAJECTORIES OF THE  *
* PARTICLES AND FOR SHORT SCANS OVER THE ANGLES WHILST TRAJ6PT IS FOR LONG *
* SCANS, TO COUNT THE NUMBER OF PARTICLES THAT PASS IN ORDER TO COMPUTE THE*
* GEOMETRIC FACTOR FOR VARIOUS ENERGIES.                                   *
****************************************************************************
 
      PROGRAM TRAJ1PHI
      IMPLICIT NONE
      CHARACTER*72 FNAME,FNAME1,FNAME2,FNAME3
      INTEGER I,I1,IHLF,J,MAXE,NCOUNT,NDIM,NHIT,NPHI,NTHETA,NU
      INTEGER NXK,NYK,NZK
      PARAMETER (MAXE=100)
      REAL*8 C,CON,ERRWT
      PARAMETER (CON=2.540005D0,NDIM=6)
      REAL*8 STEPHI,STEPTHETA,EK,ENEK,PHIMIN,EVELO,PHI(MAXE),
     & QMC,QMCP,
     & THETA(MAXE),THETAMIN,V,VX,VY,VZ
      REAL*8 AUX(16,NDIM),DERY(NDIM),PRMT(5),X0,Y(NDIM),Y0,Z0
      REAL CPUTIME,TIMER,ZTIM0
      INCLUDE 'PASS.CMN'
      COMMON /QMC/QMC
      COMMON /NCOUNT/NCOUNT,/NU/NU,/FNAME/FNAME,/NHIT/NHIT
      COMMON /FNAME1/FNAME1
      COMMON /FNAME2/FNAME2,FNAME3
      DATA C/2.998D0/,QMCP/0.175602D0/
      EXTERNAL FCT,OUTP
      ZTIM0=TIMER()
      
      CALL GEOM    
    
      OPEN(UNIT=7,FILE='TRAJSH.DAT',ACCESS='SEQUENTIAL',STATUS='NEW')
      WRITE(6,*) 'ENTER THE INITIAL COORDINATES OF THE e IN INCHES'
      READ(5,*) X0,Y0,Z0
C     TO ENTER QUANTITIES FOR PRMT
      WRITE(6,*) 'ENTER LOWER BOUND ON TIME (t=0)'
      READ(5,*) PRMT(1)
      WRITE(6,*) 'ENTER THE UPPER BOUND ON TIME'
      READ(5,*) PRMT(2)
      WRITE(6,*) 'ENTER THE TIME STEP'
      READ(5,*) PRMT(3)
      WRITE(6,*) 'ENTER THE ERROR BOUND'
      READ(5,*) PRMT(4)
   
      WRITE(6,*) 'ENTER THE ENERGY OF THE PARTICLE IN MEV'
      READ(5,*) EK
      ENEK=IDINT(1000.0D0*EK)  
      NXK=IDINT(-100000.0D0*X0)
      NYK=IDINT(-100000.0D0*Y0)
      NZK=IDINT(100000.0D0*Z0)
      ENCODE (17,60,FNAME1)NXK,NYK,NZK,IDINT(ENEK)
      OPEN(UNIT=8,STATUS='NEW',ACCESS='SEQUENTIAL',FILE=FNAME1)
      ENCODE (19,110,FNAME2)NXK,NYK,NZK,IDINT(ENEK)
      OPEN(UNIT=1,STATUS='NEW',ACCESS='SEQUENTIAL',FILE=FNAME2)
      ENCODE (20,120,FNAME3)NXK,NYK,NZK,IDINT(ENEK)
      OPEN(UNIT=2,STATUS='NEW',ACCESS='SEQUENTIAL',FILE=FNAME3)
      V = EVELO(EK)          !COMPUTE V FOR THIS ENERGY OF e
      QMC = -QMCP*DSQRT(1 - (V/C)**2)  
      WRITE (6,*) 'ENTER MIN. THETA,NO. OF STEPS,DEL THETA'
      READ (5,*) THETAMIN,NTHETA,STEPTHETA
      WRITE (6,*) 'ENTER MIN. PHI,NO. OF STEPS,DEL PHI'
      READ (5,*) PHIMIN,NPHI,STEPHI
      WRITE (8,70) EK,V
      WRITE (8,80) THETAMIN,NTHETA,STEPTHETA
      WRITE (8,90) PHIMIN,NPHI,STEPHI
      WRITE (8,20) PRMT(1),PRMT(2),PRMT(3),PRMT(4)
      WRITE (8,*)
      WRITE (8,95) X0,Y0,Z0
      WRITE (1,130) 
      WRITE (2,140)
C     TO CONVERT FROM INCHES TO CMS. 
      X0 = X0 * CON
      Y0 = Y0 * CON
      Z0 = Z0 * CON
      WRITE (8,100) X0,Y0,Z0
      WRITE (8,*)
      DO I=1,NTHETA
       THETA(I)=THETAMIN + DFLOAT(I-1)*STEPTHETA
      END DO
      DO I=1,NPHI
       PHI(I)=PHIMIN + DFLOAT(I-1)*STEPHI
      END DO
 
      NPAS=0 
      DO J=1,NTHETA
       DO I=1,NPHI
        ENCODE (23,50,FNAME)NXK,NYK,NZK,IDINT(ENEK),
     &                          IDINT(THETA(J)),IDINT(PHI(I))
        OPEN(UNIT=4,STATUS='NEW',ACCESS='SEQUENTIAL',FILE=FNAME)
        NCOUNT = 0        
        NU = 1
        WRITE(7,05) I
        WRITE(7,10) EK,V,THETA(J),PHI(I)
        WRITE(7,20) PRMT(1),PRMT(2),PRMT(3),PRMT(4)
        WRITE(7,30)
        WRITE(4,05) I
C       TO COMPUTE THE VELOCITY PROJECTIONS Vx,Vy,Vz
        CALL VELOPROJ(V,VX,VY,VZ,THETA(J),PHI(I))
   
        WRITE(6,*) ' THETA( ',J,')',THETA(J),' PHI( ',I,')',PHI(I)
C       TO INITIALISE THE INITIAL VALUES 
        Y(1) = X0
        Y(2) = Y0
        Y(3) = Z0
        Y(4) = VX
        Y(5) = VY
        Y(6) = VZ
        ERRWT = 1.0D0/6.0D0
        DO I1=1,NDIM
         DERY(I1) = ERRWT
        END DO
 
        CALL DHPCG(PRMT,Y,DERY,NDIM,IHLF,FCT,OUTP,AUX)
        IF (NHIT .EQ. 2) THEN
         PAS(NPAS,1) = THETA(J)
         PAS(NPAS,2) = PHI(I)
        END IF
        WRITE(7,40)
        WRITE(4,40)
        WRITE(6,*) 
        WRITE(6,*) ' IHLF NO. OF BISECTIONS OF STEP: ',IHLF
        WRITE(6,*) 'TOTAL NO. OF POINTS IN THE TRAJECTORY: ',NU-1
       END DO
      END DO 
      CALL PASSOUTPUT
      WRITE(6,*) 'NPAS:',NPAS
      CPUTIME=TIMER()-ZTIM0
      WRITE(6,*) 'C.P.U. TIME: ',CPUTIME
      WRITE(1,40)
      WRITE(2,40)
 05   FORMAT(1X,I3)
 10   FORMAT(1X,'ENERGY(in mev)',D10.3,2X,'VELOCITY(*10+10)',F12.5,2X,
     & 'THETA(in deg.)',F10.3,2X,'PHI(in deg.)',F10.3)
 20   FORMAT(1X,'INITIAL TIME(*10-08)',F12.6,2X,'FINAL TIME(*10-08)',
     & F12.6,2X,'INITIAL STEP(*10-08)',F14.8,1X,'ERROR BOUND',F19.12)
 30   FORMAT(4X,'T(-08)',10X,'X(+02)',10X,'Y(+02)',10X,'Z(+02)',10X,
     & 'VX(+10)',10X,'VY(+10)',10X,'VZ(+10)',10X,'(V+10)')
 40   FORMAT(X,'---*---*---*--- END OF ENERGY ---*---*---*---')
 50   FORMAT (I3,I3,I4,'.E',I5,I3,I3)
 60   FORMAT (I3,I3,I4,'.E',I5)
 70   FORMAT (1X,'ENERGY(in mev)',D10.3,2X,'VELOCITY(*10+10)',F12.5)
 80   FORMAT (1X,'INITIAL THETA(in deg.)',F10.2,2X,'NO. OF STEPS',
     & I5,2X,'DEL THETA',F10.2)
 90   FORMAT (1X,'INITIAL PHI  (in deg.)',F10.2,2X,'NO. OF STEPS',
     & I5,2X,'DEL PHI  ',F10.2)
 95   FORMAT (1X,'STARTING POSITION(in in.)',2X,'X(+02)',D14.7,
     & 2X,'Y(+02)',D14.7,2X,'Z(+02)',D14.7)
100   FORMAT (1X,'STARTING POSITION(in cm.)',2X,'X(+02)',D14.7,
     & 2X,'Y(+02)',D14.7,2X,'Z(+02)',D14.7)
110   FORMAT (I3,I3,I4,'.E',I5,'IN')
120   FORMAT (I3,I3,I4,'.E',I5,'OUT')
130   FORMAT(1X,'POLAR & AZIMUTHAL ANGLES AT THE DETECTOR')
140   FORMAT(1X,'POLAR & AZIMUTHAL ANGLES AT THE APERTURE')
      CLOSE(1)
      CLOSE(2)
      CLOSE(7)
      CLOSE(4)      
      CLOSE(8)
      STOP
      END
C-----------------------------------------------------------------------------
C-----------------------------------------------------------------------------            

Return to thesis table of contents.

Return to Voyager LECP Data Analysis Handbook Table of Contents.
Return to Fundamental Technologies Home Page.

Last modified 12/9/02, Tizby Hunt-Ward
tizby@ftecs.com