203 ATH_MSG_DEBUG(
"calling the fillPhysicsDataHistograms function");
208 bool cur_event_ZDC_available =
true;
209 bool cur_event_RPD_available =
true;
210 bool cur_event_RPDCentroid_available =
true;
222 uint32_t eventTime = eventInfo->timeStamp();
223 uint32_t runNumber = eventInfo->runNumber();
230 std::array<float, m_nDecodingErrorBits> decodingErrorBitsArr = {0, 0, 0};
232 cur_event_ZDC_available &= !zdcDecodingError;
233 cur_event_RPD_available &= !rpdDecodingError;
235 if (!zdcDecodingError && !rpdDecodingError){
236 decodingErrorBitsArr[0] += 1;
237 }
else if (zdcDecodingError){
239 decodingErrorBitsArr[1] += 1;
242 decodingErrorBitsArr[2] += 1;
245 auto zdcTool =
getGroup(
"genZdcMonTool");
248 fill(zdcTool, decodingErrorBits, lumiBlock);
276 std::array<float, m_nUCCTrigBits> uccTrigBitsArr = {0};
288 if (passUCCTrig_HELT15){
292 if (passUCCTrig_HELT20){
296 if (passUCCTrig_HELT25){
300 if (passUCCTrig_HELT35){
304 if (passUCCTrig_HELT50){
313 fill(zdcTool, uccTrigBits, lumiBlock);
318 std::vector<float> oopoTrigBitsArr(nOOpOTriggers+2, 0.);
320 std::vector<Monitored::Scalar<bool>> oopoTrigPassBoolVec;
321 oopoTrigPassBoolVec.reserve(nOOpOTriggers);
324 oopoTrigBitsArr[0] += 1;
328 for (
int i = 0; i < nOOpOTriggers - nOOpOL1TriggersFromCTP; ++i) {
334 std::replace_if( varName.begin(), varName.end(),
335 [](
char c){ return c==
'-'; },
'_' );
337 oopoTrigPassBoolVec.emplace_back( varName, pass );
338 oopoTrigBitsArr[i+1] += pass;
346 throw std::runtime_error(
"Trigger decision NOT retrieved for PEB stream!");
348 std::vector<uint32_t> tbp = trigDecision->
tbp();
351 int ind = ctp_id / 32;
352 int bit = ctp_id % 32;
353 const bool pass = ((tbp.at(ind) >> bit) & 1);
354 ATH_MSG_INFO(
"what's the size of xAOD::TrigDecision::tbp()? " << tbp.size());
355 std::string varName =
"pass" + trig_name;
356 oopoTrigPassBoolVec.emplace_back( varName, pass );
357 oopoTrigBitsArr.at(oopoTrigPassBoolVec.size()) += pass;
359 }
catch (
const std::out_of_range& e) {
360 ATH_MSG_WARNING(
"Out of range error captured when fetching L1 trigger bits from CTP ID: " << e.what());
361 }
catch (
const std::runtime_error& e) {
362 ATH_MSG_WARNING(
"Runtime error captured when fetching L1 trigger bits from CTP ID: " << e.what());
363 }
catch (
const std::exception& e) {
364 ATH_MSG_WARNING(
"Other std::exception captured when fetching L1 trigger bits from CTP ID: " << e.what());
366 ATH_MSG_WARNING(
"Error captured when fetching L1 trigger bits from CTP ID. Likely either no L1 trigger looked at or no L1 trigger will show to be passed.");
369 oopoTrigBitsArr[nOOpOTriggers + 1] += 1;
374 fill(zdcTool, oopoTrigBits, lumiBlock);
392 std::array<bool, 2> centroidSideValidArr;
393 std::array<bool, 2> rpdSideValidArr = {
false,
false};
394 std::array<std::vector<float>,2> rpdSubAmpVecs;
401 auto passMinZDCEnergyCutForCentroidValidEvaluation =
Monitored::Scalar<bool>(
"passMinZDCEnergyCutForCentroidValidEvaluation",
false);
406 std::array<float, 2> zdcEMModuleEnergyArr = {-1000.,-1000.};
407 std::array<float, 2> zdcEnergySumArr = {-1000,-1000.};
408 std::array<float, 2> zdcUncalibSumArr = {-1000.,-1000.};
409 std::array<float, 2> zdcAvgTimeArr = {-1000.,-1000.};
410 std::array<bool, 2> zdcModuleMaskArr = {
false,
false};
411 std::array<bool, 2> passTrigOppSideArr = {
false,
false};
412 std::array<float, 2> rpdAmplitudeCalibSum = {-1000.,-1000.};
413 std::array<float, 2> rpdMaxADCSum = {-1000.,-1000.};
415 std::array<float, m_nRpdCentroidStatusBits> centroidStatusBitsCountCurSide;
419 return StatusCode::SUCCESS;
429 if (cur_event_ZDC_available){
430 for (
const auto zdcSum : *zdcSums) {
431 if (zdcSum->zdcSide() != 0){
432 int iside = (zdcSum->zdcSide() > 0)? 1 : 0;
433 zdcModuleMaskArr[iside] = ZdcSumModuleMaskHandle(*zdcSum);
439 zdcEnergySumTwoSidesTeV = 0.;
442 cur_event_ZDC_available &= ZdcSumCalibEnergyHandle.
isAvailable();
444 if (cur_event_ZDC_available){
445 for (
const auto zdcSum : *zdcSums) {
446 if (zdcSum->zdcSide() != 0){
447 int iside = (zdcSum->zdcSide() > 0)? 1 : 0;
449 zdcEnergySumArr[iside] = ZdcSumCalibEnergyHandle(*zdcSum);
450 zdcUncalibSumArr[iside] = ZdcSumUncalibSumHandle(*zdcSum);
451 zdcAvgTimeArr[iside] = ZdcSumAverageTimeHandle(*zdcSum);
453 passTrigOppSideArr[iside] = (iside == 0)? passTrigSideA : passTrigSideC;
455 zdcEnergySumTwoSidesTeV += (ZdcSumCalibEnergyHandle(*zdcSum)) / 1000.;
457 if (zdcSum->zdcSide() == 1){
458 zdcEnergySumA = ZdcSumCalibEnergyHandle(*zdcSum);
459 zdcUncalibSumA = ZdcSumUncalibSumHandle(*zdcSum);
462 zdcEnergySumC = ZdcSumCalibEnergyHandle(*zdcSum);
463 zdcUncalibSumC = ZdcSumUncalibSumHandle(*zdcSum);
469 cur_event_ZDC_available &= ZdcSumUncalibSumHandle.
isAvailable();
470 if (cur_event_ZDC_available){
471 for (
const auto zdcSum : *zdcSums) {
472 if (zdcSum->zdcSide() != 0){
473 int iside = (zdcSum->zdcSide() > 0)? 1 : 0;
474 zdcUncalibSumArr[iside] = ZdcSumUncalibSumHandle(*zdcSum);
483 cur_event_RPD_available &= RPDsideStatusHandle.
isAvailable();
484 if (cur_event_RPD_available){
485 for (
const auto zdcSum : *zdcSums) {
486 if (zdcSum->zdcSide() != 0){
487 int iside = (zdcSum->zdcSide() > 0)? 1 : 0;
488 unsigned int rpdStatusCurSide = RPDsideStatusHandle(*zdcSum);
505 cur_event_RPDCentroid_available &= RPDcentroidStatusHandle.
isAvailable();
506 if (cur_event_RPDCentroid_available){
507 for (
const auto zdcSum : *zdcSums) {
509 if (zdcSum->zdcSide() == 0){
510 rpdCosDeltaReactionPlaneAngle = RPDcosDeltaReactionPlaneAngleHandle(*zdcSum);
512 int iside = (zdcSum->zdcSide() > 0)? 1 : 0;
513 std::string side_str = (iside == 0)?
"C" :
"A";
515 rpdSubAmpVecs[iside] = RPDsubAmpHandle(*zdcSum);
516 rpdSubAmpSumCurSide = RPDsubAmpSumHandle(*zdcSum);
517 rpdXCentroidCurSide = RPDxCentroidHandle(*zdcSum);
518 rpdYCentroidCurSide = RPDyCentroidHandle(*zdcSum);
519 rpdReactionPlaneAngleCurSide = RPDreactionPlaneAngleHandle(*zdcSum);
521 unsigned int rpdCentroidStatusCurSide = RPDcentroidStatusHandle(*zdcSum);
534 centroidValidBitFloat = (centroidValid)? 0.5 : 1.5;
539 bothReactionPlaneAngleValid &= centroidValid;
540 bothHasCentroid &= curSideHasCentroid;
544 if (rpdCentroidStatusCurSide & 1 << bit){
545 centroidStatusBitsCountCurSide[bit] += 1;
548 auto centroidStatusBits =
Monitored::Collection(
"centroidStatusBits", centroidStatusBitsCountCurSide);
550 if (curSideHasCentroid){
554 fill(
m_tools[
m_ZDCSideToolIndices.at(side_str)], rpdSubAmpSumCurSide, centroidValid, passMinZDCEnergyCutForCentroidValidEvaluation, centroidValidBitFloat, rpdXCentroidCurSide, rpdYCentroidCurSide, rpdReactionPlaneAngleCurSide, centroidStatusBits, lumiBlock, bcid);
630 auto zdcModuleHGtoLGAmpRatioNoNonlinCorr =
Monitored::Scalar<float>(
"zdcModuleHGtoLGAmpRatioNoNonlinCorr", -1000.0);
650 std::array<float, m_nZdcStatusBits> zdcStatusBitsCount;
651 std::array<float, m_nRpdStatusBits> rpdStatusBitsCount;
655 return StatusCode::SUCCESS;
661 ATH_MSG_WARNING(
"The event run number differs from the fixed run number read from the input-file metadata!");
673 zdcHadronicEnergySumTwoSidesTeV = 0.;
675 cur_event_ZDC_available &= zdcModuleStatusHandle.
isAvailable();
676 if (cur_event_ZDC_available){
677 for (
const auto zdcMod : *zdcModules){
678 int iside = (zdcMod->zdcSide() > 0)? 1 : 0;
679 std::string side_str = (iside == 0)?
"C" :
"A";
681 zdcModuleMaskCurSide = zdcModuleMaskArr[iside];
683 if (zdcMod->zdcType() == 0){
684 int imod = zdcMod->zdcModule();
685 std::string module_str = std::to_string(imod);
687 int status = zdcModuleStatusHandle(*zdcMod);
689 for (
int bit = 0; bit <
m_nZdcStatusBits; bit++) zdcStatusBitsCount[bit] = 0;
691 if (status & 1 << bit){
692 zdcStatusBitsCount[bit] += 1;
700 zdcModuleAmp = zdcModuleAmplitudeHandle(*zdcMod);
702 float zdcModuleAmpNoNonLin = zdcModuleAmpNoNonLinHandle(*zdcMod);
703 zdcModuleFitAmp = zdcModuleFitAmpHandle(*zdcMod);
704 zdcModuleMaxADC = zdcModuleMaxADCHandle(*zdcMod);
705 zdcModuleMaxADCHG = zdcModuleMaxADCHGHandle(*zdcMod);
706 zdcModuleMaxADCLG = zdcModuleMaxADCLGHandle(*zdcMod);
707 zdcModuleAmpToMaxADCRatio = (zdcModuleMaxADC == 0)? -1000. : zdcModuleFitAmp / zdcModuleMaxADC;
708 zdcModuleTime = zdcModuleTimeHandle(*zdcMod);
709 zdcModuleFitT0 = zdcModuleFitT0Handle(*zdcMod);
710 zdcModuleChisq = zdcModuleChisqHandle(*zdcMod);
711 zdcModuleCalibAmp = zdcModuleCalibEnergyHandle(*zdcMod);
712 zdcModuleCalibTime = zdcModuleCalibTimeHandle(*zdcMod);
713 zdcUncalibSumCurrentSide = zdcUncalibSumArr[iside];
714 zdcEnergySumCurrentSide = zdcEnergySumArr[iside];
715 zdcAbove20NCurrentSide = (zdcUncalibSumCurrentSide > 20 *
m_expected1N);
719 zdcModuleFract = (zdcEnergySumCurrentSide == 0)? -1000. : zdcModuleCalibAmp / zdcEnergySumCurrentSide;
721 zdcModuleFract = (zdcUncalibSumCurrentSide == 0)? -1000. : zdcModuleAmp / zdcUncalibSumCurrentSide;
725 zdcModuleChisqOverAmp = (zdcModuleFitAmp == 0)? -1000. : zdcModuleChisq / zdcModuleFitAmp;
727 zdcModuleHG = !zdcModuleLG;
729 zdcModuleFractionValid = (zdcModuleFract >= 0 && zdcModuleFract <= 1);
731 zdcModuleTimeValid = (zdcModuleTime > -100.);
732 zdcModuleHGTimeValid = zdcModuleHG && zdcModuleTimeValid;
733 zdcModuleLGTimeValid = zdcModuleLG && zdcModuleTimeValid;
736 zdcModuleFitAmpLGRefit = zdcModuleFitAmpLGRefitHandle(*zdcMod);
737 zdcModuleAmpLGRefit = zdcModuleAmpLGRefitHandle(*zdcMod);
738 zdcModuleT0LGRefit = zdcModuleT0LGRefitHandle(*zdcMod);
739 zdcModuleT0SubLGRefit = zdcModuleT0SubLGRefitHandle(*zdcMod);
740 zdcModuleChisqLGRefit = zdcModuleChisqLGRefitHandle(*zdcMod);
742 zdcModuleLGFitAmp = (zdcModuleHG)? zdcModuleFitAmpLGRefit * 1. : zdcModuleFitAmp * 1.;
744 zdcModuleHGtoLGAmpRatio = (zdcModuleLG || zdcModuleAmpLGRefit == 0)? -1000. : zdcModuleAmp * 1. / zdcModuleAmpLGRefit;
745 zdcModuleHGtoLGAmpRatioNoNonlinCorr = (zdcModuleLG || zdcModuleAmpLGRefit == 0)? -1000. : zdcModuleAmpNoNonLin * 1. / zdcModuleAmpLGRefit;
746 zdcModuleHGtoLGT0Diff = (zdcModuleLG)? -1000. : zdcModuleFitT0 - zdcModuleT0LGRefit;
751 if (imod == 0) zdcEMModuleEnergyArr[iside] = zdcModuleCalibAmp;
752 else zdcHadronicEnergySumTwoSidesTeV += zdcModuleCalibAmp / 1000.;
754 fill(
m_tools[
m_ZDCModuleToolIndices.at(side_str).at(module_str)], zdcModuleChisq, zdcModuleChisqOverAmp, zdcModuleChisqLGRefit, zdcModuleChisqEventWeight, zdcModuleChisqOverAmpEventWeight, zdcModuleAmp);
760 zdcHGInjPulseValid =
true;
761 zdcLGInjPulseValid =
true;
763 bool pass_first3s =
true;
770 uint64_t lb_stime = 0;
771 uint64_t lb_etime = 0;
772 bool retrievedLumiBlockTimes =
false;
776 if (lblbattrList==
nullptr) {
780 retrievedLumiBlockTimes =
true;
781 auto lb_stime_loc = (*lblbattrList)[
"StartTime"].data<cool::UInt63>();
782 auto lb_etime_loc = (*lblbattrList)[
"EndTime"].data<cool::UInt63>();
783 lb_stime = lb_stime_loc;
784 lb_etime = lb_etime_loc;
785 ATH_MSG_DEBUG(
"lb_stime: " << lb_stime <<
" lb_etime: " << lb_etime );
788 lb_stime /= 1000000000;
789 lb_etime /= 1000000000;
791 if (lb_etime <= lb_stime || !retrievedLumiBlockTimes){
792 ATH_MSG_WARNING(
"The LB start + end time for current event is not retrieved.");
793 ATH_MSG_WARNING(
"No event rejection at beginning of LB is implemented.");
794 }
else if(eventTime < lb_stime){
795 ATH_MSG_WARNING(
"Event time is before the start time of the current LB");
796 ATH_MSG_WARNING(
"Event time: " << eventTime <<
"; current LB: " << lumiBlock <<
"; start time of current LB: " << lb_stime);
797 }
else if (eventTime > lb_etime){
799 ATH_MSG_WARNING(
"Event time: " << eventTime <<
"; current LB: " << lumiBlock <<
"; end time of current LB: " << lb_etime);
809 zdcHGInjPulseValid &= zdcModuleHG;
829 if (injectedPulseInputVoltage > 0){
830 if (injectedPulseInputVoltage > 1 && !zdcLGInjPulseValid &&pass_first3s){
832 std::ostringstream fails;
833 std::vector<std::pair<std::string, bool>> checks = {
842 for (
const auto& [name, pass] : checks) {
843 if (!pass) fails <<
"fail " << name <<
"; ";
847 <<
"; input voltage: " << injectedPulseInputVoltage
848 <<
"; LG amp: " << zdcModuleLGFitAmp
849 <<
"; side" << side_str <<
", mod" << module_str
850 <<
"; " << fails.str());
854 ATH_MSG_WARNING(
"Lumi block: " << lumiBlock <<
", yet input voltage is negative!! input voltage: " << injectedPulseInputVoltage);
862 int voltage_index = -1;
863 auto voltage_iter = std::find_if(injPulseVoltageSteps.begin(), injPulseVoltageSteps.end(),
864 [&](
float num) { return check_equal_within_rounding(num, injectedPulseInputVoltage); });
866 if (voltage_iter != injPulseVoltageSteps.end()) {
867 voltage_index = std::distance(injPulseVoltageSteps.begin(), voltage_iter);
868 ATH_MSG_DEBUG(
"Found injected-pulse input voltage " << injectedPulseInputVoltage <<
" at index " << std::distance(injPulseVoltageSteps.begin(), voltage_iter));
870 ATH_MSG_WARNING(
"Injected-pulse input voltage " << injectedPulseInputVoltage <<
"(Lumi block: " << lumiBlock <<
") NOT found in voltage steps read from json.");
872 ATH_MSG_WARNING(
"Single-voltage lucrod response histograms NOT filled.");
879 if (
m_isStandalone) injectedPulseInputVoltage = zdcModuleAmp * 1. / 25000.;
880 fill(
m_tools[
m_ZDCModuleToolIndices.at(side_str).at(module_str)], VoltageIndex, zdcModuleAmp, zdcModuleFitAmp, zdcModuleMaxADC, zdcModuleMaxADCHG, zdcModuleMaxADCLG, zdcModuleAmpToMaxADCRatio, zdcModuleFract, zdcInjInputVoltagePassMinThrsh, zdcModuleMaskCurSide, zdcUncalibSumCurrentSide, zdcEnergySumCurrentSide, zdcModuleTime, zdcModuleFitT0, zdcModuleCalibAmp, zdcModuleCalibTime, zdcModuleLG, zdcModuleHG, zdcModuleAmpLGRefit, zdcModuleT0LGRefit, zdcModuleT0SubLGRefit, zdcModuleChisqLGRefit, zdcModuleLGFitAmp, zdcModuleHGtoLGAmpRatio, zdcModuleHGtoLGAmpRatioNoNonlinCorr, zdcModuleHGtoLGT0Diff, zdcModuleFractionValid, zdcModuleTimeValid, zdcModuleHGTimeValid, zdcModuleLGTimeValid, injectedPulseInputVoltage, zdcHGInjPulseValid, zdcLGInjPulseValid, lumiBlock, bcid);
886 fill(
m_tools[
m_ZDCModuleToolIndices.at(side_str).at(module_str)], zdcModuleAmp, zdcModuleMaxADC, zdcModuleMaxADCHG, zdcModuleMaxADCLG, zdcModuleAmpToMaxADCRatio, zdcModuleFract, zdcModuleMaskCurSide, zdcUncalibSumCurrentSide, zdcEnergySumCurrentSide, zdcAbove20NCurrentSide, zdcEnergyAboveModuleFractCut, zdcModuleTime, zdcModuleFitT0, zdcModuleCalibAmp, zdcModuleCalibTime, zdcModuleLG, zdcModuleHG, zdcModuleAmpLGRefit, zdcModuleT0LGRefit, zdcModuleT0SubLGRefit, zdcModuleChisqLGRefit, zdcModuleHGtoLGAmpRatio, zdcModuleHGtoLGAmpRatioNoNonlinCorr, zdcModuleHGtoLGT0Diff, zdcModuleFractionValid, zdcModuleTimeValid, zdcModuleHGTimeValid, zdcModuleLGTimeValid, lumiBlock, bcid);
906 cur_event_RPD_available &= RPDChannelStatusHandle.
isAvailable();
907 if (cur_event_RPD_available){
908 for (
const auto zdcMod : *zdcModules){
909 int iside = (zdcMod->zdcSide() > 0)? 1 : 0;
910 std::string side_str = (iside == 0)?
"C" :
"A";
912 if (zdcMod->zdcType() == 1) {
915 int ichannel = zdcMod->zdcChannel();
916 std::string channel_str = std::to_string(ichannel);
918 int status = RPDChannelStatusHandle(*zdcMod);
920 for (
int bit = 0; bit <
m_nRpdStatusBits; bit++) rpdStatusBitsCount[bit] = 0;
922 if (status & 1 << bit){
923 rpdStatusBitsCount[bit] += 1;
929 rpdChannelSubAmp = rpdSubAmpVecs[iside][ichannel];
930 rpdChannelAmplitude = RPDChannelAmplitudeHandle(*zdcMod);
931 rpdChannelMaxADC = RPDChannelMaxADCHandle(*zdcMod);
932 rpdChannelMaxSample = RPDChannelMaxSampleHandle(*zdcMod);
933 rpdChannelAmplitudeCalib = RPDChannelAmplitudeCalibHandle(*zdcMod);
934 std::vector<float> rpdChannelPileupFitParams = RPDChannelPileupExpFitParamsHandle(*zdcMod);
935 rpdChannelPileupFitSlope = rpdChannelPileupFitParams[1];
936 rpdChannelPileupFrac = RPDChannelPileupFracHandle(*zdcMod);
938 absRpdChannelAmplitude = abs(rpdChannelAmplitude);
939 zdcEMModuleEnergySameSide = zdcEMModuleEnergyArr[iside];
940 zdcEnergySumSameSide = zdcEnergySumArr[iside];
942 rpdChannelValid = curRpdChannelValid;
943 rpdChannelValidBitFloat = (curRpdChannelValid)? 0.5 : 1.5;
944 rpdChannelCentroidValid = centroidSideValidArr.at(iside);
946 rpdAmplitudeCalibSum[iside] += rpdChannelAmplitudeCalib;
947 rpdMaxADCSum[iside] += rpdChannelMaxADC;
949 fill(
m_tools[
m_RPDChannelToolIndices.at(side_str).at(channel_str)], rpdChannelSubAmp, rpdChannelAmplitude, rpdChannelAmplitudeCalib, rpdChannelMaxADC, rpdChannelMaxSample, rpdStatusBits, rpdChannelPileupFitSlope, absRpdChannelAmplitude, rpdChannelPileupFrac, zdcEMModuleEnergySameSide, zdcEnergySumSameSide, rpdChannelValid, rpdChannelValidBitFloat, rpdChannelCentroidValid, lumiBlock, bcid);
964 std::array<double,2> fcalEtArr = {0.,0.};
972 for (
const auto eventShape : *eventShapes){
973 int layer = eventShape->layer();
974 float eta = eventShape->etaMin();
975 float et = eventShape->et();
976 if (layer == 21 || layer == 22 || layer == 23){
977 fcalEtSumTwoSides +=
et / 1000000.;
979 fcalEtA +=
et / 1000000.;
980 fcalEtArr[1] +=
et / 1000000.;
983 fcalEtC +=
et / 1000000.;
984 fcalEtArr[0] +=
et / 1000000.;
988 if (TMath::Abs(
eta) < 2.4) {
989 totalEt24 +=
et / 1000000.;
998 if (!cur_event_ZDC_available && !zdcDecodingError){
999 ATH_MSG_WARNING(
"Current event has no ZDC decoding error but ZDC aux data is not available!");
1001 if (!cur_event_RPD_available && !rpdDecodingError){
1002 ATH_MSG_WARNING(
"Current event has no RPD decoding error but RPD aux data is not available!");
1007 if (!cur_event_ZDC_available && !cur_event_RPD_available){
1008 ATH_MSG_WARNING(
"For current event, neither ZDC nor RPD data are available!");
1009 return StatusCode::SUCCESS;
1020 std::vector<std::reference_wrapper<Monitored::IMonitoredVariable>> vars_global = {
1021 std::ref(lumiBlock),
1023 std::ref(passTrigSideA),
1024 std::ref(passTrigSideC),
1025 std::ref(zdcEnergySumA),
1026 std::ref(zdcEnergySumC),
1027 std::ref(zdcUncalibSumA),
1028 std::ref(zdcUncalibSumC),
1029 std::ref(zdcEnergySumTwoSidesTeV),
1034 vars_global.insert(vars_global.end(), {
1037 std::ref(zdcHadronicEnergySumTwoSidesTeV),
1038 std::ref(fcalEtSumTwoSides),
1044 vars_global.insert(vars_global.end(), {
1045 std::ref(passUCCTrig_HELT15),
1046 std::ref(passUCCTrig_HELT20),
1047 std::ref(passUCCTrig_HELT25),
1048 std::ref(passUCCTrig_HELT35),
1049 std::ref(passUCCTrig_HELT50)
1054 for (
auto& m : oopoTrigPassBoolVec) vars_global.push_back( std::ref(m) );
1061 fill(zdcTool, rpdCosDeltaReactionPlaneAngle, bothReactionPlaneAngleValid, bothHasCentroid);
1071 for (
int iside = 0; iside <
m_nSides; iside++){
1072 std::string side_str = (iside == 0)?
"C" :
"A";
1081 zdcModuleMaskCurSide = zdcModuleMaskArr[iside];
1090 fill(
m_tools[
m_ZDCSideToolIndices.at(side_str)], passTrigOppSide, zdcEnergySumCurSide, zdcEnergySumCurSideTeV, zdcUncalibSumCurSide, zdcEMModuleEnergyCurSide, zdcAvgTimeCurSide, zdcModuleMaskCurSide, rpdAmplitudeCalibSumCurSide, rpdMaxADCSumCurSide, rpdCurSideValid, fcalEtCurSide, lumiBlock, bcid);
1093 for (
int iside = 0; iside <
m_nSides; iside++){
1094 std::string side_str = (iside == 0)?
"C" :
"A";
1102 zdcModuleMaskCurSide = zdcModuleMaskArr[iside];
1105 fill(
m_tools[
m_ZDCSideToolIndices.at(side_str)], passTrigOppSide, zdcEnergySumCurSide, zdcEnergySumCurSideTeV, zdcUncalibSumCurSide, zdcEMModuleEnergyCurSide, zdcAvgTimeCurSide, zdcModuleMaskCurSide, fcalEtCurSide, lumiBlock, bcid);
1108 for (
int iside = 0; iside <
m_nSides; iside++){
1109 std::string side_str = (iside == 0)?
"C" :
"A";
1119 return StatusCode::SUCCESS;