26 if (
first.genericSubdet() !=
second.genericSubdet())
27 return first.genericSubdet() <
second.genericSubdet();
28 if (
first.isHcalDetId()) {
31 return f1.zside() != s1.zside() ?
f1.zside() < s1.zside()
32 :
f1.iphi() != s1.iphi() ?
f1.iphi() < s1.iphi()
33 :
f1.ietaAbs() != s1.ietaAbs() ?
f1.ietaAbs() < s1.ietaAbs()
34 :
f1.depth() < s1.depth();
40 class HcalElectronicsIdLess {
56 std::vector<std::string>
result;
59 for (
unsigned i = 0;
i <= fLine.size();
i++) {
60 if (fLine[
i] ==
' ' ||
i == fLine.size()) {
63 result.push_back(item);
76 std::vector<unsigned int>
result;
79 for (
unsigned i = 0;
i <= fLine.size();
i++) {
80 if (fLine[
i] ==
',' ||
i == fLine.size()) {
83 result.push_back(atoi(itemString.c_str()));
99 for (
unsigned i = 0;
i <= fLine.size();
i++) {
100 if (fLine[
i] ==
',' ||
i == fLine.size()) {
103 result.push_back(atof(itemString.c_str()));
116 std::vector<double>
result;
119 for (
unsigned i = 0;
i <= fLine.size();
i++) {
120 if (fLine[
i] ==
',' ||
i == fLine.size()) {
123 result.push_back(atof(itemString.c_str()));
137 return converter.getId();
144 " %15s %15s %15s %15s",
145 converter.getField1().c_str(),
146 converter.getField2().c_str(),
147 converter.getField3().c_str(),
148 converter.getFlavor().c_str());
157 converter.getField1().c_str(),
158 converter.getField2().c_str(),
159 converter.getField3().c_str(),
160 converter.getFlavor().c_str());
168 std::istringstream iss(s);
169 return !(iss >>
f >>
t).fail();
172 template <
class S,
class T>
177 while (fInput.getline(buffer, 1024)) {
178 if (buffer[0] ==
'#')
183 if (items.size() < 8) {
185 <<
"\n line must contain 8 items: eta, phi, depth, subdet, 4x values"
195 S fCondObject(
id, atof(items[4].c_str()), atof(items[5].c_str()), atof(items[6].c_str()), atof(items[7].c_str()));
196 fObject->addValues(fCondObject);
207 "# %15s %15s %15s %15s %8s %8s %8s %8s %10s\n",
218 std::vector<DetId> channels = fObject.getAllChannels();
219 std::sort(channels.begin(), channels.end(), DetIdLess());
220 for (std::vector<DetId>::iterator channel = channels.begin(); channel != channels.end(); ++channel) {
221 const float*
values = fObject.getValues(*channel)->getValues();
225 buffer,
" %10.7f %10.7f %10.7f %10.7f %10X\n", values[0], values[1], values[2], values[3], channel->rawId());
232 template <
class ObjectPrimitiveType,
class S,
class T>
237 while (fInput.getline(buffer, 1024)) {
238 if (buffer[0] ==
'#')
243 if (items.size() < 5) {
245 <<
"\n line must contain 5 items: eta, phi, depth, subdet, value" << std::endl;
254 std::stringstream
ss(items[4]);
255 ObjectPrimitiveType
x = 0;
257 S fCondObject(
id, x);
258 fObject->addValues(fCondObject);
267 sprintf(buffer,
"# %15s %15s %15s %15s %8s %10s\n",
"eta",
"phi",
"dep",
"det",
"value",
"DetId");
269 std::vector<DetId> channels = fObject.getAllChannels();
270 std::sort(channels.begin(), channels.end(), DetIdLess());
271 for (std::vector<DetId>::iterator channel = channels.begin(); channel != channels.end(); ++channel) {
272 const float value = fObject.getValues(*channel)->getValue();
274 sprintf(buffer,
" %8.5f %10X\n", value, channel->rawId());
283 sprintf(buffer,
"# %15s %15s %15s %15s %8s %10s\n",
"eta",
"phi",
"dep",
"det",
"value",
"DetId");
285 std::vector<DetId> channels = fObject.getAllChannels();
286 std::sort(channels.begin(), channels.end(), DetIdLess());
287 for (std::vector<DetId>::iterator channel = channels.begin(); channel != channels.end(); ++channel) {
288 const int value = fObject.getValues(*channel)->getValue();
290 sprintf(buffer,
" %15d %10X\n", value, channel->rawId());
296 template <
class S,
class T>
301 while (fInput.getline(buffer, 1024)) {
302 if (buffer[0] ==
'#')
308 fCondObject =
new S(firstid.
rawId());
309 for (
int j = 0;
j != 10;
j++)
310 fCondObject->setValue(atoi(items[4].c_str()), 0,
j, atof(items[
j + 5].c_str()));
311 for (
int i = 1;
i != 40;
i++) {
312 fInput.getline(buffer, 1024);
315 if (
id.rawId() != firstid.
rawId())
317 for (
int j = 0;
j != 10;
j++)
318 fCondObject->setValue(atoi(items[4].c_str()),
i % 10,
j, atof(items[
j + 5].c_str()));
320 fObject->addValues(*fCondObject);
330 "# %5s %5s %5s %5s %5s %8s %8s %8s %8s %8s %8s %8s %8s %8s %8s %10s\n",
348 std::vector<DetId> channels = fObject.getAllChannels();
349 std::sort(channels.begin(), channels.end(), DetIdLess());
350 for (std::vector<DetId>::iterator channel = channels.begin(); channel != channels.end(); ++channel) {
352 for (
int m = 0;
m != 4;
m++) {
353 for (
int i = 0;
i != 10;
i++) {
354 for (
int j = 0;
j != 10;
j++) {
356 thisline[
j] = fObject.getValues(*channel)->getValue(
m,
i,
j);
361 " %5i %8.5f %8.5f %8.5f %8.5f %8.5f %8.5f %8.5f %8.5f %8.5f %8.5f %10X\n",
385 bool getObject(std::istream& fInput,
HcalGains* fObject) {
return getHcalObject<HcalGain>(fInput, fObject); }
388 return getHcalObject<HcalGainWidth>(fInput, fObject);
393 return getHcalSingleObject<float, HcalRespCorr>(fInput, fObject);
400 return getHcalSingleObject<float, HcalLUTCorr>(fInput, fObject);
407 return getHcalSingleObject<float, HcalPFCorr>(fInput, fObject);
414 return getHcalSingleObject<float, HcalTimeCorr>(fInput, fObject);
421 return getHcalSingleObject<int, HcalZSThreshold>(fInput, fObject);
428 return getHcalSingleObject<float, HcalZDCLowGainFraction>(fInput, fObject);
435 return getHcalSingleObject<float, HcalValidationCorr>(fInput, fObject);
442 return getHcalSingleObject<int, HcalQIEType>(fInput, fObject);
454 while (fInput.getline(buffer, 1024)) {
455 if (buffer[0] ==
'#')
460 if (items.size() < 6) {
462 <<
"\n line must contain 6 items: eta, phi, depth, subdet, param1, param2"
468 int packingScheme = 0;
469 if (items.size() > 22) {
470 packingScheme = atoi(items[22].c_str());
475 if (packingScheme == 0) {
476 param1 = atoi(items[4].c_str());
477 param2 = atoi(items[5].c_str());
480 if (packingScheme == 1) {
482 int aabits[6] = {1, 1, 8, 4, 4, 9};
483 int aamax[6] = {1, 1, 255, 15, 15, 511};
485 int bbbits[10] = {1, 4, 1, 4, 1, 4, 4, 4, 4, 4};
486 int bbmax[10] = {1, 15, 1, 15, 1, 15, 15, 15, 15, 15};
492 for (
int i = 0;
i < 6;
i++) {
495 float phase = atof(items[j].c_str());
496 float xphase = (phase + 32.0) * 4.0;
499 aa = atoi(items[j].c_str());
501 if (aa > aamax[
i] || aa < 0) {
503 <<
"Bad line: " << buffer <<
"\n value for a" <<
i <<
" should be less than" << aamax[
i] << std::endl;
505 param1 = param1 | aa << aashift;
506 aashift = aashift + aabits[
i];
512 for (
int i = 0;
i < 10;
i++) {
514 bb = atoi(items[j].c_str());
517 <<
"Bad line: " << buffer <<
"\n value for b" << i <<
" should be less than" << bbmax[
i] << std::endl;
519 param2 = param2 | bb << bbshift;
520 bbshift = bbshift + bbbits[
i];
540 std::sort(channels.begin(), channels.end(), DetIdLess());
542 for (std::vector<DetId>::iterator channel = channels.begin(); channel != channels.end(); ++channel) {
550 if (packingScheme == 0) {
552 if (myCounter == 1) {
554 "# %15s %15s %15s %15s %18s %15s %10s\n",
572 if (packingScheme == 1) {
573 if (myCounter == 1) {
574 char lineT[100], lineA[200], lineB[200];
576 sprintf(lineT,
"#%50s",
" ");
578 sprintf(lineA,
" %31s",
"a0: correctForPhaseContainment");
580 sprintf(lineB,
" %36s",
"b0: useLeakCorrection\n");
583 sprintf(lineT,
"#%50s",
" ");
585 sprintf(lineA,
" %31s",
"a1: correctForLeadingEdge");
587 sprintf(lineB,
" %36s",
"b1: leakCorrectionID\n");
590 sprintf(lineT,
"#%50s",
" ");
592 sprintf(lineA,
" %31s",
"a2: correctionPhaseNS");
594 sprintf(lineB,
" %36s",
"b2: correctForTimeslew\n");
597 sprintf(lineT,
"#%50s",
" ");
599 sprintf(lineA,
" %31s",
"a3: firstSample");
601 sprintf(lineB,
" %36s",
"b3: timeslewCorrectionID\n");
604 sprintf(lineT,
"#%50s",
" ");
606 sprintf(lineA,
" %31s",
"a4: samplesToAdd");
608 sprintf(lineB,
" %36s",
"b4: correctTiming\n");
611 sprintf(lineT,
"#%50s",
" ");
613 sprintf(lineA,
" %31s",
"a5: pulseShapeID");
615 sprintf(lineB,
" %36s",
"b5: firstAuxTS\n");
618 sprintf(lineT,
"#%50s",
" ");
620 sprintf(lineA,
" %31s",
" ");
622 sprintf(lineB,
" %36s",
"b6: specialCaseID\n");
625 sprintf(lineT,
"#%50s",
" ");
627 sprintf(lineA,
" %31s",
" ");
629 sprintf(lineB,
" %36s",
"b7: noiseFlaggingID\n");
632 sprintf(lineT,
"#%50s",
" ");
634 sprintf(lineA,
" %31s",
" ");
636 sprintf(lineB,
" %36s",
"b8: pileupCleaningID\n");
639 sprintf(lineT,
"#%50s",
" ");
641 sprintf(lineA,
" %31s",
" ");
643 sprintf(lineB,
" %36s",
"b9: packingScheme\n");
647 sprintf(lineT,
"# %5s %4s %4s %10s %11s %10s %10s",
"eta",
"phi",
"dep",
"det",
"param1",
"param2",
"DetId");
650 sprintf(lineA,
" %6s %4s %6s %4s %4s %4s",
"a0",
"a1",
"a2",
"a3",
"a4",
"a5");
653 sprintf(lineB,
" %6s %3s %3s %3s %3s %3s %3s %3s %3s\n",
"b0",
"b1",
"b2",
"b3",
"b4",
"b5",
"b6",
"b7",
"b8");
658 sprintf(buffer,
" %11d %10d %10X", param1, param2, channel->rawId());
667 sprintf(buffer,
" %6d %4d %6.1f %4d %4d %4d", aa0, aa1, aa2, aa3, aa4, aa5);
680 sprintf(buffer,
" %6d %3d %3d %3d %3d %3d %3d %3d %3d %3d\n", bb0, bb1, bb2, bb3, bb4, bb5, bb6, bb7, bb8, bb9);
692 while (fInput.getline(buffer, 1024)) {
693 if (buffer[0] ==
'#')
698 if (items.size() < 5) {
700 <<
"\n line must contain 6 items: eta, phi, depth, subdet, signalTSs, noiseTSs"
704 if (items.size() > 7) {
706 <<
"Check line: " << buffer <<
"\n line must contain 6 items: eta, phi, depth, subdet, signalTSs, noiseTSs. "
707 <<
"\n ! signalTS and noiseTS must be of format <ts1,ts2,ts3,...> withOUT spaces. Ignoring line for safety"
727 while (fInput.getline(buffer, 1024)) {
728 if (buffer[0] ==
'#')
733 if (items.size() < 7) {
735 <<
"\n line must contain 7 items: eta, phi, depth, subdet, nhit, phase, rms,detid"
750 new HcalTimingParam(
id, atoi(items[4].c_str()), atof(items[5].c_str()), atof(items[6].c_str()));
759 buffer,
"# %15s %15s %15s %15s %15s %15s %15s %15s\n",
"eta",
"phi",
"dep",
"det",
"nhit",
"mean",
"rms",
"DetId");
762 std::sort(channels.begin(), channels.end(), DetIdLess());
763 for (std::vector<DetId>::iterator channel = channels.begin(); channel != channels.end(); ++channel) {
766 " %15d %8.5f %8.5f %16X\n",
779 buffer,
"# %15s %15s %15s %15s %10s %10s %10s\n",
"eta",
"phi",
"dep",
"det",
"signalTSs",
"noiseTSs",
"DetId");
782 std::sort(channels.begin(), channels.end(), DetIdLess());
783 for (std::vector<DetId>::iterator channel = channels.begin(); channel != channels.end(); ++channel) {
785 if (fId.isHcalZDCDetId()) {
787 std::vector<unsigned int> vNoiseTS = fObject.
getValues(*channel)->
noiseTS();
789 sprintf(buffer,
" ");
791 for (
unsigned int i = 0;
i < vSignalTS.size();
i++) {
793 sprintf(buffer,
",");
796 sprintf(buffer,
"%u", vSignalTS.at(
i));
799 sprintf(buffer,
" ");
801 for (
unsigned int i = 0;
i < vNoiseTS.size();
i++) {
803 sprintf(buffer,
",");
806 sprintf(buffer,
"%u", vNoiseTS.at(
i));
809 sprintf(buffer,
" %10X\n", channel->rawId());
820 while (fInput.getline(buffer, 1024)) {
821 if (buffer[0] ==
'#')
826 if (items.size() < 5) {
828 <<
"\n line must contain 5 items: eta, phi, depth, subdet, signalShape"
834 int packingScheme = 0;
835 if (items.size() > 11) {
836 packingScheme = atoi(items[11].c_str());
840 if (packingScheme == 0) {
841 param1 = atoi(items[4].c_str());
844 if (packingScheme == 1) {
845 int aabits[6] = {9, 1, 4, 8, 5, 4};
846 int aamax[6] = {511, 1, 15, 255, 1, 16};
850 for (
int i = 0;
i < 6;
i++) {
853 float phase = atof(items[j].c_str());
854 float xphase = (phase + 32.0) * 4.0;
857 aa = atoi(items[j].c_str());
859 if (aa > aamax[
i] || aa < 0) {
861 <<
"Bad line: " << buffer <<
"\n value for a" <<
i <<
" should be less than" << aamax[
i] << std::endl;
864 param1 = param1 | aa << aashift;
865 aashift = aashift + aabits[
i];
881 std::sort(channels.begin(), channels.end(), DetIdLess());
883 for (std::vector<DetId>::iterator channel = channels.begin(); channel != channels.end(); ++channel) {
887 if (packingScheme == 0) {
888 if (myCounter == 1) {
889 sprintf(buffer,
"# %15s %15s %15s %15s %14s %10s\n",
"eta",
"phi",
"dep",
"det",
"signalShape",
"DetId");
894 sprintf(buffer,
" %10d %17X\n", value, channel->rawId());
897 if (packingScheme == 1) {
898 if (myCounter == 1) {
899 char lineT[100], lineA[200];
901 sprintf(lineT,
"#%40s",
" ");
903 sprintf(lineA,
" %31s",
"a0: signalShape\n");
905 sprintf(lineT,
"#%40s",
" ");
907 sprintf(lineA,
" %31s",
"a1: syncPhase\n");
909 sprintf(lineT,
"#%40s",
" ");
911 sprintf(lineA,
" %31s",
"a2: binOfMaximum\n");
913 sprintf(lineT,
"#%40s",
" ");
915 sprintf(lineA,
" %31s",
"a3: timePhase\n");
917 sprintf(lineT,
"#%40s",
" ");
919 sprintf(lineA,
" %31s",
"a4: timeSmearing\n");
921 sprintf(lineT,
"#%40s",
" ");
923 sprintf(lineA,
" %31s",
"a5: packingScheme\n");
925 sprintf(lineT,
"# %5s %4s %4s %10s %11s %10s",
"eta",
"phi",
"dep",
"det",
"param1",
"DetId");
927 sprintf(lineA,
" %6s %4s %4s %6s %4s %4s\n",
"a0",
"a1",
"a2",
"a3",
"a4",
"a5");
932 sprintf(buffer,
" %11d %10X", param1, channel->rawId());
940 sprintf(buffer,
"%6d %4d %4d %6.1f %4d %4d\n", aa0, aa1, aa2, aa3, aa4, aa5);
950 while (fInput.getline(buffer, 1024)) {
955 if (items[0] ==
"#U") {
961 edm::LogWarning(
"Pedestal Unit Error") <<
"Unrecognized unit for pedestals. Assuming fC." << std::endl;
967 <<
"The unit for the pedestals is missing in the txt file." << std::endl;
972 while (fInput.getline(buffer, 1024)) {
973 if (buffer[0] ==
'#')
978 if (items.size() < 8) {
980 <<
"Bad line: " << buffer <<
"\n line must contain 8 items: eta, phi, depth, subdet, 4x values"
981 <<
" or 12 items: eta, phi, depth, subdet, 4x values for mean, 4x values for width" << std::endl;
991 if (items.size() < 12)
994 atof(items[4].c_str()),
995 atof(items[5].c_str()),
996 atof(items[6].c_str()),
997 atof(items[7].c_str()),
1007 atof(items[4].c_str()),
1008 atof(items[5].c_str()),
1009 atof(items[6].c_str()),
1010 atof(items[7].c_str()),
1011 atof(items[8].c_str()),
1012 atof(items[9].c_str()),
1013 atof(items[10].c_str()),
1014 atof(items[11].c_str()));
1026 if (fObject.
isADC())
1027 sprintf(buffer,
"#U ADC << this is the unit \n");
1029 sprintf(buffer,
"#U fC << this is the unit \n");
1033 "# %15s %15s %15s %15s %8s %8s %8s %8s %8s %8s %8s %8s %10s\n",
1050 std::sort(channels.begin(), channels.end(), DetIdLess());
1051 for (std::vector<DetId>::iterator channel = channels.begin(); channel != channels.end(); ++channel) {
1054 dumpId(fOutput, *channel);
1056 " %8.5f %8.5f %8.5f %8.5f %8.5f %8.5f %8.5f %8.5f %10X\n",
1077 while (fInput.getline(buffer, 1024)) {
1078 if (buffer[0] ==
'#')
1083 if (items.size() < 6) {
1085 <<
"Bad line: " << buffer
1086 <<
"\n line must contain 6 items: eta, phi, depth, subdet, base - either (hex) or (dec), value" << std::endl;
1096 if (items[4] ==
"(hex)")
1097 sscanf(items[5].c_str(),
"%X", &mystatus);
1098 else if (items[4] ==
"(dec)")
1099 sscanf(items[5].c_str(),
"%u", &mystatus);
1102 <<
"\n value field must contain the base: one of (hex), (dec)" << std::endl;
1116 sprintf(buffer,
"# %15s %15s %15s %15s %15s %10s\n",
"eta",
"phi",
"dep",
"det",
"(base) value",
"DetId");
1119 std::sort(channels.begin(), channels.end(), DetIdLess());
1120 for (std::vector<DetId>::iterator channel = channels.begin(); channel != channels.end(); ++channel) {
1122 dumpId(fOutput, *channel);
1123 sprintf(buffer,
"%6s %15X %10X\n",
"(hex)", value, channel->rawId());
1133 while (fInput.getline(buffer, 1024)) {
1134 if (buffer[0] ==
'#') {
1135 if (buffer[1] ==
'T')
1141 if (buffer[1] ==
'A')
1152 if (items.size() < 7) {
1154 <<
"Bad line: " << buffer
1155 <<
"\n line must contain 7 items: eta, phi, depth, subdet, pedestal, resp.corr.gain, flag" << std::endl;
1161 new HcalL1TriggerObject(
id, atof(items[4].c_str()), atof(items[5].c_str()), atoi(items[6].c_str()));
1172 sprintf(buffer,
"#T %s << this is the tag name \n", fObject.
getTagString().c_str());
1174 sprintf(buffer,
"#A %s << this is the algorithm name \n", fObject.
getAlgoString().c_str());
1179 "# %15s %15s %15s %15s %8s %13s %8s %10s\n",
1191 for (std::vector<DetId>::iterator channel = channels.begin(); channel != channels.end(); ++channel) {
1194 dumpId(fOutput, *channel);
1196 " %12.7f %13.10f %12d %10X\n",
1210 int linecounter = 0;
1212 while (fInput.getline(buffer, 1024)) {
1225 <<
"Unrecognized unit for pedestal widths. Assuming fC." << std::endl;
1231 <<
"The unit for the pedestal widths is missing in the txt file." << std::endl;
1237 while (fInput.getline(buffer, 1024)) {
1239 if (buffer[0] ==
'#')
1244 if (items.size() < 14) {
1245 edm::LogWarning(
"Format Error") <<
"Bad line: " << buffer <<
"\n line number: " << linecounter
1246 <<
"\n line must contain 14 items: eta, phi, depth, subdet, 10x correlations"
1247 <<
" or 20 items: eta, phi, depth, subdet, 16x correlations" << std::endl;
1257 if (items.size() < 20)
1260 values.setSigma(0, 0, atof(items[4].c_str()));
1261 values.setSigma(1, 0, atof(items[5].c_str()));
1262 values.setSigma(1, 1, atof(items[6].c_str()));
1263 values.setSigma(2, 0, atof(items[7].c_str()));
1264 values.setSigma(2, 1, atof(items[8].c_str()));
1265 values.setSigma(2, 2, atof(items[9].c_str()));
1266 values.setSigma(3, 0, atof(items[10].c_str()));
1267 values.setSigma(3, 1, atof(items[11].c_str()));
1268 values.setSigma(3, 2, atof(items[12].c_str()));
1269 values.setSigma(3, 3, atof(items[13].c_str()));
1270 values.setSigma(0, 1, 0.);
1271 values.setSigma(0, 2, 0.);
1272 values.setSigma(0, 3, 0.);
1273 values.setSigma(1, 2, 0.);
1274 values.setSigma(1, 3, 0.);
1275 values.setSigma(2, 3, 0.);
1280 values.setSigma(0, 0, atof(items[4].c_str()));
1281 values.setSigma(0, 1, atof(items[5].c_str()));
1282 values.setSigma(0, 2, atof(items[6].c_str()));
1283 values.setSigma(0, 3, atof(items[7].c_str()));
1284 values.setSigma(1, 0, atof(items[8].c_str()));
1285 values.setSigma(1, 1, atof(items[9].c_str()));
1286 values.setSigma(1, 2, atof(items[10].c_str()));
1287 values.setSigma(1, 3, atof(items[11].c_str()));
1288 values.setSigma(2, 0, atof(items[12].c_str()));
1289 values.setSigma(2, 1, atof(items[13].c_str()));
1290 values.setSigma(2, 2, atof(items[14].c_str()));
1291 values.setSigma(2, 3, atof(items[15].c_str()));
1292 values.setSigma(3, 0, atof(items[16].c_str()));
1293 values.setSigma(3, 1, atof(items[17].c_str()));
1294 values.setSigma(3, 2, atof(items[18].c_str()));
1295 values.setSigma(3, 3, atof(items[19].c_str()));
1306 if (fObject.
isADC())
1307 sprintf(buffer,
"#U ADC << this is the unit \n");
1309 sprintf(buffer,
"#U fC << this is the unit \n");
1313 "# %15s %15s %15s %15s %8s %8s %8s %8s %8s %8s %8s %8s %8s %8s %8s %8s %8s %8s %8s %8s %10s\n",
1337 std::sort(channels.begin(), channels.end(), DetIdLess());
1338 for (std::vector<DetId>::iterator channel = channels.begin(); channel != channels.end(); ++channel) {
1341 dumpId(fOutput, *channel);
1343 " %8.5f %8.5f %8.5f %8.5f %8.5f %8.5f %8.5f %8.5f %8.5f %8.5f %8.5f %8.5f %8.5f %8.5f %8.5f %8.5f %10X\n",
1370 while (fInput.getline(buffer, 1024)) {
1371 if (buffer[0] ==
'#')
1376 if (items[0] ==
"SHAPE") {
1379 if (items.size() < 36) {
1381 <<
"\n line must contain 36 items: eta, phi, depth, subdet, 4 capId x 4 Ranges "
1382 "x offsets, 4 capId x 4 Ranges x slopes"
1395 for (
unsigned capid = 0; capid < 4; capid++) {
1397 coder.setOffset(capid,
range, atof(items[index++].c_str()));
1400 for (
unsigned capid = 0; capid < 4; capid++) {
1402 coder.setSlope(capid,
range, atof(items[index++].c_str()));
1417 fOutput <<
"# QIE data" << std::endl;
1419 "# %15s %15s %15s %15s %36s %36s %36s %36s %36s %36s %36s %36s\n",
1434 std::sort(channels.begin(), channels.end(), DetIdLess());
1435 for (std::vector<DetId>::iterator channel = channels.begin(); channel != channels.end(); ++channel) {
1437 dumpId(fOutput, *channel);
1438 for (
unsigned capid = 0; capid < 4; capid++) {
1440 sprintf(buffer,
" %8.5f", coder->
offset(capid,
range));
1444 for (
unsigned capid = 0; capid < 4; capid++) {
1446 sprintf(buffer,
" %8.5f", coder->
slope(capid,
range));
1450 fOutput << std::endl;
1458 while (fInput.getline(buffer, 1024)) {
1459 if (buffer[0] ==
'#')
1462 if (items.size() < 36) {
1464 <<
"\n line must contain 36 items: eta, phi, depth, subdet, 32 bin values"
1478 for (
unsigned bin = 0;
bin < 32;
bin++) {
1479 values[
bin] = atof(items[index++].c_str());
1481 coder.setMinCharges(values);
1491 fOutput <<
"# QIE data in calibration mode" << std::endl;
1492 sprintf(buffer,
"# %15s %15s %15s %15s %288s\n",
"eta",
"phi",
"dep",
"det",
"32 x charges");
1495 std::sort(channels.begin(), channels.end(), DetIdLess());
1496 for (std::vector<DetId>::iterator channel = channels.begin(); channel != channels.end(); ++channel) {
1499 dumpId(fOutput, *channel);
1501 for (
unsigned bin = 0;
bin < 32;
bin++) {
1502 sprintf(buffer,
" %8.5f", lowEdge[
bin]);
1505 fOutput << std::endl;
1517 while (fInput.getline(buffer, 1024)) {
1518 if (buffer[0] ==
'#')
1521 if (items.size() < 12) {
1524 if (items.size() < 9) {
1528 if (items[8] ==
"NA" || items[8] ==
"NT") {
1529 while (items.size() < 12)
1530 items.push_back(
"");
1531 }
else if (items[8] ==
"HT") {
1532 if (items.size() == 11)
1533 items.push_back(
"");
1535 edm::LogError(
"MapFormat") <<
"HcalElectronicsMap-> Bad line: " << buffer
1536 <<
"\n HT line must contain at least 11 items: i cr sl tb dcc spigot fiber "
1537 "fiberchan subdet=HT ieta iphi";
1542 <<
"HcalElectronicsMap-> Bad line: " << buffer
1543 <<
"\n line must contain 12 items: i cr sl tb dcc spigot fiber fiberchan subdet ieta iphi depth";
1547 int crate = atoi(items[1].c_str());
1548 int slot = atoi(items[2].c_str());
1550 if (items[3] ==
"b")
1552 int dcc = atoi(items[4].c_str());
1553 int spigot = atoi(items[5].c_str());
1555 if (items[3][0] ==
'u') {
1556 int fiber = atoi(items[6].c_str());
1557 int fiberCh = atoi(items[7].c_str());
1558 bool isTrig = (items[8] ==
"HT" || items[8] ==
"NT");
1560 }
else if (items[8] ==
"HT" || items[8] ==
"NT") {
1561 int slb = atoi(items[6].c_str());
1562 int slbCh = atoi(items[7].c_str());
1565 int fiber = atoi(items[6].c_str());
1566 int fiberCh = atoi(items[7].c_str());
1569 elId.
setHTR(crate, slot, top);
1573 if (items[8] ==
"NA") {
1575 }
else if (items[8] ==
"NT") {
1579 if (converter.isHcalDetId()
or converter.isHcalCalibDetId()
or converter.isHcalZDCDetId()) {
1580 fObjectHelper.
mapEId2chId(elId, converter.getId());
1581 }
else if (converter.isHcalTrigTowerDetId()) {
1582 fObjectHelper.
mapEId2tId(elId, converter.getId());
1584 edm::LogWarning(
"Format Error") <<
"HcalElectronicsMap-> Unknown subdetector: " << items[8] <<
'/' << items[9]
1585 <<
'/' << items[10] <<
'/' << items[11] << std::endl;
1589 auto fObject = std::make_unique<HcalElectronicsMap>(fObjectHelper);
1600 "# %7s %3s %3s %3s %4s %7s %10s %14s %7s %5s %5s %6s",
1613 fOutput << buf << std::endl;
1615 for (
unsigned i = 0;
i < eids.size();
i++) {
1619 if (trigger.
rawId()) {
1626 " %7X %3d %3d %3c %4d %7d %10d %14d %7s %5s %5s %6s",
1628 converter.getId().rawId(),
1638 converter.getFlavor().c_str(),
1639 converter.getField1().c_str(),
1640 converter.getField2().c_str(),
1641 converter.getField3().c_str());
1642 fOutput << buf << std::endl;
1645 " %7X %3d %3d u %4d %7d %10d %14d %7s %5s %5s %6s",
1646 converter.getId().rawId(),
1654 converter.getFlavor().c_str(),
1655 converter.getField1().c_str(),
1656 converter.getField2().c_str(),
1657 converter.getField3().c_str());
1658 fOutput << buf << std::endl;
1660 sprintf(buf,
"NOT SUPPORTED!");
1661 fOutput << buf << std::endl;
1666 if (channel.
rawId()) {
1672 " %7X %3d %3d %3c %4d %7d %10d %14d %7s %5s %5s %6s",
1674 converter.getId().rawId(),
1682 converter.getFlavor().c_str(),
1683 converter.getField1().c_str(),
1684 converter.getField2().c_str(),
1685 converter.getField3().c_str());
1688 " %7X %3d %3d u %4d %7d %10d %14d %7s %5s %5s %6s",
1690 converter.getId().rawId(),
1698 converter.getFlavor().c_str(),
1699 converter.getField1().c_str(),
1700 converter.getField2().c_str(),
1701 converter.getField3().c_str());
1703 fOutput << buf << std::endl;
1714 while (fInput.getline(buffer, 1024)) {
1715 if (buffer[0] ==
'#')
1721 if (items.size() > 1 && items[0].find(
"RctLsb") != std::string::npos) {
1722 fObject->
setRctLsb(atof(items[1].c_str()));
1725 if (items.size() > 1 && items[0].find(
"Gain") != std::string::npos) {
1730 if (items.size() < 7) {
1732 <<
"Bad line: " << buffer
1733 <<
"\n line must contain 7 items: eta, phi, depth, subdet, Rcalib, LutGranularity, OutputLutThreshold"
1740 new HcalLutMetadatum(
id, atof(items[4].c_str()), atoi(items[5].c_str()), atoi(items[6].c_str()));
1749 const float _rctLsb = fObject.
getRctLsb();
1751 sprintf(buffer,
"# %20s\n",
"Non-channel data");
1753 sprintf(buffer,
"%8s %8.5f\n",
"RctLsb", _rctLsb);
1755 sprintf(buffer,
"%8s %8.5f\n",
"Gain", _gain);
1758 "# %15s %15s %15s %15s %8s %15s %19s %10s\n",
1765 "OutputLutThreshold",
1769 std::sort(channels.begin(), channels.end(), DetIdLess());
1770 for (std::vector<DetId>::iterator channel = channels.begin(); channel != channels.end(); ++channel) {
1774 dumpId(fOutput, *channel);
1775 sprintf(buffer,
" %8.5f %15d %19d %10X\n", _rCalib, _lutGranularity, _outputLutThreshold, channel->
rawId());
1786 while (getline(fInput, buffer)) {
1787 if (buffer.at(0) ==
'#')
1789 std::vector<std::string> items =
splitString(buffer);
1793 if (items.size() < 9) {
1795 <<
"\n line must contain 9 items: subDet, side_ring, slice, type, subChannel, "
1796 "LS, Value, UpperLimit, LowerLimit"
1803 unsigned int slice, subchan;
1804 switch (items[0].at(1)) {
1821 from_string<int>(sidering, items[1],
std::dec);
1822 from_string<unsigned int>(slice, items[2],
std::dec);
1824 from_string<unsigned int>(subchan, items[4],
std::dec);
1829 float val, upper, lower;
1830 from_string<int>(LS, items[5],
std::dec);
1832 from_string<float>(upper, items[7],
std::dec);
1833 from_string<float>(lower, items[8],
std::dec);
1841 if (!(fObject->
addValue(newVal))) {
1842 edm::LogWarning(
"Data Error") <<
"Data from line " << buffer <<
"\nwas not added to the HcalDcsValues object."
1852 fOutput <<
"# subDet side_ring slice type subChan LS Value UpperLimit LowerLimit DcsId\n";
1856 for (HcalDcsValues::DcsSet::const_iterator val = vals.begin(); val != vals.end(); ++
val) {
1859 switch (valId.subdet()) {
1873 fOutput << valId.subdet() <<
' ';
1877 fOutput << valId.ring() <<
' ';
1879 fOutput << valId.zside() <<
' ';
1881 fOutput << valId.slice() <<
' ' << valId.typeString(valId.type()) <<
' ' << valId.subchannel() <<
' ';
1882 fOutput << val->LS() <<
' ' << val->getValue() <<
' ' << val->getUpperLimit() <<
' ' << val->getLowerLimit()
1884 fOutput << std::hex << val->DcsId() <<
std::dec <<
'\n';
1905 while (fInput.getline(buffer, 1024)) {
1906 if (buffer[0] ==
'#')
1909 if (items.size() < 8) {
1914 <<
"HcalDcsMap-> Bad line: " << buffer
1915 <<
"\n line must contain 8 items: line side_ring slice subchannel subdet ieta iphi depth";
1919 int ring = atoi(items[1].c_str());
1920 unsigned int slice = atoi(items[2].c_str());
1921 unsigned int subchannel = atoi(items[3].c_str());
1924 if (items[4].
find(
"CALIB") != std::string::npos) {
1926 }
else if (items[4].
find(
"HB") != std::string::npos) {
1928 }
else if (items[4].
find(
"HE") != std::string::npos) {
1930 }
else if (items[4].
find(
"HO") != std::string::npos) {
1932 }
else if (items[4].
find(
"HF") != std::string::npos) {
1935 edm::LogError(
"MapFormat") <<
"HcalDcsMap-> Unknown subdetector, line is not accepted: " << items[5];
1938 HcalDcsDetId dcsId(subdet, ring, slice, type, subchannel);
1941 if (converter.isHcalDetId()) {
1942 id = converter.getId();
1944 edm::LogWarning(
"Invalid HCAL channel") <<
"HcalDcsMap-> invalid channel: " << items[4] <<
'/' << items[5]
1945 <<
'/' << items[6] <<
'/' << items[7] << std::endl;
1950 auto fObject = std::make_unique<HcalDcsMap>(fObjectHelper);
1961 "# %7s %10s %6s %8s %7s %5s %5s %6s",
1970 fOutput << buf << std::endl;
1972 unsigned int line_counter = 0;
1978 " %8X %10d %6d %8d %7s %5s %5s %6s",
1983 _converter.getFlavor().c_str(),
1984 _converter.getField1().c_str(),
1985 _converter.getField2().c_str(),
1986 _converter.getField3().c_str());
1987 fOutput << buf << std::endl;
1997 while (fInput.getline(buffer, 1024)) {
1998 if (buffer[0] ==
'#')
2003 if (items.size() != 9) {
2005 <<
"Bad line: " << buffer
2006 <<
"\n line must contain at 9 least items: eta, phi, depth, subdet, firstSample, samplesToAdd, ExpectedPeak, "
2007 "MinEnergy, and a set of comma-separated coefficients"
2016 atoi(items[4].c_str()),
2017 atoi(items[5].c_str()),
2018 atoi(items[6].c_str()),
2019 atof(items[7].c_str()),
2031 "# %15s %15s %15s %15s %15s %15s %15s %15s %30s\n",
2043 std::sort(channels.begin(), channels.end(), DetIdLess());
2044 for (std::vector<DetId>::iterator channel = channels.begin(); channel != channels.end(); ++channel) {
2049 " %15u %15u %15u %15f",
2062 if (x < coef.size() - 1)
2065 sprintf(buffer,
"\n");
2078 while (fInput.getline(buffer, 1024)) {
2080 if (buffer[0] ==
'#')
2083 if (items.size() != 6) {
2089 int rm = atoi(items[5].c_str());
2092 edm::LogInfo(
"MapFormat") <<
"HcalFrontEndMap:: processed " <<
good <<
" records in " <<
all <<
" record"
2094 auto fObject = std::make_unique<HcalFrontEndMap>(fObjectHelper);
2101 sprintf(buffer,
"# %15s %15s %15s %15s %8s %8s\n",
"eta",
"phi",
"dep",
"det",
"rbx",
"rm");
2104 std::vector<DetId> channels = fObject.
allDetIds();
2105 std::sort(channels.begin(), channels.end(), DetIdLess());
2106 for (std::vector<DetId>::iterator channel = channels.begin(); channel != channels.end(); ++channel) {
2109 dumpId(fOutput, *channel);
2110 sprintf(buffer,
" %8s %8d \n", rbx.c_str(),
rm);
2121 while (fInput.getline(buffer, 1024)) {
2122 if (buffer[0] ==
'#')
2127 if (items.size() < 9) {
2129 <<
"\n line must contain 9 items: eta, phi, depth, subdet, 5x values"
2136 atoi(items[4].c_str()),
2137 atof(items[5].c_str()),
2138 atof(items[6].c_str()),
2139 atoi(items[7].c_str()),
2140 atof(items[8].c_str()));
2150 "# %15s %15s %15s %15s %8s %15s %15s %8s %15s\n",
2162 std::sort(channels.begin(), channels.end(), DetIdLess());
2163 for (std::vector<DetId>::iterator channel = channels.begin(); channel != channels.end(); ++channel) {
2170 sprintf(buffer,
" %8d %15.6f %15.6f %8d %15.6f\n", type, fcByPE, darkC, auxi1, auxi2);
2183 while (fInput.getline(buffer, 1024)) {
2185 if (buffer[0] ==
'#')
2188 if (items.size() != 8) {
2194 int type = atoi(items[0].c_str());
2195 int pixels = atoi(items[1].c_str());
2196 float parL0 = atof(items[2].c_str());
2197 float parL1 = atof(items[3].c_str());
2198 float parL2 = atof(items[4].c_str());
2199 float cTalk = atof(items[5].c_str());
2200 int auxi1 = atoi(items[6].c_str());
2201 float auxi2 = atof(items[7].c_str());
2202 fObjectHelper.
loadObject(type, pixels, parL0, parL1, parL2, cTalk, auxi1, auxi2);
2204 edm::LogInfo(
"MapFormat") <<
"HcalSiPMCharacteristics:: processed " <<
good <<
" records in " <<
all <<
" record"
2206 auto fObject = std::make_unique<HcalSiPMCharacteristics>(fObjectHelper);
2214 "# %8s %8s %15s %15s %15s %15s %8s %15s\n",
2226 for (
unsigned int k = 0;
k <
size; ++
k) {
2227 const int type = fObject.
getType(
k);
2228 const int pixels = fObject.
getPixels(type);
2231 const int auxi1 = fObject.
getAuxi1(type);
2232 const float auxi2 = fObject.
getAuxi2(type);
2233 const float par0 = (!pars.empty()) ? pars[0] : 0;
2234 const float par1 = (pars.size() > 1) ? pars[1] : 0;
2235 const float par2 = (pars.size() > 2) ? pars[2] : 0;
2237 buffer,
" %8d %8d %15.6e %15.6e %15.6e %15.6f %8d %15.6f\n", type, pixels, par0, par1, par2, cTalk, auxi1, auxi2);
2248 while (fInput.getline(buffer, 1024)) {
2249 if (buffer[0] ==
'#')
2254 if (items.size() < 8) {
2256 <<
"\n line must contain 8 items: eta, phi, depth, subdet, 4x values"
2263 id.rawId(), atoi(items[4].c_str()), atoi(items[5].c_str()), atoi(items[6].c_str()), atoi(items[7].c_str()));
2273 "# %15s %15s %15s %15s %15s %15s %15s %15s\n",
2284 std::sort(channels.begin(), channels.end(), DetIdLess());
2285 for (std::vector<DetId>::iterator channel = channels.begin(); channel != channels.end(); ++channel) {
2291 sprintf(buffer,
" %15d %15d %15d %15d \n", mask, fgBitInfo, auxi1, auxi2);
2301 while (fInput.getline(buffer, 1024)) {
2303 if (buffer[0] ==
'#')
2306 if (items.size() != 6) {
2312 int version = atoi(items[0].c_str());
2313 int adcCut = atoi(items[1].c_str());
2314 uint64_t tdcMask = strtoull(items[2].c_str(),
nullptr, 16);
2315 uint32_t tbits = atoi(items[3].c_str());
2316 int auxi1 = atoi(items[4].c_str());
2317 int auxi2 = atoi(items[5].c_str());
2318 fObject->
loadObject(version, adcCut, tdcMask, tbits, auxi1, auxi2);
2321 edm::LogInfo(
"MapFormat") <<
"HcalTPParameters:: processed " <<
good <<
" records in " <<
all <<
" record"
2329 buffer,
"# %15s %15s %16s %15s %15s %15s\n",
"FGAlgo_HBHE",
"ADCThrHF",
"TDCMaskHF",
"STBitsHF",
"auxi1",
"auxi2");
2336 const int auxi1 = fObject.
getAuxi1();
2337 const int auxi2 = fObject.
getAuxi2();
2339 sprintf(buffer,
" %15d %15d %16jx %15x %15d %15d\n", version, adcCut, tdcMask, tbits, auxi1, auxi2);
2350 "# %15s %15s %15s %15s %8s %8s %8s %8s %11s %11s %11s %11s %9s %9s %9s %9s %10s\n",
2371 std::sort(channels.begin(), channels.end(), DetIdLess());
2372 for (std::vector<DetId>::iterator channel = channels.begin(); channel != channels.end(); ++channel) {
2373 dumpId(fOutput, *channel);
2376 " %8.5f %8.5f %8.5f %8.5f %11.5f %11.5f %11.5f %11.5f %9.5f %9.5f %9.5f %9.5f %10X\n",
2398 "# %15s %15s %15s %15s %9s %9s %9s %9s %12s %12s %12s %12s %10s %10s %10s %10s %10s\n",
2419 std::sort(channels.begin(), channels.end(), DetIdLess());
2420 for (std::vector<DetId>::iterator channel = channels.begin(); channel != channels.end(); ++channel) {
2421 dumpId(fOutput, *channel);
2424 " %9.5f %9.5f %9.5f %9.5f %12.5f %12.5f %12.5f %12.5f %10.5f %10.5f %10.5f %10.5f %10X\n",
void dumpIdShort(std::ostream &fOutput, DetId id)
std::unique_ptr< HcalFrontEndMap > createObject< HcalFrontEndMap >(std::istream &fInput)
constexpr void setHTR(int crate, int slot, int tb)
float getPedestal() const
constexpr unsigned int pulseShapeID() const
static const HcalDetId Undefined
constexpr unsigned int param2() const
bool mapEId2chId(HcalElectronicsId fElectronicsId, DetId fId)
constexpr unsigned int samplesToAdd() const
void setUnitADC(bool isADC)
double gain(int fCapId) const
get gain width for capid=0..3
float slope(unsigned fCapId, unsigned fRange) const
int getAuxi1() const
get Axiliary words
std::vector< DetId > getAllChannels() const
uint64_t getTDCMaskHF() const
get TDC mask for HF
std::vector< unsigned int > signalTS() const
bool from_string(T &t, const std::string &s, std::ios_base &(*f)(std::ios_base &))
constexpr unsigned int pileupCleaningID() const
bool loadObject(DetId fId, int rm, std::string rbx)
load a new entry
uint16_t *__restrict__ id
static int slb(const HcalTriggerPrimitiveSample &theSample)
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventIDconst &, edm::Timestampconst & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
const HcalQIECoder * getCoder(DetId fId) const
get QIE parameters
bool timeSmearing() const
unsigned int packingScheme() const
float getSigma(int fCapId1, int fCapId2) const
get correlation element for capId1/2 = 0..3
uint32_t HFdigiflagSamplesToAdd() const
bool getHcalMatrixObject(std::istream &fInput, T *fObject, S *fCondObject)
std::vector< float > splitStringToFloatByComma(const std::string &fLine)
DcsSet const & getAllSubdetValues(DcsSubDet subd) const
int getType() const
get SiPM type
constexpr uint32_t rawId() const
get the raw id
double effpedestal(int fCapId) const
get effective pedestal width for capid=0..3
std::vector< unsigned int > splitStringToIntByComma(const std::string &fLine)
const Item * getValues(DetId fId, bool throwOnFail=true) const
constexpr int slbChannelIndex() const
get the SLB channel index (valid only for VME trigger-chain ids)
bool dumpHcalSingleFloatObject(std::ostream &fOutput, const T &fObject)
Log< level::Error, false > LogError
constexpr int dccid() const
get the (Hcal local) DCC id for VME, crate number for uTCA
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
const HcalCalibrationQIECoder * getCoder(DetId fId) const
get QIE parameters
std::vector< std::string > splitString(const std::string &fLine)
std::vector< DetId > getAllChannels() const
bool addCoder(const HcalQIECoder &fCoder)
void dumpId(std::ostream &fOutput, DetId id)
float getCrossTalk(int type) const
get cross talk
constexpr unsigned int timeslewCorrectionID() const
const uint16_t range(const Frame &aFrame)
unsigned int param1() const
U second(std::pair< T, U > const &p)
const_iterator endById(void) const
constexpr bool isUTCAid() const
constexpr int htrTopBottom() const
get the htr top/bottom (1=top/0=bottom), valid for VME
std::unique_ptr< HcalSiPMCharacteristics > createObject< HcalSiPMCharacteristics >(std::istream &fInput)
std::vector< HcalDcsValue > DcsSet
constexpr unsigned int noiseFlaggingID() const
void setUnitADC(bool isADC)
float getRespGain() const
double pedestal(int fCapId) const
get pedestal width for capid=0..3
float offset(unsigned fCapId, unsigned fRange) const
constexpr bool isVMEid() const
const_iterator beginById(void) const
IO for ASCII instances of Hcal Calibrations.
std::vector< DetId > getAllChannels() const
constexpr float correctionPhaseNS() const
unsigned int nhits() const
std::vector< DetId > allDetIds() const
constexpr int htrSlot() const
get the htr slot
HcalDetId getHcalDetId(void)
int getFGVersionHBHE() const
get FineGrain Algorithm Version for HBHE
constexpr double effpedestal(int fCapId) const
get effective pedestal for capid=0..3
HcalDcsDetId getHcalDcsDetId(void)
uint16_t const *__restrict__ x
bool dumpHcalMatrixObject(std::ostream &fOutput, const T &fObject)
constexpr int readoutVMECrateId() const
get the readout VME crate number
constexpr unsigned int firstAuxTS() const
uint32_t HFdigiflagExpectedPeak() const
constexpr int spigot() const
get the spigot (input number on DCC, AMC card number for uTCA)
constexpr int crateId() const
get the readout VME crate number
constexpr bool correctTiming() const
unsigned int getTypes() const
get # of types
bool mapGeomId2DcsId(HcalDetId fId, HcalDcsDetId fDcsId)
constexpr bool useLeakCorrection() const
float getDarkCurrent() const
get dark current
std::string getTagString() const
uint32_t getHFTriggerInfo() const
get Self Trigger bits
bool mapEId2tId(HcalElectronicsId fElectronicsId, HcalTrigTowerDetId fTriggerId)
bool getHcalSingleObject(std::istream &fInput, T *fObject)
static DcsType DcsTypeFromString(const std::string &str)
const HcalCalibrationWidths & getCalibrationWidths(const DetId id) const
Log< level::Info, false > LogInfo
std::vector< double > HFdigiflagCoefficients() const
constexpr int fiberIndex() const
get the fiber index. For VME 1-8 (which of eight fibers carried by a spigot), for uTCA fibers are zer...
constexpr bool correctForPhaseContainment() const
constexpr double pedestal(int fCapId) const
get pedestal for capid=0..3
constexpr bool correctForTimeslew() const
int getAuxi1(int type) const
get auxiliary words
std::string getAlgoString() const
std::vector< HcalElectronicsId > allElectronicsId() const
auto const good
min quality of good
unsigned long long uint64_t
bool getHcalObject(std::istream &fInput, T *fObject)
int getType(unsigned int k) const
constexpr bool correctForLeadingEdge() const
uint32_t HFdigiflagFirstSample() const
bool operator()(const SiStripRecHit2D *a, const SiStripRecHit2D *b) const
const int lookupRM(DetId fId) const
brief lookup the RM associated with the given logical id
const HcalCalibrations & getCalibrations(const DetId id) const
bool loadObject(int type, int pixels, float parLin1, float parLin2, float parLin3, float crossTalk, int auxi1=0, float auxi2=0)
std::vector< float > getNonLinearities(int type) const
get nonlinearity constants
double S(const TLorentzVector &, const TLorentzVector &)
void loadObject(int version, int adcCut, uint64_t tdcMask, uint32_t tbits, int auxi1, int auxi2)
unsigned int signalShape() const
static const HcalTrigTowerDetId Undefined
bool addValue(HcalDcsValue const &newVal)
constexpr unsigned int param1() const
bool getObject(std::istream &fInput, HcalPedestals *fObject)
void setTagString(std::string const &fTag)
constexpr int slot() const
get the htr or uHTR slot
DetId getId(const std::vector< std::string > &items)
unsigned int binOfMaximum() const
bool dumpObject(std::ostream &fOutput, const HcalPedestals &fObject)
constexpr unsigned int leakCorrectionID() const
constexpr int slbSiteNumber() const
get the SLB site number (valid only for VME trigger-chain ids)
uint32_t getFGBitInfo() const
get FG bit information
const float * getValues() const
get value for all capId = 0..3
bool dumpHcalObject(std::ostream &fOutput, const T &fObject)
constexpr unsigned int packingScheme() const
std::vector< unsigned int > noiseTS() const
constexpr bool isTriggerChainId() const
const DetId lookupTrigger(HcalElectronicsId fId) const
brief lookup the trigger logical detid associated with the given electronics id
float getAuxi2(int type) const
const float * minCharges() const
constexpr int fiberChanId() const
get the fiber channel id (which of channels on a fiber)
constexpr unsigned int specialCaseID() const
Log< level::Warning, false > LogWarning
std::unique_ptr< HcalDcsMap > createObject< HcalDcsMap >(std::istream &fInput)
uint32_t getValue() const
bool addCoder(const HcalCalibrationQIECoder &fCoder)
bool addValues(const Item &myItem)
int getPixels(int type) const
get # of pixels
void setAlgoString(std::string const &fAlgo)
std::unique_ptr< HcalElectronicsMap > createObject< HcalElectronicsMap >(std::istream &fInput)
Readout chain identification for Hcal.
constexpr double respcorrgain(int fCapId) const
get response corrected gain for capid=0..3
const std::string lookupRBX(DetId fId) const
brief lookup the RBX associated with the given logical id
tuple size
Write out results.
const DetId lookup(HcalElectronicsId fId) const
lookup the logical detid associated with the given electronics id
int getADCThresholdHF() const
get ADC threshold fof TDC mask of HF
float getFCByPE() const
get fcByPE
constexpr unsigned int firstSample() const
bool dumpHcalSingleIntObject(std::ostream &fOutput, const T &fObject)
uint32_t getMask() const
get mask for channel validity and self trigger information
std::vector< double > splitStringToDoubleByComma(const std::string &fLine)
double HFdigiflagMinEThreshold() const