Project

General

Profile

GMC Output

Data Format

The data for the e906 experiment, both simulated and real, is stored in a MySQL database. Currently, the GMC output is stored on the seaquel.physics.illinois.edu server. This server can be accessed with MySQL workbench, which can be installed on Windows, Mac, or Linux. You can also find other MySQL interfaces on the internet if you find workbench unsuitable for your needs. There are also libraries for interfacing with MySQL for almost any programming language.

All values have units of GeV, cm, or radians where appropriate.

Output Tables

mRun

The mRun table includes all the relevant settings for the run.

Name Variable type Description
runID INT The run number
gitHash STRING This string can be cross referenced with the git hashes in the repository to know the version used. However, using the GMC Versions page and the M### part of the production name is simpler.
seed INT The random number seed.
eventsThrown INT Attempted number of events in the run. This includes attempts at generating dimuons that fail at the generator level due to physical impossibility
eventsThrownPhysical INT Dimuon generator only. Number of events in the run. This includes dimuons that fail the acceptance cut but not dimuons that fail due to physical impossibility
beamMomentum DOUBLE Beam momentum
beamCurrent DOUBLE Protons/sec of the incoming beam
APA DOUBLE Output for debugging, will likely be removed
asciiFieldMap BOOL 1 means the magnetic field was loaded from ascii files, 0 if loaded from MySQL
generator STRING dimuon or gun. What type of particle generator was used
dimuonSource STRING Dimuon generator only. If a dimuon generator, gives what type of dimuons were generated. Drell-Yan, JPsi, or Psi'
eventPos STRING Dimuon generator only. target, dump, upstream, or all. Gives the location dimuons were generated
dimuonRepeat INT Dimuon generator only. If more than one, multiple dimuons are generated with the exact same starting kinematics.
x1Min DOUBLE Dimuon generator only. Minimum value of x for the beam
x1Min DOUBLE Dimuon generator only. Maximum value of x for the beam
x2Min DOUBLE Dimuon generator only. Minimum value of x for the target
x2Min DOUBLE Dimuon generator only. Miaximum value of x for the target
xFMin DOUBLE Dimuon generator only. Minimum value of Feynmann x
xFMin DOUBLE Dimuon generator only. Miaximum value of Feynmann x
massMin DOUBLE Dimuon generator only. Minimum value of x for the dimuon mass
massMin DOUBLE Dimuon generator only. Maximum value of x for the dimuon mass
cosThetaMin DOUBLE Dimuon generator only. Minimum value of cos(theta_mu)
cosThetaMax DOUBLE Dimuon generator only. Maximum value of cos(theta_mu)
recordMethod STRING hits means events without hits are not recorded, energy means all particles above a certain energy are recorded, all means everything is recorded, and dimuonFull means only dimuons where both muons make it to the back are recorded.
fmagStrength DOUBLE A number that multiplies the values in the magnetic field map for fmag
kmagStrength DOUBLE A number that multiplies the values in the magnetic field map for kmag
pythiaShower BOOL Toggle for Pythia generator. Turns QCD shower simulation on/off. Field not included for non pythia generators
geometrySchema STRING The name of the MySQL schema used for the shape, material, and position of objects in the experiment
magnetSchema STRING The name of the MySQL schema where one gets the magnetic field map, IF magFromAscii is false
target INT The same integer used in data to identify targets
timeStart STRING Date and time the run started
timeStop STRING Date and time the run finished

Spill

Intended to mimic the Spill table in data. Most of the entries don't correspond to anything in the Monte Carlo, they are just there in case a program that runs on both data and Monte Carlo reads in those numbers.

Event

Name Variable type Description
eventID INT Index for events. Incremented by one each event
codaEventID INT Included to mimic data
runID INT The run number
spillID INT Index for spills. Incremented by one each spill
MATRIX1 BOOL 1 if the hits matched a pattern for the matrix 1 trigger
MATRIX1 BOOL 1 if the hits matched a pattern for the matrix 2 trigger
MATRIX1 BOOL 1 if the hits matched a pattern for the matrix 3 trigger
MATRIX1 BOOL 1 if the hits matched a pattern for the matrix 4 trigger
MATRIX1 BOOL 1 if the hits matched a pattern for the matrix 5 trigger
NIM1 BOOL 1 if the hits matched a pattern for the nim 1 trigger
NIM2 BOOL 1 if the hits matched a pattern for the nim 2 trigger
NIM3 BOOL 1 if the hits matched a pattern for the nim 3 trigger
NIM4 BOOL 1 if the hits matched a pattern for the nim 4 trigger
NIM5 BOOL 1 if the hits matched a pattern for the nim 5 trigger
dataQuality INT Not currently filled, included to match data table
vmeTime INT Not currently filled, included to match data table

mDimuon

Only available in dimuon productions.

Name Variable type Description
runID INT The run number
spillID INT Index for spills. Incremented by one each spill
eventID INT Index for events. Incremented by one each event
mTrackID1 INT Track index for the positive muon. Used to be trackID1 before version 1012
mTrackID2 INT Track index for the negative muon. Used to be trackID1 before version 1012
mass DOUBLE Invariant mass of the dimuon
xF DOUBLE Feynmann x for the collision
xB DOUBLE Bjorken x for the incident parton
xT DOUBLE Bjorken x for the target parton
dx DOUBLE x coordinate of dimuon origin
dy DOUBLE y coordinate of dimuon origin
dz DOUBLE z coordinate of dimuon origin
dpx DOUBLE Initial x momentum of the dimuon
dpy DOUBLE Initial y momentum of the dimuon
dpz DOUBLE Initial z momentum of the dimuon
phi_gam DOUBLE Phi of virtual photon, in xy plane
phi_mu DOUBLE Phi of mu+, Collins-Soper frame
theta_mu DOUBLE Theta of mu+, Collins-Soper frame
sigWeight DOUBLE How likely this event is, according to the cross-section
acceptDriftAll BOOL 1 if both muons hit drift chambers in all 4 stations. This includes prop tubes
acceptHodoAll BOOL 1 if both muons hit the trigger hodoscopes in all 4 stations

