CMS 3D CMS Logo

PixelTTCciConfig.cc
Go to the documentation of this file.
1 //
2 // This class reads the TTC configuration file
3 //
4 //
5 //
6 
9 #include <sstream>
10 #include <cassert>
11 #include <stdexcept>
12 
13 using namespace pos;
14 using namespace std;
15 
16 PixelTTCciConfig::PixelTTCciConfig(vector< vector<string> > &tableMat):PixelConfigBase(" ", " ", " ")
17 {
18  std::map<std::string , int > colM;
19  std::vector<std::string > colNames;
32  colNames.push_back("CONFIG_KEY" );
33  colNames.push_back("KEY_TYPE" );
34  colNames.push_back("KEY_ALIAS" );
35  colNames.push_back("VERSION" );
36  colNames.push_back("KIND_OF_COND" );
37  colNames.push_back("TTC_OBJ_DATA_FILE");
38  colNames.push_back("TTC_OBJ_DATA_CLOB");
39 
40  for(unsigned int c = 0 ; c < tableMat[0].size() ; c++)
41  {
42  for(unsigned int n=0; n<colNames.size(); n++)
43  {
44  if(tableMat[0][c] == colNames[n])
45  {
46  colM[colNames[n]] = c;
47  break;
48  }
49  }
50  }//end for
51  for(unsigned int n=0; n<colNames.size(); n++)
52  {
53  if(colM.find(colNames[n]) == colM.end())
54  {
55  std::cerr << "[PixelTTCciConfig::PixelTTCciConfig()]\tCouldn't find in the database the column with name " << colNames[n] << std::endl;
56  assert(0);
57  }
58  }
59  ttcConfigStream_ << tableMat[1][colM["TTC_OBJ_DATA_CLOB"]] ;
60 // cout << "[PixelTTCciConfig::PixelTTCciConfig()]\tRead: "<< endl<< ttcConfigStream_.str() << endl ;
61 }
62 
64  PixelConfigBase(" "," "," "){
65 
66  std::string mthn ="]\t[PixelTKFECConfig::PixelTKFECConfig()]\t\t\t " ;
67  std::ifstream in(filename.c_str());
68 
69  if (!in.good()){
70  std::cout << __LINE__ << mthn << "Could not open: " << filename << std::endl;
71  throw std::runtime_error("Failed to open file "+filename);
72  }
73  else {
74  std::cout << __LINE__ << mthn << "Opened : " << filename << std::endl;
75  }
76 
77  //ttcConfigPath_ = filename;
78  string line;
79  while (!in.eof()) {
80  getline (in,line);
81  ttcConfigStream_ << line << endl;
82  }
83 
84 }
85 
87 
88 
89  if (dir!="") dir+="/";
90  std::string filename=dir+"TTCciConfiguration.txt";
91  std::ofstream out(filename.c_str());
92 
93  //std::ifstream in(ttcConfigPath_.c_str());
94  //assert(in.good());
95 
96  string configstr = ttcConfigStream_.str();
97 
98  out << configstr << endl;
99 
100  out.close();
101 
102 }
103 
104 //=============================================================================================
106  int version,
107  std::string path,
108  std::ofstream *outstream,
109  std::ofstream *out1stream,
110  std::ofstream *out2stream) const
111 {
112  std::string mthn = "[PixelTTCciConfig::writeXMLHeader()]\t\t\t " ;
113  std::stringstream maskFullPath ;
114 
115  writeASCII(path) ;
116 
117  maskFullPath << path << "/Pixel_TtcParameters_" << PixelTimeFormatter::getmSecTime() << ".xml";
118  std::cout << mthn << "Writing to: " << maskFullPath.str() << std::endl ;
119 
120  outstream->open(maskFullPath.str().c_str()) ;
121 
122  *outstream << "<?xml version='1.0' encoding='UTF-8' standalone='yes'?>" << std::endl ;
123  *outstream << "<ROOT xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>" << std::endl ;
124  *outstream << "" << std::endl ;
125  *outstream << " <HEADER>" << std::endl ;
126  *outstream << " <TYPE>" << std::endl ;
127  *outstream << " <EXTENSION_TABLE_NAME>PIXEL_TTC_PARAMETERS</EXTENSION_TABLE_NAME>" << std::endl ;
128  *outstream << " <NAME>TTC Configuration Parameters</NAME>" << std::endl ;
129  *outstream << " </TYPE>" << std::endl ;
130  *outstream << " <RUN>" << std::endl ;
131  *outstream << " <RUN_TYPE>TTC Configuration Parameters</RUN_TYPE>" << std::endl ;
132  *outstream << " <RUN_NUMBER>1</RUN_NUMBER>" << std::endl ;
133  *outstream << " <RUN_BEGIN_TIMESTAMP>" << PixelTimeFormatter::getTime() << "</RUN_BEGIN_TIMESTAMP>" << std::endl ;
134  *outstream << " <LOCATION>CERN P5</LOCATION>" << std::endl ;
135  *outstream << " </RUN>" << std::endl ;
136  *outstream << " </HEADER>" << std::endl ;
137  *outstream << "" << std::endl ;
138  *outstream << " <DATA_SET>" << std::endl ;
139  *outstream << "" << std::endl ;
140  *outstream << " <VERSION>" << version << "</VERSION>" << std::endl ;
141  *outstream << " <COMMENT_DESCRIPTION>" << getComment() << "</COMMENT_DESCRIPTION>" << std::endl ;
142  *outstream << " <CREATED_BY_USER>" << getAuthor() << "</CREATED_BY_USER>" << std::endl ;
143  *outstream << "" << std::endl ;
144  *outstream << " <PART>" << std::endl ;
145  *outstream << " <NAME_LABEL>CMS-PIXEL-ROOT</NAME_LABEL>" << std::endl ;
146  *outstream << " <KIND_OF_PART>Detector ROOT</KIND_OF_PART>" << std::endl ;
147  *outstream << " </PART>" << std::endl ;
148 
149 }
150 
151 //=============================================================================================
152 void PixelTTCciConfig::writeXML( std::ofstream *outstream,
153  std::ofstream *out1stream,
154  std::ofstream *out2stream) const
155 {
156  std::string mthn = "[PixelTTCciConfig::writeXML()]\t\t\t " ;
157 
158  *outstream << " " << std::endl ;
159  *outstream << " <DATA>" << std::endl ;
160  *outstream << " <TTC_OBJ_DATA_FILE>TTCciConfiguration.txt</TTC_OBJ_DATA_FILE>" << std::endl ;
161  *outstream << " </DATA>" << std::endl ;
162  *outstream << " " << std::endl ;
163 }
164 
165 //=============================================================================================
166 void PixelTTCciConfig::writeXMLTrailer(std::ofstream *outstream,
167  std::ofstream *out1stream,
168  std::ofstream *out2stream ) const
169 {
170  std::string mthn = "[PixelTTCciConfig::writeXMLTrailer()]\t\t\t " ;
171 
172  *outstream << " " << std::endl ;
173  *outstream << " </DATA_SET>" << std::endl ;
174  *outstream << "</ROOT>" << std::endl ;
175 
176  outstream->close() ;
177  std::cout << mthn << "Data written " << std::endl ;
178 
179 }
180 
This file contains the base class for "pixel configuration data" management.
std::stringstream ttcConfigStream_
static std::string getmSecTime(void)
void writeXMLTrailer(std::ofstream *out, std::ofstream *out1=nullptr, std::ofstream *out2=nullptr) const override
static std::string getTime(void)
std::string getComment() const
This class provides utility methods to manipulate ASCII formatted timestamps.
std::string getAuthor() const
void writeXML(pos::PixelConfigKey key, int version, std::string path) const override
This class implements..
void writeASCII(std::string dir) const override
PixelTTCciConfig(std::string filename)
dbl *** dir
Definition: mlp_gen.cc:35
void writeXMLHeader(pos::PixelConfigKey key, int version, std::string path, std::ofstream *out, std::ofstream *out1=nullptr, std::ofstream *out2=nullptr) const override