COSMOS v7.655  COSMOSv7655
(AirShowerMC)
chookHybAS.f File Reference

Go to the source code of this file.

Functions/Subroutines

subroutine chookhybas (el, never)
 
subroutine chookhybas2
 

Function/Subroutine Documentation

◆ chookhybas()

subroutine chookhybas ( type(track el,
integer  never 
)

Definition at line 20 of file chookHybAS.f.

References cavededx(), depth, height, and p.

20  implicit none
21 
22 ! This routine is called at the end of the cobAS.f in Tracking/AS/,
23 ! that is, when a component A.S is made from an electron. If the
24 ! user has nothing to do, give never=1, then the
25 ! routine will not be called again.
26 ! If you have something to do (say, business for
27 ! generating air fluorescence light), do it here.
28 ! Give never=0 in such a case.
29 
30 #include "Ztrack.h"
31 #include "Zobs.h"
32 #include "Zobsv.h"
33 #include "Zelemagp.h"
34 
35  type(track)::el ! input. an electron produced component A.S
36  integer never ! input /output. give 1 if you don't need
37  ! the routine else give 0.
38 
39 ! The following will be the typical stuff you may want to use in
40 ! this routine. (i=1, NoOfASSites; index for observation depths)
41 !
42 ! CompASNe(i): component A.S size produced by the input electron.
43 ! For depths where this value is 0,
44 ! avoid doing something here.
45 ! CompASAge(i): age of component A.S produced by the input electron.
46 ! If this value is 2.0, the A.S is assumed to be very
47 ! old and the CompASNe(i) is 0. You should skip
48 ! treating deeper depths.
49 !
50 
51  real*8 zobas, zp
52  real*8 elog, eno, age
53  real*8 cvh2temp, tk ! temperature in Kelvin
54  real*8 dedx ! to store <dE/dx>
55  real*8 cvh2den, rho ! density of air in kg/m^3
56 
57  integer xsite
58 !
59 ! **********
60  never = 1 ! change this to 0 if you need this routine
61 ! **********
62 
63  zp = el.pos.depth ! starting vertical depth of
64  ! the component electron (kg/m^3)
65 !
66 ! get average dE/dx for every depth.
67 !
68 
69 
70  do xsite = 1, noofassites
71  age = compasage(xsite)
72  eno = compasne(xsite)
73 
74 
75  if(age .eq. 2.) then
76 ! store 0 or ... in your own array
77 
78  goto 100
79  endif
80  if(eno .gt. 0.) then
81 !
82 ! you may do some business. Say generate fluorescence light.
83 ! you may need some array to store the quantities
84 ! you compute here. (presumably in your own common block).
85 ! Following is typical quantities you may need for such a
86 ! computation
87 ! temerature in Kelvin of 'site'
88  tk = cvh2temp(asobssites(xsite).pos.height)
89 ! density of air in kg/m^3; multiply 10^-3 to get it in
90 ! g/cm^3.
91  rho = cvh2den(asobssites(xsite).pos.height)
92  call cavededx(compasne(xsite), compasage(xsite), dedx)
93 ! ****** dedx >0 and in GeV/(kg/m^2). To convert it to
94 ! ****** MeV/(g/cm^2). Multiply 100.
95 
96 ! vertical depth of site( kg/m2)
97  zobas=asobssites(xsite).pos.depth
98 
99 ! log10 of elecrton energy in terms of critical energy
100  elog = log10(el.p.fm.p(4)/ecrit)
101 
102  endif
103  enddo
104  100 continue
*Zfirst p fm *Zfirst p Zfirst p Zfirst p *Zfirst p *Zfirst pos xyz Zfirst pos xyz *Zfirst pos *Zfirst pos depth
Definition: ZavoidUnionMap.h:1
Definition: Ztrack.h:44
********************block data cblkHeavy ********************integer j data *HeavyG2symbol p
Definition: cblkHeavy.h:7
*Zfirst p fm *Zfirst p Zfirst p Zfirst p *Zfirst p *Zfirst pos xyz Zfirst pos xyz *Zfirst pos *Zfirst pos Zfirst pos height
Definition: ZavoidUnionMap.h:1
real *8 function cvh2den(z)
Definition: ciniSegAtoms.f:54
subroutine cavededx(eno, age, dedx)
Definition: cavedEdx.f:2
real(8) function cvh2temp(vh)
Definition: cNRLAtmos.f:61
Here is the call graph for this function:

◆ chookhybas2()

subroutine chookhybas2 ( )

Definition at line 108 of file chookHybAS.f.

References cavededx(), cgetnmu(), depth, and height.

108  implicit none
109 !
110 ! You may utilize this routine for computing, say,
111 ! air fluo. light. for a given air shower. This should
112 ! be called from chookEnEvent routine.
113 !
114 !
115 #include "Ztrack.h"
116 #include "Ztrackv.h"
117 #include "Zobs.h"
118 #include "Zobsp.h"
119 #include "Zobsv.h"
120 
121 
122 
123  real*8 eno, age, zobas, nmu
124  real*8 muonno(maxnoofassites)
125  real*8 cvh2temp, tk ! temperature in Kelvin
126  real*8 dedx ! to store <dE/dx>
127  real*8 eth
128  real*8 cvh2den, rho ! density in kg/m^3.
129 !
130  data eth/1.0/ ! dummy Emu threshold
131 
132  integer xsite
133 !
134 ! ******************** Below: not usable for a while
135 ! (as of May/10,'97)
136 ! Nmu (E>Eth)
137  call cgetnmu(eth, muonno)
138 ! ********************
139 
140  if(observeas) then
141 !
142  do xsite = 1, noofassites
143  age = asobssites(xsite).esize
144  eno = asobssites(xsite).age
145  nmu = muonno(xsite)
146 ! Ne or Nmu > 0
147  if(eno .gt. 0. .or. nmu .gt. 0.) then
148 !
149 ! you may do some business. Say generate fluorescence light.
150 ! you may need some array to store the quantities
151 ! you compute here.
152 ! Following is typical quantities you may need for such a
153 ! computation
154 ! temerature in Kelvin of 'site'
155  tk = cvh2temp(asobssites(xsite).pos.height)
156 ! in kg/m^3; x 10^-3 in g/cm^3
157  rho = cvh2den(asobssites(xsite).pos.height)
158 
159 ! get average <dE/dx>at site
160  call cavededx(asobssites(xsite).esize,
161  * asobssites(xsite).age, dedx)
162 ! ******* dedx >0 and in GeV/(kg/m^2). To convert it to
163 ! ******* MeV/(g/cm^2). Multiply 100.
164 
165 ! vertical depth of site( kg/m2)
166  zobas=asobssites(xsite).pos.depth
167  endif
168  enddo
169  endif
*Zfirst p fm *Zfirst p Zfirst p Zfirst p *Zfirst p *Zfirst pos xyz Zfirst pos xyz *Zfirst pos *Zfirst pos depth
Definition: ZavoidUnionMap.h:1
int nmu[nl][nth]
Definition: Zprivate.h:12
const int maxnoofassites
Definition: Zobs.h:12
subroutine cgetnmu(eth, nmu)
Definition: cgetNmu.f:3
*Zfirst p fm *Zfirst p Zfirst p Zfirst p *Zfirst p *Zfirst pos xyz Zfirst pos xyz *Zfirst pos *Zfirst pos Zfirst pos height
Definition: ZavoidUnionMap.h:1
real *8 function cvh2den(z)
Definition: ciniSegAtoms.f:54
subroutine cavededx(eno, age, dedx)
Definition: cavedEdx.f:2
float eth[nth]
Definition: Zprivate.h:8
real(8) function cvh2temp(vh)
Definition: cNRLAtmos.f:61
Here is the call graph for this function: