7 #include "geant321/gckine.inc"
8 #include "geant321/gconst.inc"
9 #include "geant321/gctrak.inc"
11 #include "geomate.inc"
12 #include "runinfo.inc"
15 logical transmit, reflect, charged, neutral
19 charged = (charge.ne.0.)
20 neutral = .not.charged
23 if (charge.eq.pkine(10)) kflag = 1
24 if ((itra.eq.1).and.(istak.eq.0)) kflag = 2
32 transmit = (
vect(1).ge. 0.49*xworld)
33 reflect = (
vect(1).le.-0.49*xworld)
35 if (transmit) itransmi = max(itransmi,kflag)
36 if (reflect) ireflect = max(ireflect,kflag)
44 if (transmit.and.charged) id = 10
45 if (transmit.and.neutral) id = 20
46 if (reflect .and.charged) id = 30
47 if (reflect .and.neutral) id = 40
48 if (id.ne.0.and.histo(id))
then
49 call hfill(id,gekin/histunit(id),0.,1.)
54 if (transmit.and.charged) id = 12
55 if (transmit.and.neutral) id = 22
56 if (reflect .and.charged) id = 32
57 if (reflect .and.neutral) id = 42
58 if (id.ne.0.and.histo(id))
then
61 dteta = binwidth(id)*
unit
64 if (domega.gt.(1./big))
weight = 1./domega
70 if (transmit.and.charged) id = 13
71 if (transmit.and.neutral) id = 23
72 if (reflect .and.charged) id = 33
73 if (reflect .and.neutral) id = 43
74 if (id.ne.0.and.histo(id))
then
77 call hfill(id,thety/histunit(id),0.,1.)
78 call hfill(id,thetz/histunit(id),0.,1.)
83 if (transmit.and.charged) id = 14
84 if (id.ne.0.and.histo(id))
then
85 call hfill(id,
vect(2)/histunit(id),0.,1.)
86 call hfill(id,
vect(3)/histunit(id),0.,1.)
BasicVector3D< T > unit() const
static c2_sin_p< float_type > & sin()
make a *new object