ARTS  2.2.66
SpeciesTag Class Reference

A tag group can consist of the sum of several of these. More...

#include <abs_species_tags.h>

Public Types

enum  {
  TYPE_PLAIN, TYPE_ZEEMAN, TYPE_PREDEF, TYPE_CIA,
  TYPE_FREE_ELECTRONS, TYPE_PARTICLES
}
 Enum for type of this tag. More...
 
enum  { LINE_MIXING_TYPE_NONE, LINE_MIXING_TYPE_2NDORDER }
 Enum for line mixing type of this tag. More...
 

Public Member Functions

 SpeciesTag ()
 Default constructor. More...
 
 SpeciesTag (String def)
 Constructor from a tag definition String. More...
 
String Name () const
 Return the full name of the tag. More...
 
Index Species () const
 Molecular species index. More...
 
Index Isotopologue () const
 Isotopologue species index. More...
 
Numeric Lf () const
 The lower line center frequency in Hz. More...
 
Numeric Uf () const
 The upper line center frequency in Hz: If this is <0 it means no upper limit. More...
 
Index CIASecond () const
 Species index of the 2nd CIA species. More...
 
Index CIADataset () const
 CIA dataset index inside this CIA file. More...
 
bool operator== (const SpeciesTag &other) const
 Comparison operator for species tags. More...
 
Index Type () const
 Return the type of this tag. More...
 
Index LineMixingType () const
 Return the line mixing type of this tag. More...
 

Private Attributes

Index mspecies
 Molecular species index. More...
 
Index misotopologue
 Isotopologue species index. More...
 
Numeric mlf
 The lower limit line center frequency in Hz. More...
 
Numeric muf
 The upper line center frequency in Hz. More...
 
Index mtype
 Type of this tag. More...
 
Index mline_mixing_type
 Line Mixing Type of this tag. More...
 
Index mcia_second
 2nd CIA species index. More...
 
Index mcia_dataset
 CIA dataset index. More...
 

Detailed Description

A tag group can consist of the sum of several of these.

Author
Stefan Buehler

Definition at line 46 of file abs_species_tags.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum

Enum for type of this tag.

See private member mtype for more explanations.

Enumerator
TYPE_PLAIN 
TYPE_ZEEMAN 
TYPE_PREDEF 
TYPE_CIA 
TYPE_FREE_ELECTRONS 
TYPE_PARTICLES 

Definition at line 116 of file abs_species_tags.h.

◆ anonymous enum

anonymous enum

Enum for line mixing type of this tag.

See private member mline_mixing_type for more explanations.

Enumerator
LINE_MIXING_TYPE_NONE 
LINE_MIXING_TYPE_2NDORDER 

Definition at line 129 of file abs_species_tags.h.

Constructor & Destructor Documentation

◆ SpeciesTag() [1/2]

SpeciesTag::SpeciesTag ( )
inline

Default constructor.

Definition at line 49 of file abs_species_tags.h.

References Name().

◆ SpeciesTag() [2/2]

SpeciesTag::SpeciesTag ( String  def)

Constructor from a tag definition String.

For examples see documentation of member function Name().

Parameters
defString containing tag definition.
Exceptions
runtime_errorThe given String could not be mapped to a sensible tag description.

Definition at line 48 of file abs_species_tags.cc.

References find_first(), LINE_MIXING_TYPE_2NDORDER, LINE_MIXING_TYPE_NONE, mcia_dataset, mcia_second, misotopologue, mlf, mline_mixing_type, mspecies, mtype, muf, my_basic_string< charT >::nelem(), Array< base >::nelem(), my_basic_string< charT >::npos, global_data::species_data, species_index_from_species_name(), my_basic_string< charT >::trim(), TYPE_CIA, TYPE_FREE_ELECTRONS, TYPE_PARTICLES, TYPE_PLAIN, TYPE_PREDEF, and TYPE_ZEEMAN.

Member Function Documentation

◆ CIADataset()

Index SpeciesTag::CIADataset ( ) const
inline

CIA dataset index inside this CIA file.

Definition at line 85 of file abs_species_tags.h.

References mcia_dataset.

Referenced by abs_xsec_per_speciesAddCIA().

◆ CIASecond()

Index SpeciesTag::CIASecond ( ) const
inline

Species index of the 2nd CIA species.

Definition at line 82 of file abs_species_tags.h.

References mcia_second.

Referenced by abs_xsec_per_speciesAddCIA().

◆ Isotopologue()

Index SpeciesTag::Isotopologue ( ) const
inline

Isotopologue species index.

If this is equal to the number of isotopologues (one more than allowed) it means all isotopologues of this species.

Definition at line 71 of file abs_species_tags.h.

References misotopologue.

Referenced by abs_lines_per_speciesCreateFromLines(), ArrayOfLineMixingRecordReadAscii(), main(), and xml_read_from_stream().

◆ Lf()

Numeric SpeciesTag::Lf ( ) const
inline

The lower line center frequency in Hz.

If this is <0 it means no lower limit.

Definition at line 75 of file abs_species_tags.h.

References mlf.

Referenced by abs_lines_per_speciesCreateFromLines().

◆ LineMixingType()

Index SpeciesTag::LineMixingType ( ) const
inline

