COSMOS v7.655  COSMOSv7655
(AirShowerMC)
cinteNuc.f
Go to the documentation of this file.
1  subroutine cintenuc
2  use modxsecmedia
3  implicit none
4 
5 
6 #include "Ztrack.h"
7 #include "Ztrackv.h"
8 
9 ! cinteNuc. Treat Nucelon interactions with air target.
10  character*70 msg
11 !////////////
12  logical show
13  common /showshow/ show
14 !/////////////
15  if(intinfarray(processno)%process .eq. 'coll') then
16 !/////////////
17  if(show) then
18  write(0,*) 'entering chAcol'
19  endif
20 !//////////////
21  call chacol(movedtrack%p, targetnucleonno, targetprotonno,
22  * pwork, nproduced)
23 !/////////
24  if(show) then
25  write(0,*) ' aft chAcol: Npro=',nproduced
26  endif
27 !////////////////
28  else
29  write(msg, *) ' in cinteNuc: process=',
30  * intinfarray(processno)%process,
31  * ' undef. ProcessNo=',processno
32  call cerrormsg(msg,0)
33  endif
34  end
35 ! ********************
36  subroutine cintepion
37 ! ********************
38  use modxsecmedia
39  implicit none
40 
41 #include "Ztrack.h"
42 #include "Ztrackv.h"
43 #include "Ztrackp.h"
44 
45 !
46  character*70 msg
47 
48  if(intinfarray(processno)%process .eq. 'coll') then
49  call chacol(movedtrack%p, targetnucleonno, targetprotonno,
50  * pwork, nproduced)
51 
52  elseif(intinfarray(processno)%process .eq. 'decay') then
53  if(movedtrack%p%charge .eq. 0) then
54  call cpi0decay(movedtrack%p, pwork, nproduced)
55  else
56  call cpimudecay(movedtrack%p, incmuonpolari,
57  * pwork, nproduced, muonpolarization)
58  endif
59  else
60  write(msg, *) ' in cintePion: process=',
61  * intinfarray(processno)%process,
62  * ' undef. ProcessNo=',processno
63  write(0,*) ' Et=', movedtrack%p%fm%p(4), ' chg=',
64  * movedtrack%p%charge
65  call cerrormsg(msg,0)
66  endif
67 
68  end
69 ! ********************
70  subroutine cintekaon
71 ! ********************
72  use modxsecmedia
73  implicit none
74 !---- include 'Ztrack.h'
75 #include "Ztrack.h"
76 !---- include 'Ztrackv.h'
77 #include "Ztrackv.h"
78 !---- include 'Ztrackp.h'
79 #include "Ztrackp.h"
80 !
81  character*70 msg
82 
83  if(intinfarray(processno)%process .eq. 'coll') then
84  call chacol(movedtrack%p, targetnucleonno, targetprotonno,
85  * pwork, nproduced)
86  elseif(intinfarray(processno)%process .eq. 'decay') then
87  call ckaondecay(movedtrack%p, incmuonpolari,
88  * pwork, nproduced, muonpolarization)
89  else
90  write(msg, *) ' in cinteKaon: process=',
91  * intinfarray(processno)%process,
92  * ' undef. ProcessNo=',processno
93  call cerrormsg(msg, 0)
94  endif
95  end
96 ! ********************
97  subroutine cintedmes
98 ! ********************
99  use modxsecmedia
100  implicit none
101 
102 !---- include 'Ztrack.h'
103 #include "Zcode.h"
104 #include "Ztrack.h"
105 !---- include 'Ztrackv.h'
106 #include "Ztrackv.h"
107 !
108  character*70 msg
109  integer icg
110  icg = movedtrack%p%charge
111  if(intinfarray(processno)%process .eq. 'decay') then
112  call cddecay(movedtrack%p, pwork, nproduced)
113  elseif(intinfarray(processno)%process .eq. 'coll') then
114 ! use kaon
115  if(icg .eq. 0) then
116  call cmkptc(kkaon, k0l, 0, movedtrack%p)
117  else
118  call cmkptc(kkaon, 0, icg, movedtrack%p)
119  endif
120  call ce2p(movedtrack)
121  call chacol(movedtrack%p, targetnucleonno, targetprotonno,
122  * pwork, nproduced)
123  else
124  write(msg, *) ' in cinteDmeson: process=',
125  * intinfarray(processno)%process,
126  * ' undef. ProcessNo=',processno
127  call cerrormsg(msg, 0)
128  endif
129  end
130 ! ********************
131  subroutine cintedelta
132 ! ********************
133  use modxsecmedia
134  implicit none
135 #include "Zcode.h"
136 #include "Ztrack.h"
137 #include "Ztrackv.h"
138  if(intinfarray(processno)%process .eq. 'decay') then
139  call cdeltadecay(movedtrack%p, pwork, nproduced)
140  else
141  write(0,*)
142  * ' Delta resonance collision should not happen '
143  stop
144  endif
145  end
146 
147 ! ********************
148  subroutine cinteheavy
149  use modxsecmedia
150 ! ********************
151  implicit none
152 #include "Zcode.h"
153 #include "Ztrack.h"
154 #include "Ztrackv.h"
155 #include "Ztrackp.h"
156 #include "Zevhnp.h"
157 #include "Zevhnv.h"
158 
159 !
160  character*70 msg
161 
162  if(intinfarray(processno)%process .eq. 'coll') then
163  call cheavyint(movedtrack%p, targetnucleonno,
164  * targetprotonno, pwork, nproduced)
165  else
166  write(msg, *) ' in cinteHeavy: process=',
167  * intinfarray(processno)%process,
168  * ' undef. ProcessNo=',processno
169  call cerrormsg(msg, 0)
170  endif
171  end
172 ! ********************
173  subroutine cintemuon
174  use modxsecmedia
175 ! ********************
176  implicit none
177 
178 !---- include 'Ztrack.h'
179 #include "Ztrack.h"
180 !---- include 'Ztrackv.h'
181 #include "Ztrackv.h"
182 !---- include 'Zlife.h'
183 #include "Zlife.h"
184 #include "Ztrackp.h"
185  real*8 capr, t0cap, u1, u2
186 
187 !
188  if(intinfarray(processno)%process .eq. 'decay') then
189 ! see if negative muon is being captured
190  if(movedtrack%p%charge .eq. -1) then
191  if(movedtrack%p%fm%p(4) .le. movedtrack%p%mass*1.001) then
192 ! assume stopping muon
193  call cgetcaprate( media(mediumno) ) ! v7.640
194 ! call cmucap(TargetNucleonNo, TargetProtonNo, capr)
195  capr = media(mediumno)%xs
196  t0cap = 1./capr
197  call rndc(u1)
198  call rndc(u2)
199  if( - log(u1)*t0mu .gt. - log(u2)*t0cap) then
200 ! capture
201  intinfarray(processno)%process = "capt"
202  call cfixtarget( media(mediumno) )
203  call ccapnu(targetnucleonno, targetprotonno,
204  * pwork, nproduced)
205  else
206 !!!! MuonPolarization = 0. ! stopping mu has no pol.
207 ! keep the value ;it's better.
208  call cmuneudcy(movedtrack%p, muonpolarization,
209  * eabsorb(1), pwork, nproduced)
210  endif
211  else
212  call cmuneudcy(movedtrack%p, muonpolarization,
213  * eabsorb(1), pwork, nproduced)
214  endif
215  else
216  call cmuneudcy(movedtrack%p, muonpolarization,
217  * eabsorb(1), pwork, nproduced)
218  endif
219  else
220  call cmuinte
221  endif
222  end
223  subroutine csetmuonpol(val)
224 ! This may be used when you set muon as a primary for which
225 ! polarization is not fixed.
226 !
227  implicit none
228 #include "Ztrack.h"
229 #include "Ztrackv.h"
230  real*8 val
231  muonpolarization =min(1.d0, max(val, -1.d0 ))
232  end
233 ! ********************
234  subroutine cintennb
235 ! ********************may be used if 1ry is nn~
236  implicit none
237 
238 !---- include 'Ztrack.h'
239 #include "Ztrack.h"
240 !---- include 'Ztrackv.h'
241 #include "Ztrackv.h"
242 !
243  character*70 msg
244 
245  if(intinfarray(processno)%process .eq. 'decay') then
246  call cnnbdc(movedtrack%p, pwork, nproduced)
247  else
248  write(msg, *) ' in cintennb: process=',
249  * intinfarray(processno)%process,
250  * ' undef. ProcessNo=',processno
251  call cerrormsg(msg, 0)
252  endif
253  end
254 ! ********************
255  subroutine cinteddb
256 ! ********************may be used if 1ry is dd~
257  implicit none
258 
259 !---- include 'Ztrack.h'
260 #include "Ztrack.h"
261 !---- include 'Ztrackv.h'
262 #include "Ztrackv.h"
263 !
264  character*70 msg
265 
266  if(intinfarray(processno)%process .eq. 'decay') then
267  call cddbdc(movedtrack%p, pwork, nproduced)
268  else
269  write(msg, *) ' in cintennb: process=',
270  * intinfarray(processno)%process,
271  * ' undef. ProcessNo=',processno
272  call cerrormsg(msg, 0)
273  endif
274  end
275 ! ********************
276  subroutine cintesigma
277 ! *****************
278  use modxsecmedia
279  implicit none
280 
281 #include "Ztrack.h"
282 #include "Ztrackv.h"
283 !
284 
285  if(intinfarray(processno)%process .eq. 'decay') then
286  call csigmadecay(movedtrack%p, pwork, nproduced)
287  else
288  call chacol(movedtrack%p, targetnucleonno, targetprotonno,
289  * pwork, nproduced)
290  endif
291  end
292 ! ********************
293  subroutine cintelambda
294 ! ****************
295  use modxsecmedia
296  implicit none
297 
298 #include "Ztrack.h"
299 #include "Ztrackv.h"
300 !
301 
302  if(intinfarray(processno)%process .eq. 'decay') then
303  call clambdadcy(movedtrack%p, pwork, nproduced)
304  else
305  call chacol(movedtrack%p, targetnucleonno, targetprotonno,
306  * pwork, nproduced)
307  endif
308  end
309 ! ********************
310  subroutine cintegzai
311 ! *****************
312  use modxsecmedia
313  implicit none
314 
315 #include "Ztrack.h"
316 #include "Ztrackv.h"
317 !
318 
319  if(intinfarray(processno)%process .eq. 'decay') then
320  call cgzaidecay(movedtrack%p, pwork, nproduced)
321  else
322  call chacol(movedtrack%p, targetnucleonno, targetprotonno,
323  * pwork, nproduced)
324  endif
325  end
326 ! ********************
327  subroutine cintebomega
328 ! *****************
329  use modxsecmedia
330  implicit none
331 
332 #include "Ztrack.h"
333 #include "Ztrackv.h"
334 !
335 
336  if(intinfarray(processno)%process .eq. 'decay') then
337  call cbomegadcy(movedtrack%p, pwork, nproduced)
338  else
339  call chacol(movedtrack%p, targetnucleonno, targetprotonno,
340  * pwork, nproduced)
341  endif
342  end
343 ! *******************
344  subroutine cinteeta
345 ! *****************
346  use modxsecmedia
347  implicit none
348 
349 #include "Ztrack.h"
350 #include "Ztrackv.h"
351 !
352 
353  if(intinfarray(processno)%process .eq. 'decay') then
354  call cetadecay(movedtrack%p, pwork, nproduced)
355  else
356  call chacol(movedtrack%p, targetnucleonno, targetprotonno,
357  * pwork, nproduced)
358  endif
359  end
360 ! *******************
361  subroutine cinteetap
362 ! *****************
363  use modxsecmedia
364  implicit none
365 
366 #include "Ztrack.h"
367 #include "Ztrackv.h"
368 !
369 
370  if(intinfarray(processno)%process .eq. 'decay') then
371  call cetapdecay(movedtrack%p, pwork, nproduced)
372  else
373 ! negelct col.
374  nproduced = 0
375  endif
376  end
377 ! ********************
378  subroutine cintelambdac
379 ! ********************
380  use modxsecmedia
381  implicit none
382 
383 #include "Ztrack.h"
384 #include "Ztrackv.h"
385 #include "Zcode.h"
386 !
387  character*80 msg
388 
389  if(intinfarray(processno)%process .eq. 'decay') then
390  call clambdacdcy(movedtrack%p, pwork, nproduced)
391  elseif(intinfarray(processno)%process .eq. 'coll') then
392 ! use proton or p-bar
393  if( movedtrack%p%charge > 0 ) then
394  call cmkptc(knuc, -1, 1, movedtrack%p)
395  else
396  call cmkptc(knuc, 1, -1, movedtrack%p)
397  endif
398  call ce2p(movedtrack)
399  call chacol(movedtrack%p, targetnucleonno, targetprotonno,
400  * pwork, nproduced)
401  else
402  write(msg, *) ' in cinteLambdac: process=',
403  * intinfarray(processno)%process,
404  * ' undef. ProcessNo=',processno
405  call cerrormsg(msg, 0)
406  endif
407  end
408 ! ********************
409  subroutine cinterho
410 ! *******************
411  implicit none
412 
413 #include "Ztrack.h"
414 #include "Ztrackv.h"
415 !
416  character*80 msg
417 
418  if(intinfarray(processno)%process .eq. 'decay') then
419  call crhodc(movedtrack%p, pwork, nproduced)
420  elseif(intinfarray(processno)%process .eq. 'coll') then
421  nproduced = 0 ! neglect coll.
422  else
423  write(msg, *) ' in cinterho: process=',
424  * intinfarray(processno)%process,
425  * ' undef. ProcessNo=',processno
426  call cerrormsg(msg, 0)
427  endif
428  end
429 ! ********************
430  subroutine cinteomega
431 ! *******************
432  implicit none
433 
434 #include "Ztrack.h"
435 #include "Ztrackv.h"
436 !
437  character*80 msg
438 
439  if(intinfarray(processno)%process .eq. 'decay') then
440  call comgdc(movedtrack%p, pwork, nproduced)
441  elseif(intinfarray(processno)%process .eq. 'coll') then
442  nproduced = 0 ! neglect coll.
443  else
444  write(msg, *) ' in cinteomega: process=',
445  * intinfarray(processno)%process,
446  * ' undef. ProcessNo=',processno
447  call cerrormsg(msg, 0)
448  endif
449  end
450 ! ********************
451  subroutine cintephi
452 ! *******************
453  implicit none
454 
455 #include "Ztrack.h"
456 #include "Ztrackv.h"
457 !
458  character*80 msg
459 
460  if(intinfarray(processno)%process .eq. 'decay') then
461  call cphidc(movedtrack%p, pwork, nproduced)
462  elseif(intinfarray(processno)%process .eq. 'coll') then
463  nproduced = 0 ! neglect coll.
464  else
465  write(msg, *) ' in cintephi: process=',
466  * intinfarray(processno)%process,
467  * ' undef. ProcessNo=',processno
468  call cerrormsg(msg, 0)
469  endif
470  end
471 ! ********************
472  subroutine cinteds
473 ! *******************
474  implicit none
475 
476 #include "Ztrack.h"
477 #include "Ztrackv.h"
478 !
479  character*80 msg
480 
481  if(intinfarray(processno)%process .eq. 'decay') then
482  call cdsdecay(movedtrack%p, pwork, nproduced)
483  elseif(intinfarray(processno)%process .eq. 'coll') then
484  nproduced = 0 ! neglect coll.
485  else
486  write(msg, *) ' in cinteds: process=',
487  * intinfarray(processno)%process,
488  * ' undef. ProcessNo=',processno
489  call cerrormsg(msg, 0)
490  endif
491  end
492 
493 ! ********************
494  subroutine cintetau
495 ! *******************
496  implicit none
497 
498 #include "Ztrack.h"
499 #include "Ztrackv.h"
500 !
501  character*80 msg
502 
503  if(intinfarray(processno)%process .eq. 'decay') then
504  call ctauneudcy(movedtrack%p, pwork, nproduced)
505  elseif(intinfarray(processno)%process .eq. 'coll') then
506  nproduced = 0 ! neglect coll.
507  else
508  write(msg, *) ' in cintetau: process=',
509  * intinfarray(processno)%process,
510  * ' undef. ProcessNo=',processno
511  call cerrormsg(msg, 0)
512  endif
513  end
subroutine cintekaon
Definition: cinteNuc.f:71
subroutine cddbdc(a, b, n)
Definition: chncol.f:259
subroutine cmuinte
Definition: cmuInte.f:2
subroutine cerrormsg(msg, needrtn)
Definition: cerrorMsg.f:4
subroutine cinteheavy
Definition: cinteNuc.f:149
subroutine cddecay(pj, a, np)
Definition: cdDecay.f:11
subroutine cintedelta
Definition: cinteNuc.f:132
subroutine crhodc(vm, a, np)
Definition: cvmDecay.f:4
max ptcl codes in the kseethru ! subcode integer k0l
Definition: Zcode.h:2
subroutine csetmuonpol(val)
Definition: cinteNuc.f:224
subroutine cmuneudcy(pj, polari, inclusive, a, np)
Definition: cmuNeuDcy.f:5
subroutine cpi0decay(pj, a, np)
Definition: cpi0Decay.f:9
subroutine cdsdecay(pj, a, np)
Definition: cDsDecay.f:2
subroutine ce2p(aTrack)
Definition: ce2p.f:5
subroutine cintennb
Definition: cinteNuc.f:235
max ptcl codes in the kkaon
Definition: Zcode.h:2
subroutine cheavyint(pj, ia, iz, a, ntp)
Definition: cheavyInt.f:16
subroutine cpimudecay(pj, mupol, a, np, polari)
Definition: cpiMuDecay.f:10
subroutine cintephi
Definition: cinteNuc.f:452
subroutine cdeltadecay(pj, a, np)
Definition: cDeltaDecay.f:8
subroutine cinteddb
Definition: cinteNuc.f:256
subroutine rndc(u)
Definition: rnd.f:91
subroutine cintelambdac
Definition: cinteNuc.f:379
subroutine csigmadecay(pj, a, np)
Definition: csigmaDecay.f:8
subroutine clambdacdcy(pj, a, np)
Definition: clambdacDcy.f:8
subroutine cintesigma
Definition: cinteNuc.f:277
subroutine cintebomega
Definition: cinteNuc.f:328
subroutine cintetau
Definition: cinteNuc.f:495
subroutine cintepion
Definition: cinteNuc.f:37
subroutine cinteetap
Definition: cinteNuc.f:362
subroutine cnnbdc(a, b, n)
Definition: chncol.f:231
subroutine cinteomega
Definition: cinteNuc.f:431
block data cblkEvhnp ! currently usable models data RegMdls ad *special data *Cekaon d0
Definition: cblkEvhnp.h:5
subroutine cinteeta
Definition: cinteNuc.f:345
********************block data cblkHeavy ********************integer j data *HeavyG2symbol *data *HeavyG2code knuc
Definition: cblkHeavy.h:7
subroutine cbomegadcy(pj, a, np)
Definition: cbomegaDcy.f:8
subroutine comgdc(vm, a, np)
Definition: cvmDecay.f:39
subroutine cinteds
Definition: cinteNuc.f:473
subroutine cintegzai
Definition: cinteNuc.f:311
! life time in s real t0mu
Definition: Zlife.h:2
subroutine cetadecay(pj, a, np)
Definition: cetaDecay.f:37
subroutine cetapdecay(pj, a, np)
Definition: cetapDecay.f:33
subroutine ckaondecay(pj, mupol, a, np, polari)
Definition: ckaonDecay.f:8
subroutine cphidc(vm, a, np)
Definition: cvmDecay.f:134
subroutine cinterho
Definition: cinteNuc.f:410
subroutine cmkptc(code, subcode, charge, p)
Definition: cmkptc.f:15
subroutine cintelambda
Definition: cinteNuc.f:294
subroutine cgzaidecay(pj, a, np)
Definition: cgzaiDecay.f:8
subroutine ctauneudcy(pj, a, np)
Definition: ctauNeuDcy.f:13
subroutine cfixtarget(media)
Definition: cGetXsec.f:498
subroutine clambdadcy(pj, a, np)
Definition: clambdaDcy.f:8
subroutine cintedmes
Definition: cinteNuc.f:98
subroutine cgetcaprate(media)
Definition: cGetXsec.f:608
subroutine cintemuon
Definition: cinteNuc.f:174
subroutine ccapnu(atms, z, a, np)
Definition: ccapnu.f:2
subroutine chacol(pj, ia, iz, a, ntp)
Definition: chAcol.f:3
subroutine cintenuc
Definition: cinteNuc.f:2