52 std::vector<int> overview(2);
65 return StatusCode::FAILURE;
87 for (; it_CMXJetTob != it_CMXJetTob_end; ++it_CMXJetTob)
89 const int crate = (*it_CMXJetTob)->crate();
90 const int jem = (*it_CMXJetTob)->jem();
91 const int frame = (*it_CMXJetTob)->frame();
92 const int location = (*it_CMXJetTob)->location();
93 const int energyLg = (*it_CMXJetTob)->energyLarge();
94 const int energySm = (*it_CMXJetTob)->energySmall();
95 const int error = (*it_CMXJetTob)->error();
97 const int y = frame * 4 + location;
100 jetTobEnergyLg = energyLg;
107 jetTobEnergySm = energySm;
114 threshParityTobJem = jem;
115 threshParityTobCrate = crate;
122 if (energyLg || energySm ||
error) {
129 for (
int crate = 0; crate <
m_crates; ++crate) {
130 for (
int jem = 0; jem <
m_modules; ++jem) {
139 int val = cmxCount[crate];
156 return StatusCode::FAILURE;
159 ATH_MSG_DEBUG(
"-------------- CMX Jet Hits ---------------");
187 for (; it_CMXJetHits != it_CMXJetHitsEnd; ++it_CMXJetHits) {
188 const int crate = (*it_CMXJetHits)->crate();
189 const int source = (*it_CMXJetHits)->sourceComponent();
190 const unsigned int hits0 = (*it_CMXJetHits)->hits0();
191 const unsigned int hits1 = (*it_CMXJetHits)->hits1();
192 const DataError err0((*it_CMXJetHits)->error0());
193 const DataError err1((*it_CMXJetHits)->error1());
200 fillThresholds(threshTotalMainVals, threshTotalMainHits, hits0, 5, 3);
201 fillThresholds(threshTotalMainVals, threshTotalMainHits, hits1, 5, 3, 5);
204 if (crate ==
m_crates - 1 && err0.get(DataError::Overflow)) {
212 threshRoiOverflow =
x;
223 topoDataChecksum = crate;
240 const int val = (hits0 >> (
mod * 3)) & 0x7;
242 topoTobsPerJem =
val;
244 cmxCount[crate] +=
val;
252 const int val = (hits1 >> (
mod * 3)) & 0x7;
254 topoTobsPerJem =
val;
256 cmxCount[crate] +=
val;
266 if (j_num_slice < 0) j_num_slice = (*it_CMXJetHits)->peak();
272 for (
int bit = 0; bit < 8; ++bit) {
273 if ((
status >> bit) & 0x1) {
274 cmxThreshStatusErr_bit = bit;
275 cmxThreshStatusErr_crate = crate;
288 const int p0 = err0.get(DataError::Parity);
289 const int p1 = err1.get(DataError::Parity);
293 cmxThreshParityErr = xpos;
298 cmxThreshParityErr = xpos;
308 for (
int crate = 0; crate <
m_crates; ++crate) {
309 int val = cmxCount[crate];
313 topoTobsPerCmx =
val;
326 return StatusCode::FAILURE;
375 for (; it_CMXEtSums != it_CMXEtSums_end; ++it_CMXEtSums) {
376 const int crate = (*it_CMXEtSums)->
crate();
377 const int source = (*it_CMXEtSums)->sourceComponent();
378 const unsigned int rawEx = (*it_CMXEtSums)->ex();
379 const unsigned int rawEy = (*it_CMXEtSums)->ey();
380 const unsigned int rawEt = (*it_CMXEtSums)->et();
381 const int exError = (*it_CMXEtSums)->exError();
382 const int eyError = (*it_CMXEtSums)->eyError();
383 const int etError = (*it_CMXEtSums)->etError();
390 const int ex = rawEx;
391 const int ey = rawEy;
416 const int ex = cen.
ex();
417 const int ey = cen.
ey();
473 if (e_num_slice < 0) {
474 e_num_slice = (*it_CMXEtSums)->peak();
475 if (j_num_slice >= 0) {
476 cmxTriggeredSlice = std::abs(e_num_slice - j_num_slice);
486 const DataError exerr(exError);
487 const DataError eyerr(eyError);
488 const DataError eterr(etError);
491 for (
int bit = 0; bit < 8; ++bit) {
492 if ((
status >> bit) & 0x1) {
493 cmxEnergyStatus_bit = bit;
494 cmxEnergyStatus_cra = crate;
506 const int p0 = exerr.get(DataError::Parity);
507 const int p1 = eyerr.get(DataError::Parity);
508 const int p2 = eterr.get(DataError::Parity);
513 cmxEnergyParityModx = xpos;
514 if (
p0) cmxEnergyParityMody = 0.;
515 if (
p1) cmxEnergyParityMody = 1.;
516 if (
p2) cmxEnergyParityMody = 2.;
521 if (
p0) cmxParityRem = 0.;
522 if (
p1) cmxParityRem = 1.;
525 if (
p0) cmxParityRem = 2.;
526 if (
p1) cmxParityRem = 3.;
543 cmxEnergyOverflowy = ypos;
545 cmxEnergyOverflowx = 0.;
546 cmxEnergyOverflowz = exerr.get(DataError::Overflow);
549 cmxEnergyOverflowx = 1.;
550 cmxEnergyOverflowz = eyerr.get(DataError::Overflow);
553 cmxEnergyOverflowx = 2.;
554 cmxEnergyOverflowz = eterr.get(DataError::Overflow);
563 cmxEnergyOverflowResy = ypos;
565 cmxEnergyOverflowResx = 0.;
566 cmxEnergyOverflowResz = exerr.get(DataError::Overflow);
567 fill(
m_packageName, cmxEnergyOverflowResx, cmxEnergyOverflowResy, cmxEnergyOverflowResz);
569 cmxEnergyOverflowResx = 1.;
570 cmxEnergyOverflowResz = eyerr.get(DataError::Overflow);
571 fill(
m_packageName, cmxEnergyOverflowResx, cmxEnergyOverflowResy, cmxEnergyOverflowResz);
573 cmxEnergyOverflowResx = 2.;
574 cmxEnergyOverflowResz = eterr.get(DataError::Overflow);
575 fill(
m_packageName, cmxEnergyOverflowResx, cmxEnergyOverflowResy, cmxEnergyOverflowResz);
588 return StatusCode::FAILURE;
622 const int rawEx = CR->
ex();
623 const int rawEy = CR->
ey();
624 const int et = CR->
et();
625 const int exError = CR->
exError();
626 const int eyError = CR->
eyError();
627 const int etError = CR->
etError();
640 fillThresholds(roiSumEtHits_var, roiSumEtHits_hit, sumEtHits, 8, 1);
641 fillThresholds(roiMissingEtHits_var, roiMissingEtHits_hit, missingEtHits, 8, 1);
642 fillThresholds(roiMissingEtSigHits_var, roiMissingEtSigHits_hit, missingEtSigHits, 8, 1);
643 fillThresholds(roiSumEtHitsMask_var, roiSumEtHitsMask_hit, sumEtHitsM, 8, 1);
644 fillThresholds(roiMissingEtHitsMask_var, roiMissingEtHitsMask_hit, missingEtHitsM, 8, 1);
648 const int ex = cen.
ex();
649 const int ey = cen.
ey();
665 const int exM = cen2.
ex();
666 const int eyM = cen2.
ey();
681 return StatusCode::SUCCESS;
686 int val,
int nThresh,
687 int nBits,
int offset)
const {
688 const int mask = (1 << nBits) - 1;
689 for (
int thr = 0; thr < nThresh; ++thr) {
690 const int hit = (
val >> (nBits * thr)) &
mask;
702 int val,
int y,
int nThresh,
703 int nBits,
int offset)
const {
704 const int mask = (1 << nBits) - 1;
705 for (
int thr = 0; thr < nThresh; ++thr) {
706 const int hit = (
val >> (nBits * thr)) &
mask;