mGun

Only available in gun productions.

Name Variable type Description
runID INT The run number. Equal to the random number seed for Monte Carlo runs
spillID INT Index for spills. Incremented by one each spill
eventID INT Index for events. Incremented by one each event
bucketSize INT How many protons were generated for this event

mTrack

Name Variable type Description
mTrackID INT Index for tracks. Incremented by one for each new track. Used to be trackID before version 1012
runID INT The run number. Equal to the random number seed for Monte Carlo runs
spillID INT Index for spills. Incremented by one each spill
eventID INT Index for events. Incremented by one each event
parentID INT Index of the parent track for this particle
particleID INT LUND particle code
parentParticleID INT LUND particle code for the parent particle
x0 DOUBLE x coordinate of track origin
y0 DOUBLE y coordinate of track origin
z0 DOUBLE z coordinate of track origin
xf DOUBLE x coordinate of track end
yf DOUBLE y coordinate of track end
zf DOUBLE z coordinate of track end
px0 DOUBLE initial x momentum
py0 DOUBLE initial y momentum
pz0 DOUBLE initial z momentum
pxf DOUBLE final x momentum
pyf DOUBLE final y momentum
pzf DOUBLE final z momentum
x3 DOUBLE x coordinate of track near station 3
y3 DOUBLE y coordinate of track near station 3
z3 DOUBLE z coordinate of track near station 3
px3 DOUBLE x momentum of track near station 3
py3 DOUBLE y momentum of track near station 3
pz3 DOUBLE z momentum of track near station 3
x1 DOUBLE x coordinate of track near station 1
y1 DOUBLE y coordinate of track near station 1
z1 DOUBLE z coordinate of track near station 1
px1 DOUBLE x momentum of track near station 1
py1 DOUBLE y momentum of track near station 1
pz1 DOUBLE z momentum of track near station 1
charge INT Charge of particle
creationProcess STRING How particle was created, i.e. e+ e- annihilation, etc.
hitHodo1 BOOL true if the track hit H1x
hitHodo2 BOOL true if the track hit H2x
hitHodo3 BOOL true if the track hit H3x
hitHodo4 BOOL true if the track hit H4x
hitDrift1 BOOL true if the track hit D1
hitDrift2 BOOL true if the track hit D2
hitDrift3 BOOL true if the track hit D3
hitDrift4 BOOL true if the track hit the prop tubes
protonID INT trackID of the initial proton that generated this particle. Gun generator only

mHit

Column Name Variable Type Description
mHitID INT Index for digitized hits
hitID INT reference to the hit in the Hit table that results from this hit. May be NULL with detector inefficiencies.
runID INT The run number
spillID INT Index for spills. Incremented by one each spill
eventID INT reference to the event in Event table this wire hit was calculated from
mTrackID INT reference to the track in mTrack table this wire hit was calculated from
detectorName STRING Name of the detector that was hit
elementID INT wire number or hodoscope paddle hit
rocID INT rocID the detectorName, elementID maps to
boardID INT boardID the detectorName, elementID maps to
channelID INT channelID the detectorName, elementID maps to
particleID INT LUND particle code
driftDistance DOUBLE Drift distance
driftTime DOUBLE Estimated drift time in microseconds, derived from drift distance according to our RT curves
tdcTime DOUBLE Estimate of the tdcTime such a hit would generate in our electronics
hx DOUBLE x position of hit
hy DOUBLE y position of hit
hz DOUBLE z position of hit
hpx DOUBLE x momentum of hit
hpy DOUBLE y momentum of hit
hpz DOUBLE z momentum of hit

Hit

This table is supposed to mimic the Hit table from data. The Hit table is produced from the mHit table, tossing out hits that miss the sensitive area of the detector, or randomly according to the inefficieny value in the Planes table. Extra hits might also be added if a source of noise is added to GMC.

mNoiseHit

This table links the mHit table and the Hit table.

Column Name Variable Type Description
mHitID INT reference to an entry in the mHit table
hitID INT reference to an entry in the Hit table
type STRING Explains the origin of the Hit in the Hit table, or why a Hit entry was not produced from an mHit entry

Proper Weighting

This section describes the methods of normalizing a set of GMC events to get the rate in Hz unit. Written by Kenichi, confirmed by BZ, as of June 15, 2013.

Gun Mode

First add up all hits to get a yield in a certain condition (like detector area, mass range, pT range, etc). Then multiply the yield by

[N of protons per second] / [N of protons fired]

N of protons per second is the beamCurrent field in mRun, and is usually 2e12. N of protons fired is the sum of the bucketSize field for all entries in the mGun table. This returns the rate in Hz of all hits meeting this condition.

Dimuon Mode

First sum up the sigWeight in the mDimuon table for all the entries that match the kinematics you are looking at. Then divide the weighted yield by the number of generated events, which is the sum of the eventsThrown field in the mRun table. This will return a a rate in Hz, dimuons per second. Note that you must divide by the number of generated events, not accepted events. Even without acceptance cuts the number of rows in the mDimuon table will fall short of the number of events thrown due to physically impossible dimuons. This rate in Hz depends on the beamCurrent setting in the mRun table which affects the weights of the dimuons. To get it from dimuons per second to dimuons per proton you can divide the dimuons per second number by the beamCurrent entry in the mRun table. The beamCurrent entry should be the same for every run unless someone produced a really weird Monte Carlo.