CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
EntryData.cc
Go to the documentation of this file.
1 // COCOA class implementation file
2 //Id: EntryData.cc
3 //CAT: Model
4 //
5 // History: v1.0
6 // Pedro Arce
7 
11 #include <cstdlib>
12 
13 //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
14 //@@ Constructor
15 //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
17 {
18 }
19 
20 void EntryData::fill(const std::vector<ALIstring>& wordlist )
21 {
22  if (ALIUtils::debug >=4) std::cout << "Filling entry data:" << std::endl;
23  //----------- Check there are > 10 words
24  if ( wordlist.size() < 10 ) {
25  //t ALIFileIn::getInstance( Model::SDFName() ).ErrorInLine();
26  ALIUtils::dumpVS( wordlist, " !!! Incorrect format for EntryData:", std::cerr );
27  std::cerr << std::endl << " There should be at least 10 words" << std::endl;
28  abort();
29  }
30 
31  EntryMgr* entryMgr = EntryMgr::getInstance();
32  //----- set name and type
33  fLongOptOName = wordlist[2];
34  fShortOptOName = entryMgr->extractShortName(wordlist[2]);
35  fEntryName = wordlist[3];
36 
37  //----- set value
38  fValueOriginal = ALIUtils::getFloat( wordlist[4] );
39  fValueDisplacement = 0.;
40  // fValueOriginal = ALIUtils::getFloat( wordlist[7] );
41  // fValueDisplacement = ALIUtils::getFloat( wordlist[12] );
42  /* done in Entry.cc
43  if( wordlist[3].substr(0,6) == "centre" ) {
44  fValue *= entryMgr->getDimOutLengthVal();
45  if(ALIUtils::debug >= 5) std::cout << "value " << fValue << " " << entryMgr->getDimOutLengthVal() << std::endl;
46  } else if( wordlist[3].substr(0,6) == "angles" ) {
47  fValue *= entryMgr->getDimOutAngleVal();
48  } else {
49  std::cerr << "!!!FATAL ERROR: reading from 'report.out' only supports centre or angles, NOT " << wordlist[3] << std::endl;
50  abort();
51  }
52  */
53 
54  //----- set sigma
55  fSigma = ALIUtils::getFloat( wordlist[6] );
56  /* done in Entry.cc
57  if( wordlist[3].substr(0,6) == "centre" ) {
58  fSigma *= entryMgr->getDimOutLengthSig();
59  }else if( wordlist[3].substr(0,6) == "angles" ) {
60  fSigma *= entryMgr->getDimOutAngleSig();
61  }
62  */
63 
64  //----- set quality
65  if( wordlist[0] == ALIstring("UNK:") ) {
66  fQuality = 2;
67  } else if( wordlist[0] == ALIstring("CAL:") ) {
68  fQuality = 1;
69  } else if( wordlist[0] == ALIstring("FIX:") ) {
70  fQuality = 0;
71  } else {
72  //- ALIFileIn::getInstance( Model::SDFName() ).ErrorInLine();
73  std::cerr << " quality should be 'UNK:' or 'CAL:' or 'FIX:', instead of " << wordlist[0] << std::endl;
74  abort();
75  }
76 
77  if (ALIUtils::debug >= 4) {
78  //t std::cout << *this << std::endl;
79  }
80 }
81 
82 
83 //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
84 //@@ Destructor
85 //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
87 {
88 }
89 
90 
91 //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
92 std::ostream& operator << (std::ostream& os, const EntryData& ent)
93 {
94 
95  os << "ENTRY: " << ent.longOptOName() << " : " << ent.entryName()
96  << " valueOriginal " << ent.valueOriginal()
97  << " valueDisplacement " << ent.valueDisplacement()
98  << " sigma " << ent.sigma()
99  << " quality " << ent.quality() << std::endl;
100 
101  return os;
102 
103 }
const ALIstring & entryName() const
Definition: EntryData.h:30
void fill(const std::vector< ALIstring > &wordlist)
Definition: EntryData.cc:20
ALIuint fQuality
Definition: EntryData.h:48
static ALIint debug
Definition: ALIUtils.h:35
std::ostream & operator<<(std::ostream &out, const ALILine &li)
Definition: ALILine.cc:187
ALIdouble fValueOriginal
Definition: EntryData.h:45
static double getFloat(const ALIstring &str)
Convert a string to an float, checking that it is really a number.
Definition: ALIUtils.cc:404
const ALIstring & longOptOName() const
Definition: EntryData.h:27
ALIstring extractShortName(const ALIstring &name)
Definition: EntryMgr.cc:126
ALIdouble sigma() const
Definition: EntryData.h:33
ALIstring fLongOptOName
Definition: EntryData.h:42
ALIstring fEntryName
Definition: EntryData.h:44
ALIdouble valueOriginal() const
Definition: EntryData.h:31
ALIdouble fValueDisplacement
Definition: EntryData.h:46
ALIdouble fSigma
Definition: EntryData.h:47
static EntryMgr * getInstance()
Definition: EntryMgr.cc:17
static void dumpVS(const std::vector< ALIstring > &wl, const std::string &msg, std::ostream &outs=std::cout)
dumps a vector of strings with a message to outs
Definition: ALIUtils.cc:501
std::string ALIstring
Definition: CocoaGlobals.h:9
tuple cout
Definition: gather_cfg.py:121
ALIstring fShortOptOName
Definition: EntryData.h:43
ALIdouble valueDisplacement() const
Definition: EntryData.h:32
ALIint quality() const
Definition: EntryData.h:34
~EntryData()
Definition: EntryData.cc:86