3 #include "CLHEP/Units/GlobalSystemOfUnits.h"
71 for (
size_t j = 0;
j <
units.size();
j++) {
73 symbol =
units[
j]->GetSymbol();
74 if (stri ==
name || stri == symbol)
75 return units[
j]->GetValue();
78 std::cout <<
"Warning from ALIUnitDefinition::GetValueOf(" << stri <<
")."
79 <<
" The unit " << stri <<
" does not exist in UnitsTable."
80 <<
" Return Value = 0." << std::endl;
92 for (
size_t j = 0;
j <
units.size();
j++) {
94 symbol =
units[
j]->GetSymbol();
95 if (stri ==
name || stri == symbol)
99 std::cout <<
"Warning from ALIUnitDefinition::GetCategory(" << stri <<
")."
100 <<
" The unit " << stri <<
" does not exist in UnitsTable."
101 <<
" Return category = None" << std::endl;
118 std::make_shared<ALIUnitDefinition>(
"kilometer",
"km",
"Length", kilometer);
119 std::make_shared<ALIUnitDefinition>(
"meter",
"m",
"Length", meter);
120 std::make_shared<ALIUnitDefinition>(
"centimeter",
"cm",
"Length", centimeter);
121 std::make_shared<ALIUnitDefinition>(
"millimeter",
"mm",
"Length", millimeter);
122 std::make_shared<ALIUnitDefinition>(
"micrometer",
"mum",
"Length", micrometer);
123 std::make_shared<ALIUnitDefinition>(
"nanometer",
"nm",
"Length", nanometer);
124 std::make_shared<ALIUnitDefinition>(
"angstrom",
"Ang",
"Length", angstrom);
125 std::make_shared<ALIUnitDefinition>(
"fermi",
"fm",
"Length",
fermi);
128 std::make_shared<ALIUnitDefinition>(
"kilometer2",
"km2",
"Surface", kilometer2);
129 std::make_shared<ALIUnitDefinition>(
"meter2",
"m2",
"Surface", meter2);
130 std::make_shared<ALIUnitDefinition>(
"centimeter2",
"cm2",
"Surface", centimeter2);
131 std::make_shared<ALIUnitDefinition>(
"millimeter2",
"mm2",
"Surface", millimeter2);
132 std::make_shared<ALIUnitDefinition>(
"barn",
"barn",
"Surface", barn);
133 std::make_shared<ALIUnitDefinition>(
"millibarn",
"mbarn",
"Surface", millibarn);
134 std::make_shared<ALIUnitDefinition>(
"microbarn",
"mubarn",
"Surface", microbarn);
135 std::make_shared<ALIUnitDefinition>(
"nanobarn",
"nbarn",
"Surface", nanobarn);
136 std::make_shared<ALIUnitDefinition>(
"picobarn",
"pbarn",
"Surface", picobarn);
139 std::make_shared<ALIUnitDefinition>(
"kilometer3",
"km3",
"Volume", kilometer3);
140 std::make_shared<ALIUnitDefinition>(
"meter3",
"m3",
"Volume", meter3);
141 std::make_shared<ALIUnitDefinition>(
"centimeter3",
"cm3",
"Volume", centimeter3);
142 std::make_shared<ALIUnitDefinition>(
"millimeter3",
"mm3",
"Volume", millimeter3);
145 std::make_shared<ALIUnitDefinition>(
"radian",
"rad",
"Angle", radian);
146 std::make_shared<ALIUnitDefinition>(
"milliradian",
"mrad",
"Angle", milliradian);
147 std::make_shared<ALIUnitDefinition>(
"milliradian",
"murad",
"Angle", 0.001 * milliradian);
148 std::make_shared<ALIUnitDefinition>(
"steradian",
"sr",
"Angle", steradian);
149 std::make_shared<ALIUnitDefinition>(
"degree",
"deg",
"Angle", degree);
152 std::make_shared<ALIUnitDefinition>(
"second",
"s",
"Time",
second);
153 std::make_shared<ALIUnitDefinition>(
"millisecond",
"ms",
"Time", millisecond);
154 std::make_shared<ALIUnitDefinition>(
"microsecond",
"mus",
"Time", microsecond);
155 std::make_shared<ALIUnitDefinition>(
"nanosecond",
"ns",
"Time", nanosecond);
156 std::make_shared<ALIUnitDefinition>(
"picosecond",
"ps",
"Time", picosecond);
159 std::make_shared<ALIUnitDefinition>(
"hertz",
"Hz",
"Frequency", hertz);
160 std::make_shared<ALIUnitDefinition>(
"kilohertz",
"kHz",
"Frequency", kilohertz);
161 std::make_shared<ALIUnitDefinition>(
"megahertz",
"MHz",
"Frequency", megahertz);
164 std::make_shared<ALIUnitDefinition>(
"eplus",
"e+",
"Electric charge", eplus);
165 std::make_shared<ALIUnitDefinition>(
"coulomb",
"C",
"Electric charge", coulomb);
168 std::make_shared<ALIUnitDefinition>(
"electronvolt",
"eV",
"Energy", electronvolt);
169 std::make_shared<ALIUnitDefinition>(
"kiloelectronvolt",
"keV",
"Energy", kiloelectronvolt);
170 std::make_shared<ALIUnitDefinition>(
"megaelectronvolt",
"MeV",
"Energy", megaelectronvolt);
171 std::make_shared<ALIUnitDefinition>(
"gigaelectronvolt",
"GeV",
"Energy", gigaelectronvolt);
172 std::make_shared<ALIUnitDefinition>(
"teraelectronvolt",
"TeV",
"Energy", teraelectronvolt);
173 std::make_shared<ALIUnitDefinition>(
"petaelectronvolt",
"PeV",
"Energy", petaelectronvolt);
174 std::make_shared<ALIUnitDefinition>(
"joule",
"J",
"Energy",
joule);
177 std::make_shared<ALIUnitDefinition>(
"milligram",
"mg",
"Mass", milligram);
178 std::make_shared<ALIUnitDefinition>(
"gram",
"g",
"Mass", gram);
179 std::make_shared<ALIUnitDefinition>(
"kilogram",
"kg",
"Mass", kilogram);
182 std::make_shared<ALIUnitDefinition>(
"g/cm3",
"g/cm3",
"Volumic Mass",
g / cm3);
183 std::make_shared<ALIUnitDefinition>(
"mg/cm3",
"mg/cm3",
"Volumic Mass", mg / cm3);
184 std::make_shared<ALIUnitDefinition>(
"kg/m3",
"kg/m3",
"Volumic Mass", kg / m3);
187 std::make_shared<ALIUnitDefinition>(
"watt",
"W",
"Power", watt);
190 std::make_shared<ALIUnitDefinition>(
"newton",
"N",
"Force", newton);
193 std::make_shared<ALIUnitDefinition>(
"pascal",
"Pa",
"Pressure", pascal);
194 std::make_shared<ALIUnitDefinition>(
"bar",
"bar",
"Pressure", bar);
195 std::make_shared<ALIUnitDefinition>(
"atmosphere",
"atm",
"Pressure", atmosphere);
198 std::make_shared<ALIUnitDefinition>(
"ampere",
"A",
"Electric current", ampere);
199 std::make_shared<ALIUnitDefinition>(
"milliampere",
"mA",
"Electric current", milliampere);
200 std::make_shared<ALIUnitDefinition>(
"microampere",
"muA",
"Electric current", microampere);
201 std::make_shared<ALIUnitDefinition>(
"nanoampere",
"nA",
"Electric current", nanoampere);
204 std::make_shared<ALIUnitDefinition>(
"volt",
"V",
"Electric potential", volt);
205 std::make_shared<ALIUnitDefinition>(
"kilovolt",
"kV",
"Electric potential", kilovolt);
206 std::make_shared<ALIUnitDefinition>(
"megavolt",
"MV",
"Electric potential", megavolt);
209 std::make_shared<ALIUnitDefinition>(
"weber",
"Wb",
"Magnetic flux", weber);
212 std::make_shared<ALIUnitDefinition>(
"tesla",
"T",
"Magnetic flux density", tesla);
213 std::make_shared<ALIUnitDefinition>(
"kilogauss",
"kG",
"Magnetic flux density", kilogauss);
214 std::make_shared<ALIUnitDefinition>(
"gauss",
"G",
"Magnetic flux density", gauss);
217 std::make_shared<ALIUnitDefinition>(
"kelvin",
"K",
"Temperature", kelvin);
220 std::make_shared<ALIUnitDefinition>(
"mole",
"mol",
"Amount of substance", mole);
223 std::make_shared<ALIUnitDefinition>(
"becquerel",
"Bq",
"Activity", becquerel);
224 std::make_shared<ALIUnitDefinition>(
"curie",
"Ci",
"Activity", curie);
227 std::make_shared<ALIUnitDefinition>(
"gray",
"Gy",
"Dose", gray);
233 std::cout <<
"\n ----- The Table of Units ----- \n";
255 if (
this != &right) {
285 size_t nbCat = theUnitsTable.size();
287 while ((
i < nbCat) && (theUnitsTable[
i]->GetName() !=
category))
290 std::cout <<
" ALIBestUnit: the category " <<
category <<
" does not exist !!" << std::endl;
291 std::cerr <<
"Missing unit category !" << std::endl;
307 size_t nbCat = theUnitsTable.size();
309 while ((
i < nbCat) && (theUnitsTable[
i]->GetName() !=
category))
312 std::cerr <<
" ALIBestUnit: the category " <<
category <<
" does not exist." << std::endl;
313 std::cerr <<
"Unit category not existing !" << std::endl;
332 ALIint len = theUnitsTable[
a.IndexOfCategory]->GetSymbMxLen();
334 ALIint ksup(-1), kinf(-1);
341 for (
size_t k = 0;
k < List.size();
k++) {
343 if (
value == 1.E12) {
348 }
else if (
value <= -1.E12) {
375 flux <<
a.Value[
j] / (List[
index]->GetValue()) <<
" ";
378 #ifdef ALIUSE_STD_NAMESPACE
379 std::ios::fmtflags oldform =
std::cout.flags();
384 flux.setf(std::ios::left, std::ios::adjustfield);
385 flux << std::setw(len) << List[
index]->GetSymbol();