5 #include "CLHEP/Evaluator/Evaluator.h" 
    9 void Evaluator::setSystemOfUnits(
double meter,
 
   17   const double kilo_  = 1.e+03; 
 
   18   const double mega_  = 1.e+06; 
 
   19   const double giga_  = 1.e+09; 
 
   20   const double tera_  = 1.e+12; 
 
   21   const double peta_  = 1.e+15; 
 
   23   const double deci_  = 1.e-01; 
 
   24   const double centi_ = 1.e-02; 
 
   25   const double milli_ = 1.e-03; 
 
   26   const double micro_ = 1.e-06; 
 
   27   const double nano_  = 1.e-09; 
 
   28   const double pico_  = 1.e-12; 
 
   40   setVariable(
"meter", m);
 
   41   setVariable(
"metre", m);
 
   46   setVariable(
"kilogram", kg);
 
   47   setVariable(
"kg",       kg);
 
   52   setVariable(
"second", s);
 
   58   setVariable(
"ampere", A);
 
   59   setVariable(
"amp",    A);
 
   65   setVariable(
"kelvin", K);
 
   69   const double mol = 
mole;
 
   70   setVariable(
"mole", mol);
 
   71   setVariable(
"mol",  mol);
 
   75   setVariable(
"candela", cd);
 
   76   setVariable(
"cd",      cd);
 
   85   const double rad = 1.;
 
   86   setVariable(
"radian", rad);
 
   87   setVariable(
"rad",    rad);
 
   88   setVariable(
"milliradian", milli_ * rad);
 
   89   setVariable(
"mrad",        milli_ * rad);
 
   91   const double pi  = 3.14159265358979323846;
 
   92   const double deg = rad*pi/180.;
 
   93   setVariable(
"degree", deg);
 
   94   setVariable(
"deg",    deg);
 
   98   setVariable(
"steradian", sr);
 
   99   setVariable(
"sr",        sr);
 
  109   const double Hz = 1./
s;
 
  110   setVariable(
"hertz", Hz);
 
  111   setVariable(
"Hz",    Hz);
 
  115   const double N = m * kg / (s*
s);
 
  116   setVariable(
"newton", N);
 
  121   const double Pa = N / (m*
m);
 
  122   setVariable(
"pascal", Pa);
 
  123   setVariable(
"Pa",     Pa);
 
  125   const double atm = 101325. * Pa;
 
  126   setVariable(
"atmosphere", atm);
 
  127   setVariable(
"atm",        atm);
 
  129   const double bar = 100000*Pa;
 
  130   setVariable(
"bar", bar);
 
  134   const double J = N * 
m;
 
  135   setVariable(
"joule", J);
 
  140   const double W = J / 
s;
 
  141   setVariable(
"watt", W);
 
  146   const double C = A * 
s;
 
  147   setVariable(
"coulomb", C);
 
  152   const double V = J / C;
 
  153   setVariable(
"volt", V);
 
  158   const double ohm = V / 
A;
 
  159   setVariable(
"ohm", ohm);
 
  165   const double S = 1./ 
ohm;
 
  166   setVariable(
"siemens", S);
 
  171   const double F = C / V;
 
  172   setVariable(
"farad", F);
 
  177   const double T = V * s / (m*
m);
 
  178   setVariable(
"tesla", T);
 
  182   const double Gs = 1.e-4*T;
 
  183   setVariable(
"gauss", Gs);
 
  184   setVariable(
"Gs",    Gs);
 
  188   const double Wb = V * 
s;
 
  189   setVariable(
"weber", Wb);
 
  190   setVariable(
"Wb",    Wb);
 
  194   const double H = Wb / 
A;
 
  195   setVariable(
"henry", H);
 
  199   const double lm = cd * 
sr;
 
  200   setVariable(
"lumen", lm);
 
  201   setVariable(
"lm",    lm);
 
  204   const double lx = lm / (m*
m);
 
  205   setVariable(
"lux", lx);
 
  206   setVariable(
"lx",  lx);
 
  210   const double Bq = 1./
s;
 
  211   setVariable(
"becquerel", Bq);
 
  212   setVariable(
"Bq",        Bq);
 
  213   setVariable(
"kilobecquerel",  kilo_ * Bq);
 
  214   setVariable(
"kBq",            kilo_ * Bq);
 
  215   setVariable(
"megabecquerel",  mega_ * Bq);
 
  216   setVariable(
"MBq",            mega_ * Bq);
 
  217   setVariable(
"gigabecquerel",  giga_ * Bq);
 
  218   setVariable(
"GBq",            giga_ * Bq);
 
  222   setVariable(
"curie", 3.7e+10 * Bq);
 
  223   setVariable(
"Ci",    3.7e+10 * Bq);
 
  224   setVariable(
"millicurie", milli_ * 3.7e+10 * Bq);
 
  225   setVariable(
"mCi",        milli_ * 3.7e+10 * Bq);
 
  226   setVariable(
"microcurie", micro_ * 3.7e+10 * Bq);
 
  227   setVariable(
"uCi",        micro_ * 3.7e+10 * Bq);
 
  231   const double Gy = J / 
kg;
 
  232   setVariable(
"gray", Gy);
 
  233   setVariable(
"Gy",   Gy);
 
  234   setVariable(
"kilogray",   kilo_ * Gy);
 
  235   setVariable(
"milligray", milli_ * Gy);
 
  236   setVariable(
"microgray", micro_ * Gy);
 
  239   const double Sv = J / 
kg;
 
  240   setVariable(
"sievert", Sv);
 
  241   setVariable(
"Sv",      Sv);
 
  251   const double mm = milli_ * 
m;
 
  252   setVariable(
"millimeter", mm);
 
  253   setVariable(
"mm",         mm);
 
  255   const double cm = centi_ * 
m;
 
  256   setVariable(
"centimeter", cm);
 
  257   setVariable(
"cm",         cm);
 
  259   setVariable(
"decimeter",  deci_ * m);
 
  261   const double km = kilo_ * 
m; 
 
  262   setVariable(
"kilometer",  km);
 
  263   setVariable(
"km",         km);
 
  265   setVariable(
"micrometer", micro_ * m);
 
  266   setVariable(
"micron",     micro_ * m);
 
  267   setVariable(
"nanometer",  nano_  * m);
 
  270   setVariable(
"angstrom",   1.e-10 * m);
 
  273   setVariable(
"fermi",      1.e-15 * m);
 
  277   setVariable(
"m2",  m*m);
 
  278   setVariable(
"mm2", mm*mm);
 
  279   setVariable(
"cm2", cm*cm);
 
  280   setVariable(
"km2", km*km);
 
  282   const double barn = 1.e-28 * m*
m; 
 
  283   setVariable(
"barn",      barn);
 
  284   setVariable(
"millibarn", milli_ * barn);
 
  285   setVariable(
"mbarn",     milli_ * barn);
 
  286   setVariable(
"microbarn", micro_ * barn);
 
  287   setVariable(
"nanobarn",  nano_  * barn);
 
  288   setVariable(
"picobarn",  pico_  * barn);
 
  292   setVariable(
"m3",  m*m*m);
 
  293   setVariable(
"mm3", mm*mm*mm);
 
  294   setVariable(
"cm3", cm*cm*cm);
 
  295   setVariable(
"cc",  cm*cm*cm);
 
  296   setVariable(
"km3", km*km*km);
 
  298   const double L = 1.e-3*m*m*
m;
 
  299   setVariable(
"liter", L);  
 
  300   setVariable(
"litre", L);  
 
  302   setVariable(
"centiliter",  centi_ * L);
 
  303   setVariable(
"cL",          centi_ * L);
 
  304   setVariable(
"milliliter",  milli_ * L);
 
  305   setVariable(
"mL",          milli_ * L);
 
  309   const double dpt = 1./
m;
 
  310   setVariable(
"diopter", dpt);
 
  311   setVariable(
"dioptre", dpt);
 
  312   setVariable(
"dpt",     dpt);
 
  316   const double g = 0.001*
kg;
 
  317   setVariable(
"gram", g);
 
  319   setVariable(
"milligram",   milli_ * g);
 
  320   setVariable(
"mg",          milli_ * g);
 
  324   setVariable(
"millisecond", milli_ * s);
 
  325   setVariable(
"ms",          milli_ * s);
 
  326   setVariable(
"microsecond", micro_ * s);
 
  327   setVariable(
"nanosecond",  nano_  * s);
 
  328   setVariable(
"ns",          nano_  * s);
 
  329   setVariable(
"picosecond",  pico_  * s);
 
  333   setVariable(
"milliampere", milli_ * A);
 
  334   setVariable(
"mA",          milli_ * A);
 
  335   setVariable(
"microampere", micro_ * A);
 
  336   setVariable(
"nanoampere",  nano_  * A);
 
  340   setVariable(
"kilohertz",   kilo_ * Hz);
 
  341   setVariable(
"kHz",         kilo_ * Hz);
 
  342   setVariable(
"megahertz",   mega_ * Hz);
 
  343   setVariable(
"MHz",         mega_ * Hz);
 
  346   setVariable(
"kilonewton",  kilo_ * N);
 
  347   setVariable(
"kN",          kilo_ * N);
 
  350   setVariable(
"kilobar",     kilo_ * bar);
 
  351   setVariable(
"kbar",        kilo_ * bar);
 
  352   setVariable(
"millibar",    milli_ * bar);
 
  353   setVariable(
"mbar",        milli_ * bar);
 
  356   setVariable(
"kilojoule",   kilo_ * J);
 
  357   setVariable(
"kJ",          kilo_ * J);
 
  358   setVariable(
"megajoule",   mega_ * J);
 
  359   setVariable(
"MJ",          mega_ * J);
 
  360   setVariable(
"gigajoule",   giga_ * J);
 
  361   setVariable(
"GJ",          giga_ * J);
 
  363   const double e_SI  = 1.60217733e-19;  
 
  364   const double ePlus = e_SI * C;        
 
  365   const double eV    = ePlus * V;
 
  366   setVariable(
"electronvolt", eV);
 
  367   setVariable(
"eV",           eV);
 
  368   setVariable(
"kiloelectronvolt", kilo_ * eV);
 
  369   setVariable(
"keV",              kilo_ * eV);
 
  370   setVariable(
"megaelectronvolt", mega_ * eV);
 
  371   setVariable(
"MeV",              mega_ * eV);
 
  372   setVariable(
"gigaelectronvolt", giga_ * eV);
 
  373   setVariable(
"GeV",              giga_ * eV);
 
  374   setVariable(
"teraelectronvolt", tera_ * eV);
 
  375   setVariable(
"TeV",              tera_ * eV);
 
  376   setVariable(
"petaelectronvolt", peta_ * eV);
 
  377   setVariable(
"PeV",              peta_ * eV);
 
  380   setVariable(
"kilowatt",    kilo_ * W);
 
  381   setVariable(
"kW",          kilo_ * W);
 
  382   setVariable(
"megawatt",    mega_ * W);
 
  383   setVariable(
"MW",          mega_ * W);
 
  384   setVariable(
"gigawatt",    giga_ * W);
 
  385   setVariable(
"GW",          giga_ * W);
 
  388   setVariable(
"kilovolt",    kilo_ * V);
 
  389   setVariable(
"kV",          kilo_ * V);
 
  390   setVariable(
"megavolt",    mega_ * V);
 
  391   setVariable(
"MV",          mega_ * V);
 
  394   setVariable(
"millifarad",  milli_ * F);
 
  395   setVariable(
"mF",          milli_ * F);
 
  396   setVariable(
"microfarad",  micro_ * F);
 
  397   setVariable(
"uF",          micro_ * F);
 
  398   setVariable(
"nanofarad",   nano_  * F);
 
  399   setVariable(
"nF",          nano_  * F);
 
  400   setVariable(
"picofarad",   pico_  * F);
 
  401   setVariable(
"pF",          pico_  * F);
 
  404   setVariable(
"kilogauss",   kilo_ * Gs);
 
  405   setVariable(
"kGs",         kilo_ * Gs);
 
static const double candela
 
static const double meter
 
static const double second
 
static const G4double A[nN]
 
static const double kelvin
 
static const double kilogram
 
static const double ampere