Return the line mixing type of this tag.

See private member mtype for more explanations.

Definition at line 144 of file abs_species_tags.h.

References mline_mixing_type.

Referenced by check_abs_species().

◆ Name()

String SpeciesTag::Name ( ) const

Return the full name of the tag.

Examples:

O3-*-*-*         : All O3 lines
O3-nl            : O3, but without any lines
O3-666-*-*       : All O3-666 lines
O3-*-500e9-501e9 : All O3 lines between 500 and 501 GHz.
Returns
The tag name as a string.

Definition at line 397 of file abs_species_tags.cc.

References SpeciesRecord::Isotopologue(), LINE_MIXING_TYPE_2NDORDER, LINE_MIXING_TYPE_NONE, mcia_dataset, mcia_second, misotopologue, mlf, mline_mixing_type, mspecies, mtype, muf, SpeciesRecord::Name(), Array< base >::nelem(), precision, global_data::species_data, species_name_from_species_index(), TYPE_CIA, TYPE_FREE_ELECTRONS, TYPE_PARTICLES, and TYPE_ZEEMAN.

Referenced by abs_xsec_per_speciesAddCIA(), get_tag_group_index_for_tag_group(), main(), operator<<(), SpeciesTag(), and xml_write_to_stream().

◆ operator==()

bool SpeciesTag::operator== ( const SpeciesTag other) const
inline

Comparison operator for species tags.

This returns false as soon as a singe discrepancy is detected. Otherwise it returns true at the end.

Parameters
otherThe other tag to compare to.
Returns
true if the two tags are equal.
Author
Stefan Buehler
Date
2002-11-29

Definition at line 99 of file abs_species_tags.h.

References mcia_dataset, mcia_second, misotopologue, mlf, mline_mixing_type, mspecies, mtype, muf, and TYPE_CIA.

◆ Species()

◆ Type()

Index SpeciesTag::Type ( ) const
inline

Return the type of this tag.

See private member mtype for more explanations.

Definition at line 138 of file abs_species_tags.h.

References mtype.

Referenced by abs_xsec_per_speciesAddCIA(), array_species_tag_from_string(), check_abs_species(), and is_zeeman().

◆ Uf()

Numeric SpeciesTag::Uf ( ) const
inline

The upper line center frequency in Hz: If this is <0 it means no upper limit.

Definition at line 79 of file abs_species_tags.h.

References muf.

Referenced by abs_lines_per_speciesCreateFromLines().

Member Data Documentation

◆ mcia_dataset

Index SpeciesTag::mcia_dataset
private

CIA dataset index.

A CIA file contains several datasets. This index specifies which one we want.

Definition at line 197 of file abs_species_tags.h.

Referenced by CIADataset(), Name(), operator==(), and SpeciesTag().

◆ mcia_second

Index SpeciesTag::mcia_second
private

2nd CIA species index.

Contains the species index of the second CIA species that should be used for this tag.

Definition at line 193 of file abs_species_tags.h.

Referenced by CIASecond(), Name(), operator==(), and SpeciesTag().

◆ misotopologue

Index SpeciesTag::misotopologue
private

Isotopologue species index.

If this is equal to the number of isotopologues (one more than allowed) it means all isotopologues of this species. If it is <0 it means no isotopologue (no lines), corresponding to "H2O-nl"

Definition at line 156 of file abs_species_tags.h.

Referenced by Isotopologue(), Name(), operator==(), and SpeciesTag().

◆ mlf

Numeric SpeciesTag::mlf
private

The lower limit line center frequency in Hz.

If this is <0 it means no lower limit.

Definition at line 160 of file abs_species_tags.h.

Referenced by Lf(), Name(), operator==(), and SpeciesTag().

◆ mline_mixing_type

Index SpeciesTag::mline_mixing_type
private

Line Mixing Type of this tag.

The type can be:

LINE_MIXING_TYPE_NONE:     No line mixing
LINE_MIXING_TYPE_2NDORDER: 2nd order line mixing

Definition at line 189 of file abs_species_tags.h.

Referenced by LineMixingType(), Name(), operator==(), and SpeciesTag().

◆ mspecies

Index SpeciesTag::mspecies
private

Molecular species index.

Definition at line 149 of file abs_species_tags.h.

Referenced by Name(), operator==(), Species(), and SpeciesTag().

◆ mtype

Index SpeciesTag::mtype
private

Type of this tag.

The type can be:

TYPE_PLAIN:          A normal line-by-line tag
TYPE_ZEEMAN:         A line-by-line tag with Zeeman calculation
TYPE_PREDEF:         A tag for a predefined absorption model (continuum or
                      full absorption model)
TYPE_CIA:            A HITRAN collision induces absorption (CIA) tag
TYPE_FREE_ELECTRONS: A free electrons tag
TYPE_PARTICLES:      A particle tag

Definition at line 179 of file abs_species_tags.h.

Referenced by Name(), operator==(), SpeciesTag(), and Type().

◆ muf

Numeric SpeciesTag::muf
private

The upper line center frequency in Hz.

If this is <0 it means no upper limit.

Definition at line 164 of file abs_species_tags.h.

Referenced by Name(), operator==(), SpeciesTag(), and Uf().


The documentation for this class was generated from the following files: