/[PAMELA software]/tracker/ground/source/reduction/cncomp.f
ViewVC logotype

Contents of /tracker/ground/source/reduction/cncomp.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1.1.1 - (show annotations) (download) (vendor branch)
Wed Mar 8 15:00:39 2006 UTC (18 years, 9 months ago) by pam-fi
Branch: MAIN, trk-ground
CVS Tags: R3v02, HEAD
Changes since 1.1: +0 -0 lines
First CVS release of tracker ground software (R3v02) 

1 *************************************************************************
2 *
3 * Subroutine cncomp.f
4 *
5 * iterates common noise computation subroutine (./cnoise.f) and cluster
6 * cutting subroutine (./cutcn.f) till no more clusters are found
7 *
8 *************************************************************************
9
10 subroutine cncomp(i,j) !(view, VA1)
11
12 include '../common/commontracker.f'
13 include '../common/common_reduction.f'
14 include '../common/calib.f'
15
16 integer errflag !error flag to mark no signal free VA1
17
18 integer clstr_old(nstrips_va1) !flag storage vector
19
20 real signal(nstrips_va1) !"signal" (=adc-ped) value storage vector
21
22 real smean, ssigma !"signal" mean and sigma
23 real cut !"strange" strip exclusion cut
24
25 integer newclstr !flag to warn about new found clusters to be
26 ! excluded from common noise computation
27
28
29 c call HBOOK1(20000+100*i+j,' ',30,0.,30.,0.) !???
30
31 c------------------------------------------------------------------------
32 c
33 c variables initialization
34 c
35 c------------------------------------------------------------------------
36 do k=1,nstrips_va1 !loops on strips
37 clstr(i,j,k)=1 !initializes signal affected strips flag
38 clstr_old(k)=1 !initializes signal affected strips storage
39 strange(i,j,k)=1 !initializes unusually high or low signal
40 enddo ! affected strips flag
41
42 newclstr=1 !flag to warn about new found signal
43 ! affected strips
44
45
46
47 c------------------------------------------------------------------------
48 c
49 c high or low signal affected strips exclusion: computes "signal" (=adc-ped)
50 c mean value and sigma, and cuts from common noise computation strips
51 c whose ABS(signal) exceeds scut*sigma
52 c
53 c------------------------------------------------------------------------
54 countme=0 !???
55 666 continue !???
56
57 smean=0. !initialization
58 ssigma=0.
59 nstr=0
60
61 do k=1,nstrips_va1
62 nstr=nstr+strange(i,j,k) !uses only
63 if(mod(i,2).eq.1) then !odd strip ---> Y view
64 signal(k)= - (DBLE(adc(i,j,k))-pedestal(i,j,k)) !negative signal
65 else !even strip ---> X view
66 signal(k)= DBLE(adc(i,j,k))-pedestal(i,j,k) !positive signal
67 endif
68
69 smean=smean+signal(k)*strange(i,j,k)
70 ssigma=ssigma+(signal(k)**2)*strange(i,j,k)
71
72 c call HFILL(10000+100*i+j,signal(k),0.,1.) !???
73 enddo
74
75 smean=smean/nstr !strips value distribution mean
76
77 ssigma=SQRT((ssigma/nstr)-smean**2) !strips value distribution sigma
78
79 cut=scut*ssigma !exclusion cut
80
81 do k=1,nstrips_va1
82 c call HFILL(20000+100*i+j,ABS(signal(k)-smean)/ssigma,0.,1.) !???
83 if(ABS(signal(k)-smean).gt.cut) then
84 c print*,i,j,k,signal(k),abs(signal(k)),cut,strange(i,j,k) !???
85 strange(i,j,k)=0 !marks strips exceeding cut
86 endif
87 enddo ! in order not to use them in CN computation
88
89
90 countme=countme+1 !???
91 if (countme.le.3) goto 666 !???
92
93
94 c------------------------------------------------------------------------
95 c
96 c common noise computation
97 c
98 c------------------------------------------------------------------------
99 do while(newclstr.eq.1) !loops on this VA1 till no new signal
100 ! affected strips are found
101
102 newclstr=0 !to exit from loop if no new cluster is
103 ! found
104
105 errflag=0
106
107 call cnoise(i,j,errflag) !(view, VA1, error flag) computes common
108 ! noise
109
110 c print*,cn(i,j) !???
111
112 if(errflag.eq.1) goto 10 !goes to next VA1: this one has no signal
113 ! free strips...
114
115 call cutcn(i,j) !(view, VA1) excludes clusters from
116 ! common noise calculation
117
118 ncs=0 !initializes number of strips not excluded by cncut
119
120 do k=1,nstrips_va1 !loops on strips
121 if(clstr(i,j,k).ne.clstr_old(k)) then !checks if there are
122 ! new found clusters, and if so sets
123 newclstr=1 ! newclstr flag = 1
124
125 clstr_old(k)=clstr(i,j,k) !stores cluster flags in
126 endif ! clstr_old variable
127
128 iok=strange(i,j,k)*bad(i,j,k)*clstr(i,j,k)
129
130 ncs=ncs+iok !counts number of good strips for cn computation
131
132 enddo
133
134 enddo !ends do while loop when there are no new
135 ! clusters
136
137 c call HFILL(666,FLOAT(ncs),0.,1.) !???
138
139
140 c$$$ if(ncs.lt.20) then !warns if too many strips have been excluded from CN
141 c$$$ ! computation
142 c$$$ print*,'cncomp: WARNING, LESS THAN 20 STRIPS PASSED CN CUT'
143 c$$$ $ //' ON VA1 ',j,', VIEW ',i !NB questo errore e' "un po'" in conflitto
144 c$$$ ! con quello che setta errflag (vedi cnoise.f)...
145 c$$$
146 c$$$ endif
147
148 10 continue
149
150 return
151 end

  ViewVC Help
Powered by ViewVC 1.1.23