ARTS  2.3.1285(git:92a29ea9-dirty)
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 
52  Index iclass;
54  };
55 
56  typedef enum {
57  CI_CLASS1 = 0,
68  } ClassIds;
69 
70  typedef enum {
71  GI_GROUP1 = 0,
80  } GroupIds;
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 */
INDEX Index
The type to use for all integer numbers and indices.
Definition: matpack.h:39
Array< QuantumClassGroup > mspecies
Parser for quantum numbers from spectroscopic catalogs.
Array< QuantumFieldDescription > upper
Array< QuantumClass > mclass
Array< QuantumGroup > mgroup
void SetClassGroup(const String &species_name, const ClassIds iclass, const GroupIds igroup)
Class to identify and match lines by their quantum numbers.
Definition: quantum.h:390
Array< QuantumFieldDescription > QuantumClass
Parser for quantum number strings from HITRAN 2004 and later.
QuantumNumberTypeLabelsHitran
void Parse(QuantumIdentifier &qid, const String &quantum_string) const
Parse quantum numbers from string.
Array< QuantumFieldDescription > lower
QuantumParserHITRAN2004()
Constructor initializing the parser.