| <large>libXpertMassCore and libXpertMassGui Developer Documentation</large>

- Global variables and enums
- MsXpS::libXpertMassCore::Enums Namespace

# MsXpS::libXpertMassCore::Enums Namespace

namespace MsXpS::libXpertMassCore::Enums

Contains the libXpertMassCore Enums documentation. More...

Header: | `#include <Enums>`

- Enums is part of Global variables and enums.

## Types

enum class | CapType { NONE, LEFT, RIGHT, BOTH }
enum class | ChemicalEntity { NONE, MONOMER, MODIF, CROSS_LINKER, MODIF_AND_CROSS_LINKER, …, FORCE_BOTH_END_MODIFS }
enum class | ChemicalGroupFate { LOST, PRESERVED }
enum class | ChemicalGroupTrapped { NEVER, LEFT, RIGHT }
enum class | CleavageAction { NOT_SET, NO_CLEAVE, CLEAVE }
enum class | CrossLinkEncompassed { NOT, PARTIALLY, FULLY }
enum class | FragEnd { NE, LE, RE, BE }
enum class | HashAccountData { NOTHING, SEQUENCE, MONOMER_MODIF, POLYMER_MODIF }
enum | IonizationOutcome { FAILED, UNCHANGED, IONIZED, DEIONIZED }
enum class | LocationType { INDEX, POSITION }
enum class | MassDataType { NOT_SET, MASS_SPECTRUM, DRIFT_SPECTRUM, TIC_CHROMATOGRAM, XIC_CHROMATOGRAM, …, DT_MZ_COLORMAP }
enum class | MassPeakShapeType { NOT_SET, GAUSSIAN, LORENTZIAN }
enum class | MassPeakWidthLogic { NOT_SET, FWHM, RESOLUTION }
enum class | MassToleranceType { NONE, PPM, MZ, AMU, RES }
enum class | MassType { MONO, AVG, BOTH }
enum class | PolChemDefEntityStatus { POL_CHEM_DEF_NOT_AVAILABLE, ENTITY_NOT_KNOWN, ENTITY_KNOWN }
enum class | PolymerEnd { NONE, LEFT, RIGHT, BOTH }
enum class | SelectionType { RESIDUAL_CHAINS, OLIGOMERS }
enum class | TextType { NOT_SET, TEXT, HTML }

## Detailed Description

## Type Documentation

### enum class Enums::CapType

This enum specifies the polymer cap.

The polymer cap is the chemical entity that is set to the polymer end so as to finish its polymerization state from a chain of residues to an actual polymer molecule.

Constant | Value | Description
--- | --- | ---
`MsXpS::libXpertMassCore::Enums::CapType::NONE` | `0 << 1` | The cap is not defined
`MsXpS::libXpertMassCore::Enums::CapType::LEFT` | `1 << 1` | The left cap
`MsXpS::libXpertMassCore::Enums::CapType::RIGHT` | `2 << 1` | The right cap
`MsXpS::libXpertMassCore::Enums::CapType::BOTH` | `(LEFT | RIGHT)` | (LEFT | RIGHT)

### enum class Enums::ChemicalEntity

This enum specifies the monomer chemical entities to account for in a calculation.

This enum is typically used when mass calculations need to account or not for the various chemical entities that are attached to a given monomer.

Constant | Value | Description
--- | --- | ---
`MsXpS::libXpertMassCore::Enums::ChemicalEntity::NONE` | `0` | The chemical entity is not defined.
`MsXpS::libXpertMassCore::Enums::ChemicalEntity::MONOMER` | `1 << 0` | The monomer
`MsXpS::libXpertMassCore::Enums::ChemicalEntity::MODIF` | `1 << 1` | The modification
`MsXpS::libXpertMassCore::Enums::ChemicalEntity::CROSS_LINKER` | `1 << 2` | The cross-linker
`MsXpS::libXpertMassCore::Enums::ChemicalEntity::MODIF_AND_CROSS_LINKER` | `(MODIF | CROSS_LINKER)` | The modification and the cross-linker
`MsXpS::libXpertMassCore::Enums::ChemicalEntity::CROSS_LINK` | `1 << 3` | The cross-link
`MsXpS::libXpertMassCore::Enums::ChemicalEntity::LEFT_END_MODIF` | `1 << 4` | The polymer left end modification
`MsXpS::libXpertMassCore::Enums::ChemicalEntity::FORCE_LEFT_END_MODIF` | `1 << 5` | Force accounting of the polymer left end modification even if selection does not encompass the left end monomer
`MsXpS::libXpertMassCore::Enums::ChemicalEntity::RIGHT_END_MODIF` | `1 << 6` | The polymer right end modification
`MsXpS::libXpertMassCore::Enums::ChemicalEntity::FORCE_RIGHT_END_MODIF` | `1 << 7` | Force accounting of the polymer right end modification even if selection does not encompass the right end monomer
`MsXpS::libXpertMassCore::Enums::ChemicalEntity::BOTH_END_MODIFS` | `(LEFT_END_MODIF | RIGHT_END_MODIF)` | Both the polymer left and right ends modifications
`MsXpS::libXpertMassCore::Enums::ChemicalEntity::FORCE_BOTH_END_MODIFS` | `(FORCE_LEFT_END_MODIF | FORCE_RIGHT_END_MODIF)` | Force accounting of both the polymer left and right ends modifications even if selection does not encompass any of the polymer ends monomers

