27 ATH_MSG_FATAL(
"METMapSuffix (e.g. AntiKt4EMTopo) must be set!" );
28 return StatusCode::FAILURE;
36 return StatusCode::SUCCESS;
48 return StatusCode::FAILURE;
51 for(
const auto *
const assoc : *
map) {
56 ATH_MSG_VERBOSE(
" Now on MET association for jet " << assoc->refJet()->index() );
66 return StatusCode::SUCCESS;
78 for(
size_t iobj=0; iobj<assoc.
objects().size(); ++iobj) {
79 helper.setObjSelectionFlag(&assoc,iobj,
true);
85 ATH_MSG_VERBOSE(
" Jet constituent-scale pt: " << jetconstp4.pt() <<
", E: " << jetconstp4.e() );
86 ATH_MSG_VERBOSE(
" Max constituent overlap pt: " << overlapcalvec.
cpt() <<
", E: " << overlapcalvec.
ce() );
89 ATH_MSG_VERBOSE(
" Max track overlap pt: " << overlaptrkvec.
cpt() <<
", E: " << overlaptrkvec.
ce() );
101 return StatusCode::SUCCESS;
114 for(
size_t iobj=0; iobj<assoc.
objects().size(); ++iobj) {
118 helper.resetObjSelectionFlags();
119 helper.setObjSelectionFlag(&assoc,iobj,
true);
123 ATH_MSG_VERBOSE(
" Object pt: " << obj->pt() <<
", E: " << obj->e() <<
", type: " << obj->type());
130 ATH_MSG_ERROR(
" Object pt: " << obj->pt() <<
", E: " << obj->e() <<
", type: " << obj->type());
135 ATH_MSG_ERROR(
" Object pt: " << obj->pt() <<
", E: " << obj->e() <<
", type: " << obj->type());
140 return StatusCode::SUCCESS;
151 for(
size_t ikey=0; ikey<assoc.
calkey().size(); ++ikey) {
158 for(
size_t iobj=0; iobj<assoc.
objects().size(); ++iobj) {
159 if( ((1<<iobj)&assoc.
calkey()[ikey]) == 0 ) {
162 ATH_MSG_ERROR(
" Object pt: " << obj->pt() <<
", E: " << obj->e() <<
", type: " << obj->type());
171 for(
size_t ikey=0; ikey<assoc.
trkkey().size(); ++ikey) {
178 for(
size_t iobj=0; iobj<assoc.
objects().size(); ++iobj) {
179 if( ((1<<iobj)&assoc.
trkkey()[ikey]) == 0 ) {
182 ATH_MSG_ERROR(
" Object pt: " << obj->pt() <<
", E: " << obj->e() <<
", type: " << obj->type());
189 return StatusCode::SUCCESS;
195 for(
size_t ikey=0; ikey<assoc.
calkey().size(); ++ikey) {
202 for(
size_t ikey=0; ikey<assoc.
trkkey().size(); ++ikey) {
208 return StatusCode::SUCCESS;
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_VERBOSE(x)
#define ATH_MSG_WARNING(x)
AthAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor with parameters:
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
Class providing the definition of the 4-vector interface.
float ce() const
Returns .
float cpt() const
Returns .
const Jet * refJet() const
Access reference jet.
const std::vector< MissingETBase::Types::bitmask_t > & calkey() const
Get the vector of cal keys.
ConstVec trkVec(const IParticle *pPart) const
Get track constituent vector for a given object.
ConstVec overlapTrkVec(const MissingETAssociationHelper &helper) const
Retrieve total track-based vector to be subtracted from the jet.
std::vector< const IParticle * > objects() const
Access contributing objects.
const std::vector< MissingETBase::Types::bitmask_t > & trkkey() const
Get the vector of trk keys.
ConstVec overlapCalVec(const MissingETAssociationHelper &helper) const
Retrieve total cluster-based vector to be subtracted from the jet.
ConstVec jetTrkVec() const
Get track constituent vector for the reference jet.
ConstVec calVec(const IParticle *pPart) const
Get calo constituent vector for a given object.
xAOD::MissingETAssociation_v1::ConstVec constvec_t
Type for constituent vector.
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.
MissingETAssociation_v1 MissingETAssociation
Version control by type definition.
@ JetConstitScaleMomentum
ROOT::Math::LorentzVector< ROOT::Math::PtEtaPhiM4D< double > > JetFourMom_t
Base 4 Momentum type for Jet.