#include <Alignment/CocoaToDDL/interface/CocoaUnitsTable.h>
Public Member Functions | |
CocoaUnitDefinition (const ALIstring &name, const ALIstring &symbol, const ALIstring &category, ALIdouble value) | |
const ALIstring & | GetName () const |
const ALIstring & | GetSymbol () const |
ALIdouble | GetValue () const |
ALIint | operator!= (const CocoaUnitDefinition &) const |
ALIint | operator== (const CocoaUnitDefinition &) const |
void | PrintDefinition () |
~CocoaUnitDefinition () | |
Static Public Member Functions | |
static void | BuildUnitsTable () |
static ALIstring | GetCategory (const ALIstring &) |
static CocoaUnitsTable & | GetUnitsTable () |
static ALIdouble | GetValueOf (const ALIstring &) |
static void | PrintUnitsTable () |
Private Member Functions | |
CocoaUnitDefinition (const CocoaUnitDefinition &) | |
CocoaUnitDefinition & | operator= (const CocoaUnitDefinition &) |
Private Attributes | |
size_t | CategoryIndex |
ALIstring | Name |
ALIstring | SymbolName |
ALIdouble | Value |
Static Private Attributes | |
static CocoaUnitsTable | theUnitsTable |
Definition at line 18 of file CocoaUnitsTable.h.
CocoaUnitDefinition::CocoaUnitDefinition | ( | const ALIstring & | name, | |
const ALIstring & | symbol, | |||
const ALIstring & | category, | |||
ALIdouble | value | |||
) |
Definition at line 12 of file CocoaUnitsTable.cc.
References CategoryIndex, GetName(), i, and theUnitsTable.
Referenced by BuildUnitsTable().
00014 : Name(name),SymbolName(symbol),Value(value) 00015 { 00016 // 00017 //does the Category objet already exist ? 00018 size_t nbCat = theUnitsTable.size(); 00019 size_t i = 0; 00020 while ((i<nbCat)&&(theUnitsTable[i]->GetName()!=category)) i++; 00021 if (i == nbCat) theUnitsTable.push_back( new CocoaUnitsCategory(category)); 00022 CategoryIndex = i; 00023 // 00024 //insert this Unit in the Unitstable 00025 (theUnitsTable[CategoryIndex]->GetUnitsList()).push_back(this); 00026 00027 //update string max length for name and symbol 00028 theUnitsTable[i]->UpdateNameMxLen((ALIint)name.length()); 00029 theUnitsTable[i]->UpdateSymbMxLen((ALIint)symbol.length()); 00030 }
CocoaUnitDefinition::~CocoaUnitDefinition | ( | ) |
Definition at line 34 of file CocoaUnitsTable.cc.
References i, and theUnitsTable.
00035 { 00036 for (size_t i=0;i<theUnitsTable.size();i++) 00037 { 00038 delete theUnitsTable[i]; 00039 } 00040 }
CocoaUnitDefinition::CocoaUnitDefinition | ( | const CocoaUnitDefinition & | right | ) | [private] |
void CocoaUnitDefinition::BuildUnitsTable | ( | ) | [static] |
Definition at line 137 of file CocoaUnitsTable.cc.
References CocoaUnitDefinition(), g, and edm::second().
Referenced by CocoaBestUnit::CocoaBestUnit(), GetCategory(), and GetValueOf().
00138 { 00139 //Length 00140 new CocoaUnitDefinition( "meter","m" ,"Length",meter); 00141 new CocoaUnitDefinition("centimeter","cm" ,"Length",centimeter); 00142 new CocoaUnitDefinition("millimeter","mm" ,"Length",millimeter); 00143 // new CocoaUnitDefinition("micrometer","um" ,"Length",micrometer); 00144 new CocoaUnitDefinition("micrometer","mum" ,"Length",micrometer); 00145 new CocoaUnitDefinition( "nanometer","nm" ,"Length",nanometer); 00146 new CocoaUnitDefinition( "angstrom","Ang" ,"Length",angstrom); 00147 new CocoaUnitDefinition( "fermi","fm" ,"Length",fermi); 00148 00149 //Surface 00150 new CocoaUnitDefinition( "kilometer2","km2" ,"Surface",kilometer2); 00151 new CocoaUnitDefinition( "meter2","m2" ,"Surface",meter2); 00152 new CocoaUnitDefinition("centimeter2","cm2" ,"Surface",centimeter2); 00153 new CocoaUnitDefinition("millimeter2","mm2" ,"Surface",millimeter2); 00154 new CocoaUnitDefinition( "barn","barn" ,"Surface",barn); 00155 new CocoaUnitDefinition( "millibarn","mbarn" ,"Surface",millibarn); 00156 new CocoaUnitDefinition( "microbarn","mubarn" ,"Surface",microbarn); 00157 new CocoaUnitDefinition( "nanobarn","nbarn" ,"Surface",nanobarn); 00158 new CocoaUnitDefinition( "picobarn","pbarn" ,"Surface",picobarn); 00159 00160 //Volume 00161 new CocoaUnitDefinition( "kilometer3","km3" ,"Volume",kilometer3); 00162 new CocoaUnitDefinition( "meter3","m3" ,"Volume",meter3); 00163 new CocoaUnitDefinition("centimeter3","cm3" ,"Volume",centimeter3); 00164 new CocoaUnitDefinition("millimeter3","mm3" ,"Volume",millimeter3); 00165 00166 //Angle 00167 new CocoaUnitDefinition( "radian","rad" ,"Angle",radian); 00168 new CocoaUnitDefinition("milliradian","mrad" ,"Angle",milliradian); 00169 new CocoaUnitDefinition( "steradian","sr" ,"Angle",steradian); 00170 new CocoaUnitDefinition( "degree","deg" ,"Angle",degree); 00171 00172 //Time 00173 new CocoaUnitDefinition( "second","s" ,"Time",second); 00174 new CocoaUnitDefinition("millisecond","ms" ,"Time",millisecond); 00175 new CocoaUnitDefinition("microsecond","mus" ,"Time",microsecond); 00176 new CocoaUnitDefinition( "nanosecond","ns" ,"Time",nanosecond); 00177 new CocoaUnitDefinition( "picosecond","ps" ,"Time",picosecond); 00178 00179 //Frequency 00180 new CocoaUnitDefinition( "hertz","Hz" ,"Frequency",hertz); 00181 new CocoaUnitDefinition("kilohertz","kHz" ,"Frequency",kilohertz); 00182 new CocoaUnitDefinition("megahertz","MHz" ,"Frequency",megahertz); 00183 00184 //Electric charge 00185 new CocoaUnitDefinition( "eplus","e+" ,"Electric charge",eplus); 00186 new CocoaUnitDefinition("coulomb","C" ,"Electric charge",coulomb); 00187 00188 //Energy 00189 new CocoaUnitDefinition( "electronvolt","eV" ,"Energy",electronvolt); 00190 new CocoaUnitDefinition("kiloelectronvolt","keV","Energy",kiloelectronvolt); 00191 new CocoaUnitDefinition("megaelectronvolt","MeV","Energy",megaelectronvolt); 00192 new CocoaUnitDefinition("gigaelectronvolt","GeV","Energy",gigaelectronvolt); 00193 new CocoaUnitDefinition("teraelectronvolt","TeV","Energy",teraelectronvolt); 00194 new CocoaUnitDefinition("petaelectronvolt","PeV","Energy",petaelectronvolt); 00195 new CocoaUnitDefinition( "joule","J" ,"Energy",joule); 00196 00197 //Mass 00198 new CocoaUnitDefinition("milligram","mg","Mass",milligram); 00199 new CocoaUnitDefinition( "gram","g" ,"Mass",gram); 00200 new CocoaUnitDefinition( "kilogram","kg","Mass",kilogram); 00201 00202 //Volumic Mass 00203 new CocoaUnitDefinition( "g/cm3", "g/cm3","Volumic Mass", g/cm3); 00204 new CocoaUnitDefinition("mg/cm3","mg/cm3","Volumic Mass",mg/cm3); 00205 new CocoaUnitDefinition("kg/m3", "kg/m3", "Volumic Mass",kg/m3); 00206 00207 //Power 00208 new CocoaUnitDefinition("watt","W","Power",watt); 00209 00210 //Force 00211 new CocoaUnitDefinition("newton","N","Force",newton); 00212 00213 //Pressure 00214 new CocoaUnitDefinition( "pascal","Pa" ,"Pressure",pascal); 00215 new CocoaUnitDefinition( "bar","bar","Pressure",bar); 00216 new CocoaUnitDefinition("atmosphere","atm","Pressure",atmosphere); 00217 00218 //Electric current 00219 new CocoaUnitDefinition( "ampere","A" ,"Electric current",ampere); 00220 new CocoaUnitDefinition("milliampere","mA" ,"Electric current",milliampere); 00221 new CocoaUnitDefinition("microampere","muA","Electric current",microampere); 00222 new CocoaUnitDefinition( "nanoampere","nA" ,"Electric current",nanoampere); 00223 00224 //Electric potential 00225 new CocoaUnitDefinition( "volt","V" ,"Electric potential",volt); 00226 new CocoaUnitDefinition("kilovolt","kV","Electric potential",kilovolt); 00227 new CocoaUnitDefinition("megavolt","MV","Electric potential",megavolt); 00228 00229 //Magnetic flux 00230 new CocoaUnitDefinition("weber","Wb","Magnetic flux",weber); 00231 00232 //Magnetic flux density 00233 new CocoaUnitDefinition( "tesla","T" ,"Magnetic flux density",tesla); 00234 new CocoaUnitDefinition("kilogauss","kG","Magnetic flux density",kilogauss); 00235 new CocoaUnitDefinition( "gauss","G" ,"Magnetic flux density",gauss); 00236 00237 //Temperature 00238 new CocoaUnitDefinition("kelvin","K","Temperature",kelvin); 00239 00240 //Amount of substance 00241 new CocoaUnitDefinition("mole","mol","Amount of substance",mole); 00242 00243 //Activity 00244 new CocoaUnitDefinition("becquerel","Bq","Activity",becquerel); 00245 new CocoaUnitDefinition( "curie","Ci","Activity",curie); 00246 00247 //Dose 00248 new CocoaUnitDefinition("gray","Gy","Dose",gray); 00249 }
Definition at line 106 of file CocoaUnitsTable.cc.
References BuildUnitsTable(), GenMuonPlsPt100GeV_cfg::cout, lat::endl(), i, j, name, and theUnitsTable.
00107 { 00108 if(theUnitsTable.size()==0) BuildUnitsTable(); 00109 ALIstring name,symbol; 00110 for (size_t i=0;i<theUnitsTable.size();i++) 00111 { CocoaUnitsContainer& units = theUnitsTable[i]->GetUnitsList(); 00112 for (size_t j=0;j<units.size();j++) 00113 { name=units[j]->GetName(); symbol=units[j]->GetSymbol(); 00114 if(str==name||str==symbol) 00115 return theUnitsTable[i]->GetName(); 00116 } 00117 } 00118 std::cout << "Warning from CocoaUnitDefinition::GetCategory(" << str << ")." 00119 << " The unit " << str << " does not exist in UnitsTable." 00120 << " Return category = None" << std::endl; 00121 name = "None"; 00122 return name; 00123 }
const ALIstring& CocoaUnitDefinition::GetName | ( | ) | const [inline] |
Definition at line 38 of file CocoaUnitsTable.h.
References Name.
Referenced by CocoaUnitDefinition().
00038 {return Name;}
const ALIstring& CocoaUnitDefinition::GetSymbol | ( | ) | const [inline] |
CocoaUnitsTable & CocoaUnitDefinition::GetUnitsTable | ( | ) | [static] |
Definition at line 79 of file CocoaUnitsTable.cc.
References theUnitsTable.
Referenced by CocoaBestUnit::CocoaBestUnit(), and operator<<().
00080 { 00081 return theUnitsTable; 00082 }
ALIdouble CocoaUnitDefinition::GetValue | ( | ) | const [inline] |
Definition at line 86 of file CocoaUnitsTable.cc.
References BuildUnitsTable(), GenMuonPlsPt100GeV_cfg::cout, lat::endl(), i, j, name, and theUnitsTable.
00087 { 00088 if(theUnitsTable.size()==0) BuildUnitsTable(); 00089 ALIstring name,symbol; 00090 for (size_t i=0;i<theUnitsTable.size();i++) 00091 { CocoaUnitsContainer& units = theUnitsTable[i]->GetUnitsList(); 00092 for (size_t j=0;j<units.size();j++) 00093 { name=units[j]->GetName(); symbol=units[j]->GetSymbol(); 00094 if(str==name||str==symbol) 00095 return units[j]->GetValue(); 00096 } 00097 } 00098 std::cout << "Warning from CocoaUnitDefinition::GetValueOf(" << str << ")." 00099 << " The unit " << str << " does not exist in UnitsTable." 00100 << " Return Value = 0." << std::endl; 00101 return 0.; 00102 }
ALIint CocoaUnitDefinition::operator!= | ( | const CocoaUnitDefinition & | right | ) | const |
Definition at line 72 of file CocoaUnitsTable.cc.
00073 { 00074 return (this != (CocoaUnitDefinition *) &right); 00075 }
CocoaUnitDefinition & CocoaUnitDefinition::operator= | ( | const CocoaUnitDefinition & | right | ) | [private] |
Definition at line 51 of file CocoaUnitsTable.cc.
References CategoryIndex, Name, SymbolName, and Value.
00052 { 00053 if (this != &right) 00054 { 00055 Name = right.Name; 00056 SymbolName = right.SymbolName; 00057 Value = right.Value; 00058 CategoryIndex = right.CategoryIndex; 00059 } 00060 return *this; 00061 }
ALIint CocoaUnitDefinition::operator== | ( | const CocoaUnitDefinition & | right | ) | const |
Definition at line 65 of file CocoaUnitsTable.cc.
00066 { 00067 return (this == (CocoaUnitDefinition *) &right); 00068 }
void CocoaUnitDefinition::PrintDefinition | ( | ) |
Definition at line 127 of file CocoaUnitsTable.cc.
References CategoryIndex, GenMuonPlsPt100GeV_cfg::cout, lat::endl(), Name, SymbolName, theUnitsTable, and Value.
00128 { 00129 ALIint nameL = theUnitsTable[CategoryIndex]->GetNameMxLen(); 00130 ALIint symbL = theUnitsTable[CategoryIndex]->GetSymbMxLen(); 00131 std::cout << std::setw(nameL) << Name << " (" 00132 << std::setw(symbL) << SymbolName << ") = " << Value << std::endl; 00133 }
void CocoaUnitDefinition::PrintUnitsTable | ( | ) | [static] |
Definition at line 253 of file CocoaUnitsTable.cc.
References GenMuonPlsPt100GeV_cfg::cout, i, and theUnitsTable.
00254 { 00255 std::cout << "\n ----- The Table of Units ----- \n"; 00256 for(size_t i=0;i<theUnitsTable.size();i++) 00257 { 00258 theUnitsTable[i]->PrintCategory(); 00259 } 00260 }
size_t CocoaUnitDefinition::CategoryIndex [private] |
Definition at line 62 of file CocoaUnitsTable.h.
Referenced by CocoaUnitDefinition(), operator=(), and PrintDefinition().
ALIstring CocoaUnitDefinition::Name [private] |
Definition at line 54 of file CocoaUnitsTable.h.
Referenced by GetName(), operator=(), and PrintDefinition().
ALIstring CocoaUnitDefinition::SymbolName [private] |
Definition at line 55 of file CocoaUnitsTable.h.
Referenced by GetSymbol(), operator=(), and PrintDefinition().
CocoaUnitsTable CocoaUnitDefinition::theUnitsTable [static, private] |
Definition at line 59 of file CocoaUnitsTable.h.
Referenced by CocoaUnitDefinition(), GetCategory(), GetUnitsTable(), GetValueOf(), PrintDefinition(), PrintUnitsTable(), and ~CocoaUnitDefinition().
ALIdouble CocoaUnitDefinition::Value [private] |
Definition at line 56 of file CocoaUnitsTable.h.
Referenced by GetValue(), operator=(), and PrintDefinition().