source: snovis/trunk/source/G4Lab/cxx/BestUnit.cxx

Last change on this file was 291, checked in by barrand, 18 years ago
  • Property svn:eol-style set to native
File size: 1.2 KB
Line 
1// this :
2#include <G4Lab/BestUnit.h>
3
4// Geant4 :
5#include <G4UnitsTable.hh>
6
7// Lib :
8#include <Lib/Debug.h>
9#include <Lib/Out.h>
10#include <Lib/smanip.h>
11#include <Lib/sout.h>
12
13//////////////////////////////////////////////////////////////////////////////
14bool G4Lab::BestUnit::toDoubles(
15 Slash::Core::IWriter& aPrinter
16,const std::string& aString
17,std::vector<double>& aVec
18)
19//////////////////////////////////////////////////////////////////////////////
20//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
21{
22 std::vector<std::string> words = Lib::smanip::words(aString," ");
23 unsigned int wordn = words.size();
24 if(!wordn) {
25 aVec.clear();
26 return false;
27 }
28 G4double unit = G4UnitDefinition::GetValueOf(words[wordn-1]);
29 if(unit==0.) {
30 aVec.clear();
31 return false;
32 }
33 aVec.resize(wordn-1);
34 for(unsigned int index=0;index<(wordn-1);index++) {
35 double v = 0;
36 if(!Lib::smanip::todouble(words[index],v)) {
37 Lib::Out out(aPrinter);
38 out << "G4Lab::BestUnit::toDoubles :"
39 << " " << Lib::sout(words[index]) << " not a double."
40 << Lib::endl;
41 aVec.clear();
42 return false;
43 }
44 aVec[index] = v * unit;
45 }
46 return true;
47}
Note: See TracBrowser for help on using the repository browser.