### enum class Enums::ChemicalGroupFate

This enum specifies how the chemical group behaves when the chemical entity that it holds polymerizes into a Polymer.

This example clarifies the concept:

    <monomer>
      <code>C</code>
      <mnmchemgroup>
        <name>N-term NH2</name>
        <pka>9.6</pka>
        <acidcharged>TRUE</acidcharged>
        <polrule>left_trapped</polrule>
        <chemgrouprule>
          <entity>LE_PLM_MODIF</entity>
          <name>Acetylation</name>
          <outcome>LOST</outcome>
        </chemgrouprule>
      </mnmchemgroup>

When the Cysteine's amino group is modified because the Cys residue on on the N-terminal end of the polymer, if it gets acetylated, then the amino group is lost because it is trapped in the amide bond. It is thus not accounted for when computing the pI of the protein.

Constant | Value | Description
--- | --- | ---
`MsXpS::libXpertMassCore::Enums::ChemicalGroupFate::LOST` | `0` | The chemical group is lost upon modification of the Monomer.
`MsXpS::libXpertMassCore::Enums::ChemicalGroupFate::PRESERVED` | `1` | The chemical group is preserved upon modification of the Monomer.

### enum class Enums::ChemicalGroupTrapped

This enum specifies how the chemical group behaves when the chemical entity that it holds polymerizes into a Polymer.

One example will clear things out:

An amino acid has a amino group and a carboxylic acid group. The amino group gets entrapped in the monomer-to-monomer bond (the peptide bond) if the polymerization occurs at the left of the monomer. That means that if the Monomer holding this ChemicalGroup is N-terminal, then the amino group should be accounted for because it is intact. Conversely, the carboxylic acid group gets entrapped in the peptide bond if the polymerization occurs at the right of the monomer. That means that if the Monomer holding this ChemicalGroup is C-terminal, then the carboxylic acid group should be accounted for because it is intact.

Constant | Value | Description
--- | --- | ---
`MsXpS::libXpertMassCore::Enums::ChemicalGroupTrapped::NEVER` | `0x0` | The chemical group is not lost upon polymerization, it should thus always be accounted for.
`MsXpS::libXpertMassCore::Enums::ChemicalGroupTrapped::LEFT` | `1 << 0` | The chemical group gets trapped in the inter-monomer bond if polymerization occurs at left of the Monomer.
`MsXpS::libXpertMassCore::Enums::ChemicalGroupTrapped::RIGHT` | `1 << 1` | The chemical group gets trapped in the inter-monomer bond if polymerization occurs at right of the Monomer.

### enum class Enums::CleavageAction

This enum specifies the cleavage operation to be carried out.

This enum is typically used when CleavageMotif objects are configured, either for cleavage (after arginine, for Trypsin) or not-for-cleavage, at K/P, for Trypsin).

Constant | Value | Description
--- | --- | ---
`MsXpS::libXpertMassCore::Enums::CleavageAction::NOT_SET` | `-1` | The CleavageAction has not been configured
`MsXpS::libXpertMassCore::Enums::CleavageAction::NO_CLEAVE` | `0` | The opeartion is actual cleavage
`MsXpS::libXpertMassCore::Enums::CleavageAction::CLEAVE` | `1` | The operation is no cleavage

### enum class Enums::CrossLinkEncompassed

This enum type specifies the manner in which a sequence region in a Polymer or in an Oligomer contains fully, partially or not at all the monomers involved in a CrossLink:

