18 for (
unsigned int its = 0; its < nTrackSels; ++its) {
24 m_decFCalEtA_Qnx.emplace_back(SG::AuxElement::Decorator<float>(std::format(
"FCalEtA_Q{}x", vn + 1)));
25 m_decFCalEtA_Qny.emplace_back(SG::AuxElement::Decorator<float>(std::format(
"FCalEtA_Q{}y", vn + 1)));
26 m_decFCalEtC_Qnx.emplace_back(SG::AuxElement::Decorator<float>(std::format(
"FCalEtC_Q{}x", vn + 1)));
27 m_decFCalEtC_Qny.emplace_back(SG::AuxElement::Decorator<float>(std::format(
"FCalEtC_Q{}y", vn + 1)));
30 m_decHalfFCalEtA_Qnx.emplace_back(SG::AuxElement::Decorator<float>(std::format(
"HalfFCalEtA_Q{}x", vn + 1)));
31 m_decHalfFCalEtA_Qny.emplace_back(SG::AuxElement::Decorator<float>(std::format(
"HalfFCalEtA_Q{}y", vn + 1)));
32 m_decHalfFCalEtC_Qnx.emplace_back(SG::AuxElement::Decorator<float>(std::format(
"HalfFCalEtC_Q{}x", vn + 1)));
33 m_decHalfFCalEtC_Qny.emplace_back(SG::AuxElement::Decorator<float>(std::format(
"HalfFCalEtC_Q{}y", vn + 1)));
37 return StatusCode::SUCCESS;
56 return StatusCode::FAILURE;
61 std::vector <int> TrackParticleMultiplicity(nTrackSels,0);
62 for (
const auto* tp : *tracks) {
64 for (
unsigned int its = 0; its < nTrackSels; ++its) {
65 if (
m_trkSelTools[its]->accept(*tp)) ++TrackParticleMultiplicity[its];
70 for (
unsigned int its = 0; its < nTrackSels; ++its) {
82 float HalfFCalEtA = 0;
83 float HalfFCalEtC = 0;
91 SG::AuxElement::Decorator< float > decFCalEtA(
"FCalEtA");
92 SG::AuxElement::Decorator< float > decFCalEtC(
"FCalEtC");
94 SG::AuxElement::Decorator< float > decHalfFCalEtA(
"HalfFCalEtA");
95 SG::AuxElement::Decorator< float > decHalfFCalEtC(
"HalfFCalEtC");
101 return StatusCode::FAILURE;
105 for(
const auto* ptrEvtShp : *eventShape){
106 if(ptrEvtShp->layer()!=21 && ptrEvtShp->layer()!=22 &&
107 ptrEvtShp->layer()!=23)
continue;
109 float eta = ptrEvtShp->etaMin();
110 const std::vector<float>&c1 = ptrEvtShp->etCos();
111 const std::vector<float>&s1 = ptrEvtShp->etSin();
114 FCalEtA += ptrEvtShp->et();
116 FCalEtA_Qnx.at(vn-1) += c1.at(vn);
117 FCalEtA_Qny.at(vn-1) += s1.at(vn);
120 HalfFCalEtA += ptrEvtShp->et();
122 HalfFCalEtA_Qnx.at(vn-1) += c1.at(vn);
123 HalfFCalEtA_Qny.at(vn-1) += s1.at(vn);
126 }
else if (
eta < 0) {
127 FCalEtC += ptrEvtShp->et();
129 FCalEtC_Qnx.at(vn-1) += c1.at(vn);
130 FCalEtC_Qny.at(vn-1) += s1.at(vn);
133 HalfFCalEtC += ptrEvtShp->et();
135 HalfFCalEtC_Qnx.at(vn-1) += c1.at(vn);
136 HalfFCalEtC_Qny.at(vn-1) += s1.at(vn);
145 SG::AuxElement::Decorator< bool > decTopoClusterFCalCut(
"passUPCTopoCaloCut");
147 decTopoClusterFCalCut(*eventInfo) =
false;
151 bool hasTowerA{
false};
152 bool hasTowerC{
false};
153 for (
const auto topo : *topos) {
154 float topo_eta = topo->eta();
155 if (abs(topo_eta) > 3.2 && abs(topo_eta) < 4.9) {
156 float topo_pt = topo->pt() * 1e-3;
167 decTopoClusterFCalCut(*eventInfo) = (hasTowerA && hasTowerC);
172 decFCalEtA(*eventInfo) = FCalEtA;
173 decFCalEtC(*eventInfo) = FCalEtC;
174 decHalfFCalEtA(*eventInfo) = HalfFCalEtA;
175 decHalfFCalEtC(*eventInfo) = HalfFCalEtC;
188 return StatusCode::SUCCESS;