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

- libXpertMassCore
- CalcOptions

# MsXpS::libXpertMassCore::CalcOptions Class

class MsXpS::libXpertMassCore::CalcOptions

The CalcOptions class provides the specifications that configure the way masses are calculated for Oligomers, Polymers and product ions. More...

Header: | `#include <MsXpS/libXpertMassCore/CalcOptions.hpp>`
Inherits: | QObject

- List of all members, including inherited members

## Properties

- capType : Enums::CapType
- isDeepCalculation : bool
- massType : Enums::MassType

- monomerEntities : Enums::ChemicalEntity
- polymerEntities : Enums::ChemicalEntity
- selectionType : Enums::CapType

## Public Functions

| CalcOptions(QObject *parent = nullptr)
| CalcOptions(bool deepCalculation, MsXpS::libXpertMassCore::Enums::MassType mass_type, MsXpS::libXpertMassCore::Enums::CapType capping, MsXpS::libXpertMassCore::Enums::ChemicalEntity monomer_entities, MsXpS::libXpertMassCore::Enums::ChemicalEntity polymer_entities, QObject *parent = nullptr)
| CalcOptions(const MsXpS::libXpertMassCore::CalcOptions &other, QObject *parent = nullptr)
virtual | ~CalcOptions()
MsXpS::libXpertMassCore::CalcOptions * | clone(QObject *parent = nullptr)
MsXpS::libXpertMassCore::Enums::CapType | getCapType() const
MsXpS::libXpertMassCore::IndexRangeCollection * | getIndexRangeCollection()
const MsXpS::libXpertMassCore::IndexRangeCollection & | getIndexRangeCollectionCstRef() const
MsXpS::libXpertMassCore::IndexRangeCollection & | getIndexRangeCollectionRef()
MsXpS::libXpertMassCore::Enums::MassType | getMassType() const
MsXpS::libXpertMassCore::Enums::ChemicalEntity | getMonomerEntities() const
MsXpS::libXpertMassCore::Enums::ChemicalEntity | getPolymerEntities() const
MsXpS::libXpertMassCore::Enums::SelectionType | getSelectionType() const
MsXpS::libXpertMassCore::CalcOptions & | initialize(const MsXpS::libXpertMassCore::CalcOptions &other)
bool | isDeepCalculation() const
void | setCapType(MsXpS::libXpertMassCore::Enums::CapType cap_type)
void | setDeepCalculation(bool deep)
void | setIndexRange(const MsXpS::libXpertMassCore::IndexRange &index_range = IndexRange())
void | setIndexRange(qsizetype index_start, qsizetype index_end)
void | setIndexRanges(const MsXpS::libXpertMassCore::IndexRangeCollection &index_ranges)
void | setMassType(MsXpS::libXpertMassCore::Enums::MassType mass_type)
void | setMonomerEntities(MsXpS::libXpertMassCore::Enums::ChemicalEntity monomer_chem_ent)
void | setPolymerEntities(MsXpS::libXpertMassCore::Enums::ChemicalEntity polymer_chem_ent)
void | setSelectionType(MsXpS::libXpertMassCore::Enums::SelectionType selection_type)
QString | toString() const
bool | operator!=(const MsXpS::libXpertMassCore::CalcOptions &other) const
bool | operator==(const MsXpS::libXpertMassCore::CalcOptions &other) const

## Static Public Members

MsXpS::libXpertMassCore::CalcOptions * | clone(const MsXpS::libXpertMassCore::CalcOptions &other, QObject *parent = nullptr)

## Protected Variables

MsXpS::libXpertMassCore::Enums::CapType | m_capType
bool | m_deepCalculation
MsXpS::libXpertMassCore::Enums::MassType | m_massType
MsXpS::libXpertMassCore::Enums::ChemicalEntity | m_monomerEntities
MsXpS::libXpertMassCore::Enums::ChemicalEntity | m_polymerEntities
MsXpS::libXpertMassCore::Enums::SelectionType | m_selectionType
MsXpS::libXpertMassCore::IndexRangeCollection * | mp_indexRangeCollection

## Detailed Description

## Property Documentation

### capType : Enums::CapType

This property holds the cap type, left or right (or both), to account for in the calculations.

Access functions:

MsXpS::libXpertMassCore::Enums::CapType | getCapType() const | [see note below]
void | setCapType(MsXpS::libXpertMassCore::Enums::CapType cap_type) | [see note below]

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

See also Enums::CapType.

### isDeepCalculation : bool

Tells if the calculations must involve the recalculation of all the masses of the Monomers in the sequence. This is typically needed when calculating masses involving modified Monomer instances, whereby each Monomer needs to recompute its mass taking into account the Modif instances attached to it.

Access functions:

bool | isDeepCalculation() const | [see note below]
void | setDeepCalculation(bool deep) | [see note below]

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

### massType : Enums::MassType

This property holds the mass type to compute, monoisotopic or average.

Access functions:

MsXpS::libXpertMassCore::Enums::MassType | getMassType() const | [see note below]
void | setMassType(MsXpS::libXpertMassCore::Enums::MassType mass_type) | [see note below]

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

See also Enums::MassType.