Constant | Value | Description
--- | --- | ---
`MsXpS::libXpertMassCore::Enums::CrossLinkEncompassed::NOT` | `0` | The region does not contain any Monomer involved in a CrossLink.
`MsXpS::libXpertMassCore::Enums::CrossLinkEncompassed::PARTIALLY` | `1` | The region contains one or more Monomers involved in a CrossLink but not all.
`MsXpS::libXpertMassCore::Enums::CrossLinkEncompassed::FULLY` | `2` | All the Monomers involved in the CrossLink are contained in the Polymer or Oligomer region.

### enum class Enums::FragEnd

This enum specifies the end of the polymer that is found in a fragment.

This enum is typically used to tell what polymer end is found in a fragment ion product. For example, in protein fragmentations, the a, b, c fragments contain the left end of the peptide that was fragmented, while the x, y, z fragments contain the right end of the fragmented peptide.

Constant | Value | Description
--- | --- | ---
`MsXpS::libXpertMassCore::Enums::FragEnd::NE` | `0x0` | The fragment contains none of the precursor oligomer ion ends (immonium ions, for example).
`MsXpS::libXpertMassCore::Enums::FragEnd::LE` | `1 << 0` | The fragment contains the left end of the precursor oligomer ion.
`MsXpS::libXpertMassCore::Enums::FragEnd::RE` | `1 << 1` | The fragment contains the right end of the precursor oligomer ion.
`MsXpS::libXpertMassCore::Enums::FragEnd::BE` | `(LE | RE)` | The fragment contains both the left and the right ends of the precursor oligomer ion.

### enum class Enums::HashAccountData

This enum specifies the chemical entities to account for when calculating a hash.

Constant | Value | Description
--- | --- | ---
`MsXpS::libXpertMassCore::Enums::HashAccountData::NOTHING` | `0x0` | Nothing
`MsXpS::libXpertMassCore::Enums::HashAccountData::SEQUENCE` | `1 << 0` | The sequence
`MsXpS::libXpertMassCore::Enums::HashAccountData::MONOMER_MODIF` | `1 << 1` | Monomer modifications
`MsXpS::libXpertMassCore::Enums::HashAccountData::POLYMER_MODIF` | `1 << 2` | Polymer modifications

### enum Enums::IonizationOutcome

This enum specifies the outcome of an ionization or deionization process.

Constant | Value | Description
--- | --- | ---
`MsXpS::libXpertMassCore::Enums::FAILED` | `0` | The operation failed.
`MsXpS::libXpertMassCore::Enums::UNCHANGED` | `1` | The ionization status did not change. For example calling deionize() on a non-ionized entity returns UNCHANGED.
`MsXpS::libXpertMassCore::Enums::IONIZED` | `2` | The ionization was successful.
`MsXpS::libXpertMassCore::Enums::DEIONIZED` | `3` | The deionization was successful.

### enum class Enums::LocationType

This enum type specifies the kind of location, typically in a container:

Constant | Value | Description
--- | --- | ---
`MsXpS::libXpertMassCore::Enums::LocationType::INDEX` | `0` | The location is specified as an index, that is, the numbering starts with 0
`MsXpS::libXpertMassCore::Enums::LocationType::POSITION` | `1` | The location is specified as a position, that is, the numbering starts with 1

### enum class Enums::MassDataType

This enum type specifies the kind of mass data that are encoded in a CBOR container.

Constant | Value | Description
--- | --- | ---
`MsXpS::libXpertMassCore::Enums::MassDataType::NOT_SET` | `0` | The mass data type is not set
`MsXpS::libXpertMassCore::Enums::MassDataType::MASS_SPECTRUM` | `1` | The mass data type is a mass spectrum
`MsXpS::libXpertMassCore::Enums::MassDataType::DRIFT_SPECTRUM` | `2` | The mass data type is a drift spectrum (ion mobility data)
`MsXpS::libXpertMassCore::Enums::MassDataType::TIC_CHROMATOGRAM` | `3` | The mass data type is total ion current chromatogram
`MsXpS::libXpertMassCore::Enums::MassDataType::XIC_CHROMATOGRAM` | `4` | The mass data type is an extract ion current chromatogram
`MsXpS::libXpertMassCore::Enums::MassDataType::MZ_RT_COLORMAP` | `5` | The mass data type is an MZ/RT color map
`MsXpS::libXpertMassCore::Enums::MassDataType::DT_RT_COLORMAP` | `6` | The mass data type is a DT/RT color map
`MsXpS::libXpertMassCore::Enums::MassDataType::DT_MZ_COLORMAP` | `7` | The mass data type is DT/MZ color map

### enum class Enums::MassPeakShapeType

This enum specifies how the peak shape needs to be computed.

