CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes
ALIUnitDefinition Class Reference

#include <ALIUnitsTable.h>

Public Member Functions

 ALIUnitDefinition (ALIstring name, ALIstring symbol, ALIstring category, ALIdouble value)
 
ALIstring GetName () const
 
ALIstring GetSymbol () const
 
ALIdouble GetValue () const
 
ALIint operator!= (const ALIUnitDefinition &) const
 
ALIint operator== (const ALIUnitDefinition &) const
 
void PrintDefinition ()
 
 ~ALIUnitDefinition ()
 

Static Public Member Functions

static void BuildUnitsTable ()
 
static ALIstring GetCategory (ALIstring)
 
static ALIUnitsTableGetUnitsTable ()
 
static ALIdouble GetValueOf (ALIstring)
 
static void PrintUnitsTable ()
 

Private Member Functions

 ALIUnitDefinition (ALIUnitDefinition &)
 
ALIUnitDefinitionoperator= (const ALIUnitDefinition &)
 

Private Attributes

size_t CategoryIndex
 
ALIstring Name
 
ALIstring SymbolName
 
ALIdouble Value
 

Static Private Attributes

static ALIUnitsTable theUnitsTable
 

Detailed Description

Definition at line 52 of file ALIUnitsTable.h.

Constructor & Destructor Documentation

ALIUnitDefinition::ALIUnitDefinition ( ALIstring  name,
ALIstring  symbol,
ALIstring  category,
ALIdouble  value 
)

Definition at line 12 of file ALIUnitsTable.cc.

References CategoryIndex, GetName(), i, and theUnitsTable.

Referenced by BuildUnitsTable().

14  : Name(name),SymbolName(symbol),Value(value)
15 {
16  //
17  //does the Category objet already exist ?
18  size_t nbCat = theUnitsTable.size();
19  size_t i = 0;
20  while ((i<nbCat)&&(theUnitsTable[i]->GetName()!=category)) i++;
21  if (i == nbCat) theUnitsTable.push_back( new ALIUnitsCategory(category));
22  CategoryIndex = i;
23  //
24  //insert this Unit in the Unitstable
25  (theUnitsTable[CategoryIndex]->GetUnitsList()).push_back(this);
26 
27  //update ALIstring max length for name and symbol
28  theUnitsTable[i]->UpdateNameMxLen((ALIint)name.length());
29  theUnitsTable[i]->UpdateSymbMxLen((ALIint)symbol.length());
30 
31 }
ALIstring GetName() const
Definition: ALIUnitsTable.h:72
int i
Definition: DBlmapReader.cc:9
ALIstring SymbolName
Definition: ALIUnitsTable.h:89
int ALIint
Definition: CocoaGlobals.h:15
static ALIUnitsTable theUnitsTable
Definition: ALIUnitsTable.h:93
ALIUnitDefinition::~ALIUnitDefinition ( )

Definition at line 35 of file ALIUnitsTable.cc.

36 {}
ALIUnitDefinition::ALIUnitDefinition ( ALIUnitDefinition right)
private

Definition at line 40 of file ALIUnitsTable.cc.

41 {
42  *this = right;
43 }

Member Function Documentation

void ALIUnitDefinition::BuildUnitsTable ( )
static

Definition at line 125 of file ALIUnitsTable.cc.

References ALIUnitDefinition(), g, and edm::second().

Referenced by GetCategory(), and GetValueOf().