### monomerEntities : Enums::ChemicalEntity

This property holds the Monomer entities to account for in the calculations.

Access functions:

MsXpS::libXpertMassCore::Enums::ChemicalEntity | getMonomerEntities() const | [see note below]
void | setMonomerEntities(MsXpS::libXpertMassCore::Enums::ChemicalEntity monomer_chem_ent) | [see note below]

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

See also Enums::ChemicalEntity.

### polymerEntities : Enums::ChemicalEntity

This property holds the Polymer entities to account for in the calculations.

Access functions:

MsXpS::libXpertMassCore::Enums::ChemicalEntity | getPolymerEntities() const | [see note below]
void | setPolymerEntities(MsXpS::libXpertMassCore::Enums::ChemicalEntity polymer_chem_ent) | [see note below]

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

See also Enums::ChemicalEntity.

### selectionType : Enums::CapType

This property holds the manner the monomers need to be accounted for: as residual chains or as finished-polymerization state sequences.

The calculations might consider only the residual chain. In that case, only the mass of the monomers is considered and then the polymer is not in its finished polymerization state. If that latter state is required, then, the residual chain must be capped with both the left and the right end caps.

Access functions:

MsXpS::libXpertMassCore::Enums::CapType | getCapType() const | [see note below]
void | setCapType(MsXpS::libXpertMassCore::Enums::CapType cap_type) | [see note below]

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

See also MsXpS::libXpertMassCore::Enums::SelectionType.

## Member Function Documentation

### `[explicit invokable]` CalcOptions::CalcOptions(QObject *parent = nullptr)

Constructs an empty CalcOptions instance.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

### `[explicit invokable]` CalcOptions::CalcOptions(bool deepCalculation, MsXpS::libXpertMassCore::Enums::MassType mass_type, MsXpS::libXpertMassCore::Enums::CapType capping, MsXpS::libXpertMassCore::Enums::ChemicalEntity monomer_entities, MsXpS::libXpertMassCore::Enums::ChemicalEntity polymer_entities, QObject *parent = nullptr)

Constructs a CalcOptions instance.

All the members are initialized using the parameters:

- deepCalculation: m_deepCalculation (defaults to false)
- mass_type: m_massType (defaults to Enums::MassType::BOTH)
- capping: m_capType (defaults to Enums::CapType::BOTH)
- monomer_entities The monomer entities to be accounted for in the calculations (defaults to Enums::ChemicalEntity::NONE)
- polymer_entities: The polymer entities to be accounted for in the calculations (defaults to Enums::ChemicalEntity::NONE)

The selection type is set by default to Oligomer (not residual chain).

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

### `[explicit invokable]` CalcOptions::CalcOptions(const MsXpS::libXpertMassCore::CalcOptions &other, QObject *parent = nullptr)

Construct a CalcOptions instance as a copy of other.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

### `[virtual noexcept]` CalcOptions::~CalcOptions()

Destructs this CalcOptions object.

Clear the member coordinateList.

### `[invokable]` MsXpS::libXpertMassCore::CalcOptions *CalcOptions::clone(QObject *parent = nullptr)

Returns an newly allocated CalcOptions instance with parent set to parent.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

### `[static invokable]` MsXpS::libXpertMassCore::CalcOptions *CalcOptions::clone(const MsXpS::libXpertMassCore::CalcOptions &other, QObject *parent = nullptr)

b*rief Returns an newly allocated CalcOptions instance initialized using other and with parent set to parent.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

### `[invokable]` MsXpS::libXpertMassCore::Enums::CapType CalcOptions::getCapType() const

Returns the cap type.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

Note: Getter function for properties capType and selectionType.

See also m_capType.

### `[invokable]` MsXpS::libXpertMassCore::IndexRangeCollection *CalcOptions::getIndexRangeCollection()

Returns a reference to the member IndexRangeCollection instance.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

### `[invokable]` const MsXpS::libXpertMassCore::IndexRangeCollection &CalcOptions::getIndexRangeCollectionCstRef() const

Returns a const reference to the member IndexRangeCollection instance.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

### `[invokable]` MsXpS::libXpertMassCore::IndexRangeCollection &CalcOptions::getIndexRangeCollectionRef()

Returns a reference to the member IndexRangeCollection instance.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

### `[invokable]` MsXpS::libXpertMassCore::Enums::MassType CalcOptions::getMassType() const

Returns the mass type.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

Note: Getter function for property massType.

See also m_massType.

### `[invokable]` MsXpS::libXpertMassCore::Enums::ChemicalEntity CalcOptions::getMonomerEntities() const

Returns the monomer entities.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

Note: Getter function for property monomerEntities.

See also m_monomerEntities.

### `[invokable]` MsXpS::libXpertMassCore::Enums::ChemicalEntity CalcOptions::getPolymerEntities() const

Returns the polymer entities.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

Note: Getter function for property polymerEntities.

See also m_polymerEntities.

### `[invokable]` MsXpS::libXpertMassCore::Enums::SelectionType CalcOptions::getSelectionType() const

Returns the selection type.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

See also m_selectionType.

