/[PAMELA software]/gpamela/gpobsolete/gpsdini.F
ViewVC logotype

Annotation of /gpamela/gpobsolete/gpsdini.F

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3.1 - (hide annotations) (download)
Thu Jul 11 16:02:14 2002 UTC (22 years, 4 months ago) by cafagna
Branch point for: v3r0, MAIN
Initial revision

1 cafagna 3.1 *
2     * $Id$
3     *
4     * $Log$
5     *
6     *CMZ : 2.01/00 05/04/2000 14.35.18 by Marialuigia Ambriola
7     *CMZ : 2.00/00 03/03/2000 15.39.06 by Francesco Cafagna
8     *CMZ : 1.02/00 20/03/97 15.53.07 by Francesco Cafagna
9     *CMZ : 1.01/00 04/05/96 10.27.46 by Francesco Cafagna
10     *-- Author : Paolo (The Magic) Papini 23/04/96
11     SUBROUTINE GPSDINI
12     ************************************************************************
13     * *
14     * To calculate parameters for spectrometer digitizing *
15     * *
16     * Called by: GPDIGI *
17     * Author: Paolo (The Magic) Papini, 23/04/96 17.21.55 *
18     * *
19     ************************************************************************
20     #include "gcunit.inc"
21     #include "gpsed.inc"
22     #include "gpgeo.inc"
23     #include "gpdigi.inc"
24     #include "gpdspe.inc"
25     *
26     INTEGER JUNK
27     *
28     REAL X0,X1,X2,Y0,Y1,Y2,Z0,SIG2X,SIG2Y,SIG1X,SIG1Y,
29     +UDSPE(NUDSPE)
30     *
31     #include "gpddspe.inc"
32     *
33     * CHARX and CHARY calculation and CCX,CCY
34     *
35     STEPX=WXSTR*5.5/NPCHXY
36     STEPY=WYSTR*5.5/NPCHXY
37     STEPZ=2.*TSPA(3)/NPCHZ
38     *
39     * Silicon thickness
40     *
41     D=2.*TSPA(3)
42     *
43     * Diffusion temperature (Volt)
44     *
45     TVX=0.04
46     TVY=0.02
47     *
48     * Volt (junction)
49     *
50     UD=50.
51     *
52     * Volt (external)
53     *
54     UU=100.
55     *
56     DO I=1,NPCHXY
57     X0=(I-0.5)*STEPX
58     C X1=-WXSTR/2.
59     C X2=WXSTR/2.
60     STRDIV=0.6
61     X1=-WXSTR*STRDIV
62     X2=WXSTR*STRDIV
63     X1_I=-WXSTR*(1.-STRDIV)
64     X2_I=WXSTR*(1.-STRDIV)
65     Y0=(I-0.5)*STEPY
66     Y1=-WYSTR/2.
67     Y2=WYSTR/2.
68     DO J=1,NPCHZ
69     Z0=(J-0.5)*STEPZ
70     SIG2X=-1.*D**2*TVX/UD*LOG(1.-2.*UD*(D-Z0)/(UU+UD)/D)
71     SIG2Y=-1.*D**2*TVY/UD*LOG(1.-2.*UD*(D-Z0)/(UU+UD)/D)
72     SIG1X=SQRT(SIG2X)
73     SIG1Y=SQRT(SIG2Y)
74     CHARX(I,J)=FREQ((X2-X0)/SIG1X)-FREQ((X1-X0)/SIG1X)
75     CHARX_I(I,J)=FREQ((X2_I-X0)/SIG1X)-FREQ((X1_I-X0)/SIG1X)
76     CHARY(I,J)=FREQ((Y2-Y0)/SIG1Y)-FREQ((Y1-Y0)/SIG1Y)
77     END DO
78     END DO
79     PX1=0.9 ! C1-x
80     PX2=0.5 ! C2-X
81     PY1=0.98 ! C1-Y
82     PY2=0.5 ! C2-Y
83     CCX(1)=PX1
84     CCX(2)=(1.-PX1)/2.*PX2
85     CCX(3)=(1.-PX1)/2.*(1-PX2)
86     CCY(1)=PY1
87     CCY(2)=(1.-PY1)/2.*PY2
88     CCY(3)=(1.-PY1)/2.*(1.-PY2)
89     *
90     * Store the USER parameters into the User's DIGI bank
91     *
92     JUNK = 0
93     JUNK = JUNK + 1
94     IF(JUNK.LE.NUDSPE) UDSPE(JUNK) = ADCX
95     JUNK = JUNK + 1
96     IF(JUNK.LE.NUDSPE) UDSPE(JUNK) = ADCY
97     JUNK = JUNK + 1
98     IF(JUNK.LE.NUDSPE) UDSPE(JUNK) = PIEDX
99     JUNK = JUNK + 1
100     IF(JUNK.LE.NUDSPE) UDSPE(JUNK) = PIEDY
101     JUNK = JUNK + 1
102     IF(JUNK.LE.NUDSPE) UDSPE(JUNK) = ENOISX
103     JUNK = JUNK + 1
104     IF(JUNK.LE.NUDSPE) UDSPE(JUNK) = ENOISY
105     JUNK = JUNK + 1
106     IF(JUNK.LE.NUDSPE) UDSPE(JUNK) = NPCHXY
107     JUNK = JUNK + 1
108     IF(JUNK.LE.NUDSPE) UDSPE(JUNK) = NPCHZ
109     JUNK = JUNK + 1
110     IF(JUNK.LE.NUDSPE) UDSPE(JUNK) = WXSTR
111     JUNK = JUNK + 1
112     IF(JUNK.LE.NUDSPE) UDSPE(JUNK) = WYSTR
113     JUNK = JUNK + 1
114     IF(JUNK.LE.NUDSPE) UDSPE(JUNK) = D
115     JUNK = JUNK + 1
116     IF(JUNK.LE.NUDSPE) UDSPE(JUNK) = TVX
117     JUNK = JUNK + 1
118     IF(JUNK.LE.NUDSPE) UDSPE(JUNK) = TVY
119     JUNK = JUNK + 1
120     IF(JUNK.LE.NUDSPE) UDSPE(JUNK) = UD
121     JUNK = JUNK + 1
122     IF(JUNK.LE.NUDSPE) UDSPE(JUNK) = UU
123     JUNK = JUNK + 1
124     IF(JUNK.LE.NUDSPE) UDSPE(JUNK) = PX1
125     JUNK = JUNK + 1
126     IF(JUNK.LE.NUDSPE) UDSPE(JUNK) = PX2
127     JUNK = JUNK + 1
128     IF(JUNK.LE.NUDSPE) UDSPE(JUNK) = PY1
129     JUNK = JUNK + 1
130     IF(JUNK.LE.NUDSPE) UDSPE(JUNK) = PY2
131     JUNK = JUNK + 1
132     IF(JUNK.LE.NUDSPE) UDSPE(JUNK) = STRDIV
133     *
134     IF(JUNK.EQ.NUDSPE) THEN
135     CALL GSDETU('SPE ',CNSED(ISSPE,IDTSPA),NUDSPE,UDSPE)
136     ELSE
137     WRITE(CHMAIL,10000) JUNK,NUDSPE
138     ENDIF
139     *
140     10000 FORMAT(' GPSDINI: Too many user`s DIGI parameter: NUDSPE=',
141     + I4,', NCOUNT=',I4)
142     RETURN
143     END

  ViewVC Help
Powered by ViewVC 1.1.23