126 {
127  //Length
128  new ALIUnitDefinition( "kilometer","km" ,"Length",kilometer);
129  new ALIUnitDefinition( "meter","m" ,"Length",meter);
130  new ALIUnitDefinition("centimeter","cm" ,"Length",centimeter);
131  new ALIUnitDefinition("millimeter","mm" ,"Length",millimeter);
132  new ALIUnitDefinition("micrometer","mum" ,"Length",micrometer);
133  new ALIUnitDefinition( "nanometer","nm" ,"Length",nanometer);
134  new ALIUnitDefinition( "angstrom","Ang" ,"Length",angstrom);
135  new ALIUnitDefinition( "fermi","fm" ,"Length",fermi);
136 
137  //Surface
138  new ALIUnitDefinition( "kilometer2","km2" ,"Surface",kilometer2);
139  new ALIUnitDefinition( "meter2","m2" ,"Surface",meter2);
140  new ALIUnitDefinition("centimeter2","cm2" ,"Surface",centimeter2);
141  new ALIUnitDefinition("millimeter2","mm2" ,"Surface",millimeter2);
142  new ALIUnitDefinition( "barn","barn" ,"Surface",barn);
143  new ALIUnitDefinition( "millibarn","mbarn" ,"Surface",millibarn);
144  new ALIUnitDefinition( "microbarn","mubarn" ,"Surface",microbarn);
145  new ALIUnitDefinition( "nanobarn","nbarn" ,"Surface",nanobarn);
146  new ALIUnitDefinition( "picobarn","pbarn" ,"Surface",picobarn);
147 
148  //Volume
149  new ALIUnitDefinition( "kilometer3","km3" ,"Volume",kilometer3);
150  new ALIUnitDefinition( "meter3","m3" ,"Volume",meter3);
151  new ALIUnitDefinition("centimeter3","cm3" ,"Volume",centimeter3);
152  new ALIUnitDefinition("millimeter3","mm3" ,"Volume",millimeter3);
153 
154  //Angle
155  new ALIUnitDefinition( "radian","rad" ,"Angle",radian);
156  new ALIUnitDefinition("milliradian","mrad" ,"Angle",milliradian);
157  new ALIUnitDefinition("milliradian","murad" ,"Angle",0.001*milliradian);
158  new ALIUnitDefinition( "steradian","sr" ,"Angle",steradian);
159  new ALIUnitDefinition( "degree","deg" ,"Angle",degree);
160 
161  //Time
162  new ALIUnitDefinition( "second","s" ,"Time",second);
163  new ALIUnitDefinition("millisecond","ms" ,"Time",millisecond);
164  new ALIUnitDefinition("microsecond","mus" ,"Time",microsecond);
165  new ALIUnitDefinition( "nanosecond","ns" ,"Time",nanosecond);
166  new ALIUnitDefinition( "picosecond","ps" ,"Time",picosecond);
167 
168  //Frequency
169  new ALIUnitDefinition( "hertz","Hz" ,"Frequency",hertz);
170  new ALIUnitDefinition("kilohertz","kHz" ,"Frequency",kilohertz);
171  new ALIUnitDefinition("megahertz","MHz" ,"Frequency",megahertz);
172 
173  //Electric charge
174  new ALIUnitDefinition( "eplus","e+" ,"Electric charge",eplus);
175  new ALIUnitDefinition("coulomb","C" ,"Electric charge",coulomb);
176 
177  //Energy
178  new ALIUnitDefinition( "electronvolt","eV" ,"Energy",electronvolt);
179  new ALIUnitDefinition("kiloelectronvolt","keV","Energy",kiloelectronvolt);
180  new ALIUnitDefinition("megaelectronvolt","MeV","Energy",megaelectronvolt);
181  new ALIUnitDefinition("gigaelectronvolt","GeV","Energy",gigaelectronvolt);
182  new ALIUnitDefinition("teraelectronvolt","TeV","Energy",teraelectronvolt);
183  new ALIUnitDefinition("petaelectronvolt","PeV","Energy",petaelectronvolt);
184  new ALIUnitDefinition( "joule","J" ,"Energy",joule);
185 
186  //Mass
187  new ALIUnitDefinition("milligram","mg","Mass",milligram);
188  new ALIUnitDefinition( "gram","g" ,"Mass",gram);
189  new ALIUnitDefinition( "kilogram","kg","Mass",kilogram);
190 
191  //Volumic Mass
192  new ALIUnitDefinition( "g/cm3", "g/cm3","Volumic Mass", g/cm3);
193  new ALIUnitDefinition("mg/cm3","mg/cm3","Volumic Mass",mg/cm3);
194  new ALIUnitDefinition("kg/m3", "kg/m3", "Volumic Mass",kg/m3);
195 
196  //Power
197  new ALIUnitDefinition("watt","W","Power",watt);
198 
199  //Force
200  new ALIUnitDefinition("newton","N","Force",newton);
201 
202  //Pressure
203  new ALIUnitDefinition( "pascal","Pa" ,"Pressure",pascal);
204  new ALIUnitDefinition( "bar","bar","Pressure",bar);
205  new ALIUnitDefinition("atmosphere","atm","Pressure",atmosphere);
206 
207  //Electric current
208  new ALIUnitDefinition( "ampere","A" ,"Electric current",ampere);
209  new ALIUnitDefinition("milliampere","mA" ,"Electric current",milliampere);
210  new ALIUnitDefinition("microampere","muA","Electric current",microampere);
211  new ALIUnitDefinition( "nanoampere","nA" ,"Electric current",nanoampere);
212 
213  //Electric potential
214  new ALIUnitDefinition( "volt","V" ,"Electric potential",volt);
215  new ALIUnitDefinition("kilovolt","kV","Electric potential",kilovolt);
216  new ALIUnitDefinition("megavolt","MV","Electric potential",megavolt);
217 
218  //Magnetic flux
219  new ALIUnitDefinition("weber","Wb","Magnetic flux",weber);
220 
221  //Magnetic flux density
222  new ALIUnitDefinition( "tesla","T" ,"Magnetic flux density",tesla);
223  new ALIUnitDefinition("kilogauss","kG","Magnetic flux density",kilogauss);
224  new ALIUnitDefinition( "gauss","G" ,"Magnetic flux density",gauss);
225 
226  //Temperature
227  new ALIUnitDefinition("kelvin","K","Temperature",kelvin);
228 
229  //Amount of substance
230  new ALIUnitDefinition("mole","mol","Amount of substance",mole);
231 
232  //Activity
233  new ALIUnitDefinition("becquerel","Bq","Activity",becquerel);
234  new ALIUnitDefinition( "curie","Ci","Activity",curie);
235 
236  //Dose
237  new ALIUnitDefinition("gray","Gy","Dose",gray);
238 }
ALIUnitDefinition(ALIstring name, ALIstring symbol, ALIstring category, ALIdouble value)
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
Definition: Activities.doc:4
U second(std::pair< T, U > const &p)
ALIstring ALIUnitDefinition::GetCategory ( ALIstring  stri)
static

