1 #include "UnitsParser.hxx" 13 units[
"km"] = units::km;
14 units[
"m"] = units::m;
15 units[
"cm"] = units::cm;
16 units[
"mm"] = units::mm;
17 units[
"um"] = units::micrometer;
18 units[
"nm"] = units::nanometer;
19 units[
"Ang"] = units::angstrom;
22 units[
"km2"] = units::km2;
23 units[
"m2"] = units::m2;
24 units[
"cm2"] = units::cm2;
25 units[
"mm2"] = units::mm2;
26 units[
"barn"] = units::barn;
27 units[
"mbarn"] = units::millibarn;
28 units[
"mubarn"] = units::microbarn;
29 units[
"nbarn"] = units::nanobarn;
30 units[
"pbarn"] = units::picobarn;
33 units[
"km3"] = units::km3;
34 units[
"m3"] = units::m3;
35 units[
"cm3"] = units::cm3;
36 units[
"mm3"] = units::mm3;
39 units[
"rad"] = units::radian;
40 units[
"mrad"] = units::milliradian;
41 units[
"sr"] = units::steradian;
42 units[
"deg"] = units::degree;
45 units[
"s"] = units::second;
46 units[
"ms"] = units::millisecond;
47 units[
"mus"] = units::microsecond;
48 units[
"ns"] = units::nanosecond;
49 units[
"ps"] = units::picosecond;
52 units[
"Hz"] = units::hertz;
53 units[
"kHz"] = units::kilohertz;
54 units[
"MHz"] = units::megahertz;
57 units[
"e+"] = units::eplus;
58 units[
"C"] = units::coulomb;
61 units[
"eV"] = units::eV;
62 units[
"keV"] = units::keV;
63 units[
"MeV"] = units::MeV;
64 units[
"GeV"] = units::GeV;
65 units[
"TeV"] = units::TeV;
66 units[
"PeV"] = units::PeV;
67 units[
"J"] = units::joule;
70 units[
"GeV/cm"] = units::GeV / units::cm;
71 units[
"MeV/cm"] = units::MeV / units::cm;
72 units[
"keV/cm"] = units::keV / units::cm;
73 units[
"eV/cm"] = units::eV / units::cm;
82 units[
"mg"] = units::milligram;
83 units[
"g"] = units::gram;
84 units[
"kg"] = units::kilogram;
87 units[
"g/cm3"] = units::gram / units::cm3;
88 units[
"mg/cm3"] = units::milligram / units::cm3;
89 units[
"kg/m3"] = units::kilogram / units::cm3;
92 units[
"g/cm2"] = units::gram / units::cm2;
93 units[
"mg/cm2"] = units::milligram / units::cm2;
94 units[
"kg/cm2"] = units::kilogram / units::cm2;
97 units[
"cm2/g"] = units::cm2 / units::gram;
100 units[
"eV*cm2/g"] = units::eV * units::cm2 / units::gram;
101 units[
"keV*cm2/g"] = units::keV * units::cm2 / units::gram;
102 units[
"MeV*cm2/g"] = units::MeV * units::cm2 / units::gram;
103 units[
"GeV*cm2/g"] = units::GeV * units::cm2 / units::gram;
106 units[
"W"] = units::watt;
109 units[
"N"] = units::newton;
112 units[
"Pa"] = units::pascal;
113 units[
"bar"] = units::bar;
114 units[
"atm"] = units::atmosphere;
117 units[
"A"] = units::ampere;
118 units[
"mA"] = units::milliampere;
119 units[
"muA"] = units::microampere;
120 units[
"nA"] = units::nanoampere;
123 units[
"V"] = units::volt;
124 units[
"kV"] = units::kilovolt;
125 units[
"MV"] = units::megavolt;
128 units[
"Wb"] = units::weber;
131 units[
"T"] = units::tesla;
132 units[
"kG"] = units::kilogauss;
133 units[
"G"] = units::gauss;
155 UnitsParser::~UnitsParser() {
164 std::istringstream line(input);
165 if (!(line >> value >> unit)) {
166 std::cerr <<
"ND::UnitsParser: badly formatted input string. Returning 0." << std::endl;
172 std::cerr <<
"ND::UnitsParser: requested unit '" << unit <<
"' not found. Returning 0." << std::endl;
176 value = value *
units[unit];
179 sprintf(s,
"%f", value);
187 std::cout << std::endl;
188 std::cout <<
"***** List of available units *****" << std::endl << std::endl;
189 for (std::map<std::string, double>::iterator unit =
units.begin(); unit !=
units.end(); unit++)
190 std::cout << (*unit).first << std::endl;
191 std::cout << std::endl;
std::string Convert2DoubleWithUnit(std::string line)
void PrintListOfUnits()
Prints all the defined units.