Constant | Value | Description
--- | --- | ---
`MsXpS::libXpertMassCore::Enums::MassPeakShapeType::NOT_SET` | `0` | The value is not set.
`MsXpS::libXpertMassCore::Enums::MassPeakShapeType::GAUSSIAN` | `1` | The peak shape is computed using the Gaussian function.
`MsXpS::libXpertMassCore::Enums::MassPeakShapeType::LORENTZIAN` | `2` | The peak shape is computed using the Lorentzian function.

### enum class Enums::MassPeakWidthLogic

This enum specifies how the peak shape needs to be computed.

Constant | Value | Description
--- | --- | ---
`MsXpS::libXpertMassCore::Enums::MassPeakWidthLogic::NOT_SET` | `0` | The value is not set.
`MsXpS::libXpertMassCore::Enums::MassPeakWidthLogic::FWHM` | `1` | The width of the peak shape is determined using the FWHM (full width at half maximum).
`MsXpS::libXpertMassCore::Enums::MassPeakWidthLogic::RESOLUTION` | `2` | The width of the peak shape is determined using the resolving power of the instrument.

### enum class Enums::MassToleranceType

This enum type specifies the kind of mass tolerance to use for a mass calculation or a mass comparison.

Constant | Value | Description
--- | --- | ---
`MsXpS::libXpertMassCore::Enums::MassToleranceType::NONE` | `0` | The tolerance is not specified
`MsXpS::libXpertMassCore::Enums::MassToleranceType::PPM` | `1` | The tolerance is based on parts per million
`MsXpS::libXpertMassCore::Enums::MassToleranceType::MZ` | `2` | The tolerance is based on an absolute m/z value
`MsXpS::libXpertMassCore::Enums::MassToleranceType::AMU` | `3` | The tolerance is based on an absolute mass value
`MsXpS::libXpertMassCore::Enums::MassToleranceType::RES` | `4` | The tolerance is based on resolution

### enum class Enums::MassType

This enum type specifies the type of mass

Constant | Value | Description
--- | --- | ---
`MsXpS::libXpertMassCore::Enums::MassType::MONO` | `1 << 0` | The mass is monoisotopic
`MsXpS::libXpertMassCore::Enums::MassType::AVG` | `1 << 1` | The mass is average
`MsXpS::libXpertMassCore::Enums::MassType::BOTH` | `(MONO | AVG)` | (MONO | AVG)

### enum class Enums::PolChemDefEntityStatus

This enume specifies the status of a polymer chemistry entity

Constant | Value | Description
--- | --- | ---
`MsXpS::libXpertMassCore::Enums::PolChemDefEntityStatus::POL_CHEM_DEF_NOT_AVAILABLE` | `0` | The polymer chemistry entity is not available
`MsXpS::libXpertMassCore::Enums::PolChemDefEntityStatus::ENTITY_NOT_KNOWN` | `1` | The polymer chemistry entity is not known to the polymer chemistry definition
`MsXpS::libXpertMassCore::Enums::PolChemDefEntityStatus::ENTITY_KNOWN` | `2` | The polymer chemistry entity is known to the polymer chemistry definition

### enum class Enums::PolymerEnd

This enum specifies the polymer end.

Constant | Value | Description
--- | --- | ---
`MsXpS::libXpertMassCore::Enums::PolymerEnd::NONE` | `0 << 1` | Not defined
`MsXpS::libXpertMassCore::Enums::PolymerEnd::LEFT` | `1 << 1` | The left end
`MsXpS::libXpertMassCore::Enums::PolymerEnd::RIGHT` | `2 << 1` | The right end
`MsXpS::libXpertMassCore::Enums::PolymerEnd::BOTH` | `(LEFT | RIGHT)` | (LEFT | RIGHT)

### enum class Enums::SelectionType

This enum specifies the selection type in a polymer sequence.

Constant | Value | Description
--- | --- | ---
`MsXpS::libXpertMassCore::Enums::SelectionType::RESIDUAL_CHAINS` | `0` | The selection comprises only residues
`MsXpS::libXpertMassCore::Enums::SelectionType::OLIGOMERS` | `1` | The selection comprises oligomers, that is, residual chains capped with the left and right caps.

### enum class Enums::TextType

This enum type specifies the kind of text being handled

Constant | Value | Description
--- | --- | ---
`MsXpS::libXpertMassCore::Enums::TextType::NOT_SET` | `0` | The text type has not been set
`MsXpS::libXpertMassCore::Enums::TextType::TEXT` | `1` | The text type is simple text with no formatting whatsoever
`MsXpS::libXpertMassCore::Enums::TextType::HTML` | `2` | The text type is HTML text