Definition at line 94 of file ALIUnitsTable.cc.

References BuildUnitsTable(), gather_cfg::cout, i, j, mergeVDriftHistosByStation::name, theUnitsTable, and units().

95 {
96  if(theUnitsTable.size()==0) BuildUnitsTable();
97  ALIstring name,symbol;
98  for (size_t i=0;i<theUnitsTable.size();i++)
99  { ALIUnitsContainer& units = theUnitsTable[i]->GetUnitsList();
100  for (size_t j=0;j<units.size();j++)
101  { name=units[j]->GetName(); symbol=units[j]->GetSymbol();
102  if(stri==name||stri==symbol)
103  return theUnitsTable[i]->GetName();
104  }
105  }
106  std::cout << "Warning from ALIUnitDefinition::GetCategory(" << stri << ")."
107  << " The unit " << stri << " does not exist in UnitsTable."
108  << " Return category = None" << std::endl;
109  name = "None";
110  return name;
111 }
int i
Definition: DBlmapReader.cc:9
std::vector< ALIUnitDefinition * > ALIUnitsContainer
int j
Definition: DBlmapReader.cc:9
static void BuildUnitsTable()
TString units(TString variable, Char_t axis)
std::string ALIstring
Definition: CocoaGlobals.h:9
tuple cout
Definition: gather_cfg.py:121
static ALIUnitsTable theUnitsTable
Definition: ALIUnitsTable.h:93
ALIstring ALIUnitDefinition::GetName ( ) const
inline

Definition at line 72 of file ALIUnitsTable.h.

References Name.

Referenced by ALIUnitDefinition().

72 {return Name;}
ALIstring ALIUnitDefinition::GetSymbol ( ) const
inline

Definition at line 73 of file ALIUnitsTable.h.

References SymbolName.

73 {return SymbolName;}
ALIstring SymbolName
Definition: ALIUnitsTable.h:89
static ALIUnitsTable& ALIUnitDefinition::GetUnitsTable ( )
inlinestatic

Definition at line 81 of file ALIUnitsTable.h.

References theUnitsTable.

Referenced by ALIBestUnit::ALIBestUnit(), and operator<<().

81 {return theUnitsTable;}
static ALIUnitsTable theUnitsTable
Definition: ALIUnitsTable.h:93
ALIdouble ALIUnitDefinition::GetValue ( ) const
inline

Definition at line 74 of file ALIUnitsTable.h.

References Value.

74 {return Value;}
ALIdouble ALIUnitDefinition::GetValueOf ( ALIstring  stri)
static

Definition at line 74 of file ALIUnitsTable.cc.

References BuildUnitsTable(), gather_cfg::cout, i, j, mergeVDriftHistosByStation::name, theUnitsTable, and units().

