11 #include <svd/online/SVDStripNoiseMap.h>
12 #include <framework/logging/Logger.h>
21 m_onl2offl_map_ptr(onl2offl_map_ptr)
32 const string& noisefilename):
33 m_onl2offl_map_ptr(onl2offl_map_ptr)
41 B2INFO(
"initializeMap()");
43 if (noisefilename ==
"") {
44 B2INFO(
"CAUTION:: Pedestal and noise values are not changed, because noise file is not specified.");
49 B2ERROR(
"SVDOnlineToOfflineMap is not assigned correctly.");
58 ifstream noisefile(noisefilename.c_str());
59 if (!noisefile.is_open()) {
60 B2ERROR(
"Cannot open noise file: " << noisefilename);
64 int module, apv, strip, fadc, fadc_ch, good;
65 float pedestal, gaus_noise, noise, rms, cmc;
67 short file_section = 0;
69 while (getline(noisefile, line)) {
71 if (line.substr(0, 1) ==
"#")
continue;
74 while ((space_pos = line.find(
" ")) != string::npos) {
75 line.erase(space_pos, 1);
78 if (line.empty())
continue;
82 if (line.substr(0, 1) ==
"[" && line.substr(line.size() - 1, 1) ==
"]") {
83 if (line ==
"[noi]") file_section = 1;
84 else if (line ==
"[fit]") file_section = 2;
85 else file_section = 3;
87 else if (file_section == 1) {
88 sscanf(line.c_str(),
"str=%d,%d,%d,%d,%d,%d,%f,%f,%f,%f,%f",
89 &module, &apv, &strip, &fadc, &fadc_ch, &good,
90 &pedestal, &gaus_noise, &noise, &rms, &cmc);
98 if (fadc == 0) fadc_id = 1;
99 else if (fadc == 1) fadc_id = 129;
104 unsigned short apv_base = 0;
106 case 1 : apv_base = 0;
break;
107 case 2 : apv_base = 6;
break;
108 case 3 : apv_base = 24;
break;
109 case 4 : apv_base = 30;
break;
110 case 8 : apv_base = 0;
break;
111 case 9 : apv_base = 6;
break;
112 case 10 : apv_base = 24;
break;
113 case 11 : apv_base = 30;
break;
114 default : apv_base = 0;
break;
116 unsigned short apv_id = apv_base + apv;
122 short svd_sensor_id = SVDPar::getSVDSensorID(vxd_id, is_u);
123 if (svd_sensor_id < 0) {
124 B2ERROR(
"Invalid SVDSensorID: " << svd_sensor_id <<
" (FADC ID: " << fadc_id <<
", APV: " << apv <<
")");
128 B2INFO(
"Sensor ID: " << svd_sensor_id <<
" Module: " << module <<
" VxdID: " << vxd_id.
getID() <<
" (FADC ID: " << fadc_id <<
129 ", APV: " << apv <<
", STRIP: " << strip <<
") " << ((good == 0) ?
"BAD" :
" ") <<
" ped: " << pedestal <<
", noi: " << noise);
132 m_noiseMap [svd_sensor_id][strip] = gaus_noise;
134 m_goodStripMap[svd_sensor_id][strip] = (good == 0) ?
false :
true;
146 if (strip < 0 || SVDPar::maxStrip <= strip) {
147 B2ERROR(
"Invalid strip number: " << strip);
151 short sensor_id = SVDPar::getSVDSensorID(
id, is_u);
152 if (sensor_id < 0 || SVDPar::nSensorID <= sensor_id) {
153 B2ERROR(
"Invalid SVDSensorID: " << sensor_id);
163 if (strip < 0 || SVDPar::maxStrip <= strip) {
164 B2ERROR(
"Invalid strip number: " << strip);
168 short sensor_id = SVDPar::getSVDSensorID(
id, is_u);
169 if (sensor_id < 0 || SVDPar::nSensorID <= sensor_id) {
170 B2ERROR(
"Invalid SVDSensorID: " << sensor_id);
180 if (strip < 0 || SVDPar::maxStrip <= strip) {
181 B2ERROR(
"Invalid strip number: " << strip);
185 short sensor_id = SVDPar::getSVDSensorID(
id, is_u);
186 if (sensor_id < 0 || SVDPar::nSensorID <= sensor_id) {
187 B2ERROR(
"Invalid SVDSensorID: " << sensor_id);
197 if (strip < 0 || SVDPar::maxStrip <= strip) {
198 B2ERROR(
"Invalid strip number: " << strip);
202 short sensor_id = SVDPar::getSVDSensorID(
id, is_u);
203 if (sensor_id < 0 || SVDPar::nSensorID <= sensor_id) {
204 B2ERROR(
"Invalid SVDSensorID: " << sensor_id);