1 | c ------------------------------------------------------------------------------------------
|
---|
2 | c PGS.INC - include file for PGS package
|
---|
3 | c
|
---|
4 | c Version 3.3
|
---|
5 | c ------------------------------------------------------------------------------------------
|
---|
6 | c
|
---|
7 | c This include file is to be used with the PGS package. See
|
---|
8 | c http://www.physics.rutgers.edu/~jconway/soft/pgs/pgs.html
|
---|
9 | c for documentation and details.
|
---|
10 | c
|
---|
11 | c ------------------------------------------------------------------------------------------
|
---|
12 |
|
---|
13 |
|
---|
14 | c STDHEP common blocks (see L. Garren, STDHEP 4.10, PM0091) -------------------------------
|
---|
15 |
|
---|
16 | c generated particle list
|
---|
17 |
|
---|
18 | integer nmxhep
|
---|
19 | parameter (nmxhep=4000)
|
---|
20 |
|
---|
21 | integer nevhep,nhep,isthep,idhep,jmohep,jdahep
|
---|
22 |
|
---|
23 | double precision phep,vhep
|
---|
24 |
|
---|
25 | common /hepevt/ nevhep, ! event number
|
---|
26 | . nhep, ! number of entries in record
|
---|
27 | . isthep(nmxhep), ! status code
|
---|
28 | . idhep(nmxhep), ! particle ID (PDG standard)
|
---|
29 | . jmohep(2,nmxhep), ! index to first and second particle mothers
|
---|
30 | . jdahep(2,nmxhep), ! index to first and last daughter particles
|
---|
31 | . phep(5,nmxhep), ! 4-vector and mass
|
---|
32 | . vhep(4,nmxhep) ! (x,y,z) of production, and production time (mm/c)
|
---|
33 |
|
---|
34 | integer numhep ! for symmetry
|
---|
35 | equivalence(numhep,nhep) ! with other lists
|
---|
36 |
|
---|
37 | integer numgen ! for symmetry
|
---|
38 | equivalence(numgen,nhep) ! with other lists
|
---|
39 |
|
---|
40 | c table of particle properties
|
---|
41 |
|
---|
42 | integer nmxln
|
---|
43 |
|
---|
44 | parameter (nmxln=2000)
|
---|
45 |
|
---|
46 | integer idt
|
---|
47 | real*4 stmerr,stwerr
|
---|
48 |
|
---|
49 | real*8 stmass,stwidth
|
---|
50 |
|
---|
51 | character*21 stname
|
---|
52 |
|
---|
53 | common /stdtbl/ idt(nmxln), ! particle ID (PDG standard)
|
---|
54 | . stmerr(2,nmxln), ! positive (1) and negative (2) error on mass
|
---|
55 | . stwerr(2,nmxln), ! positive (1) and negative (2) error on width
|
---|
56 | . stmass(nmxln), ! particle mass (GeV/c^2 for this, and rest)
|
---|
57 | . stwidth(nmxln), ! particle width
|
---|
58 | . stname(nmxln) ! particle name
|
---|
59 |
|
---|
60 |
|
---|
61 | c STDHEP logical unit numbers and I/O information
|
---|
62 |
|
---|
63 | integer lnhwrt,lnhrd,lnhout,lnhdcy,lnhrdm
|
---|
64 |
|
---|
65 | common /heplun/ lnhwrt, ! logical unit number for writing
|
---|
66 | . lnhrd, ! logical unit number for reading
|
---|
67 | . lnhout, ! logical unit number for output
|
---|
68 | . lnhdcy, ! logical unit number for decay table (NYI)
|
---|
69 | . lnhrdm(15) ! logical unit number for reading multiple streams
|
---|
70 |
|
---|
71 | real stdecom,stdxsec
|
---|
72 | double precision stdseed1,stdseed2
|
---|
73 | integer nevtreq,nevtgen,nevtwrt
|
---|
74 |
|
---|
75 | common /stdcm1/ stdecom, ! center of mass energy
|
---|
76 | . stdxsec, ! cross section
|
---|
77 | . stdseed1, ! random number seed 1
|
---|
78 | . stdseed2, ! random number seed 2
|
---|
79 | . nevtreq, ! events to generate
|
---|
80 | . nevtgen, ! actually generated
|
---|
81 | . nevtwrt ! written to output file
|
---|
82 | save /stdcm1/
|
---|
83 |
|
---|
84 |
|
---|
85 | c ---------------------------------------------------------------------------------------------
|
---|
86 |
|
---|
87 | c PGS functions for ET, pt, etc. of generated, reconstructed, clusters and tracks
|
---|
88 |
|
---|
89 | real*8 et_gen,pt_gen,p_gen,eta_gen,phi_gen
|
---|
90 | real*8 et_obj,pt_obj,p_obj,eta_obj,phi_obj
|
---|
91 | real*8 et_clu,pt_clu,p_clu,eta_clu,phi_clu
|
---|
92 | real*8 et_trk,pt_trk,p_trk,eta_trk,phi_trk
|
---|
93 |
|
---|
94 | real*8 cos_theta,cos_del_phi,del_phi,pgs_cluster_width
|
---|
95 |
|
---|
96 | real*8 v4mass,v4mass2,v4et,v4p,v4pt,v4eta,v4phi
|
---|
97 |
|
---|
98 | logical pgs_cal_fid_cut
|
---|
99 |
|
---|
100 | c PGS detector parameters
|
---|
101 |
|
---|
102 | integer netacal,nphical
|
---|
103 |
|
---|
104 | real*8 deta,dphi,crack_frac,rmax,bfield,sagitta_res
|
---|
105 | real*8 ecal_res,hcal_res,met_res
|
---|
106 | real*8 seed_thresh,shoulder_thresh,conesize
|
---|
107 | real*8 eff_track,eta_max_track,min_track_pt
|
---|
108 |
|
---|
109 |
|
---|
110 | common /pgspar/ netacal, ! number of eta cells in calorimeter
|
---|
111 | . nphical, ! number of phi cells in calorimeter
|
---|
112 | . deta, ! eta width of calorimeter cells
|
---|
113 | . dphi, ! phi width of calorimeter cells (2*pi/nphical)
|
---|
114 | . ecal_res, ! electromagnetic calorimeter resolution * sqrt(E)
|
---|
115 | . hcal_res, ! hadronic calorimeter resolution * sqrt(E)
|
---|
116 | . met_res, ! MET resolution
|
---|
117 | . crack_frac, ! calorimeter cell edge "crack" fraction
|
---|
118 | . seed_thresh, ! calorimeter cluster seed tower threshold
|
---|
119 | . shoulder_thresh, ! calorimeter shoulder tower threshold
|
---|
120 | . conesize, ! cluster finder cone size
|
---|
121 | . rmax, ! outer radius of tracking (m)
|
---|
122 | . bfield, ! magnetic field (T)
|
---|
123 | . sagitta_res, ! sagitta resolution (m)
|
---|
124 | . eff_track, ! track finding efficiency
|
---|
125 | . min_track_pt, ! minimum track pt (GeV/c)
|
---|
126 | . eta_max_track ! maximum tracking coverage in eta
|
---|
127 |
|
---|
128 | c PGS event header and control information
|
---|
129 |
|
---|
130 | integer nevpgs,nprpgs
|
---|
131 |
|
---|
132 | character*6 optpgs
|
---|
133 | character*80 pgs_input_file,pgs_output_file,pgs_param_file
|
---|
134 | character*80 pgs_isajet_decay,pgs_isajet_cards,pgs_pythia_cards
|
---|
135 |
|
---|
136 | common /pgsevt/ nevpgs, ! number of events to generate/read
|
---|
137 | . nprpgs, ! number of events to print out
|
---|
138 | . optpgs, ! type of run: 'PYTHIA', 'ISAJET', 'FILE', ...
|
---|
139 | . pgs_input_file, ! input file
|
---|
140 | . pgs_output_file, ! output file
|
---|
141 | . pgs_param_file, ! detector parameter file
|
---|
142 | . pgs_isajet_decay, ! ISAJET decay table file name
|
---|
143 | . pgs_isajet_cards, ! ISAJET card file name
|
---|
144 | . pgs_pythia_cards ! PYTHIA card file name
|
---|
145 |
|
---|
146 | c PGS track list
|
---|
147 |
|
---|
148 | integer ntrkmx
|
---|
149 | parameter (ntrkmx=500)
|
---|
150 |
|
---|
151 | integer numtrk,dumtrk,indtrk
|
---|
152 |
|
---|
153 | real*8 ptrk,qtrk
|
---|
154 |
|
---|
155 | common /pgstrk/ numtrk,dumtrk, ! number of tracks
|
---|
156 | . indtrk(ntrkmx), ! index to HEPEVT particle
|
---|
157 | . ptrk(3,ntrkmx), ! track 3-vector
|
---|
158 | . qtrk(ntrkmx) ! track charge
|
---|
159 |
|
---|
160 |
|
---|
161 | c PGS calorimeter tower arrays
|
---|
162 |
|
---|
163 | real*8 pi
|
---|
164 | parameter(pi=3.141592654)
|
---|
165 |
|
---|
166 | integer nphimax,netamax
|
---|
167 | parameter (nphimax=600)
|
---|
168 | parameter (netamax=600)
|
---|
169 |
|
---|
170 | real*8 ecal,hcal,met_cal,phi_met_cal
|
---|
171 |
|
---|
172 | common /pgscal/ ecal(netamax,nphimax), ! electromagnetic energy in each tower
|
---|
173 | . hcal(netamax,nphimax), ! hadronic energy in each tower
|
---|
174 | . met_cal, ! calorimeter missing ET
|
---|
175 | . phi_met_cal ! calorimeter missing ET phi
|
---|
176 |
|
---|
177 |
|
---|
178 | c PGS calorimeter cluster list
|
---|
179 |
|
---|
180 | integer nclumx
|
---|
181 |
|
---|
182 | parameter (nclumx=50)
|
---|
183 |
|
---|
184 | integer cclu,numclu,dumclu,etaclu,phiclu,mulclu
|
---|
185 |
|
---|
186 | real*8 pclu,etclu,emclu,ehclu,efclu,widclu
|
---|
187 |
|
---|
188 | common /pgsclu/ cclu(netamax,nphimax), ! map of cluster indices
|
---|
189 | . numclu,dumclu, ! number of clusters in list
|
---|
190 | . pclu(5,nclumx), ! cluster 4 vector and mass
|
---|
191 | . etaclu(nclumx), ! cluster seed tower eta
|
---|
192 | . phiclu(nclumx), ! cluster seed tower phi
|
---|
193 | . emclu(nclumx), ! cluster electromagnetic energy
|
---|
194 | . ehclu(nclumx), ! cluster hadronic energy
|
---|
195 | . efclu(nclumx), ! cluster electromagnetic fraction
|
---|
196 | . widclu(nclumx), ! cluster width sqrt(deta**2+dphi**2)
|
---|
197 | . mulclu(nclumx) ! cluster tower multiplicity
|
---|
198 |
|
---|
199 |
|
---|
200 | c PGS trigger object list
|
---|
201 |
|
---|
202 | integer ntrgmx
|
---|
203 | parameter (ntrgmx=500)
|
---|
204 |
|
---|
205 | integer numtrg,dumtrg,indtrg,typtrg
|
---|
206 |
|
---|
207 | real*8 vectrg
|
---|
208 |
|
---|
209 | common /pgstrg/ numtrg,dumtrg, ! number of trigger objects
|
---|
210 | . indtrg(ntrgmx), ! index to HEPEVT particle (where relevant)
|
---|
211 | . typtrg(ntrgmx), ! reconstructed type: 0=photon
|
---|
212 | ! 1=electron
|
---|
213 | ! 2=muon
|
---|
214 | ! 3=tau (hadronic)
|
---|
215 | ! 4=jet
|
---|
216 | ! 5=detached vertex
|
---|
217 | ! 6=MET
|
---|
218 | . vectrg(10,ntrgmx) ! trigger object vector: 1 = eta
|
---|
219 | ! 2 = phi
|
---|
220 | ! 3 = ET of cluster
|
---|
221 | ! 4 = cluster #
|
---|
222 | ! 5 = pt of track (if any)
|
---|
223 | ! 6 = track #
|
---|
224 |
|
---|
225 | c PGS reconstructed object list
|
---|
226 |
|
---|
227 | integer nobjmx
|
---|
228 | parameter (nobjmx=500)
|
---|
229 |
|
---|
230 | integer numobj,dumobj,indobj,typobj
|
---|
231 | real*8 pobj,qobj,vecobj
|
---|
232 |
|
---|
233 | common /pgsrec/ numobj,dumobj, ! number of reconstructed objects
|
---|
234 | . indobj(nobjmx), ! index to HEPEVT particle (where relevant)
|
---|
235 | . typobj(nobjmx), ! reconstructed type: 0 = photon
|
---|
236 | ! 1 = electron
|
---|
237 | ! 2 = muon
|
---|
238 | ! 3 = tau (hadronic)
|
---|
239 | ! 4 = jet
|
---|
240 | ! 5 = heavy charged
|
---|
241 | . pobj(4,nobjmx), ! four vector of reconstructed object
|
---|
242 | . qobj(nobjmx), ! charge of reconstructed object
|
---|
243 | . vecobj(10,nobjmx) ! interesting object quantities
|
---|
244 |
|
---|
245 | c --------------------------
|
---|
246 | c table of vecobj quantities
|
---|
247 | c --------------------------
|
---|
248 | c
|
---|
249 | c -------------------------------------------------------------------------------------
|
---|
250 | c type 1 2 3 4 5 6 7
|
---|
251 | c -------------------------------------------------------------------------------------
|
---|
252 | c 0 photon EM energy HAD energy track E N(trk) width - -
|
---|
253 | c 1 electron " " " " " " - - -
|
---|
254 | c 2 muon " " " " " " trk iso E - -
|
---|
255 | c 3 tau " " " " " " width mtau ptmax
|
---|
256 | c 4 jet " " " " " " " flavor c,b tags ->
|
---|
257 | c -------------------------------------------------------------------------------------
|
---|
258 | c
|
---|
259 | c b, c tagging: vecobj(7,iobj) non-zero if charm tag (jet prob. alg.)
|
---|
260 | c vecobj(8,iobj) non-zero if b tag ( " " " )
|
---|
261 | c vecobj(9,iobj) non-zero if b tag (impact method)
|
---|
262 | c
|
---|
263 | c --> all algorithms include rates for gluon, uds, c and b jets
|
---|
264 | c
|
---|