ARTS  2.4.0(git:4fb77825)
quantum_parser_hitran.h
Go to the documentation of this file.
1 /* Copyright (C) 2015, The ARTS Developers.
2 
3  This program is free software; you can redistribute it and/or modify it
4  under the terms of the GNU General Public License as published by the
5  Free Software Foundation; either version 2, or (at your option) any
6  later version.
7 
8  This program is distributed in the hope that it will be useful,
9  but WITHOUT ANY WARRANTY; without even the implied warranty of
10  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11  GNU General Public License for more details.
12 
13  You should have received a copy of the GNU General Public License
14  along with this program; if not, write to the Free Software
15  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
16  USA. */
17 
25 #ifndef quantum_parser_hitran_h
26 #define quantum_parser_hitran_h
27 
28 #include "quantum_parser.h"
29 
32  public:
35 
37 
43  void Parse(QuantumIdentifier& qid, const String& quantum_string) const;
44 
45  private:
46  // Internal type definitions
47 
49  public:
51 
54  };
55 
56  typedef enum {
57  CI_CLASS1 = 0,
67  CI_FINAL
69 
70  typedef enum {
71  GI_GROUP1 = 0,
81 
82  typedef struct {
85  } QuantumGroup;
86 
88 
89  // Internal functions
90 
91  void SetClassGroup(const String& species_name,
92  const ClassIds iclass,
93  const GroupIds igroup);
94 
95  // Member variables
96 
100 };
101 
102 enum class
103  QuantumNumberTypeLabelsHitran : Index { // Note these are from comparing HITRAN par-format with new labeled format...
104  O2_X_is_X, // Lambda in state 0, spin is 1
105  O2_X_is_a, // Lambda in state 2, spin is 0
106  O2_X_is_b, // Lambda in state 0, spin is 0
107  NO_X_is_X, // Lambda in state 1, spin is 0.5, Omega is Omega
108  OH_X_is_X, // Lambda in state 1, spin is 0.5, Omega is Omega
109  OH_X_is_A, // Lambda in state 0, spin is 0.5, if value at Omega is 2 then N = J + S, if value at Omega is 1 then N = J - S, Omega is itself undefined. This is a poorly documented HITRAN feature...
110  ClO_X_is_X, // Lambda in state 1, spin is 0.5, Omega is Omega
111  };
112 
113 #endif /* quantum_parser_hitran_h */
QuantumParserHITRAN2004::GI_GROUP4
@ GI_GROUP4
Definition: quantum_parser_hitran.h:74
QuantumIdentifier
Class to identify and match lines by their quantum numbers.
Definition: quantum.h:390
quantum_parser.h
Parser for quantum numbers from spectroscopic catalogs.
QuantumParserHITRAN2004
Parser for quantum number strings from HITRAN 2004 and later.
Definition: quantum_parser_hitran.h:31
QuantumParserHITRAN2004::CI_CLASS9
@ CI_CLASS9
Definition: quantum_parser_hitran.h:65
QuantumParserHITRAN2004::QuantumClass
Array< QuantumFieldDescription > QuantumClass
Definition: quantum_parser_hitran.h:87
QuantumParserHITRAN2004::QuantumGroup
Definition: quantum_parser_hitran.h:82
QuantumParserHITRAN2004::CI_CLASS1
@ CI_CLASS1
Definition: quantum_parser_hitran.h:57
QuantumParserHITRAN2004::CI_CLASS5
@ CI_CLASS5
Definition: quantum_parser_hitran.h:61
QuantumParserHITRAN2004::GI_GROUP2
@ GI_GROUP2
Definition: quantum_parser_hitran.h:72
QuantumParserHITRAN2004::GI_FINAL
@ GI_FINAL
Definition: quantum_parser_hitran.h:78
QuantumParserHITRAN2004::CI_CLASS6
@ CI_CLASS6
Definition: quantum_parser_hitran.h:62
QuantumNumberTypeLabelsHitran
QuantumNumberTypeLabelsHitran
Definition: quantum_parser_hitran.h:103
QuantumParserHITRAN2004::CI_CLASS10
@ CI_CLASS10
Definition: quantum_parser_hitran.h:66
QuantumParserHITRAN2004::CI_CLASS7
@ CI_CLASS7
Definition: quantum_parser_hitran.h:63
QuantumParserHITRAN2004::GI_GROUP6OH
@ GI_GROUP6OH
Definition: quantum_parser_hitran.h:77
QuantumParserHITRAN2004::QuantumClassGroup
Definition: quantum_parser_hitran.h:48
Array< QuantumFieldDescription >
QuantumParserHITRAN2004::GI_UNDEFINED
@ GI_UNDEFINED
Definition: quantum_parser_hitran.h:79
QuantumParserHITRAN2004::QuantumClassGroup::QuantumClassGroup
QuantumClassGroup()
Definition: quantum_parser_hitran.h:50
my_basic_string< char >
QuantumParserHITRAN2004::GI_GROUP6
@ GI_GROUP6
Definition: quantum_parser_hitran.h:76
QuantumParserHITRAN2004::QuantumClassGroup::igroup
Index igroup
Definition: quantum_parser_hitran.h:53
QuantumParserHITRAN2004::QuantumClassGroup::iclass
Index iclass
Definition: quantum_parser_hitran.h:50
QuantumNumberTypeLabelsHitran::O2_X_is_X
@ O2_X_is_X
QuantumParserHITRAN2004::mclass
Array< QuantumClass > mclass
Definition: quantum_parser_hitran.h:97
QuantumParserHITRAN2004::QuantumGroup::lower
Array< QuantumFieldDescription > lower
Definition: quantum_parser_hitran.h:84
QuantumParserHITRAN2004::CI_CLASS3
@ CI_CLASS3
Definition: quantum_parser_hitran.h:59
QuantumParserHITRAN2004::GI_GROUP5
@ GI_GROUP5
Definition: quantum_parser_hitran.h:75
QuantumParserHITRAN2004::ClassIds
ClassIds
Definition: quantum_parser_hitran.h:56
QuantumParserHITRAN2004::CI_FINAL
@ CI_FINAL
Definition: quantum_parser_hitran.h:67
QuantumParserHITRAN2004::mgroup
Array< QuantumGroup > mgroup
Definition: quantum_parser_hitran.h:98
QuantumParserHITRAN2004::CI_CLASS4
@ CI_CLASS4
Definition: quantum_parser_hitran.h:60
QuantumParserHITRAN2004::QuantumGroup::upper
Array< QuantumFieldDescription > upper
Definition: quantum_parser_hitran.h:83
QuantumParserHITRAN2004::GI_GROUP1
@ GI_GROUP1
Definition: quantum_parser_hitran.h:71
QuantumParserHITRAN2004::Parse
void Parse(QuantumIdentifier &qid, const String &quantum_string) const
Parse quantum numbers from string.
Definition: quantum_parser_hitran.cc:410
QuantumParserHITRAN2004::mspecies
Array< QuantumClassGroup > mspecies
Definition: quantum_parser_hitran.h:99
QuantumParserHITRAN2004::CI_CLASS2
@ CI_CLASS2
Definition: quantum_parser_hitran.h:58
Index
INDEX Index
The type to use for all integer numbers and indices.
Definition: matpack.h:39
QuantumParserHITRAN2004::GI_GROUP3
@ GI_GROUP3
Definition: quantum_parser_hitran.h:73
QuantumParserHITRAN2004::CI_CLASS8
@ CI_CLASS8
Definition: quantum_parser_hitran.h:64
QuantumParserHITRAN2004::SetClassGroup
void SetClassGroup(const String &species_name, const ClassIds iclass, const GroupIds igroup)
Definition: quantum_parser_hitran.cc:469
QuantumParserHITRAN2004::GroupIds
GroupIds
Definition: quantum_parser_hitran.h:70
QuantumParserHITRAN2004::QuantumParserHITRAN2004
QuantumParserHITRAN2004()
Constructor initializing the parser.
Definition: quantum_parser_hitran.cc:53