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();
ALIint operator!=(const ALIUnitsCategory &) const
ALIint operator!=(const ALIUnitDefinition &) const
std::ostream & operator<<(std::ostream &flux, ALIBestUnit a)
std::vector< ALIUnitsCategory * > ALIUnitsTable
ALIUnitDefinition & operator=(const ALIUnitDefinition &)
constexpr double joule(6.24150e+12)
ALIBestUnit(ALIdouble internalValue, ALIstring category)
ALIUnitDefinition(ALIstring name, ALIstring symbol, ALIstring category, ALIdouble value)
static ALIstring GetCategory(ALIstring)
ALIUnitsContainer UnitsList
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e g
U second(std::pair< T, U > const &p)
ALIint operator==(const ALIUnitDefinition &) const
ALIUnitsCategory & operator=(const ALIUnitsCategory &)
static void PrintUnitsTable()
ALIstring GetName() const
Abs< T >::type abs(const T &t)
ALIUnitsCategory(ALIstring name)
reco::JetExtendedAssociation::JetExtendedData Value
static void BuildUnitsTable()
Basic3DVector unit() const
std::vector< std::shared_ptr< ALIUnitDefinition > > ALIUnitsContainer
ALIint operator==(const ALIUnitsCategory &) const
static ALIdouble GetValueOf(ALIstring)
TString units(TString variable, Char_t axis)
static ALIUnitsTable theUnitsTable
static ALIUnitsTable & GetUnitsTable()