### `[invokable]` MsXpS::libXpertMassCore::CalcOptions &CalcOptions::initialize(const MsXpS::libXpertMassCore::CalcOptions &other)

Returns a reference to this CalcOptions after having initialized it using other.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

### `[invokable]` bool CalcOptions::isDeepCalculation() const

Returns if the calculation should be deep.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

Note: Getter function for property isDeepCalculation.

See also m_deepCalculation.

### `[invokable]` void CalcOptions::setCapType(MsXpS::libXpertMassCore::Enums::CapType cap_type)

Sets the cap type to cap_type.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

Note: Setter function for properties capType and selectionType.

See also m_capType.

### `[invokable]` void CalcOptions::setDeepCalculation(bool deep)

Sets to deep the configuration defining if the mass calculations must involve the recalculation of the masses of all the monomers.

The deep calculation is typically requested when computing masses involving Monomer instance that might be modified with Modif instances.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

Note: Setter function for property isDeepCalculation.

See also isDeepCalculation() and m_deepCalculation.

### `[invokable]` void CalcOptions::setIndexRange(const MsXpS::libXpertMassCore::IndexRange &index_range = IndexRange())

Copies index_range to the member IndexRangeCollection instance.

Note: The IndexRangeCollection instance is first emptied, making index_range essentially replacing its contents with a copy of index_range.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

### `[invokable]` void CalcOptions::setIndexRange(qsizetype index_start, qsizetype index_end)

Creates an IndexRange instance with index_start and index_end and sets it as the sole member of the member IndexRangeCollection instance.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

### `[invokable]` void CalcOptions::setIndexRanges(const MsXpS::libXpertMassCore::IndexRangeCollection &index_ranges)

Allocates a copy of each IndexRange instance in the index_ranges container and adds it to the member IndexRangeCollection instance.

Note: The IndexRangeCollection instance is first emptied, essentially replacing its contents with a copy of those in index_ranges.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

### `[invokable]` void CalcOptions::setMassType(MsXpS::libXpertMassCore::Enums::MassType mass_type)

Sets the mass type to mass_type.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

Note: Setter function for property massType.

See also m_massType.

### `[invokable]` void CalcOptions::setMonomerEntities(MsXpS::libXpertMassCore::Enums::ChemicalEntity monomer_chem_ent)

Sets the monomer entities to monomer_chem_ent.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

Note: Setter function for property monomerEntities.

See also m_monomerEntities.

### `[invokable]` void CalcOptions::setPolymerEntities(MsXpS::libXpertMassCore::Enums::ChemicalEntity polymer_chem_ent)

Sets the polymer entities to polymer_chem_ent.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

Note: Setter function for property polymerEntities.

See also m_polymerEntities.

### `[invokable]` void CalcOptions::setSelectionType(MsXpS::libXpertMassCore::Enums::SelectionType selection_type)

Set the selection type to selection_type.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

See also m_selectionType.

### `[invokable]` QString CalcOptions::toString() const

Returns a string describing this CalcOptions instance.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

### `[invokable]` bool CalcOptions::operator!=(const MsXpS::libXpertMassCore::CalcOptions &other) const

Returns true if this instance is different than other, false otherwise.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

### `[invokable]` bool CalcOptions::operator==(const MsXpS::libXpertMassCore::CalcOptions &other) const

Returns true if this instance is identical to other, false otherwise.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

## Member Variable Documentation

### MsXpS::libXpertMassCore::Enums::CapType CalcOptions::m_capType

This variable holds the cap type, left or right (or both), to account for in the calculations.

See also Enums::CapType.

### bool CalcOptions::m_deepCalculation

Tells if the calculations must involve the recalculation of all the masses of the Monomers in the sequence. This is typically needed when calculating masses involving modified Monomer instances, whereby each Monomer needs to recompute its mass taking into account the Modif instances attached to it.

### MsXpS::libXpertMassCore::Enums::MassType CalcOptions::m_massType

This variable holds the mass type to compute, monoisotopic or average.

See also Enums::MassType.

### MsXpS::libXpertMassCore::Enums::ChemicalEntity CalcOptions::m_monomerEntities

This variable holds the Monomer entities to account for in the calculations.

See also Enums::ChemicalEntity.

### MsXpS::libXpertMassCore::Enums::ChemicalEntity CalcOptions::m_polymerEntities

This variable holds the Polymer entities to account for in the calculations.

See also Enums::ChemicalEntity.

### MsXpS::libXpertMassCore::Enums::SelectionType CalcOptions::m_selectionType

This variable holds the manner the monomers need to be accounted for: as residual chains or as finished-polymerization state sequences.

The calculations might consider only the residual chain. In that case, only the mass of the monomers is considered and then the polymer is not in its finished polymerization state. If that latter state is required, then, the residual chain must be capped with both the left and the right end caps.

See also MsXpS::libXpertMassCore::Enums::SelectionType.

### MsXpS::libXpertMassCore::IndexRangeCollection *CalcOptions::mp_indexRangeCollection

This variable holds the IndexRangeCollection container that contains all the IndexRange instances that describes what regions of the Polymer need to be accounted for in the calculation. Most generally, there will be only one IndexRange, but there might be situations in which multiple regions might be selected.