|
|
XPS domain specific rules in xps4xps |
|
|
|
The package comprises several XPS domain specific simple rules. They are the followings: (in a meta-programming language format)
HasPeakInRangeBE(Spectrum,BELow,BEHigh) =
{ found = false;
for ((Peak in Spectrum.Peaks) or found)
{
found = found
OR
IsPeakInRangeBE(Peak,BELow,BEHigh)
}
}
HasPeakInRangeKE(Spectrum,KELow,KEHigh) =
{ found = false;
for ((Peak in Spectrum.Peaks) or found)
{
found = found
OR
IsPeakInRangeKE(Peak,KELow,KEHigh)
}
}
IsEnergyAvailBE =
{ IsEnergyBE(Spectrum)
OR
IsEnergyKE(Spectrum)
AND
IsXEnergyKnown(Spectrum)
}
IsEnergyAvailKE =
{ IsEnergyKE(Spectrum)
OR
IsEnergyBE(Spectrum)
AND
IsXEnergyKnown(Spectrum)
}
IsEnergyBE =
{ Spectrum.EnergyBE == True;
}
IsEnergyKE =
{ Spectrum.EnergyBE == False;
}
whether there is a peak in the binding energy region
IsPeakInRangeBE(Peak,BLow,BHigh) =
{ // Transform Peak.Energy if on kinetic scale
IsRegionMeasuredBE(Spectrum,BLow-E4Background,BHigh+E4Background)
AND
BLow <= Peak.Energy <= BHigh
}
whether there is a peak in the kinetic energy region
IsPeakInRangeKE(Peak,KLow,KHigh) =
{ // Transform Peak.Energy if on binding scale
IsRegionMeasuredKE(Spectrum,KLow-E4Background,KHigh+E4Background)
AND
KLow <= Peak.Energy <= KHigh
}
(In the rules above, the parameter E4Background is used to determine
if sufficient length on both sides of the peak is available for
background determination)
IsRegionMeasuredBE(Spectrum,BLow,BHigh) =
{ // Transform Spectrum.MinEnergy and Spectrum.MaxEnergy,
// if on kinetic scale
Spectrum.MinEnergy <= BLow <= Spectrum.MaxEnergy
AND
Spectrum.MinEnergy <= BHigh <= Spectrum.MaxEnergy
}
IsRegionMeasuredKE(Spectrum,KLow,KHigh) =
{ // Transform Spectrum.MinEnergy and Spectrum.MaxEnergy,
// if on binding scale
Spectrum.MinEnergy <= KLow <= Spectrum.MaxEnergy
AND
Spectrum.MinEnergy <= KHigh <= Spectrum.MaxEnergy
}
IsXEnergyKnown =
{ Spectrum.XEnergyKnown == True;
}
|