/[PAMELA software]/gpamela/gpspe/gpudiffusion.F
ViewVC logotype

Diff of /gpamela/gpspe/gpudiffusion.F

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 3.1 by bottai, Tue May 2 11:56:23 2006 UTC revision 3.3 by pam-fi, Fri Apr 23 10:06:36 2010 UTC
# Line 26  Line 26 
26  #include "gpstripspe.inc"  #include "gpstripspe.inc"
27  #include "gpgeo.inc"  #include "gpgeo.inc"
28  #include "gpgene.inc"  #include "gpgene.inc"
29    #include "gpkey.inc"
30    
31          INTEGER IACT,NUMVOL(20)          INTEGER IACT,NUMVOL(20),numsens
32          REAL DELOSS, TRAPAR(7),xyzspa(3),VPOS(3),xyzspac(3)          REAL DELOSS, TRAPAR(7),xyzspa(3),VPOS(3),xyzspac(3)
33          REAL BMAGNET(3),STRPOSL(3),STRPOSG(3)          REAL BMAGNET(3),STRPOSL(3),STRPOSG(3)
34          INTEGER ONCE          INTEGER ONCE
35          DATA ONCE /0/          DATA ONCE /0/
36          SAVE ONCE          SAVE ONCE
37    
38          IF(NUMVOL(1).NE.0) THEN          NSPEPLANE=INT((NUMVOL(2)-1)/6)+1
39             NSPEPLANE=NUMVOL(1)          numsens=NUMVOL(2)-(NSPEPLANE-1)*6
         ELSE IF(NUMVOL(1).EQ.0) THEN  
            NSPEPLANE=6  
         ENDIF  
40    
41    
42          VPOS(1)=TRAPAR(1)-STEP/2.*TRAPAR(4)              VPOS(1)=TRAPAR(1)-STEP/2.*TRAPAR(4)    
# Line 53  Line 51 
51          zup=TSPA(3)-xyzspa(3)          zup=TSPA(3)-xyzspa(3)
52          zdown=TSPA(3)+xyzspa(3)          zdown=TSPA(3)+xyzspa(3)
53    
54    
55          nearstripx=nearstx(xyzspa(1),xyzspa(2))          nearstripx=nearstx(xyzspa(1),xyzspa(2))
56          if(nearstripx.ne.0) then          if(nearstripx.ne.0) then
57    
# Line 69  Line 68 
68  *        v is along -Z; B is along -Y --> shift is along -X  *        v is along -Z; B is along -Y --> shift is along -X
69  *  *
70  *****************************************************************************  *****************************************************************************
71             IF(FFIELD.NE.0) THEN
72            CALL GUFLD(VPOS,BMAGNET)            CALL GUFLD(VPOS,BMAGNET)
73    
74  c  c
 c to be checked  
75  c  c
76            xshift=xyzspa(1)-zdown*hallmob*1.e-4*BMAGNET(2)/10.            xshift=xyzspa(1)+zdown*hallmob*1.e-4*BMAGNET(2)/10.
77            IF(NSPEPLANE.EQ.6) xshift=xyzspa(1)+            IF(NSPEPLANE.EQ.6) xshift=xyzspa(1)-
78       +     zdown*hallmob*1.e-4*BMAGNET(2)/10.       +     zdown*hallmob*1.e-4*BMAGNET(2)/10.
79    
80                      else
81               xshift=xyzspa(1)
82              endif
83                                    
84  *  *
85  *        Now widths of Gaussian functions can be calculated by means of    *        Now widths of Gaussian functions can be calculated by means of  
# Line 111  c Line 111  c
111               qfract=0.5*erfc((xqdivjm1-xshift)/(sqrt(2.)*sigxi))               qfract=0.5*erfc((xqdivjm1-xshift)/(sqrt(2.)*sigxi))
112       +           -0.5*erfc((xqdivj-xshift)/(sqrt(2.)*sigxi))       +           -0.5*erfc((xqdivj-xshift)/(sqrt(2.)*sigxi))
113    
114               proxtanti(NSPEPLANE,numvol(2),j)=               proxtanti(NSPEPLANE,numsens,j)=
115       +       proxtanti(NSPEPLANE,numvol(2),j)+delossmev*qfract       +       proxtanti(NSPEPLANE,numsens,j)+delossmev*qfract
116               IF(GLOBSTRIPX(NSPEPLANE,NUMVOL(2),J).EQ.0.) THEN               IF(GLOBSTRIPX(NSPEPLANE,numsens,J).EQ.0.) THEN
117                STRPOSL(1)=XSTRIP(J)                STRPOSL(1)=XSTRIP(J)
118                STRPOSL(2)=0.                STRPOSL(2)=0.
119                STRPOSL(3)=0.                STRPOSL(3)=0.
120                CALL GDTOM(STRPOSL,STRPOSG,1)                CALL GDTOM(STRPOSL,STRPOSG,1)
121                GLOBSTRIPX(NSPEPLANE,NUMVOL(2),J)=STRPOSG(1)                GLOBSTRIPX(NSPEPLANE,numsens,J)=STRPOSG(1)
122               ENDIF               ENDIF
123    
124             enddo             enddo
# Line 157  c Line 157  c
157               qfract=0.5*erfc((yqdivjm1-xyzspa(2))/(sqrt(2.)*sigyi))               qfract=0.5*erfc((yqdivjm1-xyzspa(2))/(sqrt(2.)*sigyi))
158       +           -0.5*erfc((yqdivj-xyzspa(2))/(sqrt(2.)*sigyi))       +           -0.5*erfc((yqdivj-xyzspa(2))/(sqrt(2.)*sigyi))
159    
160               proytanti(NSPEPLANE,numvol(2),j)=               proytanti(NSPEPLANE,numsens,j)=
161       +       proytanti(NSPEPLANE,numvol(2),j)+delossmev*qfract       +       proytanti(NSPEPLANE,numsens,j)+delossmev*qfract
162    
163               IF(GLOBSTRIPY(NSPEPLANE,NUMVOL(2),J).EQ.0.) THEN               IF(GLOBSTRIPY(NSPEPLANE,numsens,J).EQ.0.) THEN
164                STRPOSL(1)=0.                STRPOSL(1)=0.
165                STRPOSL(2)=YSTRIP(J)                STRPOSL(2)=YSTRIP(J)
166                STRPOSL(3)=0.                STRPOSL(3)=0.
167                CALL GDTOM(STRPOSL,STRPOSG,1)                CALL GDTOM(STRPOSL,STRPOSG,1)
168                GLOBSTRIPY(NSPEPLANE,NUMVOL(2),J)=STRPOSG(2)                GLOBSTRIPY(NSPEPLANE,numsens,J)=STRPOSG(2)
169               ENDIF               ENDIF
170    
171             enddo             enddo

Legend:
Removed from v.3.1  
changed lines
  Added in v.3.3

  ViewVC Help
Powered by ViewVC 1.1.23