The RSet's have not yet been specified ....
*/
SUBSCHEMA MINOSNeut : 'Neutrino Event'
AUTHOR 'Robert Hatcher'
VERSION '1.3'
DATE '1996.12.05'
REVIEWER 'no one (yet)'
/*
General description ...
Define some new 'types'.
*/ DEFINE ATTRIBUTE END ATTRIBUTE /*
The ESet NeuKin represents the neutrino interaction physics and basic kinematics. Sigma is not except when the event was generated using NEUGEN, and some of the other values must be inferred (back-calculated) from the results in the STDHEP block).
This ESet record also carries a condensed representation of the event by means of the P4*** variables. These are filled from the StdHep table by mean of the fillmushw_neukin routine (in the gminos/io directory).
The variable P4Mu1 should be the primary muon of a Charged-Current nu_mu event and the muon with the highest energy otherwise. Then P4Mu2 holds the next highest energy muon (or highest in the case of a low-Emu CC with a large secondary muon). Any third muon (which no doubt will be very low energy) would then get lumped in along with the electrons, pi_0s, hadrons (including neutrals) to form the shower; this means that the shower is the lump of everything other than the two muons and any outgoing neutrinos.
As a convention, the sign of the 4-th component of all lepton vectors carries the lepton charge (+/-).
*/
DEFINE ESET
NeuVtx =
( X = REAL : 'global x position (cm)',
Y = REAL : 'global y position (cm)',
Z = REAL : 'global z position (cm)'
) : 'Neutrino event interaction point' ;
NeuKin =
( INu = INTE : 'PDG id of neutrino',
/* nu_e=12, nu_mu=14, nu_tau=16, anti=- */
INuNoOsc = INTE : 'PDG id of un-oscillated neutrino',
ITg = INTE : 'PDG id of target nucleon ',
/* p=2212 n=2112 */
IBoson = INTE : 'PDG id of exchange boson ',
/* Z0=23 W+=24 */
IResonance = INTE : 'resonance number',
/* 0=QE, 1-18=resonace, >20=inelastic */
IAction = INTE : '0=NC 1=CC (2=QE 3=QE+pi) ',
A = REAL : 'nucleus A',
Z = REAL : 'nucleon Z',
Sigma = REAL : 'cross section for this interaction',
P4Neu(4) = REAL : 'neutrino momentum+energy',
P4NeuNoOsc(4) = REAL : 'unoscillated neutrino 4-vector',
P4Tgt(4) = REAL : 'target nucleon momentum+energy',
/* 4-vector because Fermi motion may mean
that target is NOT at rest in lab frame */
X = REAL : 'Bj x',
Y = REAL : 'y',
Q2 = REAL : 'Q**2 ',
W2 = REAL : 'W**2 ',
P4Shw(4) = REAL : 'shower (hadronic+em) momentum+KE energy',
P4Mu1(4) = REAL : 'primary muon, momentum+energy',
P4Mu2(4) = REAL : 'secondary muon, momentum+energy',
/* eg. from charm production and decay */
EMFrac = REAL : 'fraction of "shower" energy which is EM',
P4El1(4) = REAL : 'first electron, momentum+energy',
P4El2(4) = REAL : 'highest E second electron, momentum+energy',
P4Tau(4) = REAL : 'highest E tau (may have decayed)'
)
ALIAS
Enu = P4Neu(4) : 'neutrino energy (GeV)'
END ALIAS;
/*
The ESet StdHep is a blind copy of the STDHEP structure. This may not be an optimal organization but it is straight forward.
*/
StdHepHead =
( NevHEP = INTE : 'event number',
NHEP = INTE : 'number of entries'
);
StdHep =
( IstHEP = INTE : 'status code',
/* IstHep convention:
0 - final state particle if JdaHEP=0
intermediate particle if JdaHEP>0
(NEUGEN extension; was "null")
1 - final state particle
2 - intermediate state
3 - documentation line
4-10 - reserved for future
11-200 - reserved for specific model use
201+ - reserved for users */
IdHEP = INTE : 'particle ID (PDG standard)',
JmoHEP(2) = INTE : 'mother index (first,second)',
JdaHEP(2) = INTE : 'daughter index range (first,last)',
PHEP(5) = REAL : 'px,py,pz,E,m (GeV)',
VHEP(4) = REAL : 'x,y,z,t of vertex (mm,mm/c)'
)
ALIAS
Mother1 = JmoHEP(1) : 'first mother index';
Mother2 = JmoHEP(2) : 'second mother index';
FirstChld = JdaHEP(1) : 'first daughter index';
LastChld = JdaHEP(2) : 'last daughter index';
Px = PHEP(1) : 'x momentum in GeV/c';
Py = PHEP(2) : 'y momentum in GeV/c';
Pz = PHEP(3) : 'z momentum in GeV/c';
Energy = PHEP(4) : 'Energy in GeV';
Mass = PHEP(5) : 'mass in GeV/c**2';
XPos = VHEP(1) : 'x vertex position in mm';
YPos = VHEP(2) : 'y vertex position in mm';
ZPos = VHEP(3) : 'z vertex position in mm';
Time = VHEP(4) : 'production time in mm/c';
/* see STDHEP documentation */
END ALIAS;
/*
The ESet MassDistrib describes the distribution of matter along the line-of-sight seen by the neutrino as pulled from the flux file. The ESet AvailNuclei sums up the MassDistrib table and breaks it into elements. These are used to in order to pick the right frequencies for the nuclei and the right vertex positions. They are not normally written out to the data stream.
*/
MassDistrib =
( Material = INTE : 'material #',
SBegin = REAL : 'dist from xyz_mars_nu to start of "chunk"',
SEnd = REAL : 'dist from xyz_mars_nu to end of "chunk"',
PathSumMat = REAL : 'cummulative path sum for *this* material'
);
AvailNuclei =
( Material = INTE : 'material #',
Z = INTE : 'atomic number',
A = INTE : 'atomic weight (note: integer)',
PathLength = REAL : 'total length in Material (cm)',
NucleiDensity = REAL : 'material density * element fraction',
SumNuclei = REAL : '#nuclei/cm**2 w/o Avogadro #',
/* PathLength*NucleiDensity/A_average */
Sigma = REAL : 'total cross section on one (A,Z) nucleus',
AZWgt = REAL : 'Sigma * SumNuclei',
SumWgt = REAL : 'sum of AvailNuclei_AZWgt'
)
END ESET
END SUBSCHEMA