CMS 3D CMS Logo

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 void EntryData::fill(const std::vector<ALIstring>& wordlist) {
19  if (ALIUtils::debug >= 4)
20  std::cout << "Filling entry data:" << std::endl;
21  //----------- Check there are > 10 words
22  if (wordlist.size() < 10) {
23  //t ALIFileIn::getInstance( Model::SDFName() ).ErrorInLine();
24  ALIUtils::dumpVS(wordlist, " !!! Incorrect format for EntryData:", std::cerr);
25  std::cerr << std::endl << " There should be at least 10 words" << std::endl;
26  abort();
27  }
28 
29  EntryMgr* entryMgr = EntryMgr::getInstance();
30  //----- set name and type
31  fLongOptOName = wordlist[2];
32  fShortOptOName = entryMgr->extractShortName(wordlist[2]);
33  fEntryName = wordlist[3];
34 
35  //----- set value
36  fValueOriginal = ALIUtils::getFloat(wordlist[4]);
37  fValueDisplacement = 0.;
38  // fValueOriginal = ALIUtils::getFloat( wordlist[7] );
39  // fValueDisplacement = ALIUtils::getFloat( wordlist[12] );
40  /* done in Entry.cc
41  if( wordlist[3].substr(0,6) == "centre" ) {
42  fValue *= entryMgr->getDimOutLengthVal();
43  if(ALIUtils::debug >= 5) std::cout << "value " << fValue << " " << entryMgr->getDimOutLengthVal() << std::endl;
44  } else if( wordlist[3].substr(0,6) == "angles" ) {
45  fValue *= entryMgr->getDimOutAngleVal();
46  } else {
47  std::cerr << "!!!FATAL ERROR: reading from 'report.out' only supports centre or angles, NOT " << wordlist[3] << std::endl;
48  abort();
49  }
50  */
51 
52  //----- set sigma
53  fSigma = ALIUtils::getFloat(wordlist[6]);
54  /* done in Entry.cc
55  if( wordlist[3].substr(0,6) == "centre" ) {
56  fSigma *= entryMgr->getDimOutLengthSig();
57  }else if( wordlist[3].substr(0,6) == "angles" ) {
58  fSigma *= entryMgr->getDimOutAngleSig();
59  }
60  */
61 
62  //----- set quality
63  if (wordlist[0] == ALIstring("UNK:")) {
64  fQuality = 2;
65  } else if (wordlist[0] == ALIstring("CAL:")) {
66  fQuality = 1;
67  } else if (wordlist[0] == ALIstring("FIX:")) {
68  fQuality = 0;
69  } else {
70  //- ALIFileIn::getInstance( Model::SDFName() ).ErrorInLine();
71  std::cerr << " quality should be 'UNK:' or 'CAL:' or 'FIX:', instead of " << wordlist[0] << std::endl;
72  abort();
73  }
74 
75  if (ALIUtils::debug >= 4) {
76  //t std::cout << *this << std::endl;
77  }
78 }
79 
80 //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
81 //@@ Destructor
82 //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
84 
85 //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
86 std::ostream& operator<<(std::ostream& os, const EntryData& ent) {
87  os << "ENTRY: " << ent.longOptOName() << " : " << ent.entryName() << " valueOriginal " << ent.valueOriginal()
88  << " valueDisplacement " << ent.valueDisplacement() << " sigma " << ent.sigma() << " quality " << ent.quality()
89  << std::endl;
90 
91  return os;
92 }
friend std::ostream & operator<<(std::ostream &os, const EntryData &c)
Definition: EntryData.cc:86
const ALIstring & entryName() const
Definition: EntryData.h:29
void fill(const std::vector< ALIstring > &wordlist)
Definition: EntryData.cc:18
ALIuint fQuality
Definition: EntryData.h:46
static ALIint debug
Definition: ALIUtils.h:34
ALIdouble fValueOriginal
Definition: EntryData.h:43
static double getFloat(const ALIstring &str)
Convert a string to an float, checking that it is really a number.
Definition: ALIUtils.cc:373
const ALIstring & longOptOName() const
Definition: EntryData.h:26
ALIstring extractShortName(const ALIstring &name)
Definition: EntryMgr.cc:125
ALIdouble sigma() const
Definition: EntryData.h:32
ALIstring fLongOptOName
Definition: EntryData.h:40
ALIstring fEntryName
Definition: EntryData.h:42
ALIdouble valueOriginal() const
Definition: EntryData.h:30
ALIdouble fValueDisplacement
Definition: EntryData.h:44
ALIdouble fSigma
Definition: EntryData.h:45
static EntryMgr * getInstance()
Definition: EntryMgr.cc:16
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:465
std::string ALIstring
Definition: CocoaGlobals.h:9
ALIstring fShortOptOName
Definition: EntryData.h:41
ALIdouble valueDisplacement() const
Definition: EntryData.h:31
ALIint quality() const
Definition: EntryData.h:33
~EntryData()
Definition: EntryData.cc:83