CMS 3D CMS Logo

CocoaUnitDefinition Class Reference

#include <Alignment/CocoaToDDL/interface/CocoaUnitsTable.h>

List of all members.

Public Member Functions

 CocoaUnitDefinition (const ALIstring &name, const ALIstring &symbol, const ALIstring &category, ALIdouble value)
const ALIstringGetName () const
const ALIstringGetSymbol () 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 CocoaUnitsTableGetUnitsTable ()
static ALIdouble GetValueOf (const ALIstring &)
static void PrintUnitsTable ()

Private Member Functions

 CocoaUnitDefinition (const CocoaUnitDefinition &)
CocoaUnitDefinitionoperator= (const CocoaUnitDefinition &)

Private Attributes

size_t CategoryIndex
ALIstring Name
ALIstring SymbolName
ALIdouble Value

Static Private Attributes

static CocoaUnitsTable theUnitsTable


Detailed Description

Definition at line 18 of file CocoaUnitsTable.h.


Constructor & Destructor Documentation

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]

Definition at line 44 of file CocoaUnitsTable.cc.

00045 {
00046     *this = right;
00047 }


Member Function Documentation

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 }

ALIstring CocoaUnitDefinition::GetCategory ( const ALIstring str  )  [static]

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]

Definition at line 39 of file CocoaUnitsTable.h.

References SymbolName.

00039 {return SymbolName;}

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 40 of file CocoaUnitsTable.h.

References Value.

00040 {return Value;}

ALIdouble CocoaUnitDefinition::GetValueOf ( const ALIstring str  )  [static]

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 }


Member Data Documentation

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().


The documentation for this class was generated from the following files:
Generated on Tue Jun 9 18:16:27 2009 for CMSSW by  doxygen 1.5.4