|
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 |
|
const IsoVector & | getIsolationTypes (const xAOD::IParticle *particle) const |
|
CorrectionCode | subtractCloseByContribution (const EventContext &ctx, const xAOD::IParticle *P, const 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, const 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) 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 850 of file IsolationCloseByCorrectionTool.cxx.
855 if (iso_types.empty()) {
858 ATH_MSG_WARNING(
"Could not cast particle for acceptCorrected. Will return false.");
861 info.addCut(
"castCut",
"whether we managed to cast to a known type");
872 strPar.eta =
x.eta();
873 strPar.type =
x.type();
874 std::vector<float> corrections;
876 ATH_MSG_WARNING(
"Could not calculate the corrections. acceptCorrected(x) is done without the corrections.");
880 for (
unsigned int i = 0;
i < iso_types.size(); ++
i) {
881 strPar.isolationValues[iso_types[
i]] = corrections[
i];
883 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 782 of file IsolationCloseByCorrectionTool.cxx.
789 if (!cluster)
return;
793 float etaT{0.f}, phiT{0.f}, dphiT{0.f};
807 if (!nSample)
return;
808 ATH_MSG_DEBUG(
"Eta, phi before sampling: " << eta <<
", " << phi <<
" and after sampling: " << etaT / nSample <<
", "
811 eta = etaT / nSample;
813 <<
mu->eta() <<
", phi: " <<
mu->phi() <<
" energy, eta, phi " <<
energy <<
", " << eta <<
", " << phi
827 if (!cluster)
continue;
831 eta += cluster->
eta() * clus_e;
832 phi += cluster->
phi() * clus_e;
835 << cluster->
eta() <<
", phi: " << cluster->
phi());
842 << egamm->
eta() <<
", phi: " << egamm->
phi() <<
" energy, eta, phi " <<
energy <<
", " << eta <<
", " << phi );
844 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()
Definition at line 975 of file IsolationCloseByCorrectionTool.cxx.
979 Et = cluster->p4(xAOD::CaloCluster::State::UNCALIBRATED).Et();
981 std::cosh(cluster->p4(xAOD::CaloCluster::State::UNCALIBRATED).Eta());
982 }
catch (...) { Et = cluster->p4().Et(); }
◆ 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 185 of file IsolationCloseByCorrectionTool.cxx.
188 if (!readHandle.isValid())
return;
189 std::set<const xAOD::IParticle*> tombola{};
191 for (
const TrackPtr&
p : cache.tracks) tombola.insert(
p);
196 for (
size_t ch = 0;
ch <
flow->nChargedObjects(); ++
ch) {
198 if (tombola.count(
obj)) {
199 const std::vector<float>&
weights =
flow->chargedObjectWeights();
203 for (
size_t ne = 0; ne <
flow->nOtherObjects(); ++ne) {
205 if (tombola.count(
obj)) {
206 const std::vector<float>&
weights =
flow->otherObjectWeights();
208 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 466 of file IsolationCloseByCorrectionTool.cxx.
469 static const CharDecorator acc_isAssociatedToEG{
"isAssociatedToEG"};
473 for (
size_t calo = 0; calo < egamm->
nCaloClusters(); ++calo) {
475 if (!clust)
continue;
478 if (cluster && std::abs(cluster->eta()) < 7. && cluster->e() >
MinClusterEnergy) {
480 acc_isAssociatedToEG(*cluster) =
true;
481 ATH_MSG_VERBOSE(
"getAssociatedClusters: " <<
P->type() <<
" has topo cluster with pt: " << cluster->pt() *
MeVtoGeV <<
" GeV, eta: "
482 << cluster->eta() <<
", phi: " << cluster->phi()
483 <<
", isAssociatedToEG: " << (
int)acc_isAssociatedToEG(*cluster));
491 if (!topoClusters.isValid())
return clusters;
496 bool foundMuonTopo =
false;
499 <<
cl->eta() <<
", phi: " <<
cl->phi());
502 if (cluster && std::abs(cluster->eta()) < 7. && cluster->e() >
MinClusterEnergy) {
504 if (!acc_isAssociatedToEG.isAvailable(*cluster) || !acc_isAssociatedToEG(*cluster)) {
506 foundMuonTopo =
true;
507 ATH_MSG_VERBOSE(
"getAssociatedClusters: muon has topo cluster with pt: " << cluster->pt() *
MeVtoGeV <<
" GeV, eta: "
508 << cluster->eta() <<
", phi: " << cluster->phi());
511 ATH_MSG_VERBOSE(
"getAssociatedClusters: muon topo cluster already associated with an EG objet - cluster with pt: "
512 << cluster->pt() *
MeVtoGeV <<
" GeV, eta: " << cluster->eta() <<
", phi: " << cluster->phi());
517 if (!foundMuonTopo) {
518 #ifndef XAOD_ANALYSIS
522 ATH_MSG_VERBOSE(
"getAssociatedClusters: found mu tp " <<
" with pt: " <<
tp->pt() *
MeVtoGeV <<
" GeV, eta: " <<
tp->eta() <<
", phi: " <<
tp->phi());
526 ATH_MSG_VERBOSE(
"getAssociatedClusters: tp extrapolated - tpEtaAtCalo " << tpEtaAtCalo <<
", tpPhiAtCalo " << tpPhiAtCalo);
528 if (cluster && std::abs(cluster->eta()) < 7. && cluster->e() >
MinClusterEnergy &&
531 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 427 of file IsolationCloseByCorrectionTool.cxx.
431 if (
mu->muonType() != xAOD::Muon::SiliconAssociatedForwardMuon)
432 to_return.emplace(
mu->trackParticle(xAOD::Muon::TrackParticleType::InnerDetectorTrackParticle));
435 to_return.emplace(trk);
441 << trk->
pt() *
MeVtoGeV <<
" GeV, eta: " << trk->
eta() <<
", phi: " << trk->
phi());
442 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 372 of file IsolationCloseByCorrectionTool.cxx.
376 ATH_MSG_ERROR(
"The IsolationCloseByCorrectionTool was not initialised!!!");
381 std::lock_guard<std::mutex> guard{m_isoHelpersMutex};
383 IsoHelperMap::const_iterator Itr = m_isohelpers.find(
t);
384 if (Itr != m_isohelpers.end()) {
continue; }
388 corrections.assign(
types.size(), 0);
391 const EventContext& ctx = Gaudi::Hive::currentContext();
395 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 588 of file IsolationCloseByCorrectionTool.cxx.
596 ATH_MSG_ERROR(
"getCloseByCorrectionPflowIso() -- Could not retrieve the isolation variable.");
600 if (isoValue <= 0.) {
601 ATH_MSG_DEBUG(
"Pflow varible is already sufficiently isolated ");
605 float ref_eta{0.f}, ref_phi{0.f};
607 if (
m_caloModel == TopoConeCorrectionModel::SubtractObjectsDirectly) {
611 <<
", phi: " <<
primary->phi() <<
" before correction: " << isoValue *
MeVtoGeV <<
" GeV. ");
613 for (
const FlowElementPtr&
flow : cache.flows) {
621 if (assoc_coll.count(
flow)) {
622 ATH_MSG_VERBOSE(
"Flow element is directly associated with the object");
627 <<
" phi: " <<
flow->phi() <<
" dR: " << dR);
628 isoValue -=
flow->pt() *
flow.weight;
633 <<
", phi: " <<
primary->phi() <<
" after correction: " << isoValue *
MeVtoGeV <<
" GeV. ");
634 }
else if (
m_caloModel == TopoConeCorrectionModel::UseAveragedDecorators) {
640 if (others ==
primary)
continue;
641 if (!acc_isDecor.isAvailable(*others) || !acc_isDecor(*others)) {
642 ATH_MSG_ERROR(
"The variable energy averaged pflow decorations are not available for "<<
particleName(others)<<
". Please check");
645 const float other_eta = acc_eta(*others);
646 const float other_phi = acc_phi(*others);
648 if (dR > coneDR)
continue;
650 isoValue -= acc_ene(*others);
◆ getCloseByCorrectionTopoIso()
Disable the correction of already isolated objects
Definition at line 660 of file IsolationCloseByCorrectionTool.cxx.
673 if (isoValue <= 0.) {
674 ATH_MSG_DEBUG(
"Topo et cone variable is already sufficiently isolated");
677 float ref_eta{0.f}, ref_phi{0.f};
682 if (
m_caloModel == TopoConeCorrectionModel::SubtractObjectsDirectly) {
685 <<
", phi: " <<
primary->phi() <<
" before correction: " << isoValue *
MeVtoGeV <<
" GeV. ");
689 ATH_MSG_VERBOSE(
"getCloseByCorrectionTopoIso: Loop over cluster: " << calo->pt() *
MeVtoGeV <<
" GeV, eta: " << calo->eta() <<
" phi: " << calo->phi() <<
" dR: " << dR);
690 if (dR > MaxDR)
continue;
692 if (assoc.count(calo)) {
693 ATH_MSG_VERBOSE(
"getCloseByCorrectionTopoIso: skip due to assoc " << assoc.count(calo));
702 <<
" phi: " << calo->phi() <<
" dR: " << dR);
707 <<
", phi: " <<
primary->phi() <<
" after correction: " << isoValue *
MeVtoGeV <<
" GeV. ");
708 }
else if (
m_caloModel == TopoConeCorrectionModel::UseAveragedDecorators) {
714 if (others ==
primary)
continue;
715 if (!acc_isDecor.isAvailable(*others) || !acc_isDecor(*others)) {
719 const float other_eta = acc_eta(*others);
720 const float other_phi = acc_phi(*others);
722 if (dR > MaxDR)
continue;
724 isoValue -= acc_ene(*others);
◆ getCloseByCorrectionTrackIso()
Only check the TTVA working point again if the tool has non-TTVA working points
Definition at line 548 of file IsolationCloseByCorrectionTool.cxx.
554 IsoHelperMap::const_iterator Itr = m_isohelpers.find(
type);
558 }
else if (cache.tracks.empty())
566 <<
", phi: " <<
par->phi() <<
" before correction: " << isoValue *
MeVtoGeV <<
" GeV. "
567 << ToExclude.size() <<
" tracks will be excluded.");
569 for (
const TrackPtr& poluting_trk : cache.tracks) {
575 if (
overlap(Ref, poluting_trk, MaxDR) && !ToExclude.count(poluting_trk)) {
577 << poluting_trk->pt() *
MeVtoGeV <<
" GeV, eta: " << poluting_trk->eta() <<
", phi: " << poluting_trk->phi()
578 <<
" with dR: " << std::sqrt(
deltaR2(Ref, poluting_trk)) <<
" from the isolation cone " <<
toString(
type)
579 <<
" " << (isoValue *
MeVtoGeV) <<
" GeV.");
580 isoValue -= poluting_trk->pt();
585 <<
", 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 215 of file IsolationCloseByCorrectionTool.cxx.
220 std::unique_ptr<Trk::CaloExtension> caloExtension;
228 if(!intersections.empty()){
230 for (
unsigned int i = 0;
i < intersections.size(); ++
i){
234 avePoint = (1./intersections.size())*avePoint;
235 eta = avePoint.eta();
236 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 161 of file IsolationCloseByCorrectionTool.cxx.
169 if (!
isLRT.isAvailable(*prim) || !
isLRT(*prim) ) {
171 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;
143 IsoHelperMap::const_iterator Itr = m_isohelpers.find(
type);
145 ATH_MSG_WARNING(
"Failed to properly access the vanilla isolation variable "
154 cache.not_sel_parts.insert(
particle);
◆ 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 424 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()
◆ 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 214 of file IsolationCloseByCorrectionTool.h.
◆ m_CaloClusterKey
Initial value:{this, "CaloClusterContainer", "CaloCalTopoClusters",
"Name of the primary calo cluster container"}
Definition at line 274 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 244 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 224 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 254 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 217 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 240 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 207 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 198 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.
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
float etaSample(const CaloSample sampling) const
Retrieve barycenter in a given sample.
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.
float phiSample(const CaloSample sampling) const
Retrieve barycenter in a given sample.
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
virtual double pt() const
The transverse momentum ( ) of the particle (negative for negative-energy clusters)
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 hasSampling(const CaloSample s) const
Checks if certain smapling contributes to cluster.
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>
virtual double e() const
The total energy of the particle.
@ 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)