Referenced by ParameterMgr::getVal().

75 {
76  if(theUnitsTable.size()==0) BuildUnitsTable();
77  ALIstring name,symbol;
78  for (size_t i=0;i<theUnitsTable.size();i++)
79  { ALIUnitsContainer& units = theUnitsTable[i]->GetUnitsList();
80  for (size_t j=0;j<units.size();j++)
81  { name=units[j]->GetName(); symbol=units[j]->GetSymbol();
82  if(stri==name||stri==symbol)
83  return units[j]->GetValue();
84  }
85  }
86  std::cout << "Warning from ALIUnitDefinition::GetValueOf(" << stri << ")."
87  << " The unit " << stri << " does not exist in UnitsTable."
88  << " Return Value = 0." << std::endl;
89  return 0.;
90 }
int i
Definition: DBlmapReader.cc:9
std::vector< ALIUnitDefinition * > ALIUnitsContainer
int j
Definition: DBlmapReader.cc:9
static void BuildUnitsTable()
TString units(TString variable, Char_t axis)
std::string ALIstring
Definition: CocoaGlobals.h:9
tuple cout
Definition: gather_cfg.py:121
static ALIUnitsTable theUnitsTable
Definition: ALIUnitsTable.h:93
ALIint ALIUnitDefinition::operator!= ( const ALIUnitDefinition right) const

Definition at line 68 of file ALIUnitsTable.cc.

69 {
70  return (this != &right);
71 }
ALIUnitDefinition & ALIUnitDefinition::operator= ( const ALIUnitDefinition right)
private

Definition at line 47 of file ALIUnitsTable.cc.

References CategoryIndex, Name, SymbolName, and Value.

48 {
49  if (this != &right)
50  {
51  Name = right.Name;
52  SymbolName = right.SymbolName;
53  Value = right.Value;
55  }
56  return *this;
57 }
ALIstring SymbolName
Definition: ALIUnitsTable.h:89
ALIint ALIUnitDefinition::operator== ( const ALIUnitDefinition right) const

Definition at line 61 of file ALIUnitsTable.cc.

62 {
63  return (this == &right);
64 }
void ALIUnitDefinition::PrintDefinition ( )

Definition at line 115 of file ALIUnitsTable.cc.

References CategoryIndex, gather_cfg::cout, Name, SymbolName, theUnitsTable, and Value.

116 {
117  ALIint nameL = theUnitsTable[CategoryIndex]->GetNameMxLen();
118  ALIint symbL = theUnitsTable[CategoryIndex]->GetSymbMxLen();
119  std::cout << std::setw(nameL) << Name << " ("
120  << std::setw(symbL) << SymbolName << ") = " << Value << std::endl;
121 }
ALIstring SymbolName
Definition: ALIUnitsTable.h:89
int ALIint
Definition: CocoaGlobals.h:15
tuple cout
Definition: gather_cfg.py:121
static ALIUnitsTable theUnitsTable
Definition: ALIUnitsTable.h:93
void ALIUnitDefinition::PrintUnitsTable ( )
static

Definition at line 242 of file ALIUnitsTable.cc.

References gather_cfg::cout, i, and theUnitsTable.

243 {
244  std::cout << "\n ----- The Table of Units ----- \n";
245  for(size_t i=0;i<theUnitsTable.size();i++)
246  theUnitsTable[i]->PrintCategory();
247 }
int i
Definition: DBlmapReader.cc:9
tuple cout
Definition: gather_cfg.py:121
static ALIUnitsTable theUnitsTable
Definition: ALIUnitsTable.h:93

Member Data Documentation

size_t ALIUnitDefinition::CategoryIndex
private

Definition at line 96 of file ALIUnitsTable.h.

Referenced by ALIUnitDefinition(), operator=(), and PrintDefinition().

ALIstring ALIUnitDefinition::Name
private

Definition at line 88 of file ALIUnitsTable.h.

Referenced by GetName(), operator=(), and PrintDefinition().

ALIstring ALIUnitDefinition::SymbolName
private

Definition at line 89 of file ALIUnitsTable.h.

Referenced by GetSymbol(), operator=(), and PrintDefinition().

ALIUnitsTable ALIUnitDefinition::theUnitsTable
staticprivate
ALIdouble ALIUnitDefinition::Value
private

Definition at line 90 of file ALIUnitsTable.h.

Referenced by GetValue(), operator=(), and PrintDefinition().