/[PAMELA software]/DarthVader/CalorimeterLevel2/src/nuclei.for
ViewVC logotype

Annotation of /DarthVader/CalorimeterLevel2/src/nuclei.for

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.5 - (hide annotations) (download)
Tue Aug 4 14:01:22 2009 UTC (15 years, 4 months ago) by mocchiut
Branch: MAIN
CVS Tags: v9r00, v9r01
Changes since 1.4: +2 -1 lines
Changed to work with GCC 4.x (gfortran) + ROOT >= 5.24

1 mocchiut 1.1 SUBROUTINE NUCLEI(RPIANO,NPIANI,QQQQ,NTOT,INDICE)
2     C----------------------------------------------------------------------
3     C-
4     C- Purpose and Methods : IT FINDS THE NUMBER OF LAYERS (RPIANO) IN WHICH
5     C- THERE IS A DETECTED ENERGY BETWEEN EINF AND ESUP . FOR EXAMPLE IF
6     C- EINF = 2.5 mip AND ESUP = 10 mip WE INDENTIFY PARTICLE WITH A
7     C- CHARACTERISTIC AS ALPHA AT MINIMUM .
8     C- QQQQ IS THE TRUNCATED MEAN OF THE DETECTED ENERGY OF THE BARICENTRA OF THE
9     C- DEFINED LAYERS .
10     C- NTOT GIVES THE NUMBER OF LAYERS WITH DETECTED ENERGY ALONG THE TRACK
11     C- DEFINED BY THE TRACKING SYSTEM . WE SAY THAT IS ALONG THE TRACK IF THE
12     C- CLUSTER IS INSIDE A RADIUS OF 4 STRIPS BY THE POSITION DEFINED BY THE
13     C- TRACKING SYSTEM .
14     C- INDICE IS THE NUMBER OF CLUSTERS BESIDES THAT ALONG THE TRACK THAT ARE
15     C- MORE THAN 4 STRIPS FAR AWAY BY THE TRACK .
16     C-
17     C- Inputs : NPIANI
18     C- Outputs : RPIANO,QQQQ,NTOT,INDICE
19     C- Controls:
20     C-
21     C- Created 9-FEB-1994 MIRKO BOEZIO
22     C- Modified 28-APR-1994 MIRKO BOEZIO . IF ISTRISCIA IS NEGATIVE AND GREATER
23     C- THAN NX THAN NN IS EQUAL 1 .
24     C- Modified 8-JUL-1994 MIRKO BOEZIO . CORRECTED AN ERROR ON THE DEFINITION
25     C- OF ISTRISCIA .
26     C- Modified 14-DEC-1994 MIRKO BOEZIO . THE TRACK IS DEFINED BY THE
27     C- TRACKING SYSTEM THROUGH IBAR AND BAR .
28     C-
29     C----------------------------------------------------------------------
30     INCLUDE 'INTEST.TXT'
31     C
32     REAL LUNGH
33     REAL RPIANO(2)
34 mocchiut 1.2 REAL BAR(2,NPLAV)
35     REAL NQQ(2*NPLAV)
36 mocchiut 1.1 REAL RIL(NCHA/2)
37     REAL REL(NCHA/2)
38     REAL TG(2)
39 mocchiut 1.2 INTEGER IBAR(2,NPLAV)
40 mocchiut 1.1 INTEGER NTOT(2),LH
41     COMMON / ANGOLO / BAR, IBAR
42     SAVE / ANGOLO /
43     COMMON / DOVE / NX, NY, LUNGH
44     SAVE / DOVE /
45     COMMON / TAGLIOEN / EINF, ESUP, ENER(2)
46     SAVE / TAGLIOEN /
47     COMMON / SHIFT / SHIFT
48     SAVE / SHIFT /
49     COMMON / TANGENTI / TG
50     SAVE / TANGENTI /
51     C
52     RINDEX = 0.
53     C
54     DO K = 1,NCHA/2
55     RIL(K) = 1000.
56     ENDDO
57     C
58     ENER(1) = 0.
59     ENER(2) = 0.
60     C
61     QQQ = 0.
62     QQQQ = 0.
63     QQX = 0.
64     QQY = 0.
65     NGIR = 0
66     DO M = 1,2
67     NTOT(M) = 0
68     RPIANO(M) = 0.
69     C
70     DO J = 1,NPLA
71 mocchiut 1.3 C
72 mocchiut 1.1 IF (MOD(J,2).EQ.0) THEN
73 mocchiut 1.2 IF (REVERSE.EQ.0) THEN
74 mocchiut 1.4 SHIFT = -0.5
75     ELSE
76 mocchiut 1.3 SHIFT = +0.5
77 mocchiut 1.2 ENDIF
78 mocchiut 1.1 ELSE
79 mocchiut 1.2 IF (REVERSE.EQ.0) THEN
80 mocchiut 1.4 SHIFT = +0.5
81     ELSE
82 mocchiut 1.3 SHIFT = -0.5
83 mocchiut 1.2 ENDIF
84 mocchiut 1.1 ENDIF
85     C
86     DO K = 1,NGIR
87     RIL(K) = 1000.
88     ENDDO
89     C
90     IF (M.EQ.1) NQQ(J) = 0.
91     IF (M.EQ.2) NQQ(J+NPLA) = 0.
92     NNN = 0
93     C
94     NN = IBAR(M,J)
95     C
96     C EM
97     C
98     IF (NN.EQ.-1) GOTO 5
99     C
100     IF (NN.LE.0) NN = 1
101     NGIR = NCL(M,J) ! number of clusters in layer J of the M View
102     IF (NGIR.EQ.0) GOTO 5
103     C IF (NGIR.NE.1) GOTO 5
104     IPP = 0.
105     DO L = 1,NGIR
106     CALL LASTRISCIA(CLUS(M,J,L),IN)
107     RIL(L) = FLOAT(ABS(NN - IN))
108     REL(L) = CLUS(M,J,L+NCHA/2)
109     IF (RIL(L).GE.5) IPP = 1
110     ENDDO
111     MM = NCHA/2
112     C
113     C WE USE THE CLUSTER NEAREST THE TRACK .
114     C
115     c LK = LVMIN(RIL,MM)
116     LH = LVMAX(REL,MM)
117     C
118     C CHECK ON THE DISTANCE OF THE CLUSTER FROM THE TRACK .
119     C
120     C IF (RIL(LK).GE.5) GOTO 5
121     IF (RIL(LH).GE.10) GOTO 5
122     IF (IPP.EQ.1) INDICE = INDICE + 1
123     IF (J.EQ.1) ENER(M) = CLUS(M,J,LH+NCHA/2) ! this is the detected
124     C energy of the cluster in the first layer
125     C
126     NTOT(M) = NTOT(M) + 1
127     C
128     C CHECK ON THE DETECTED ENERGY OF THE CLUSTER .
129     C
130     IF (CLUS(M,J,LH+NCHA/2).GT.EINF.AND.CLUS(M,J,LH+NCHA/2).
131     & LT.ESUP) THEN
132     IADD = 0
133     IF (M.EQ.2) IADD = NPLA
134     NQQ(J + IADD) = NQQ(J + IADD) + CLUS(M,J,LH+NCHA/2)
135     NNN = NNN + 1
136     ENDIF
137     C
138     5 CONTINUE
139     IADD = 0
140     IF (M.EQ.2) IADD = NPLA
141     IF (NQQ(J + IADD).LT.EMIN) NQQ(J + IADD) = 10000.
142     IF (NNN.GE.1) RPIANO(M) = RPIANO(M) + 1
143     C
144     ENDDO
145     ENDDO
146     C
147     RPIATOT = RPIANO(1) + RPIANO(2)
148     C
149     IF (RPIATOT.GE.FLOAT(NPIANI)) THEN
150     NPIA = NPIANI
151     ELSE
152     NPIA = INT(ANINT(RPIATOT))
153     ENDIF
154     C
155     QQQ = 0.
156     C
157     NDIM = 2 * NPLA
158     C
159     DO I = 1,NPIA
160     N = LVMIN(NQQ,NDIM)
161     QQQ = QQQ + NQQ(N)
162     NQQ(N) = 10000.
163     ENDDO
164     C
165     IF (NPIA.NE.0) THEN
166     QQQQ = QQQ / FLOAT(NPIA) ! Truncated mean .
167     ENDIF
168     C
169 mocchiut 1.5 c 400 CONTINUE
170     CONTINUE
171 mocchiut 1.1
172     RETURN
173     END
174     C
175    

  ViewVC Help
Powered by ViewVC 1.1.23