Loading [MathJax]/extensions/tex2jax.js
 |
ATLAS Offline Software
|
#include <IsolationCloseByCorrectionTool.h>
|
| IsolationCloseByCorrectionTool (const std::string &name) |
|
virtual StatusCode | initialize () override |
| Dummy implementation of the initialisation function. More...
|
|
virtual CorrectionCode | getCloseByCorrection (std::vector< float > &corrections, const xAOD::IParticle &par, const std::vector< xAOD::Iso::IsolationType > &types, const xAOD::IParticleContainer &closePar) const override |
|
virtual asg::AcceptData | acceptCorrected (const xAOD::IParticle &x, const xAOD::IParticleContainer &closePar) const override |
|
virtual CorrectionCode | getCloseByIsoCorrection (const EventContext &ctx, const xAOD::ElectronContainer *Electrons, const xAOD::MuonContainer *Muons, const xAOD::PhotonContainer *Photons) const override |
|
virtual float | getOriginalIsolation (const xAOD::IParticle &P, IsoType type) const override |
|
virtual float | getOriginalIsolation (const xAOD::IParticle *particle, IsoType type) const override |
|
TrackSet | getTrackCandidates (const EventContext &ctx, const xAOD::IParticle *particle) const override |
| Load all TrackParticles associated with the particles in the Container. The particles have to pass the selection decoration flag. More...
|
|
const xAOD::IParticle * | isoRefParticle (const xAOD::IParticle *particle) const override |
| Retrieve the reference particle to define the cone axis in which the track particles contributing to the isolation have to be. More...
|
|
void | associateCluster (const xAOD::IParticle *particle, float &eta, float &phi, float &energy) const override |
| Retrieve the associated clusters from the Particle and calculate the average eta/phi/energy. More...
|
|
void | associateFlowElement (const EventContext &ctx, const xAOD::IParticle *particle, float &eta, float &phi, float &energy) const override |
|
void | getExtrapEtaPhi (const xAOD::IParticle *particlear, float &eta, float &phi) const |
|
void | loadPrimaryParticles (const xAOD::IParticleContainer *container, ObjectCache &cache) const |
| Filter all electrons/muons/photons from the collection which pass the selection decoration. More...
|
|
void | loadAssociatedObjects (const EventContext &ctx, ObjectCache &cache) const |
| Load all associated tracks / clusters / flow elements into the cache. More...
|
|
bool | isSame (const xAOD::IParticle *particle, const xAOD::IParticle *particle1) const |
|
bool | overlap (const xAOD::IParticle *particle, const xAOD::IParticle *particle1, float dR) const |
|
float | deltaR2 (const xAOD::IParticle *particle, const xAOD::IParticle *particle1, bool AvgCalo=false) const |
|
const xAOD::Vertex * | retrieveIDBestPrimaryVertex (const EventContext &ctx) const |
|
virtual void | print () const |
| Print the state of the tool. More...
|
|
ServiceHandle< StoreGateSvc > & | evtStore () |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | evtStore () const |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | detStore () const |
| The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
virtual StatusCode | sysInitialize () override |
| Perform system initialization for an algorithm. More...
|
|
virtual StatusCode | sysStart () override |
| Handle START transition. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | inputHandles () const override |
| Return this algorithm's input handles. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | outputHandles () const override |
| Return this algorithm's output handles. More...
|
|
Gaudi::Details::PropertyBase & | declareProperty (Gaudi::Property< T > &t) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc="none") |
| Declare a new Gaudi property. More...
|
|
void | updateVHKA (Gaudi::Details::PropertyBase &) |
|
MsgStream & | msg () const |
|
MsgStream & | msg (const MSG::Level lvl) const |
|
bool | msgLvl (const MSG::Level lvl) const |
|
|
void | isoTypesFromWP (const std::vector< std::unique_ptr< IsolationWP >> &WP, IsoVector &types) |
| Helper function to load all Isolation types from the iso working points. More...
|
|
TrackSet | getAssociatedTracks (const xAOD::IParticle *P) const |
| Retrieve all Inner detector tracks associated with the primary particle. More...
|
|
TrackSet | getAssociatedTracks (const xAOD::IParticle *P, const xAOD::Vertex *vtx) const |
| Retrieve the subset of tracks passing the isolation selection. More...
|
|
void | getAssocFlowElements (const EventContext &ctx, ObjectCache &cache) const |
| Retrieve all Flow elements associated with the particles in the cache. More...
|
|
CorrectionCode | performCloseByCorrection (const EventContext &ctx, ObjectCache &cache) const |
|
void | lockDecorations (const xAOD::IParticleContainer *parts) const |
|
const IsoVector & | getIsolationTypes (const xAOD::IParticle *particle) const |
|
CorrectionCode | subtractCloseByContribution (const EventContext &ctx, const xAOD::IParticle *P, ObjectCache &cache) const |
|
CorrectionCode | getCloseByCorrectionTrackIso (const xAOD::IParticle *primary, const IsoType type, const ObjectCache &cache, float &isoValue) const |
|
CorrectionCode | getCloseByCorrectionTopoIso (const EventContext &ctx, const xAOD::IParticle *primary, const IsoType type, ObjectCache &cache, float &isoValue) const |
|
CorrectionCode | getCloseByCorrectionPflowIso (const EventContext &ctx, const xAOD::IParticle *primary, const IsoType type, const ObjectCache &cache, float &isoValue) const |
|
CorrectionCode | copyIsoValuesForPartsNotSelected (const xAOD::IParticle *part) const |
|
ClusterSet | getAssociatedClusters (const EventContext &ctx, const xAOD::IParticle *particle, ObjectCache &cache) const |
| Loads the topo clusters associated with the primary IParticle. More...
|
|
PflowSet | getAssocFlowElements (const EventContext &ctx, const xAOD::IParticle *particle) const |
| Loads the pflow elements associated with the primary IParticle. More...
|
|
bool | getExtrapEtaPhi (const EventContext &ctx, const xAOD::TrackParticle *tp, float &eta, float &phi) const |
| helper to get eta,phi of muon extrap More...
|
|
float | coneSize (const xAOD::IParticle *particle, IsoType Cone) const |
|
float | unCalibPt (const xAOD::IParticle *particle) const |
|
bool | passSelectionQuality (const xAOD::IParticle *particle) const |
|
bool | passFirstStage (const xAOD::TrackParticle *trk, const xAOD::Vertex *vtx) const |
| The Track particle has to pass the Track selection tool and the TTVA selection. More...
|
|
void | printIsolationCones (const IsoVector &types, xAOD::Type::ObjectType T) const |
|
void | declareDependency (const std::vector< std::string > &containers, const IsoVector &types) |
| Helper function to declare the data dependencies. More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &) |
| specialization for handling Gaudi::Property<SG::VarHandleKey> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyArrayType &) |
| specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleType &) |
| specialization for handling Gaudi::Property<SG::VarHandleBase> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &t, const SG::NotHandleType &) |
| specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
|
|
|
ToolHandle< InDet::IInDetTrackSelectionTool > | m_trkselTool |
|
ToolHandle< CP::ITrackVertexAssociationTool > | m_ttvaTool |
|
ToolHandle< CP::IIsolationSelectionTool > | m_selectorTool |
|
Gaudi::Property< std::string > | m_quality_name |
|
Gaudi::Property< std::string > | m_passOR_name |
|
Gaudi::Property< std::string > | m_isoSelection_name {this, "IsolationSelectionDecorator", "", "Name of the final isolation decorator."} |
|
Gaudi::Property< std::string > | m_backup_prefix |
|
Gaudi::Property< std::string > | m_isoDecSuffix |
|
Gaudi::Property< int > | m_caloModel {this, "CaloCorrectionModel", TopoConeCorrectionModel::SubtractObjectsDirectly} |
| EXPERT PROPERTIES. More...
|
|
Gaudi::Property< float > | m_coreConeEl |
|
Gaudi::Property< float > | m_coreConeMu {this, "CoreConeMuons", 0.05, "This is the size of the core cone for the topoetcone variables."} |
|
Gaudi::Property< float > | m_ptvarconeRadius {this, "PtvarconeRadius", 1.e4, "This is the kT parameter for the ptvarcone variables."} |
|
Gaudi::Property< float > | m_maxTopoPolution |
|
Gaudi::Property< float > | m_ConeSizeVariation |
|
Gaudi::Property< bool > | m_declareCaloDecors {this, "declareCaloDecors", false, "If set to true, the data dependency on the calo/pflow decors will be declared"} |
|
Gaudi::Property< std::vector< std::string > > | m_elecKeys |
| Declare the data dependencies of the Input containers. More...
|
|
Gaudi::Property< std::vector< std::string > > | m_muonKeys |
|
Gaudi::Property< std::vector< std::string > > | m_photKeys |
|
SG::ReadDecorHandleKeyArray< xAOD::IParticleContainer > | m_isoVarKeys |
|
SG::WriteDecorHandleKeyArray< xAOD::IParticleContainer > | m_isoWriteDecVarKeys |
|
ToolHandle< Trk::IParticleCaloExtensionTool > | m_caloExtTool {this, "ParticleCaloExtensionTool", "Trk::ParticleCaloExtensionTool/ParticleCaloExtensionTool"} |
| calo extension tool for muon track particle extrapolation to calo More...
|
|
SG::ReadHandleKey< xAOD::VertexContainer > | m_VtxKey |
|
SG::ReadHandleKey< xAOD::CaloClusterContainer > | m_CaloClusterKey |
|
SG::ReadHandleKey< xAOD::FlowElementContainer > | m_PflowKey |
|
IsoVector | m_muon_isoTypes {} |
| Isolation variables used by the muon working point. More...
|
|
IsoVector | m_electron_isoTypes {} |
| Isolation variables used by the electron working point. More...
|
|
IsoVector | m_photon_isoTypes {} |
| Isolation variables used by the photon working point. More...
|
|
bool | m_has_nonTTVA {false} |
| Switch whether a pile-up non robust TTVA working point is defined. More...
|
|
bool | m_hasPflowIso {false} |
| Switch whether a pflow isolation working point is defined. More...
|
|
bool | m_hasEtConeIso {false} |
| Switch whether a topoetcone isolation working point is defined. More...
|
|
bool | m_isInitialised {false} |
|
SelectionAccessor | m_acc_quality {nullptr} |
|
SelectionAccessor | m_acc_passOR {nullptr} |
|
SelectionDecorator | m_dec_isoselection {nullptr} |
|
IsoHelperMap m_isohelpers | ATLAS_THREAD_SAFE |
|
std::mutex m_isoHelpersMutex | ATLAS_THREAD_SAFE |
| Mutex to protect the map if the method with signature getCloseByCorrection(std::vector<float>& corrections, const xAOD::IParticle& par, const std::vector<xAOD::Iso::IsolationType>& types, const xAOD::IParticleContainer& closePar) is called. More...
|
|
StoreGateSvc_t | m_evtStore |
| Pointer to StoreGate (event store by default) More...
|
|
StoreGateSvc_t | m_detStore |
| Pointer to StoreGate (detector store by default) More...
|
|
std::vector< SG::VarHandleKeyArray * > | m_vhka |
|
bool | m_varHandleArraysDeclared |
|
◆ caloDecorNames
◆ IsoHelperMap
◆ PrimaryCollection
◆ StoreGateSvc_t
◆ TopoConeCorrectionModel
◆ IsolationCloseByCorrectionTool()
CP::IsolationCloseByCorrectionTool::IsolationCloseByCorrectionTool |
( |
const std::string & |
name | ) |
|
◆ acceptCorrected()
Implements CP::IIsolationCloseByCorrectionTool.
Definition at line 888 of file IsolationCloseByCorrectionTool.cxx.
893 if (iso_types.empty()) {
896 ATH_MSG_WARNING(
"Could not cast particle for acceptCorrected. Will return false.");
899 info.addCut(
"castCut",
"whether we managed to cast to a known type");
910 strPar.eta =
x.eta();
911 strPar.type =
x.type();
912 std::vector<float> corrections;
914 ATH_MSG_WARNING(
"Could not calculate the corrections. acceptCorrected(x) is done without the corrections.");
918 for (
unsigned int i = 0;
i < iso_types.size(); ++
i) {
919 strPar.isolationValues[iso_types[
i]] = corrections[
i];
921 float old = (*acc)(
x);
◆ associateCluster()
void CP::IsolationCloseByCorrectionTool::associateCluster |
( |
const xAOD::IParticle * |
particle, |
|
|
float & |
eta, |
|
|
float & |
phi, |
|
|
float & |
energy |
|
) |
| const |
|
overridevirtual |
Retrieve the associated clusters from the Particle and calculate the average eta/phi/energy.
Remove super low energy clusters
Implements CP::IIsolationCloseByCorrectionTool.
Definition at line 820 of file IsolationCloseByCorrectionTool.cxx.
827 if (!cluster)
return;
831 float etaT{0.f}, phiT{0.f}, dphiT{0.f};
845 if (!nSample)
return;
846 ATH_MSG_DEBUG(
"Eta, phi before sampling: " << eta <<
", " << phi <<
" and after sampling: " << etaT / nSample <<
", "
849 eta = etaT / nSample;
851 <<
mu->eta() <<
", phi: " <<
mu->phi() <<
" energy, eta, phi " <<
energy <<
", " << eta <<
", " << phi
865 if (!cluster)
continue;
880 << egamm->
eta() <<
", phi: " << egamm->
phi() <<
" energy, eta, phi " <<
energy <<
", " << eta <<
", " << phi );
882 ATH_MSG_DEBUG(
"Average energy from the clusters is too low " <<
energy <<
" copy particle properties");
◆ associateFlowElement()
void CP::IsolationCloseByCorrectionTool::associateFlowElement |
( |
const EventContext & |
ctx, |
|
|
const xAOD::IParticle * |
particle, |
|
|
float & |
eta, |
|
|
float & |
phi, |
|
|
float & |
energy |
|
) |
| const |
|
overridevirtual |
◆ caloDecors()
Returns an array with the calo cluster decoration ames [0]-> eta, [1]->phi, [2]->energy. [3]->isDecorated.
Definition at line 24 of file IsolationCloseByCorrectionTool.cxx.
25 return {
"IsoCloseByCorr_assocClustEta",
"IsoCloseByCorr_assocClustPhi",
"IsoCloseByCorr_assocClustEnergy",
26 "IsoCloseByCorr_assocClustDecor"};
◆ clusterEtMinusTile()
◆ coneSize()
◆ copyIsoValuesForPartsNotSelected()
◆ declareDependency()
void CP::IsolationCloseByCorrectionTool::declareDependency |
( |
const std::vector< std::string > & |
containers, |
|
|
const IsoVector & |
types |
|
) |
| |
|
private |
◆ declareGaudiProperty() [1/4]
specialization for handling Gaudi::Property<SG::VarHandleKeyArray>
Definition at line 170 of file AthCommonDataStore.h.
175 hndl.documentation());
◆ declareGaudiProperty() [2/4]
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition at line 156 of file AthCommonDataStore.h.
161 hndl.documentation());
◆ declareGaudiProperty() [3/4]
specialization for handling Gaudi::Property<SG::VarHandleBase>
Definition at line 184 of file AthCommonDataStore.h.
189 hndl.documentation());
◆ declareGaudiProperty() [4/4]
◆ declareProperty() [1/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleBase
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 245 of file AthCommonDataStore.h.
250 this->declare(hndl.
vhKey());
251 hndl.
vhKey().setOwner(
this);
253 return PBASE::declareProperty(
name,hndl,
doc);
◆ declareProperty() [2/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleKey
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 221 of file AthCommonDataStore.h.
229 return PBASE::declareProperty(
name,hndl,
doc);
◆ declareProperty() [3/6]
◆ declareProperty() [4/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This is the generic version, for types that do not derive from SG::VarHandleKey
. It just forwards to the base class version of declareProperty
.
Definition at line 333 of file AthCommonDataStore.h.
338 return PBASE::declareProperty(
name, property,
doc);
◆ declareProperty() [5/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This dispatches to either the generic declareProperty
or the one for VarHandle/Key/KeyArray.
Definition at line 352 of file AthCommonDataStore.h.
◆ declareProperty() [6/6]
◆ deltaR2()
◆ detStore()
◆ evtStore() [1/2]
◆ evtStore() [2/2]
◆ extraDeps_update_handler()
Add StoreName to extra input/output deps as needed.
use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given
◆ getAssocFlowElements() [1/2]
◆ getAssocFlowElements() [2/2]
void CP::IsolationCloseByCorrectionTool::getAssocFlowElements |
( |
const EventContext & |
ctx, |
|
|
ObjectCache & |
cache |
|
) |
| const |
|
private |
Retrieve all Flow elements associated with the particles in the cache.
Definition at line 186 of file IsolationCloseByCorrectionTool.cxx.
189 if (!readHandle.isValid())
return;
190 std::set<const xAOD::IParticle*> tombola{};
192 for (
const TrackPtr&
p : cache.tracks) tombola.insert(
p);
197 for (
size_t ch = 0;
ch <
flow->nChargedObjects(); ++
ch) {
199 if (tombola.count(
obj)) {
200 const std::vector<float>&
weights =
flow->chargedObjectWeights();
204 for (
size_t ne = 0; ne <
flow->nOtherObjects(); ++ne) {
206 if (tombola.count(
obj)) {
207 const std::vector<float>&
weights =
flow->otherObjectWeights();
209 ATH_MSG_VERBOSE(
"getAssocFlowElements: neflow " << ne <<
", " <<
obj->type() <<
", " <<
obj->pt() <<
", " <<
obj->eta() <<
", " <<
obj->phi() <<
", " <<
flow->pt() <<
", " <<
flow->eta() <<
", " <<
flow->phi());
◆ getAssociatedClusters()
Loads the topo clusters associated with the primary IParticle.
Definition at line 503 of file IsolationCloseByCorrectionTool.cxx.
510 for (
size_t calo = 0; calo < egamm->
nCaloClusters(); ++calo) {
512 if (!clust)
continue;
517 cache.eg_associated_clusters.insert(cluster);
527 if (!topoClusters.isValid())
return clusters;
532 bool foundMuonTopo =
false;
535 <<
cl->eta() <<
", phi: " <<
cl->phi());
540 if (!cache.eg_associated_clusters.contains(cluster)) {
542 foundMuonTopo =
true;
547 ATH_MSG_VERBOSE(
"getAssociatedClusters: muon topo cluster already associated with an EG objet - cluster with pt: "
553 if (!foundMuonTopo) {
554 #ifndef XAOD_ANALYSIS
558 ATH_MSG_VERBOSE(
"getAssociatedClusters: found mu tp " <<
" with pt: " <<
tp->pt() *
MeVtoGeV <<
" GeV, eta: " <<
tp->eta() <<
", phi: " <<
tp->phi());
562 ATH_MSG_VERBOSE(
"getAssociatedClusters: tp extrapolated - tpEtaAtCalo " << tpEtaAtCalo <<
", tpPhiAtCalo " << tpPhiAtCalo);
567 ATH_MSG_VERBOSE(
"getAssociatedClusters: for mu trkPart save clus " <<
" with pt: " <<
cluster->pt() *
MeVtoGeV <<
" GeV, eta: " <<
cluster->eta() <<
", phi: " <<
cluster->phi() <<
", tpEtaAtCalo " << tpEtaAtCalo <<
", tpPhiAtCalo " << tpPhiAtCalo);
◆ getAssociatedTracks() [1/2]
Retrieve all Inner detector tracks associated with the primary particle.
Definition at line 464 of file IsolationCloseByCorrectionTool.cxx.
468 if (
mu->muonType() != xAOD::Muon::SiliconAssociatedForwardMuon)
469 to_return.emplace(
mu->trackParticle(xAOD::Muon::TrackParticleType::InnerDetectorTrackParticle));
472 to_return.emplace(trk);
478 << trk->
pt() *
MeVtoGeV <<
" GeV, eta: " << trk->
eta() <<
", phi: " << trk->
phi());
479 to_return.emplace(trk);
◆ getAssociatedTracks() [2/2]
◆ getCloseByCorrection()
Check first if all isolation types are known to the tool
Implements CP::IIsolationCloseByCorrectionTool.
Definition at line 407 of file IsolationCloseByCorrectionTool.cxx.
412 ATH_MSG_ERROR(
"The IsolationCloseByCorrectionTool was not initialised!!!");
417 std::lock_guard<std::mutex> guard{m_isoHelpersMutex};
419 IsoHelperMap::const_iterator Itr = m_isohelpers.find(
t);
420 if (Itr != m_isohelpers.end()) {
continue; }
424 corrections.assign(
types.size(), 0);
427 const EventContext& ctx = Gaudi::Hive::currentContext();
431 std::lock_guard<std::mutex> guard{m_isoHelpersMutex};
432 IsoHelperMap::const_iterator Itr = m_isohelpers.find(iso_type);
◆ getCloseByCorrectionPflowIso()
Disable the correction of already isolated objects
Find the pflow elements associated with this primary
Definition at line 625 of file IsolationCloseByCorrectionTool.cxx.
633 ATH_MSG_ERROR(
"getCloseByCorrectionPflowIso() -- Could not retrieve the isolation variable.");
637 if (isoValue <= 0.) {
638 ATH_MSG_DEBUG(
"Pflow varible is already sufficiently isolated ");
642 float ref_eta{0.f}, ref_phi{0.f};
644 if (
m_caloModel == TopoConeCorrectionModel::SubtractObjectsDirectly) {
648 <<
", phi: " <<
primary->phi() <<
" before correction: " << isoValue *
MeVtoGeV <<
" GeV. ");
650 for (
const FlowElementPtr&
flow : cache.flows) {
658 if (assoc_coll.count(
flow)) {
659 ATH_MSG_VERBOSE(
"Flow element is directly associated with the object");
664 <<
" phi: " <<
flow->phi() <<
" dR: " << dR);
665 isoValue -=
flow->pt() *
flow.weight;
670 <<
", phi: " <<
primary->phi() <<
" after correction: " << isoValue *
MeVtoGeV <<
" GeV. ");
671 }
else if (
m_caloModel == TopoConeCorrectionModel::UseAveragedDecorators) {
677 if (others ==
primary)
continue;
678 if (!acc_isDecor.isAvailable(*others) || !acc_isDecor(*others)) {
679 ATH_MSG_ERROR(
"The variable energy averaged pflow decorations are not available for "<<
particleName(others)<<
". Please check");
682 const float other_eta = acc_eta(*others);
683 const float other_phi = acc_phi(*others);
685 if (dR > coneDR)
continue;
687 isoValue -= acc_ene(*others);
◆ getCloseByCorrectionTopoIso()
Disable the correction of already isolated objects
Definition at line 697 of file IsolationCloseByCorrectionTool.cxx.
705 std::lock_guard<std::mutex> guard{m_isoHelpersMutex};
711 if (isoValue <= 0.) {
712 ATH_MSG_DEBUG(
"Topo et cone variable is already sufficiently isolated");
715 float ref_eta{0.f}, ref_phi{0.f};
720 if (
m_caloModel == TopoConeCorrectionModel::SubtractObjectsDirectly) {
723 <<
", phi: " <<
primary->phi() <<
" before correction: " << isoValue *
MeVtoGeV <<
" GeV. ");
727 ATH_MSG_VERBOSE(
"getCloseByCorrectionTopoIso: Loop over cluster: " << calo->pt() *
MeVtoGeV <<
" GeV, eta: " << calo->eta() <<
" phi: " << calo->phi() <<
" dR: " << dR);
728 if (dR > MaxDR)
continue;
730 if (assoc.count(calo)) {
731 ATH_MSG_VERBOSE(
"getCloseByCorrectionTopoIso: skip due to assoc " << assoc.count(calo));
740 <<
" phi: " << calo->phi() <<
" dR: " << dR);
745 <<
", phi: " <<
primary->phi() <<
" after correction: " << isoValue *
MeVtoGeV <<
" GeV. ");
746 }
else if (
m_caloModel == TopoConeCorrectionModel::UseAveragedDecorators) {
752 if (others ==
primary)
continue;
753 if (!acc_isDecor.isAvailable(*others) || !acc_isDecor(*others)) {
757 const float other_eta = acc_eta(*others);
758 const float other_phi = acc_phi(*others);
760 if (dR > MaxDR)
continue;
762 isoValue -= acc_ene(*others);
◆ getCloseByCorrectionTrackIso()
Only check the TTVA working point again if the tool has non-TTVA working points
Definition at line 584 of file IsolationCloseByCorrectionTool.cxx.
590 std::lock_guard<std::mutex> guard{m_isoHelpersMutex};
591 IsoHelperMap::const_iterator Itr = m_isohelpers.find(
type);
595 }
else if (cache.tracks.empty())
603 <<
", phi: " <<
par->phi() <<
" before correction: " << isoValue *
MeVtoGeV <<
" GeV. "
604 << ToExclude.size() <<
" tracks will be excluded.");
606 for (
const TrackPtr& poluting_trk : cache.tracks) {
612 if (
overlap(Ref, poluting_trk, MaxDR) && !ToExclude.count(poluting_trk)) {
614 << poluting_trk->pt() *
MeVtoGeV <<
" GeV, eta: " << poluting_trk->eta() <<
", phi: " << poluting_trk->phi()
615 <<
" with dR: " << std::sqrt(
deltaR2(Ref, poluting_trk)) <<
" from the isolation cone " <<
toString(
type)
616 <<
" " << (isoValue *
MeVtoGeV) <<
" GeV.");
617 isoValue -= poluting_trk->pt();
622 <<
", phi: " <<
par->phi() <<
" after correction: " << isoValue *
MeVtoGeV <<
" GeV");
◆ getCloseByIsoCorrection()
◆ getExtrapEtaPhi() [1/2]
bool CP::IsolationCloseByCorrectionTool::getExtrapEtaPhi |
( |
const EventContext & |
ctx, |
|
|
const xAOD::TrackParticle * |
tp, |
|
|
float & |
eta, |
|
|
float & |
phi |
|
) |
| const |
|
private |
helper to get eta,phi of muon extrap
try the extention in athena if it's not obtained from muon yet.
if still not got the updated eta & phi
Definition at line 216 of file IsolationCloseByCorrectionTool.cxx.
221 std::unique_ptr<Trk::CaloExtension> caloExtension;
229 if(!intersections.empty()){
231 for (
unsigned int i = 0;
i < intersections.size(); ++
i){
235 avePoint = (1./intersections.size())*avePoint;
236 eta = avePoint.eta();
237 phi = avePoint.phi();
◆ getExtrapEtaPhi() [2/2]
void CP::IsolationCloseByCorrectionTool::getExtrapEtaPhi |
( |
const xAOD::IParticle * |
particlear, |
|
|
float & |
eta, |
|
|
float & |
phi |
|
) |
| const |
◆ getIsolationTypes()
◆ getKey()
Get the (hashed) key of an object that is in the event store.
This is a bit of a special one. StoreGateSvc
and xAOD::TEvent
both provide ways for getting the SG::sgkey_t
key for an object that is in the store, based on a bare pointer. But they provide different interfaces for doing so.
In order to allow tools to efficiently perform this operation, they can use this helper function.
- See also
- asg::AsgTool::getName
- Parameters
-
ptr | The bare pointer to the object that the event store should know about |
- Returns
- The hashed key of the object in the store. If not found, an invalid (zero) key.
Definition at line 119 of file AsgTool.cxx.
121 #ifdef XAOD_STANDALONE
127 return (
proxy ==
nullptr ? 0 :
proxy->sgkey() );
128 #endif // XAOD_STANDALONE
◆ getName()
const std::string & asg::AsgTool::getName |
( |
const void * |
ptr | ) |
const |
|
inherited |
Get the name of an object that is / should be in the event store.
This is a bit of a special one. StoreGateSvc
and xAOD::TEvent
both provide ways for getting the std::string
name for an object that is in the store, based on a bare pointer. But they provide different interfaces for doing so.
In order to allow tools to efficiently perform this operation, they can use this helper function.
- See also
- asg::AsgTool::getKey
- Parameters
-
ptr | The bare pointer to the object that the event store should know about |
- Returns
- The string name of the object in the store. If not found, an empty string.
Definition at line 106 of file AsgTool.cxx.
108 #ifdef XAOD_STANDALONE
114 static const std::string
dummy =
"";
116 #endif // XAOD_STANDALONE
◆ getOriginalIsolation() [1/2]
◆ getOriginalIsolation() [2/2]
◆ getProperty()
template<class T >
const T* asg::AsgTool::getProperty |
( |
const std::string & |
name | ) |
const |
|
inherited |
Get one of the tool's properties.
◆ getTrackCandidates()
◆ initialize()
StatusCode CP::IsolationCloseByCorrectionTool::initialize |
( |
| ) |
|
|
overridevirtual |
Dummy implementation of the initialisation function.
It's here to allow the dual-use tools to skip defining an initialisation function. Since many are doing so...
Retrieve the isolation tool and load the isolation cones
Setup the data dependency
Same holds for the TTVA selection tool
Reimplemented from asg::AsgTool.
Definition at line 37 of file IsolationCloseByCorrectionTool.cxx.
60 ATH_MSG_WARNING(
"The ParticleCaloExtensionTool was not configured. Pleease include it!!!");
71 ATH_MSG_INFO(
"No TrackSelectionTool provided, so I will create and configure my own, called: " <<
config.name());
85 ATH_CHECK(
config.setProperty(
"WorkingPoint",
"Nonprompt_All_MaxWeight"));
95 return StatusCode::SUCCESS;
◆ inputHandles()
Return this algorithm's input handles.
We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.
◆ isEgamma()
◆ isFixedTrackIso()
◆ isFixedTrackIsoTTVA()
◆ isoRefParticle()
◆ isoTypesFromWP()
void CP::IsolationCloseByCorrectionTool::isoTypesFromWP |
( |
const std::vector< std::unique_ptr< IsolationWP >> & |
WP, |
|
|
IsoVector & |
types |
|
) |
| |
|
private |
Helper function to load all Isolation types from the iso working points.
Definition at line 97 of file IsolationCloseByCorrectionTool.cxx.
99 for (
const std::unique_ptr<IsolationWP>&
W :
WPs) {
100 for (
const std::unique_ptr<IsolationCondition>& C :
W->conditions()) {
101 for (
unsigned int t = 0;
t <
C->num_types(); ++
t) {
104 if (m_isohelpers.find(iso_type) == m_isohelpers.end()) {
111 [](
const IsolationType&
t) { return isTrackIso(t) && !isTrackIsoTTVA(t); }) !=
types.end();
◆ isPFlowIso()
◆ isSame()
◆ isTopoEtIso()
◆ isTrackIso()
◆ isTrackIsoTTVA()
◆ isVarTrackIso()
◆ isVarTrackIsoTTVA()
◆ loadAssociatedObjects()
void CP::IsolationCloseByCorrectionTool::loadAssociatedObjects |
( |
const EventContext & |
ctx, |
|
|
ObjectCache & |
cache |
|
) |
| const |
Load all associated tracks / clusters / flow elements into the cache.
Definition at line 162 of file IsolationCloseByCorrectionTool.cxx.
170 if (!
isLRT.isAvailable(*prim) || !
isLRT(*prim) ) {
172 cache.tracks.insert(tracks.begin(), tracks.end());
◆ loadPrimaryParticles()
Filter all electrons/muons/photons from the collection which pass the selection decoration.
Definition at line 136 of file IsolationCloseByCorrectionTool.cxx.
137 if (!container)
return;
141 if (iso_types.empty()) {
ATH_MSG_DEBUG(
"No isolation types have been defined for particle type " <<
particleName(particle)); }
143 std::lock_guard<std::mutex> guard{m_isoHelpersMutex};
144 IsoHelperMap::const_iterator Itr = m_isohelpers.find(
type);
146 ATH_MSG_WARNING(
"Failed to properly access the vanilla isolation variable "
155 cache.not_sel_parts.insert(particle);
158 cache.prim_parts.insert(particle);
◆ lockDecorations()
Definition at line 319 of file IsolationCloseByCorrectionTool.cxx.
321 std::lock_guard<std::mutex> guard{m_isoHelpersMutex};
322 for (
const auto&
p : m_isohelpers) {
325 p.second->lockDecorations(*
part->container());
329 p.second->lockDecorations(*
parts);
◆ msg() [1/2]
◆ msg() [2/2]
◆ msg_level_name()
const std::string & asg::AsgTool::msg_level_name |
( |
| ) |
const |
|
inherited |
A deprecated function for getting the message level's name.
Instead of using this, weirdly named function, user code should get the string name of the current minimum message level (in case they really need it...), with:
MSG::name( msg().level() )
This function's name doesn't follow the ATLAS coding rules, and as such will be removed in the not too distant future.
- Returns
- The string name of the current minimum message level that's printed
Definition at line 101 of file AsgTool.cxx.
◆ msgLvl()
◆ outputHandles()
Return this algorithm's output handles.
We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.
◆ overlap()
◆ particleName() [1/2]
◆ particleName() [2/2]
◆ passFirstStage()
The Track particle has to pass the Track selection tool and the TTVA selection.
The latter only applies if there's no WP floating around using the legacy ptcone variables
Definition at line 461 of file IsolationCloseByCorrectionTool.cxx.
◆ passSelectionQuality()
bool CP::IsolationCloseByCorrectionTool::passSelectionQuality |
( |
const xAOD::IParticle * |
particle | ) |
const |
|
private |
◆ performCloseByCorrection()
◆ pflowDecors()
Definition at line 28 of file IsolationCloseByCorrectionTool.cxx.
29 return {
"IsoCloseByCorr_assocPflowEta",
"IsoCloseByCorr_assocPflowPhi",
"IsoCloseByCorr_assocPflowEnergy",
30 "IsoCloseByCorr_assocPflowDecor"};
◆ print()
void asg::AsgTool::print |
( |
| ) |
const |
|
virtualinherited |
Print the state of the tool.
Implements asg::IAsgTool.
Reimplemented in JetRecTool, JetFinder, JetModifiedMassDrop, JetFromPseudojet, JetReclusterer, JetReclusteringTool, JetTruthLabelingTool, JetPileupLabelingTool, HI::HIPileupTool, JetDumper, JetBottomUpSoftDrop, JetRecursiveSoftDrop, JetSoftDrop, JetConstituentsRetriever, JetSubStructureMomentToolsBase, JetSplitter, JetToolRunner, JetPruner, JetPseudojetRetriever, JetTrimmer, AsgHelloTool, and KtDeltaRTool.
Definition at line 131 of file AsgTool.cxx.
◆ printIsolationCones()
◆ renounce()
◆ renounceArray()
◆ retrieveIDBestPrimaryVertex()
const xAOD::Vertex * CP::IsolationCloseByCorrectionTool::retrieveIDBestPrimaryVertex |
( |
const EventContext & |
ctx | ) |
const |
◆ subtractCloseByContribution()
Definition at line 345 of file IsolationCloseByCorrectionTool.cxx.
354 float iso_variable{0.f};
371 ATH_MSG_DEBUG(
"subtractCloseByContribution: Set pt, eta, phi " <<
par->pt() <<
", " <<
par->eta() <<
", " <<
par->phi() <<
" for " <<
toString(iso_type) <<
" to " << iso_variable);
372 std::lock_guard<std::mutex> guard{m_isoHelpersMutex};
◆ sysInitialize()
◆ sysStart()
Handle START transition.
We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.
◆ trackPtCut()
◆ unCalibPt()
◆ updateVHKA()
◆ ATLAS_THREAD_SAFE [1/2]
IsoHelperMap m_isohelpers CP::IsolationCloseByCorrectionTool::ATLAS_THREAD_SAFE |
|
mutableprivate |
◆ ATLAS_THREAD_SAFE [2/2]
std::mutex m_isoHelpersMutex CP::IsolationCloseByCorrectionTool::ATLAS_THREAD_SAFE |
|
mutableprivate |
◆ m_acc_passOR
◆ m_acc_quality
◆ m_backup_prefix
Gaudi::Property<std::string> CP::IsolationCloseByCorrectionTool::m_backup_prefix |
|
private |
Initial value:{
this, "BackupPrefix", "", "Prefix in front of the isolation variables, if the original cone values need to be backuped"}
Definition at line 219 of file IsolationCloseByCorrectionTool.h.
◆ m_CaloClusterKey
Initial value:{this, "CaloClusterContainer", "CaloCalTopoClusters",
"Name of the primary calo cluster container"}
Definition at line 279 of file IsolationCloseByCorrectionTool.h.
◆ m_caloExtTool
◆ m_caloModel
Gaudi::Property<int> CP::IsolationCloseByCorrectionTool::m_caloModel {this, "CaloCorrectionModel", TopoConeCorrectionModel::SubtractObjectsDirectly} |
|
private |
◆ m_ConeSizeVariation
Gaudi::Property<float> CP::IsolationCloseByCorrectionTool::m_ConeSizeVariation |
|
private |
Initial value:{
this, "ExtrapolationConeSize", 1.2,
"Constant factor to be multiplied on top of the topo-etcone size if the reference particle is not a calorimeter particle in "
"order to account for extrapolation effects"}
Definition at line 249 of file IsolationCloseByCorrectionTool.h.
◆ m_coreConeEl
Gaudi::Property<float> CP::IsolationCloseByCorrectionTool::m_coreConeEl |
|
private |
Initial value:{this, "CoreConeElectrons", 0.1,
"This is the size of the core cone for the topoetcone variables."}
Definition at line 229 of file IsolationCloseByCorrectionTool.h.
◆ m_coreConeMu
Gaudi::Property<float> CP::IsolationCloseByCorrectionTool::m_coreConeMu {this, "CoreConeMuons", 0.05, "This is the size of the core cone for the topoetcone variables."} |
|
private |
◆ m_dec_isoselection
◆ m_declareCaloDecors
Gaudi::Property<bool> CP::IsolationCloseByCorrectionTool::m_declareCaloDecors {this, "declareCaloDecors", false, "If set to true, the data dependency on the calo/pflow decors will be declared"} |
|
private |
◆ m_detStore
◆ m_elecKeys
Gaudi::Property<std::vector<std::string> > CP::IsolationCloseByCorrectionTool::m_elecKeys |
|
private |
Initial value:{
this, "EleContainers", {}, "Pipe the list of electron containers given later to the tool"}
Declare the data dependencies of the Input containers.
The isolation variables used in the working point calculation are declared to the avalanche scheduler. This is not needed for the AthAnalysis nor AnalysisBase releases.
Definition at line 259 of file IsolationCloseByCorrectionTool.h.
◆ m_electron_isoTypes
IsoVector CP::IsolationCloseByCorrectionTool::m_electron_isoTypes {} |
|
private |
◆ m_evtStore
◆ m_has_nonTTVA
bool CP::IsolationCloseByCorrectionTool::m_has_nonTTVA {false} |
|
private |
◆ m_hasEtConeIso
bool CP::IsolationCloseByCorrectionTool::m_hasEtConeIso {false} |
|
private |
◆ m_hasPflowIso
bool CP::IsolationCloseByCorrectionTool::m_hasPflowIso {false} |
|
private |
◆ m_isInitialised
bool CP::IsolationCloseByCorrectionTool::m_isInitialised {false} |
|
private |
◆ m_isoDecSuffix
Gaudi::Property<std::string> CP::IsolationCloseByCorrectionTool::m_isoDecSuffix |
|
private |
Initial value:{
this, "IsoDecSuffix", "", "Suffix added to output isolation variable nanes for close by corrections"}
Definition at line 222 of file IsolationCloseByCorrectionTool.h.
◆ m_isoSelection_name
Gaudi::Property<std::string> CP::IsolationCloseByCorrectionTool::m_isoSelection_name {this, "IsolationSelectionDecorator", "", "Name of the final isolation decorator."} |
|
private |
◆ m_isoVarKeys
◆ m_isoWriteDecVarKeys
◆ m_maxTopoPolution
Gaudi::Property<float> CP::IsolationCloseByCorrectionTool::m_maxTopoPolution |
|
private |
Initial value:{
this, "MaxClusterFrac", 1.1,
"Maximum energy fraction a single cluster can make up to be considered as contributed to the isolation"}
Definition at line 245 of file IsolationCloseByCorrectionTool.h.
◆ m_muon_isoTypes
IsoVector CP::IsolationCloseByCorrectionTool::m_muon_isoTypes {} |
|
private |
◆ m_muonKeys
Gaudi::Property<std::vector<std::string> > CP::IsolationCloseByCorrectionTool::m_muonKeys |
|
private |
◆ m_passOR_name
Gaudi::Property<std::string> CP::IsolationCloseByCorrectionTool::m_passOR_name |
|
private |
◆ m_PflowKey
◆ m_photKeys
Gaudi::Property<std::vector<std::string> > CP::IsolationCloseByCorrectionTool::m_photKeys |
|
private |
◆ m_photon_isoTypes
IsoVector CP::IsolationCloseByCorrectionTool::m_photon_isoTypes {} |
|
private |
◆ m_ptvarconeRadius
Gaudi::Property<float> CP::IsolationCloseByCorrectionTool::m_ptvarconeRadius {this, "PtvarconeRadius", 1.e4, "This is the kT parameter for the ptvarcone variables."} |
|
private |
◆ m_quality_name
Gaudi::Property<std::string> CP::IsolationCloseByCorrectionTool::m_quality_name |
|
private |
Initial value:{
this, "SelectionDecorator", "",
"Name of the char auxdata defining whether the particle shall be considered for iso correction"}
Definition at line 212 of file IsolationCloseByCorrectionTool.h.
◆ m_selectorTool
◆ m_trkselTool
Initial value:{
this, "TrackSelectionTool", "", "TrackSelectionTool to select tracks which made it actually into the isolation"}
Definition at line 203 of file IsolationCloseByCorrectionTool.h.
◆ m_ttvaTool
◆ m_varHandleArraysDeclared
◆ m_vhka
◆ m_VtxKey
The documentation for this class was generated from the following files:
JetConstituentVector::iterator iterator
virtual double phi() const
The azimuthal angle ( ) of the particle.
virtual double pt() const override final
The transverse momentum ( ) of the particle.
@ topoetcone
Topo-cluster ET-sum.
constexpr ParticleHypothesis particle[PARTICLEHYPOTHESES]
the array of masses
Electron_v1 Electron
Definition of the current "egamma version".
std::vector< const xAOD::CaloCluster * > getAssociatedTopoClusters(const xAOD::CaloCluster *cluster)
Return a vector of all the topo clusters associated with the egamma cluster.
std::string find(const std::string &s)
return a remapped string
Helper class to provide type-safe access to aux data.
@ VIEW_ELEMENTS
this data object is a view, it does not own its elmts
IsolationFlavour
Enumeration for different ways of calculating isolation in xAOD files.
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
virtual double e() const override final
The total energy of the particle.
virtual double eta() const override final
The pseudorapidity ( ) of the particle.
StatusCode accept(const xAOD::Muon *mu)
std::set< FlowElementPtr > PflowSet
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
std::set< TrackPtr > TrackSet
std::vector< SG::VarHandleKeyArray * > m_vhka
double deltaPhi(double phiA, double phiB)
delta Phi in range [-pi,pi[
setEt setPhi setE277 setWeta2 eta1
std::set< const xAOD::TrackParticle * > getTrackParticles(const xAOD::Egamma *eg, bool useBremAssoc=true, bool allParticles=true)
Return a list of all or only the best TrackParticle associated to the object.
SG::AuxElement::Decorator< char > CharDecorator
@ neflowisol
neutral eflow
#define ATH_MSG_VERBOSE(x)
double deltaR2(double rapidity1, double phi1, double rapidity2, double phi2)
from bare rapidity,phi
bool empty() const
Test if the key is blank.
xAOD::Iso::IsolationType IsoType
Class providing the definition of the 4-vector interface.
SortedObjPtr< xAOD::CaloCluster > CaloClusterPtr
size_t nCaloClusters() const
Return the number of xAOD::CaloClusters that define the electron candidate.
SG::AuxElement::Decorator< float > FloatDecorator
CaloCluster_v1 CaloCluster
Define the latest version of the calorimeter cluster class.
virtual void setOwner(IDataHandleHolder *o)=0
TrackParticle_v1 TrackParticle
Reference the current persistent version:
ServiceHandle< StoreGateSvc > & evtStore()
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
@ OutOfValidityRange
Input object is out of validity range.
@ Error
Some error happened during the object correction.
Description of a calorimeter cluster.
@ ptvarcone
mini isolation
std::string toString(const Translation3D &translation, int precision=4)
GeoPrimitvesToStringConverter.
@ ptvarcone_Nonprompt_All_MaxWeightTTVALooseCone_pt1000
int flow(const T &a, int i)
containers
Associate the close-by pflow objects and the calorimeter clusters.
virtual double eta() const
The pseudorapidity ( ) of the particle.
double deltaR(double rapidity1, double phi1, double rapidity2, double phi2)
from bare bare rapidity,phi
IsolationType
Overall enumeration for isolation types in xAOD files.
bool dPhi(const xAOD::TauJet &tau, const xAOD::TauTrack &track, double &out)
@ ptcone_Nonprompt_All_MaxWeightTTVALooseCone_pt500
ptcone for high mu
const xAOD::CaloCluster * caloCluster(size_t index=0) const
Pointer to the xAOD::CaloCluster/s that define the electron candidate.
@ ptcone_Nonprompt_All_MaxWeightTTVA_pt500
ptcone for high mu
const std::string & name(Level lvl)
Convenience function for translating message levels to strings.
@ ptvarcone_Nonprompt_All_MaxWeightTTVALooseCone_pt500
virtual double phi() const override final
The azimuthal angle ( ) of the particle.
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
const SG::AuxElement::Accessor< float > * getIsolationAccessor(Iso::IsolationType type)
Get the Accessor object for a given isolation type.
virtual void renounce()=0
IsolationFlavour isolationFlavour(IsolationType type)
convert Isolation Type into Isolation Flavour
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
@ ptvarcone_Nonprompt_All_MaxWeightTTVA_pt1000
Eigen::Matrix< double, 3, 1 > Vector3D
@ ptcone_Nonprompt_All_MaxWeightTTVALooseCone_pt1000
Photon_v1 Photon
Definition of the current "egamma version".
std::set< CaloClusterPtr > ClusterSet
struct TBPatternUnitContext Muon
@ Ok
The correction was done successfully.
Class describing a Vertex.
#define ATH_MSG_WARNING(x)
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
virtual double pt() const override final
The transverse momentum ( ) of the particle.
SG::AuxElement::ConstAccessor< float > FloatAccessor
virtual double eta() const override final
The pseudorapidity ( ) of the particle.
constexpr float MinClusterEnergy
Class describing a TrackParticle.
const IParticle * getOriginalObject(const IParticle ©)
This function can be used to conveniently get a pointer back to the original object from which a copy...
const std::vector< CurvilinearParameters > & caloLayerIntersections() const
access to the intersections with the calorimeter layers.
virtual Type::ObjectType type() const
The type of the object as a simple enumeration.
bool dEta(const xAOD::TauJet &tau, const xAOD::TauTrack &track, double &out)
setBGCode setTAP setLVL2ErrorBits bool
float coneSize(IsolationConeSize type)
convert Isolation Size into cone size
cl
print [x.__class__ for x in toList(dqregion.getSubRegions()) ]
@ ptcone_Nonprompt_All_MaxWeightTTVA_pt1000
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
@ ptvarcone_Nonprompt_All_MaxWeightTTVA_pt500
ptvarcone for high mu
std::vector< IsoType > IsoVector
bool empty() const noexcept
Returns true if the collection is empty.
SortedObjPtr< xAOD::TrackParticle > TrackPtr
virtual double phi() const override final
The azimuthal angle ( ) of the particle (has range to .)
SG::AuxElement::ConstAccessor< char > CharAccessor
A detector object made of other lower level object(s)