[2] | 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
|
---|