CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
SurveyInputTextReader.cc
Go to the documentation of this file.
1 // System
2 
3 #include <fstream>
4 
6 
9 
10 //__________________________________________________________________________________________________
11 void SurveyInputTextReader::readFile(const std::string& textFileName) {
12  std::ifstream myfile(textFileName.c_str());
13  if (!myfile.is_open())
14  throw cms::Exception("FileAccess") << "Unable to open input text file";
15 
16  // FIXME: - currently defaulting to RunI as this was the previous behaviour
17  // - check this, when resurrecting this code in the future
19 
20  while (!myfile.eof() && myfile.good()) {
21  align::Scalars m_inputs;
22 
23  UniqueId m_uId;
24  char firstchar;
25  firstchar = myfile.peek();
26 
27  if (firstchar == '#') {
29  getline(myfile, line);
30  } else if (firstchar == '!') {
31  std::string firststring;
32  std::string structure;
33  myfile >> firststring >> structure;
34  std::string endofline;
35  getline(myfile, endofline);
36  m_uId.second = alignableObjectId.stringToId(structure.c_str());
37  } else {
38  myfile >> m_uId.first;
39 
40  for (int i = 0; i < NINPUTS; i++) {
41  float tmpInput;
42  myfile >> tmpInput;
43  m_inputs.push_back(tmpInput);
44  }
45  std::string endofline;
46  getline(myfile, endofline);
47  theMap.insert(PairType(m_uId, m_inputs));
48 
49  // Check if read succeeded (otherwise, we are at eof)
50  if (myfile.fail())
51  break;
52  }
53  }
54 }
void readFile(const std::string &textFileName)
Read given text file.
std::vector< Scalar > Scalars
Definition: Utilities.h:26
Allows conversion between type and name, and vice-versa.
std::pair< UniqueId, align::Scalars > PairType
std::pair< align::ID, align::StructureType > UniqueId