CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
PixelROCDACSettings.cc
Go to the documentation of this file.
1 //
2 // This class provide the data structure for the
3 // ROC DAC parameters
4 //
5 // At this point I do not see a reason to make an
6 // abstract layer for this code.
7 //
8 
11 #include <fstream>
12 #include <iostream>
13 
14 using namespace pos;
15 using namespace std;
16 
18 
19 void PixelROCDACSettings::getDACs(vector<unsigned int>& dacs) const {
20  dacs.clear();
21  dacs.push_back(Vdd_);
22  dacs.push_back(Vana_);
23  dacs.push_back(Vsf_);
24  dacs.push_back(Vcomp_);
25  dacs.push_back(Vleak_);
26  dacs.push_back(VrgPr_);
27  dacs.push_back(VwllPr_);
28  dacs.push_back(VrgSh_);
29  dacs.push_back(VwllSh_);
30  dacs.push_back(VHldDel_);
31  dacs.push_back(Vtrim_);
32  dacs.push_back(VcThr_);
33  dacs.push_back(VIbias_bus_);
34  dacs.push_back(VIbias_sf_);
35  dacs.push_back(VOffsetOp_);
36  dacs.push_back(VbiasOp_);
37  dacs.push_back(VOffsetRO_);
38  dacs.push_back(VIon_);
39  dacs.push_back(VIbias_PH_);
40  dacs.push_back(VIbias_DAC_);
41  dacs.push_back(VIbias_roc_);
42  dacs.push_back(VIColOr_);
43  dacs.push_back(Vnpix_);
44  dacs.push_back(VsumCol_);
45  dacs.push_back(Vcal_);
46  dacs.push_back(CalDel_);
47  dacs.push_back(TempRange_);
48  dacs.push_back(WBC_);
49  dacs.push_back(ChipContReg_);
50 }
51 
52 // Added by Dario
53 void PixelROCDACSettings::getDACs(std::map<std::string, unsigned int>& dacs) const {
54  dacs.clear();
55  dacs[k_DACName_Vdd] = Vdd_;
56  dacs[k_DACName_Vana] = Vana_;
57  dacs[k_DACName_Vsf] = Vsf_;
58  dacs[k_DACName_Vcomp] = Vcomp_;
59  dacs[k_DACName_Vleak] = Vleak_;
60  dacs[k_DACName_VrgPr] = VrgPr_;
61  dacs[k_DACName_VwllPr] = VwllPr_;
62  dacs[k_DACName_VrgSh] = VrgSh_;
63  dacs[k_DACName_VwllSh] = VwllSh_;
64  dacs[k_DACName_VHldDel] = VHldDel_;
65  dacs[k_DACName_Vtrim] = Vtrim_;
66  dacs[k_DACName_VcThr] = VcThr_;
67  dacs[k_DACName_VIbias_bus] = VIbias_bus_;
68  dacs[k_DACName_VIbias_sf] = VIbias_sf_;
69  dacs[k_DACName_VOffsetOp] = VOffsetOp_;
70  dacs[k_DACName_VbiasOp] = VbiasOp_;
71  dacs[k_DACName_VOffsetRO] = VOffsetRO_;
72  dacs[k_DACName_VIon] = VIon_;
73  dacs[k_DACName_VIbias_PH] = VIbias_PH_;
74  dacs[k_DACName_VIbias_DAC] = VIbias_DAC_;
75  dacs[k_DACName_VIbias_roc] = VIbias_roc_;
76  dacs[k_DACName_VIColOr] = VIColOr_;
77  dacs[k_DACName_Vnpix] = Vnpix_;
78  dacs[k_DACName_VsumCol] = VsumCol_;
79  dacs[k_DACName_Vcal] = Vcal_;
80  dacs[k_DACName_CalDel] = CalDel_;
81  dacs[k_DACName_TempRange] = TempRange_;
82  dacs[k_DACName_WBC] = WBC_;
83  dacs[k_DACName_ChipContReg] = ChipContReg_;
84 }
85 
86 // Added by Dario
87 void PixelROCDACSettings::setDACs(std::map<std::string, unsigned int>& dacs) {
88  Vdd_ = dacs[k_DACName_Vdd];
89  Vana_ = dacs[k_DACName_Vana];
90  Vsf_ = dacs[k_DACName_Vsf];
91  Vcomp_ = dacs[k_DACName_Vcomp];
92  Vleak_ = dacs[k_DACName_Vleak];
93  VrgPr_ = dacs[k_DACName_VrgPr];
94  VwllPr_ = dacs[k_DACName_VwllPr];
95  VrgSh_ = dacs[k_DACName_VrgSh];
96  VwllSh_ = dacs[k_DACName_VwllSh];
97  VHldDel_ = dacs[k_DACName_VHldDel];
98  Vtrim_ = dacs[k_DACName_Vtrim];
99  VcThr_ = dacs[k_DACName_VcThr];
100  VIbias_bus_ = dacs[k_DACName_VIbias_bus];
101  VIbias_sf_ = dacs[k_DACName_VIbias_sf];
102  VOffsetOp_ = dacs[k_DACName_VOffsetOp];
103  VbiasOp_ = dacs[k_DACName_VbiasOp];
104  VOffsetRO_ = dacs[k_DACName_VOffsetRO];
105  VIon_ = dacs[k_DACName_VIon];
106  VIbias_PH_ = dacs[k_DACName_VIbias_PH];
107  VIbias_DAC_ = dacs[k_DACName_VIbias_DAC];
108  VIbias_roc_ = dacs[k_DACName_VIbias_roc];
109  VIColOr_ = dacs[k_DACName_VIColOr];
110  Vnpix_ = dacs[k_DACName_Vnpix];
111  VsumCol_ = dacs[k_DACName_VsumCol];
112  Vcal_ = dacs[k_DACName_Vcal];
113  CalDel_ = dacs[k_DACName_CalDel];
114  TempRange_ = dacs[k_DACName_TempRange];
115  WBC_ = dacs[k_DACName_WBC];
116  ChipContReg_ = dacs[k_DACName_ChipContReg];
117 }
118 
119 // Added by Dario
120 void PixelROCDACSettings::compareDACs(std::map<std::string, unsigned int>& dacs,
121  std::map<std::string, bool>& changes,
122  std::map<std::string, unsigned int>& previous) {
123  changes[k_DACName_Vdd] = false;
124  changes[k_DACName_Vana] = false;
125  changes[k_DACName_Vsf] = false;
126  changes[k_DACName_Vcomp] = false;
127  changes[k_DACName_Vleak] = false;
128  changes[k_DACName_VrgPr] = false;
129  changes[k_DACName_VwllPr] = false;
130  changes[k_DACName_VrgSh] = false;
131  changes[k_DACName_VwllSh] = false;
132  changes[k_DACName_VHldDel] = false;
133  changes[k_DACName_Vtrim] = false;
134  changes[k_DACName_VcThr] = false;
135  changes[k_DACName_VIbias_bus] = false;
136  changes[k_DACName_VIbias_sf] = false;
137  changes[k_DACName_VOffsetOp] = false;
138  changes[k_DACName_VbiasOp] = false;
139  changes[k_DACName_VOffsetRO] = false;
140  changes[k_DACName_VIon] = false;
141  changes[k_DACName_VIbias_PH] = false;
142  changes[k_DACName_VIbias_DAC] = false;
143  changes[k_DACName_VIbias_roc] = false;
144  changes[k_DACName_VIColOr] = false;
145  changes[k_DACName_Vnpix] = false;
146  changes[k_DACName_VsumCol] = false;
147  changes[k_DACName_Vcal] = false;
148  changes[k_DACName_CalDel] = false;
149  changes[k_DACName_TempRange] = false;
150  changes[k_DACName_WBC] = false;
151  changes[k_DACName_ChipContReg] = false;
152 
153  if (Vdd_ != dacs[k_DACName_Vdd]) {
154  changes[k_DACName_Vdd] = true;
155  previous[k_DACName_Vdd] = Vdd_;
156  }
157  if (Vana_ != dacs[k_DACName_Vana]) {
158  changes[k_DACName_Vana] = true;
159  previous[k_DACName_Vana] = Vana_;
160  }
161  if (Vsf_ != dacs[k_DACName_Vsf]) {
162  changes[k_DACName_Vsf] = true;
163  previous[k_DACName_Vsf] = Vsf_;
164  }
165  if (Vcomp_ != dacs[k_DACName_Vcomp]) {
166  changes[k_DACName_Vcomp] = true;
167  previous[k_DACName_Vcomp] = Vcomp_;
168  }
169  if (Vleak_ != dacs[k_DACName_Vleak]) {
170  changes[k_DACName_Vleak] = true;
171  previous[k_DACName_Vleak] = Vleak_;
172  }
173  if (VrgPr_ != dacs[k_DACName_VrgPr]) {
174  changes[k_DACName_VrgPr] = true;
175  previous[k_DACName_VrgPr] = VrgPr_;
176  }
177  if (VwllPr_ != dacs[k_DACName_VwllPr]) {
178  changes[k_DACName_VwllPr] = true;
179  previous[k_DACName_VwllPr] = VwllPr_;
180  }
181  if (VrgSh_ != dacs[k_DACName_VrgSh]) {
182  changes[k_DACName_VrgSh] = true;
183  previous[k_DACName_VrgSh] = VrgSh_;
184  }
185  if (VwllSh_ != dacs[k_DACName_VwllSh]) {
186  changes[k_DACName_VwllSh] = true;
187  previous[k_DACName_VwllSh] = VwllSh_;
188  }
189  if (VHldDel_ != dacs[k_DACName_VHldDel]) {
190  changes[k_DACName_VHldDel] = true;
191  previous[k_DACName_VHldDel] = VHldDel_;
192  }
193  if (Vtrim_ != dacs[k_DACName_Vtrim]) {
194  changes[k_DACName_Vtrim] = true;
195  previous[k_DACName_Vtrim] = Vtrim_;
196  }
197  if (VcThr_ != dacs[k_DACName_VcThr]) {
198  changes[k_DACName_VcThr] = true;
199  previous[k_DACName_VcThr] = VcThr_;
200  }
201  if (VIbias_bus_ != dacs[k_DACName_VIbias_bus]) {
202  changes[k_DACName_VIbias_bus] = true;
203  previous[k_DACName_VIbias_bus] = VIbias_bus_;
204  }
205  if (VIbias_sf_ != dacs[k_DACName_VIbias_sf]) {
206  changes[k_DACName_VIbias_sf] = true;
207  previous[k_DACName_VIbias_sf] = VIbias_sf_;
208  }
209  if (VOffsetOp_ != dacs[k_DACName_VOffsetOp]) {
210  changes[k_DACName_VOffsetOp] = true;
211  previous[k_DACName_VOffsetOp] = VOffsetOp_;
212  }
213  if (VbiasOp_ != dacs[k_DACName_VbiasOp]) {
214  changes[k_DACName_VbiasOp] = true;
215  previous[k_DACName_VbiasOp] = VbiasOp_;
216  }
217  if (VOffsetRO_ != dacs[k_DACName_VOffsetRO]) {
218  changes[k_DACName_VOffsetRO] = true;
219  previous[k_DACName_VOffsetRO] = VOffsetRO_;
220  }
221  if (VIon_ != dacs[k_DACName_VIon]) {
222  changes[k_DACName_VIon] = true;
223  previous[k_DACName_VIon] = VIon_;
224  }
225  if (VIbias_PH_ != dacs[k_DACName_VIbias_PH]) {
226  changes[k_DACName_VIbias_PH] = true;
227  previous[k_DACName_VIbias_PH] = VIbias_PH_;
228  }
229  if (VIbias_DAC_ != dacs[k_DACName_VIbias_DAC]) {
230  changes[k_DACName_VIbias_DAC] = true;
231  previous[k_DACName_VIbias_DAC] = VIbias_DAC_;
232  }
233  if (VIbias_roc_ != dacs[k_DACName_VIbias_roc]) {
234  changes[k_DACName_VIbias_roc] = true;
235  previous[k_DACName_VIbias_roc] = VIbias_roc_;
236  }
237  if (VIColOr_ != dacs[k_DACName_VIColOr]) {
238  changes[k_DACName_VIColOr] = true;
239  previous[k_DACName_VIColOr] = VIColOr_;
240  }
241  if (Vnpix_ != dacs[k_DACName_Vnpix]) {
242  changes[k_DACName_Vnpix] = true;
243  previous[k_DACName_Vnpix] = Vnpix_;
244  }
245  if (VsumCol_ != dacs[k_DACName_VsumCol]) {
246  changes[k_DACName_VsumCol] = true;
247  previous[k_DACName_VsumCol] = VsumCol_;
248  }
249  if (Vcal_ != dacs[k_DACName_Vcal]) {
250  changes[k_DACName_Vcal] = true;
251  previous[k_DACName_Vcal] = Vcal_;
252  }
253  if (CalDel_ != dacs[k_DACName_CalDel]) {
254  changes[k_DACName_CalDel] = true;
255  previous[k_DACName_CalDel] = CalDel_;
256  }
257  if (TempRange_ != dacs[k_DACName_TempRange]) {
258  changes[k_DACName_TempRange] = true;
259  previous[k_DACName_TempRange] = TempRange_;
260  }
261  if (WBC_ != dacs[k_DACName_WBC]) {
262  changes[k_DACName_WBC] = true;
263  previous[k_DACName_WBC] = WBC_;
264  }
265  if (ChipContReg_ != dacs[k_DACName_ChipContReg]) {
266  changes[k_DACName_ChipContReg] = true;
267  previous[k_DACName_ChipContReg] = ChipContReg_;
268  }
269 }
270 
271 void PixelROCDACSettings::setDAC(unsigned int dacaddress, unsigned int dacvalue) {
272  std::string mthn = "[PixelROCDACSettings::setDAC()]\t\t\t\t ";
273  switch (dacaddress) {
274  case 1:
275  Vdd_ = dacvalue;
276  break;
277  case 2:
278  Vana_ = dacvalue;
279  break;
280  case 3:
281  Vsf_ = dacvalue;
282  break;
283  case 4:
284  Vcomp_ = dacvalue;
285  break;
286  case 5:
287  Vleak_ = dacvalue;
288  break;
289  case 6:
290  VrgPr_ = dacvalue;
291  break;
292  case 7:
293  VwllPr_ = dacvalue;
294  break;
295  case 8:
296  VrgSh_ = dacvalue;
297  break;
298  case 9:
299  VwllSh_ = dacvalue;
300  break;
301  case 10:
302  VHldDel_ = dacvalue;
303  break;
304  case 11:
305  Vtrim_ = dacvalue;
306  break;
307  case 12:
308  VcThr_ = dacvalue;
309  break;
310  case 13:
311  VIbias_bus_ = dacvalue;
312  break;
313  case 14:
314  VIbias_sf_ = dacvalue;
315  break;
316  case 15:
317  VOffsetOp_ = dacvalue;
318  break;
319  case 16:
320  VbiasOp_ = dacvalue;
321  break;
322  case 17:
323  VOffsetRO_ = dacvalue;
324  break;
325  case 18:
326  VIon_ = dacvalue;
327  break;
328  case 19:
329  VIbias_PH_ = dacvalue;
330  break;
331  case 20:
332  VIbias_DAC_ = dacvalue;
333  break;
334  case 21:
335  VIbias_roc_ = dacvalue;
336  break;
337  case 22:
338  VIColOr_ = dacvalue;
339  break;
340  case 23:
341  Vnpix_ = dacvalue;
342  break;
343  case 24:
344  VsumCol_ = dacvalue;
345  break;
346  case 25:
347  Vcal_ = dacvalue;
348  break;
349  case 26:
350  CalDel_ = dacvalue;
351  break;
352  case 27:
353  TempRange_ = dacvalue;
354  break;
355  case 254:
356  WBC_ = dacvalue;
357  break;
358  case 253:
359  ChipContReg_ = dacvalue;
360  break;
361  default:
362  cout << __LINE__ << "]\t" << mthn << "DAC Address " << dacaddress << " does not exist!" << endl;
363  }
364 }
365 
366 void PixelROCDACSettings::writeBinary(ofstream& out) const {
367  out << (char)rocid_.rocname().size();
368  out.write(rocid_.rocname().c_str(), rocid_.rocname().size());
369 
370  out << Vdd_;
371  out << Vana_;
372  out << Vsf_;
373  out << Vcomp_;
374  out << Vleak_;
375  out << VrgPr_;
376  out << VwllPr_;
377  out << VrgSh_;
378  out << VwllSh_;
379  out << VHldDel_;
380  out << Vtrim_;
381  out << VcThr_;
382  out << VIbias_bus_;
383  out << VIbias_sf_;
384  out << VOffsetOp_;
385  out << VbiasOp_;
386  out << VOffsetRO_;
387  out << VIon_;
388  out << VIbias_PH_;
389  out << VIbias_DAC_;
390  out << VIbias_roc_;
391  out << VIColOr_;
392  out << Vnpix_;
393  out << VsumCol_;
394  out << Vcal_;
395  out << CalDel_;
396  out << TempRange_;
397  out << WBC_;
398  out << ChipContReg_;
399 }
400 
401 int PixelROCDACSettings::readBinary(ifstream& in, const PixelROCName& rocid) {
402  rocid_ = rocid;
403 
404  in.read((char*)&Vdd_, 1);
405  in.read((char*)&Vana_, 1);
406  in.read((char*)&Vsf_, 1);
407  in.read((char*)&Vcomp_, 1);
408  in.read((char*)&Vleak_, 1);
409  in.read((char*)&VrgPr_, 1);
410  in.read((char*)&VwllPr_, 1);
411  in.read((char*)&VrgSh_, 1);
412  in.read((char*)&VwllSh_, 1);
413  in.read((char*)&VHldDel_, 1);
414  in.read((char*)&Vtrim_, 1);
415  in.read((char*)&VcThr_, 1);
416  in.read((char*)&VIbias_bus_, 1);
417  in.read((char*)&VIbias_sf_, 1);
418  in.read((char*)&VOffsetOp_, 1);
419  in.read((char*)&VbiasOp_, 1);
420  in.read((char*)&VOffsetRO_, 1);
421  in.read((char*)&VIon_, 1);
422  in.read((char*)&VIbias_PH_, 1);
423  in.read((char*)&VIbias_DAC_, 1);
424  in.read((char*)&VIbias_roc_, 1);
425  in.read((char*)&VIColOr_, 1);
426  in.read((char*)&Vnpix_, 1);
427  in.read((char*)&VsumCol_, 1);
428  in.read((char*)&Vcal_, 1);
429  in.read((char*)&CalDel_, 1);
430  in.read((char*)&TempRange_, 1);
431  in.read((char*)&WBC_, 1);
432  in.read((char*)&ChipContReg_, 1);
433 
434  return 1;
435 }
436 
437 void PixelROCDACSettings::writeASCII(ostream& out) const {
438  out << "ROC: " << rocid_.rocname() << endl;
439 
440  out << k_DACName_Vdd << ": " << (int)Vdd_ << endl;
441  out << k_DACName_Vana << ": " << (int)Vana_ << endl;
442  out << k_DACName_Vsf << ": " << (int)Vsf_ << endl;
443  out << k_DACName_Vcomp << ": " << (int)Vcomp_ << endl;
444  out << k_DACName_Vleak << ": " << (int)Vleak_ << endl;
445  out << k_DACName_VrgPr << ": " << (int)VrgPr_ << endl;
446  out << k_DACName_VwllPr << ": " << (int)VwllPr_ << endl;
447  out << k_DACName_VrgSh << ": " << (int)VrgSh_ << endl;
448  out << k_DACName_VwllSh << ": " << (int)VwllSh_ << endl;
449  out << k_DACName_VHldDel << ": " << (int)VHldDel_ << endl;
450  out << k_DACName_Vtrim << ": " << (int)Vtrim_ << endl;
451  out << k_DACName_VcThr << ": " << (int)VcThr_ << endl;
452  out << k_DACName_VIbias_bus << ": " << (int)VIbias_bus_ << endl;
453  out << k_DACName_VIbias_sf << ": " << (int)VIbias_sf_ << endl;
454  out << k_DACName_VOffsetOp << ": " << (int)VOffsetOp_ << endl;
455  out << k_DACName_VbiasOp << ": " << (int)VbiasOp_ << endl;
456  out << k_DACName_VOffsetRO << ": " << (int)VOffsetRO_ << endl;
457  out << k_DACName_VIon << ": " << (int)VIon_ << endl;
458  out << k_DACName_VIbias_PH << ": " << (int)VIbias_PH_ << endl;
459  out << k_DACName_VIbias_DAC << ": " << (int)VIbias_DAC_ << endl;
460  out << k_DACName_VIbias_roc << ": " << (int)VIbias_roc_ << endl;
461  out << k_DACName_VIColOr << ": " << (int)VIColOr_ << endl;
462  out << k_DACName_Vnpix << ": " << (int)Vnpix_ << endl;
463  out << k_DACName_VsumCol << ": " << (int)VsumCol_ << endl;
464  out << k_DACName_Vcal << ": " << (int)Vcal_ << endl;
465  out << k_DACName_CalDel << ": " << (int)CalDel_ << endl;
466  out << k_DACName_TempRange << ": " << (int)TempRange_ << endl;
467  out << k_DACName_WBC << ": " << (int)WBC_ << endl;
468  out << k_DACName_ChipContReg << ": " << (int)ChipContReg_ << endl;
469 }
470 
471 //=============================================================================================
472 void PixelROCDACSettings::writeXML(ofstream* out) const {
473  std::string mthn = "[PixelROCDACSettings::writeXML()]\t\t\t ";
474 
475  *out << " <DATA>" << endl;
476  *out << " <ROC_NAME>" << rocid_.rocname() << "</ROC_NAME>" << endl;
477  *out << " <VDD>" << (int)Vdd_ << "</VDD>" << endl;
478  *out << " <VANA>" << (int)Vana_ << "</VANA>" << endl;
479  *out << " <VSF>" << (int)Vsf_ << "</VSF>" << endl;
480  *out << " <VCOMP>" << (int)Vcomp_ << "</VCOMP>" << endl;
481  *out << " <VLEAK>" << (int)Vleak_ << "</VLEAK>" << endl;
482  *out << " <VRGPR>" << (int)VrgPr_ << "</VRGPR>" << endl;
483  *out << " <VWLLPR>" << (int)VwllPr_ << "</VWLLPR>" << endl;
484  *out << " <VRGSH>" << (int)VrgSh_ << "</VRGSH>" << endl;
485  *out << " <VWLLSH>" << (int)VwllSh_ << "</VWLLSH>" << endl;
486  *out << " <VHLDDEL>" << (int)VHldDel_ << "</VHLDDEL>" << endl;
487  *out << " <VTRIM>" << (int)Vtrim_ << "</VTRIM>" << endl;
488  *out << " <VCTHR>" << (int)VcThr_ << "</VCTHR>" << endl;
489  *out << " <VIBIAS_BUS>" << (int)VIbias_bus_ << "</VIBIAS_BUS>" << endl;
490  *out << " <VIBIAS_SF>" << (int)VIbias_sf_ << "</VIBIAS_SF>" << endl;
491  *out << " <VOFFSETOP>" << (int)VOffsetOp_ << "</VOFFSETOP>" << endl;
492  *out << " <VBIASOP>" << (int)VbiasOp_ << "</VBIASOP>" << endl;
493  *out << " <VOFFSETRO>" << (int)VOffsetRO_ << "</VOFFSETRO>" << endl;
494  *out << " <VION>" << (int)VIon_ << "</VION>" << endl;
495  *out << " <VIBIAS_PH>" << (int)VIbias_PH_ << "</VIBIAS_PH>" << endl;
496  *out << " <VIBIAS_DAC>" << (int)VIbias_DAC_ << "</VIBIAS_DAC>" << endl;
497  *out << " <VIBIAS_ROC>" << (int)VIbias_roc_ << "</VIBIAS_ROC>" << endl;
498  *out << " <VICOLOR>" << (int)VIColOr_ << "</VICOLOR>" << endl;
499  *out << " <VNPIX>" << (int)Vnpix_ << "</VNPIX>" << endl;
500  *out << " <VSUMCOL>" << (int)VsumCol_ << "</VSUMCOL>" << endl;
501  *out << " <VCAL>" << (int)Vcal_ << "</VCAL>" << endl;
502  *out << " <CALDEL>" << (int)CalDel_ << "</CALDEL>" << endl;
503  *out << " <TEMPRANGE>" << (int)TempRange_ << "</TEMPRANGE>" << endl;
504  *out << " <WBC>" << (int)WBC_ << "</WBC>" << endl;
505  *out << " <CHIPCONTREG>" << (int)ChipContReg_ << "</CHIPCONTREG>" << endl;
506  *out << " </DATA>" << endl;
507  *out << " " << endl;
508 }
509 
510 //=============================================================================================
511 void PixelROCDACSettings::checkTag(string tag, string dacName, const PixelROCName& rocid) {
512  std::string mthn = "[PixelROCDACSettings::checkTag()]\t\t\t\t ";
513  dacName += ":";
514  if (tag != dacName) {
515  cout << __LINE__ << "]\t" << mthn << "Read ROC name : " << tag << endl;
516  cout << __LINE__ << "]\t" << mthn << "But expected to find: " << dacName << endl;
517  cout << __LINE__ << "]\t" << mthn << "When reading DAC settings for ROC " << rocid << endl;
518  assert(0);
519  }
520 }
521 
522 int PixelROCDACSettings::read(std::istringstream& in, const PixelROCName& rocid) {
523  std::string mthn = "[PixelROCDACSettings::read()]\t\t\t\t ";
524 
525  rocid_ = rocid;
526 
527  unsigned int tmp;
528  string tag;
529 
530  // cout << "[PixelROCDACSettings::read()] |" << in.str() << "|" << endl ;
531  in >> tag;
532  checkTag(tag, k_DACName_Vdd, rocid);
533  in >> tmp;
534  Vdd_ = tmp;
535  in >> tag;
536  checkTag(tag, k_DACName_Vana, rocid);
537  in >> tmp;
538  Vana_ = tmp;
539  in >> tag;
540  checkTag(tag, k_DACName_Vsf, rocid);
541  in >> tmp;
542  Vsf_ = tmp;
543  in >> tag;
544  checkTag(tag, k_DACName_Vcomp, rocid);
545  in >> tmp;
546  Vcomp_ = tmp;
547  in >> tag;
548  checkTag(tag, k_DACName_Vleak, rocid);
549  in >> tmp;
550  Vleak_ = tmp;
551  in >> tag;
552  checkTag(tag, k_DACName_VrgPr, rocid);
553  in >> tmp;
554  VrgPr_ = tmp;
555  in >> tag;
556  checkTag(tag, k_DACName_VwllPr, rocid);
557  in >> tmp;
558  VwllPr_ = tmp;
559  in >> tag;
560  checkTag(tag, k_DACName_VrgSh, rocid);
561  in >> tmp;
562  VrgSh_ = tmp;
563  in >> tag;
564  checkTag(tag, k_DACName_VwllSh, rocid);
565  in >> tmp;
566  VwllSh_ = tmp;
567  in >> tag;
568  checkTag(tag, k_DACName_VHldDel, rocid);
569  in >> tmp;
570  VHldDel_ = tmp;
571  in >> tag;
572  checkTag(tag, k_DACName_Vtrim, rocid);
573  in >> tmp;
574  Vtrim_ = tmp;
575  in >> tag;
576  checkTag(tag, k_DACName_VcThr, rocid);
577  in >> tmp;
578  VcThr_ = tmp;
579  in >> tag;
580  checkTag(tag, k_DACName_VIbias_bus, rocid);
581  in >> tmp;
582  VIbias_bus_ = tmp;
583  in >> tag;
584  checkTag(tag, k_DACName_VIbias_sf, rocid);
585  in >> tmp;
586  VIbias_sf_ = tmp;
587  in >> tag;
588  checkTag(tag, k_DACName_VOffsetOp, rocid);
589  in >> tmp;
590  VOffsetOp_ = tmp;
591  in >> tag;
592  checkTag(tag, k_DACName_VbiasOp, rocid);
593  in >> tmp;
594  VbiasOp_ = tmp;
595  in >> tag;
596  checkTag(tag, k_DACName_VOffsetRO, rocid);
597  in >> tmp;
598  VOffsetRO_ = tmp;
599  in >> tag;
600  checkTag(tag, k_DACName_VIon, rocid);
601  in >> tmp;
602  VIon_ = tmp;
603  in >> tag;
604  checkTag(tag, k_DACName_VIbias_PH, rocid);
605  in >> tmp;
606  VIbias_PH_ = tmp;
607  in >> tag;
608  checkTag(tag, k_DACName_VIbias_DAC, rocid);
609  in >> tmp;
610  VIbias_DAC_ = tmp;
611  in >> tag;
612  checkTag(tag, k_DACName_VIbias_roc, rocid);
613  in >> tmp;
614  VIbias_roc_ = tmp;
615  in >> tag;
616  checkTag(tag, k_DACName_VIColOr, rocid);
617  in >> tmp;
618  VIColOr_ = tmp;
619  in >> tag;
620  checkTag(tag, k_DACName_Vnpix, rocid);
621  in >> tmp;
622  Vnpix_ = tmp;
623  in >> tag;
624  checkTag(tag, k_DACName_VsumCol, rocid);
625  in >> tmp;
626  VsumCol_ = tmp;
627  in >> tag;
628  checkTag(tag, k_DACName_Vcal, rocid);
629  in >> tmp;
630  Vcal_ = tmp;
631  in >> tag;
632  checkTag(tag, k_DACName_CalDel, rocid);
633  in >> tmp;
634  CalDel_ = tmp;
635  in >> tag;
636  if (tag == k_DACName_WBC + ":") {
637  static bool first = true;
638  if (first) {
639  cout << __LINE__ << "]\t" << mthn << "**********************************************" << endl;
640  cout << __LINE__ << "]\t" << mthn << "Did not find TempRange setting in DAC settings" << endl;
641  cout << __LINE__ << "]\t" << mthn << "Will use a default value of 4." << endl;
642  cout << __LINE__ << "]\t" << mthn << "This message will only be printed out once" << endl;
643  cout << __LINE__ << "]\t" << mthn << "**********************************************" << endl;
644  TempRange_ = 4;
645  first = false;
646  }
647  in >> tmp;
648  WBC_ = tmp;
649  } else {
650  checkTag(tag, k_DACName_TempRange, rocid);
651  in >> tmp;
652  TempRange_ = tmp;
653  in >> tag;
654  checkTag(tag, k_DACName_WBC, rocid);
655  in >> tmp;
656  WBC_ = tmp;
657  }
658  in >> tag;
659  checkTag(tag, k_DACName_ChipContReg, rocid);
660  in >> tmp;
661  ChipContReg_ = tmp;
662 
663  return 0;
664 }
665 
666 int PixelROCDACSettings::read(ifstream& in, const PixelROCName& rocid) {
667  std::string mthn = "[PixelROCDACSettings::read()]\t\t\t\t ";
668  rocid_ = rocid;
669 
670  unsigned int tmp;
671  string tag;
672 
673  in >> tag;
674  checkTag(tag, k_DACName_Vdd, rocid);
675  in >> tmp;
676  Vdd_ = tmp;
677  in >> tag;
678  checkTag(tag, k_DACName_Vana, rocid);
679  in >> tmp;
680  Vana_ = tmp;
681  in >> tag;
682  checkTag(tag, k_DACName_Vsf, rocid);
683  in >> tmp;
684  Vsf_ = tmp;
685  in >> tag;
686  checkTag(tag, k_DACName_Vcomp, rocid);
687  in >> tmp;
688  Vcomp_ = tmp;
689  in >> tag;
690  checkTag(tag, k_DACName_Vleak, rocid);
691  in >> tmp;
692  Vleak_ = tmp;
693  in >> tag;
694  checkTag(tag, k_DACName_VrgPr, rocid);
695  in >> tmp;
696  VrgPr_ = tmp;
697  in >> tag;
698  checkTag(tag, k_DACName_VwllPr, rocid);
699  in >> tmp;
700  VwllPr_ = tmp;
701  in >> tag;
702  checkTag(tag, k_DACName_VrgSh, rocid);
703  in >> tmp;
704  VrgSh_ = tmp;
705  in >> tag;
706  checkTag(tag, k_DACName_VwllSh, rocid);
707  in >> tmp;
708  VwllSh_ = tmp;
709  in >> tag;
710  checkTag(tag, k_DACName_VHldDel, rocid);
711  in >> tmp;
712  VHldDel_ = tmp;
713  in >> tag;
714  checkTag(tag, k_DACName_Vtrim, rocid);
715  in >> tmp;
716  Vtrim_ = tmp;
717  in >> tag;
718  checkTag(tag, k_DACName_VcThr, rocid);
719  in >> tmp;
720  VcThr_ = tmp;
721  in >> tag;
722  checkTag(tag, k_DACName_VIbias_bus, rocid);
723  in >> tmp;
724  VIbias_bus_ = tmp;
725  in >> tag;
726  checkTag(tag, k_DACName_VIbias_sf, rocid);
727  in >> tmp;
728  VIbias_sf_ = tmp;
729  in >> tag;
730  checkTag(tag, k_DACName_VOffsetOp, rocid);
731  in >> tmp;
732  VOffsetOp_ = tmp;
733  in >> tag;
734  checkTag(tag, k_DACName_VbiasOp, rocid);
735  in >> tmp;
736  VbiasOp_ = tmp;
737  in >> tag;
738  checkTag(tag, k_DACName_VOffsetRO, rocid);
739  in >> tmp;
740  VOffsetRO_ = tmp;
741  in >> tag;
742  checkTag(tag, k_DACName_VIon, rocid);
743  in >> tmp;
744  VIon_ = tmp;
745  in >> tag;
746  checkTag(tag, k_DACName_VIbias_PH, rocid);
747  in >> tmp;
748  VIbias_PH_ = tmp;
749  in >> tag;
750  checkTag(tag, k_DACName_VIbias_DAC, rocid);
751  in >> tmp;
752  VIbias_DAC_ = tmp;
753  in >> tag;
754  checkTag(tag, k_DACName_VIbias_roc, rocid);
755  in >> tmp;
756  VIbias_roc_ = tmp;
757  in >> tag;
758  checkTag(tag, k_DACName_VIColOr, rocid);
759  in >> tmp;
760  VIColOr_ = tmp;
761  in >> tag;
762  checkTag(tag, k_DACName_Vnpix, rocid);
763  in >> tmp;
764  Vnpix_ = tmp;
765  in >> tag;
766  checkTag(tag, k_DACName_VsumCol, rocid);
767  in >> tmp;
768  VsumCol_ = tmp;
769  in >> tag;
770  checkTag(tag, k_DACName_Vcal, rocid);
771  in >> tmp;
772  Vcal_ = tmp;
773  in >> tag;
774  checkTag(tag, k_DACName_CalDel, rocid);
775  in >> tmp;
776  CalDel_ = tmp;
777  in >> tag;
778  if (tag == k_DACName_WBC + ":") {
779  static bool first = true;
780  if (first) {
781  cout << __LINE__ << "]\t" << mthn << "**********************************************" << endl;
782  cout << __LINE__ << "]\t" << mthn << "Did not find TempRange setting in DAC settings" << endl;
783  cout << __LINE__ << "]\t" << mthn << "Will use a default value of 4." << endl;
784  cout << __LINE__ << "]\t" << mthn << "This message will only be printed out once" << endl;
785  cout << __LINE__ << "]\t" << mthn << "**********************************************" << endl;
786  TempRange_ = 4;
787  first = false;
788  }
789  in >> tmp;
790  WBC_ = tmp;
791  } else {
792  checkTag(tag, k_DACName_TempRange, rocid);
793  in >> tmp;
794  TempRange_ = tmp;
795  in >> tag;
796  checkTag(tag, k_DACName_WBC, rocid);
797  in >> tmp;
798  WBC_ = tmp;
799  }
800  in >> tag;
801  checkTag(tag, k_DACName_ChipContReg, rocid);
802  in >> tmp;
803  ChipContReg_ = tmp;
804 
805  return 0;
806 }
807 
809  string s;
810 
811  return s;
812 }
813 
814 ostream& pos::operator<<(ostream& s, const PixelROCDACSettings& dacs) {
815  s << k_DACName_Vdd << " :" << (unsigned int)dacs.Vdd_ << endl;
816  s << k_DACName_Vana << " :" << (unsigned int)dacs.Vana_ << endl;
817  s << k_DACName_Vsf << " :" << (unsigned int)dacs.Vsf_ << endl;
818  s << k_DACName_Vcomp << " :" << (unsigned int)dacs.Vcomp_ << endl;
819  s << k_DACName_Vleak << " :" << (unsigned int)dacs.Vleak_ << endl;
820  s << k_DACName_VrgPr << " :" << (unsigned int)dacs.VrgPr_ << endl;
821  s << k_DACName_VwllPr << " :" << (unsigned int)dacs.VwllPr_ << endl;
822  s << k_DACName_VrgSh << " :" << (unsigned int)dacs.VrgSh_ << endl;
823  s << k_DACName_VwllSh << " :" << (unsigned int)dacs.VwllSh_ << endl;
824  s << k_DACName_VHldDel << " :" << (unsigned int)dacs.VHldDel_ << endl;
825  s << k_DACName_Vtrim << " :" << (unsigned int)dacs.Vtrim_ << endl;
826  s << k_DACName_VcThr << " :" << (unsigned int)dacs.VcThr_ << endl;
827  s << k_DACName_VIbias_bus << " :" << (unsigned int)dacs.VIbias_bus_ << endl;
828  s << k_DACName_VIbias_sf << " :" << (unsigned int)dacs.VIbias_sf_ << endl;
829  s << k_DACName_VOffsetOp << " :" << (unsigned int)dacs.VOffsetOp_ << endl;
830  s << k_DACName_VbiasOp << " :" << (unsigned int)dacs.VbiasOp_ << endl;
831  s << k_DACName_VOffsetRO << " :" << (unsigned int)dacs.VOffsetRO_ << endl;
832  s << k_DACName_VIon << " :" << (unsigned int)dacs.VIon_ << endl;
833  s << k_DACName_VIbias_PH << " :" << (unsigned int)dacs.VIbias_PH_ << endl;
834  s << k_DACName_VIbias_DAC << " :" << (unsigned int)dacs.VIbias_DAC_ << endl;
835  s << k_DACName_VIbias_roc << " :" << (unsigned int)dacs.VIbias_roc_ << endl;
836  s << k_DACName_VIColOr << " :" << (unsigned int)dacs.VIColOr_ << endl;
837  s << k_DACName_Vnpix << " :" << (unsigned int)dacs.Vnpix_ << endl;
838  s << k_DACName_VsumCol << " :" << (unsigned int)dacs.VsumCol_ << endl;
839  s << k_DACName_Vcal << " :" << (unsigned int)dacs.Vcal_ << endl;
840  s << k_DACName_CalDel << " :" << (unsigned int)dacs.CalDel_ << endl;
841  s << k_DACName_TempRange << " :" << (unsigned int)dacs.TempRange_ << endl;
842  s << k_DACName_WBC << " :" << (unsigned int)dacs.WBC_ << endl;
843  s << k_DACName_ChipContReg << " :" << (unsigned int)dacs.ChipContReg_ << endl;
844 
845  return s;
846 }
847 
848 //Added by Umesh
849 void PixelROCDACSettings::setDac(string dacName, int dacValue) {
850  if (ToLower(dacName) == ToLower(k_DACName_Vdd)) {
851  Vdd_ = dacValue;
852  } else if (ToLower(dacName) == ToLower(k_DACName_Vana)) {
853  Vana_ = dacValue;
854  } else if (ToLower(dacName) == ToLower(k_DACName_Vsf)) {
855  Vsf_ = dacValue;
856  } else if (ToLower(dacName) == ToLower(k_DACName_Vcomp)) {
857  Vcomp_ = dacValue;
858  } else if (ToLower(dacName) == ToLower(k_DACName_Vleak)) {
859  Vleak_ = dacValue;
860  } else if (ToLower(dacName) == ToLower(k_DACName_VrgPr)) {
861  VrgPr_ = dacValue;
862  } else if (ToLower(dacName) == ToLower(k_DACName_VwllPr)) {
863  VwllPr_ = dacValue;
864  } else if (ToLower(dacName) == ToLower(k_DACName_VrgSh)) {
865  VrgSh_ = dacValue;
866  } else if (ToLower(dacName) == ToLower(k_DACName_VwllSh)) {
867  VwllSh_ = dacValue;
868  } else if (ToLower(dacName) == ToLower(k_DACName_VHldDel)) {
869  VHldDel_ = dacValue;
870  } else if (ToLower(dacName) == ToLower(k_DACName_Vtrim)) {
871  Vtrim_ = dacValue;
872  } else if (ToLower(dacName) == ToLower(k_DACName_VcThr)) {
873  VcThr_ = dacValue;
874  } else if (ToLower(dacName) == ToLower(k_DACName_VIbias_bus)) {
875  VIbias_bus_ = dacValue;
876  } else if (ToLower(dacName) == ToLower(k_DACName_VIbias_sf)) {
877  VIbias_sf_ = dacValue;
878  } else if (ToLower(dacName) == ToLower(k_DACName_VOffsetOp)) {
879  VOffsetOp_ = dacValue;
880  } else if (ToLower(dacName) == ToLower(k_DACName_VbiasOp)) {
881  VbiasOp_ = dacValue;
882  } else if (ToLower(dacName) == ToLower(k_DACName_VOffsetRO)) {
883  VOffsetRO_ = dacValue;
884  } else if (ToLower(dacName) == ToLower(k_DACName_VIon)) {
885  VIon_ = dacValue;
886  } else if (ToLower(dacName) == ToLower(k_DACName_VIbias_PH)) {
887  VIbias_PH_ = dacValue;
888  } else if (ToLower(dacName) == ToLower(k_DACName_VIbias_DAC)) {
889  VIbias_DAC_ = dacValue;
890  } else if (ToLower(dacName) == ToLower(k_DACName_VIbias_roc)) {
891  VIbias_roc_ = dacValue;
892  } else if (ToLower(dacName) == ToLower(k_DACName_VIColOr)) {
893  VIColOr_ = dacValue;
894  } else if (ToLower(dacName) == ToLower(k_DACName_Vnpix)) {
895  ;
896  Vnpix_ = dacValue;
897  } else if (ToLower(dacName) == ToLower(k_DACName_VsumCol)) {
898  VsumCol_ = dacValue;
899  } else if (ToLower(dacName) == ToLower(k_DACName_Vcal)) {
900  Vcal_ = dacValue;
901  } else if (ToLower(dacName) == ToLower(k_DACName_CalDel)) {
902  CalDel_ = dacValue;
903  } else if (ToLower(dacName) == ToLower(k_DACName_TempRange)) {
904  TempRange_ = dacValue;
905  } else if (ToLower(dacName) == ToLower(k_DACName_WBC)) {
906  WBC_ = dacValue;
907  } else if (ToLower(dacName) == ToLower(k_DACName_ChipContReg)) {
908  ChipContReg_ = dacValue;
909  } else {
910  cout << "ERROR in PixelROCDACSettings::setDac: DAC name " << dacName << " does not exist." << endl;
911  assert(0);
912  }
913 }
914 
915 unsigned int PixelROCDACSettings::getDac(string dacName) const {
916  if (dacName == k_DACName_Vdd) {
917  return Vdd_;
918  } else if (dacName == k_DACName_Vana) {
919  return Vana_;
920  } else if (dacName == k_DACName_Vsf) {
921  return Vsf_;
922  } else if (dacName == k_DACName_Vcomp) {
923  return Vcomp_;
924  } else if (dacName == k_DACName_Vleak) {
925  return Vleak_;
926  } else if (dacName == k_DACName_VrgPr) {
927  return VrgPr_;
928  } else if (dacName == k_DACName_VwllPr) {
929  return VwllPr_;
930  } else if (dacName == k_DACName_VrgSh) {
931  return VrgSh_;
932  } else if (dacName == k_DACName_VwllSh) {
933  return VwllSh_;
934  } else if (dacName == k_DACName_VHldDel) {
935  return VHldDel_;
936  } else if (dacName == k_DACName_Vtrim) {
937  return Vtrim_;
938  } else if (dacName == k_DACName_VcThr) {
939  return VcThr_;
940  } else if (dacName == k_DACName_VIbias_bus) {
941  return VIbias_bus_;
942  } else if (dacName == k_DACName_VIbias_sf) {
943  return VIbias_sf_;
944  } else if (dacName == k_DACName_VOffsetOp) {
945  return VOffsetOp_;
946  } else if (dacName == k_DACName_VbiasOp) {
947  return VbiasOp_;
948  } else if (dacName == k_DACName_VOffsetRO) {
949  return VOffsetRO_;
950  } else if (dacName == k_DACName_VIon) {
951  return VIon_;
952  } else if (dacName == k_DACName_VIbias_PH) {
953  return VIbias_PH_;
954  } else if (dacName == k_DACName_VIbias_DAC) {
955  return VIbias_DAC_;
956  } else if (dacName == k_DACName_VIbias_roc) {
957  return VIbias_roc_;
958  } else if (dacName == k_DACName_VIColOr) {
959  return VIColOr_;
960  } else if (dacName == k_DACName_Vnpix) {
961  return Vnpix_;
962  } else if (dacName == k_DACName_VsumCol) {
963  return VsumCol_;
964  } else if (dacName == k_DACName_Vcal) {
965  return Vcal_;
966  } else if (dacName == k_DACName_CalDel) {
967  return CalDel_;
968  } else if (dacName == k_DACName_TempRange) {
969  return TempRange_;
970  } else if (dacName == k_DACName_WBC) {
971  return WBC_;
972  } else if (dacName == k_DACName_ChipContReg) {
973  return ChipContReg_;
974  } else {
975  cout << "ERROR in PixelROCDACSettings::getDac: DAC name " << dacName << " does not exist." << endl;
976  assert(0);
977  }
978 }
979 
980 string PixelROCDACSettings::ToLower(string generic) {
981  string result;
982  for (unsigned int i = 0; i < generic.length(); i++) {
983  result.append(1, (char)tolower(generic[i]));
984  }
985  return result;
986 }
const std::string k_DACName_VcThr
Definition: PixelDACNames.h:24
const std::string k_DACName_VrgPr
Definition: PixelDACNames.h:18
unsigned int getDac(std::string dacName) const
const std::string k_DACName_ChipContReg
Definition: PixelDACNames.h:41
const std::string k_DACName_Vsf
Definition: PixelDACNames.h:15
const std::string k_DACName_CalDel
Definition: PixelDACNames.h:38
const std::string k_DACName_TempRange
Definition: PixelDACNames.h:39
const std::string k_DACName_VIbias_sf
Definition: PixelDACNames.h:26
const std::string k_DACName_Vtrim
Definition: PixelDACNames.h:23
const std::string k_DACName_VIbias_DAC
Definition: PixelDACNames.h:32
const std::string k_DACName_VwllSh
Definition: PixelDACNames.h:21
const std::string k_DACName_Vnpix
Definition: PixelDACNames.h:35
const std::string k_DACName_Vleak
Definition: PixelDACNames.h:17
const std::string k_DACName_VIbias_PH
Definition: PixelDACNames.h:31
const std::string k_DACName_VOffsetRO
Definition: PixelDACNames.h:29
const std::string k_DACName_VIbias_bus
Definition: PixelDACNames.h:25
std::ostream & operator<<(std::ostream &s, const PixelCalibConfiguration &calib)
assert(be >=bs)
void getDACs(std::vector< unsigned int > &dacs) const
int read(std::ifstream &in, const PixelROCName &rocid)
const std::string k_DACName_VIColOr
Definition: PixelDACNames.h:34
tuple previous
Definition: callgraph.py:103
void setDAC(unsigned int dacaddress, unsigned int dacvalue)
tuple result
Definition: mps_fire.py:311
This class provide the data structure for the ROC DAC parameters.
const std::string k_DACName_VOffsetOp
Definition: PixelDACNames.h:27
void writeXML(pos::PixelConfigKey key, int version, std::string path) const
void setDACs(std::map< std::string, unsigned int > &dacs)
std::string ToLower(std::string)
const std::string k_DACName_VbiasOp
Definition: PixelDACNames.h:28
const std::string k_DACName_VIbias_roc
Definition: PixelDACNames.h:33
const std::string k_DACName_Vcal
Definition: PixelDACNames.h:37
const std::string k_DACName_VrgSh
Definition: PixelDACNames.h:20
const std::string k_DACName_VIon
Definition: PixelDACNames.h:30
const std::string k_DACName_Vcomp
Definition: PixelDACNames.h:16
void checkTag(std::string tag, std::string dacName, const PixelROCName &rocid)
const std::string k_DACName_WBC
Definition: PixelDACNames.h:40
const std::string k_DACName_Vdd
Definition: PixelDACNames.h:13
const std::string k_DACName_VHldDel
Definition: PixelDACNames.h:22
void compareDACs(std::map< std::string, unsigned int > &dacs, std::map< std::string, bool > &changes, std::map< std::string, unsigned int > &previous)
void setDac(std::string dacName, int value)
const std::string k_DACName_VsumCol
Definition: PixelDACNames.h:36
This class implements..
Definition: PixelROCName.h:23
void writeBinary(std::ofstream &out) const
int readBinary(std::ifstream &in, const PixelROCName &rocid)
A dummy class with ALL public variables.
This class implements..
tuple cout
Definition: gather_cfg.py:144
tmp
align.sh
Definition: createJobs.py:716
const std::string k_DACName_Vana
Definition: PixelDACNames.h:14
const std::string k_DACName_VwllPr
Definition: PixelDACNames.h:19
void writeASCII(std::ostream &out) const