48 if ( eventInfo.isValid() ) {
57 std::vector<int> bitVec = {};
58 std::vector<int> filledVec = {};
59 std::vector<int> emptyVec = {};
60 std::vector<int> unpairIsoVec = {};
61 std::vector<int> unpairNonIsoVec = {};
66 if ( !(bgWord & 1<<bkg) ) {
70 bitVec.push_back(bkg);
72 filledVec.push_back(bkg);
74 emptyVec.push_back(bkg);
75 }
else if (unpairIso) {
76 unpairIsoVec.push_back(bkg);
77 }
else if (unpairNonIso) {
78 unpairNonIsoVec.push_back(bkg);
83 auto bitSetFilled =
Collection(
"bitSetFilled",filledVec);
84 auto bitSetEmpty =
Collection(
"bitSetEmpty",emptyVec);
85 auto bitSetUnpairIso =
Collection(
"bitSetUnpairIso",unpairIsoVec);
86 auto bitSetUnpairNonIso =
Collection(
"bitSetUnpairNonIso",unpairNonIsoVec);
87 fill(
group,bitSet,bitSetFilled,bitSetEmpty,bitSetUnpairIso,bitSetUnpairNonIso);
89 ATH_MSG_WARNING(
"Event data invalid. Background word histograms are being skipped.");
94 if (sctSP.isValid() and pixSP.isValid()) {
96 std::for_each(sctSP->begin(),sctSP->end(),[&nSctSPs](
const auto coll){if (coll) nSctSPs+=coll->size();});
99 std::for_each(pixSP->begin(),pixSP->end(),[&nPixSPs](
const auto coll){if (coll) nPixSPs+=coll->size();});
101 fill(
group,nPixSPs,nSctSPs,unpairIso,unpairNonIso);
103 fill(
"lowMultiplicityPixGroup",nPixSPs,unpairIso,unpairNonIso);
106 fill(
"lowMultiplicitySctGroup",nSctSPs,unpairIso,unpairNonIso);
109 ATH_MSG_WARNING(
"Pixe/SCT Spacepoint data invalid. nPix/nSct is being skipped.");
127 ATH_MSG_WARNING(
"MBTSCollisionTime data invalid. MBTStimeDiff is being skipped.");
130 if ( tileCellContainer.
isValid() ) {
132 for (
auto tileCell : *tileCellContainer ) {
140 ATH_MSG_WARNING(
"TileCell data invalid. MBTSvetoHits is being skipped.");
154 if (beamBackgroundData.
isValid() ) {
156 std::vector<double> muSegXVec = {};
157 std::vector<double> muSegYVec = {};
158 for (
int iSeg=0; iSeg<beamBackgroundData->
GetNumSegment(); iSeg++) {
162 muSegXVec.push_back(muonSeg->
x()*1
e-3);
163 muSegYVec.push_back(muonSeg->
y()*1
e-3);
166 auto muSegXCollection =
Collection(
"muonSegmentX",muSegXVec);
167 auto muSegYCollection =
Collection(
"muonSegmentY",muSegYVec);
169 std::vector<double> clusterEnergyVec = {};
170 std::vector<double> clusterEtaVec = {};
171 std::vector<double> clusterPhiVec = {};
172 std::vector<double> clusterTimeVec = {};
175 clusterEnergyVec.push_back(cluster->
e()*1
e-3);
176 clusterEtaVec.push_back(cluster->
eta());
177 clusterPhiVec.push_back(cluster->
phi());
178 clusterTimeVec.push_back(cluster->
time());
180 auto clusterEnergyCollection =
Collection(
"clusterEnergy",clusterEnergyVec);
181 auto clusterEtaCollection =
Collection(
"clusterEta",clusterEtaVec);
182 auto clusterPhiCollection =
Collection(
"clusterPhi",clusterPhiVec);
183 auto clusterTimeCollection =
Collection(
"clusterTime",clusterTimeVec);
185 fill(
group,muSegXCollection,muSegYCollection,clusterEnergyCollection,
186 clusterEtaCollection,clusterPhiCollection,clusterTimeCollection);
190 std::vector<int> jetIndexVec = {};
194 jetIndexVec.push_back(jetIndex);
206 std::vector<float> sumPt_v;
208 bool hasSumPt =
jet->getAttribute<std::vector<float>>(trkPtAttr, sumPt_v);
209 double sumPtTrk = hasSumPt ? sumPt_v[0] : 0.;
215 auto jetIndexCollection =
Collection(
"jetIndex",jetIndexVec);
221 auto isACOneSided =
Scalar<bool>(
"isACOneSided", isAC && isOneSided );
222 auto isCAOneSided =
Scalar<bool>(
"isCAOneSided", isCA && isOneSided );
223 fill(
group,jetIndexCollection,
bcid,isAC,isCA,isACOneSided,isCAOneSided);
226 ATH_MSG_WARNING(
"BeamBackgroundData data invalid. Muons are being skipped.");
230 if (vertexContainer.
isValid()) {
233 fill(
group,nVertex,unpairIso,unpairNonIso);
235 ATH_MSG_DEBUG(
"Primary vertex data invalid. Primary vertex counts are being skipped.");
237 return StatusCode::SUCCESS;