12#include "GaudiKernel/EventContext.h"
19 const IInterface* p) :
43 std::string pvstring =
"EventInfo.OriginalCount_";
53 std::string pvUstring =
"EventInfo.OriginalCount_typeUnknown_"+
m_PVContainername.key();
67 trackcon +=
".OriginalCount_";
74 name+=
".OrigNTracks";
86 return StatusCode::SUCCESS;
97 if(!PV_count.
isAvailable()) PV_count(0) = vertices->size();
107 constexpr int nvtypes = 5;
108 int nvtc[] = {0, 0, 0, 0, 0};
109 for (
auto vtx : *vertices) {
111 if ( vt >=0 && vt < nvtypes ) {
117 if(!PV0_count.
isAvailable()) PV0_count(0) = nvtc[0];
118 if(!PV1_count.
isAvailable()) PV1_count(0) = nvtc[1];
119 if(!PV2_count.
isAvailable()) PV2_count(0) = nvtc[2];
120 if(!PV3_count.
isAvailable()) PV3_count(0) = nvtc[3];
121 if(!PVUnk_count.
isAvailable()) PVUnk_count(0) = nvtc[4];
129 for (
auto vtx : *vertices) {
130 d_nPVTracks(*vtx) = (
int)vtx->nTrackParticles();
140 for (
auto vtx : *vertices) {
141 float sqrtPt2Sum(0.);
142 for (
auto tp : vtx->trackParticleLinks()) {
143 sqrtPt2Sum += std::sqrt(
pow((*tp)->pt(),2));
145 d_pvSqrtPt2Sum(*vtx) = sqrtPt2Sum;
154 if(!track_count.
isAvailable()) track_count(0) = tracks->size();
159 if(!track_count.
isAvailable()) track_count(0) = tracks->size();
162 return StatusCode::SUCCESS;
#define ATH_CHECK
Evaluate an expression and check for errors.
Augmentation with primary vertex counts (before thinning)
Handle class for adding a decoration to an object.
constexpr int pow(int base, int exp) noexcept
SG::WriteDecorHandleKey< xAOD::EventInfo > m_OrigPVNTracks
SG::WriteDecorHandleKey< xAOD::VertexContainer > m_d_nPVTracks
SG::WriteDecorHandleKey< xAOD::EventInfo > m_OrigNTracksKeys
AugOriginalCounts(const std::string &t, const std::string &n, const IInterface *p)
Main constructor.
virtual StatusCode initialize() override
SG::WriteDecorHandleKey< xAOD::VertexContainer > m_OrigSqrtPt2Sum
SG::WriteDecorHandleKey< xAOD::EventInfo > m_OrigNtypeUnknown
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_TrackContainerLRTname
SG::WriteDecorHandleKey< xAOD::EventInfo > m_OrigNtype0
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_TrackContainername
SG::WriteDecorHandleKey< xAOD::EventInfo > m_OrigNtype3
SG::WriteDecorHandleKey< xAOD::EventInfo > m_OrigNTracksLRTKeys
SG::ReadHandleKey< xAOD::VertexContainer > m_PVContainername
SG::WriteDecorHandleKey< xAOD::EventInfo > m_OrigNtype1
bool m_addSqrtPt2SumToPVs
SG::WriteDecorHandleKey< xAOD::EventInfo > m_OrigNtype2
virtual StatusCode addBranches(const EventContext &ctx) const override
Main method called for each event.
Handle class for adding a decoration to an object.
bool isAvailable()
Test to see if this variable exists in the store, for the referenced object.
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.