 |
ATLAS Offline Software
|
#include <METPhotonAssociator.h>
|
| METPhotonAssociator (const std::string &name) |
|
| ~METPhotonAssociator ()=default |
|
virtual StatusCode | initialize () override |
| Dummy implementation of the initialisation function. More...
|
|
StatusCode | finalize () |
|
virtual StatusCode | execute (xAOD::MissingETContainer *metCont, xAOD::MissingETAssociationMap *metMap) const override |
|
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, V, H > &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 |
|
|
StatusCode | executeTool (xAOD::MissingETContainer *metCont, xAOD::MissingETAssociationMap *metMap) const final |
|
StatusCode | extractTopoClusters (const xAOD::IParticle *obj, std::vector< const xAOD::IParticle * > &tclist, const met::METAssociator::ConstitHolder &constits) const final |
|
StatusCode | extractPFO (const xAOD::IParticle *obj, std::vector< const xAOD::IParticle * > &pfolist, const met::METAssociator::ConstitHolder &constits, std::map< const xAOD::IParticle *, MissingETBase::Types::constvec_t > &momenta) const final |
|
StatusCode | extractPFOsFromLinks (const xAOD::Egamma *eg, std::vector< const xAOD::IParticle * > &pfolist, const met::METAssociator::ConstitHolder &constits) const |
|
StatusCode | extractPFOs (const xAOD::Egamma *eg, std::vector< const xAOD::IParticle * > &pfolist, const met::METAssociator::ConstitHolder &constits) const |
|
StatusCode | extractFE (const xAOD::IParticle *obj, std::vector< const xAOD::IParticle * > &felist, const met::METAssociator::ConstitHolder &constits, std::map< const xAOD::IParticle *, MissingETBase::Types::constvec_t > &momenta) const final |
|
StatusCode | extractFEsFromLinks (const xAOD::Egamma *eg, std::vector< const xAOD::IParticle * > &felist, const met::METAssociator::ConstitHolder &constits) const |
|
StatusCode | extractFEs (const xAOD::Egamma *eg, std::vector< const xAOD::IParticle * > &felist, const met::METAssociator::ConstitHolder &constits) const |
|
StatusCode | extractFEHR (const xAOD::IParticle *obj, std::vector< const xAOD::IParticle * > hardObjs, std::vector< const xAOD::IParticle * > &felist, const met::METAssociator::ConstitHolder &constits, std::map< const xAOD::IParticle *, MissingETBase::Types::constvec_t > &momenta, float &UEcorr) const final |
|
StatusCode | extractTracks (const xAOD::IParticle *obj, std::vector< const xAOD::IParticle * > &constlist, const met::METAssociator::ConstitHolder &constits) const final |
|
StatusCode | selectEgammaClusters (const xAOD::CaloCluster *swclus, const std::vector< const xAOD::IParticle * > &inputTC, std::vector< const xAOD::IParticle * > &tclist) const |
|
StatusCode | selectEgammaTracks (const xAOD::Egamma *el, const xAOD::TrackParticleContainer *trkCont, std::set< const xAOD::TrackParticle * > &tracklist) const |
|
bool | hasUnmatchedClusters (const xAOD::Egamma *eg, const xAOD::PFO *pfo) const |
|
StatusCode | retrieveConstituents (met::METAssociator::ConstitHolder &constits) const |
|
bool | acceptTrack (const xAOD::TrackParticle *trk, const xAOD::Vertex *pv) const |
|
bool | isGoodEoverP (const xAOD::TrackParticle *trk) const |
|
virtual StatusCode | fillAssocMap (xAOD::MissingETAssociationMap *metMap, const xAOD::IParticleContainer *hardObjs) const |
|
StatusCode | GetUEcorr (const met::METAssociator::ConstitHolder &constits, std::vector< TLorentzVector > &v_clus, TLorentzVector &clus, TLorentzVector &HR, const float Drcone, const float MinDistCone, float &UEcorr) const |
|
void | renounceArray (SG::VarHandleKeyArray &handlesArray) |
| remove all handles from I/O resolution More...
|
|
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > | renounce (T &h) |
|
void | extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps) |
| Add StoreName to extra input/output deps as needed. More...
|
|
|
double | m_tcMatch_dR |
|
double | m_tcMatch_maxRat |
|
unsigned short | m_tcMatch_method |
|
double | m_extraTrkMatch_dR |
|
SG::ReadDecorHandleKey< xAOD::PhotonContainer > | m_photonNeutralPFOReadDecorKey {this,"photonNeutralPFOReadDecorKey","", "Neutral PFO links key"} |
|
SG::ReadDecorHandleKey< xAOD::PhotonContainer > | m_photonChargedPFOReadDecorKey {this,"photonChargedPFOReadDecorKey","", "Charged PFO links key"} |
|
SG::ReadDecorHandleKey< xAOD::PhotonContainer > | m_photonNeutralFEReadDecorKey {this,"photonNeutralFEReadDecorKey","", "Neutral FE links key"} |
|
SG::ReadDecorHandleKey< xAOD::PhotonContainer > | m_photonChargedFEReadDecorKey {this,"photonChargedFEReadDecorKey","", "Charged FE links key"} |
|
SG::ReadDecorHandleKey< xAOD::ElectronContainer > | m_electronNeutralPFOReadDecorKey {this,"electronNeutralPFOReadDecorKey","", "Neutral PFO links key"} |
|
SG::ReadDecorHandleKey< xAOD::ElectronContainer > | m_electronChargedPFOReadDecorKey {this,"electronCargedPFOReadDecorKey","", "Charged PFO links key"} |
|
SG::ReadDecorHandleKey< xAOD::ElectronContainer > | m_electronNeutralFEReadDecorKey {this,"electronNeutralFEReadDecorKey","", "Neutral FE links key"} |
|
SG::ReadDecorHandleKey< xAOD::ElectronContainer > | m_electronChargedFEReadDecorKey {this,"electronCargedFEReadDecorKey","", "Charged FE links key"} |
|
bool | m_checkUnmatched |
|
ToolHandle< InDet::IInDetTrackSelectionTool > | m_trkseltool |
|
ToolHandle< xAOD::ITrackIsolationTool > | m_trkIsolationTool |
|
ToolHandle< xAOD::ICaloTopoClusterIsolationTool > | m_caloIsolationTool |
|
std::string | m_neutralFELinksKey |
|
std::string | m_chargedFELinksKey |
|
std::string | m_neutralPFOLinksKey |
|
std::string | m_chargedPFOLinksKey |
|
bool | m_usePFOLinks |
|
bool | m_useFELinks |
|
SG::ReadHandleKey< xAOD::VertexContainer > | m_pvcollKey {this,"PrimVxColl","PrimaryVertices","Primary Vertex Collection"} |
|
SG::ReadHandleKey< xAOD::IParticleContainer > | m_clcollKey {this,"ClusColl","CaloCalTopoClusters","Topo cluster Collection"} |
|
SG::ReadHandleKey< xAOD::TrackParticleContainer > | m_trkcollKey {this,"TrkColl","InDetTrackParticles","Track particle Collection"} |
|
SG::ReadHandleKey< xAOD::PFOContainer > | m_pfcollKey {this,"PFlowColl","","PFO Collection"} |
|
SG::ReadHandleKey< xAOD::FlowElementContainer > | m_fecollKey {this,"FlowElementCollection","","FlowElement Collection (overrides PFO if not empty)"} |
|
SG::ReadHandleKey< xAOD::IParticleContainer > | m_hybridContKey {this,"HybridKey","","Hybrid Collection"} |
|
Gaudi::Property< bool > | m_recoil {this, "HRecoil", false, ""} |
|
bool | m_pflow |
|
bool | m_useTracks |
|
bool | m_useRapidity |
|
bool | m_useIsolationTools = false |
|
bool | m_useModifiedClus |
|
bool | m_weight_charged_pfo = false |
|
bool | m_cleanChargedPFO |
|
bool | m_skipconst |
|
std::string | m_forcoll |
|
double | m_foreta |
|
double | m_cenTrackPtThr |
|
double | m_forTrackPtThr |
|
|
| METPhotonAssociator () |
| Default constructor: More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &) |
| specialization for handling Gaudi::Property<SG::VarHandleKey> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyArrayType &) |
| specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleType &) |
| specialization for handling Gaudi::Property<SG::VarHandleBase> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &t, const SG::NotHandleType &) |
| specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
|
|
Definition at line 26 of file METPhotonAssociator.h.
◆ StoreGateSvc_t
◆ METPhotonAssociator() [1/2]
met::METPhotonAssociator::METPhotonAssociator |
( |
const std::string & |
name | ) |
|
◆ ~METPhotonAssociator()
met::METPhotonAssociator::~METPhotonAssociator |
( |
| ) |
|
|
default |
◆ METPhotonAssociator() [2/2]
met::METPhotonAssociator::METPhotonAssociator |
( |
| ) |
|
|
private |
◆ acceptTrack()
◆ 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]
◆ detStore()
◆ evtStore() [1/2]
◆ evtStore() [2/2]
◆ execute()
Implements IMETAssocToolBase.
Definition at line 150 of file METAssociator.cxx.
154 ATH_MSG_WARNING(
"Invalid pointer to MissingETContainer supplied! Abort.");
155 return StatusCode::FAILURE;
159 ATH_MSG_WARNING(
"Invalid pointer to MissingETAssociationMap supplied! Abort.");
160 return StatusCode::FAILURE;
163 ATH_MSG_WARNING(
"Attempting to build PFlow MET without a track collection.");
164 return StatusCode::FAILURE;
◆ executeTool()
◆ extractFE()
|
finalprotectedvirtualinherited |
◆ extractFEHR()
|
finalprotectedvirtualinherited |
Reimplemented from met::METAssociator.
Definition at line 473 of file METEgammaAssociator.cxx.
484 return StatusCode::SUCCESS;
489 for(
const auto fe : *constits.
feCont) {
491 if( ( !fe->isCharged() && fe->e() > FLT_MIN ) ||
493 felist.push_back(fe);
502 for(
const auto fe_itr : *constits.
feCont) {
503 if( fe_itr->pt() < 0 || fe_itr->e() < 0 ) {
508 if(fe_itr->isCharged() && !PVMatchedAcc(*fe_itr)){
515 std::vector<const xAOD::Egamma*> v_eg;
516 for(
const auto& obj_i : hardObjs){
518 v_eg.push_back( eg_curr );
522 for(
const auto fe_i : *constits.
feCont) {
523 if( fe_i->pt() < 0 || fe_i->e() < 0 ) {
527 for(
const auto& eg_i : v_eg) {
528 double dR =
P4Helpers::deltaR( fe_i->eta(), fe_i->phi(), eg_i->eta(), eg_i->phi() );
537 std::vector<TLorentzVector> v_egTLV;
538 v_egTLV.reserve(v_eg.size());
539 for(
const auto& eg_i : v_eg) {
540 v_egTLV.push_back( eg_i->p4() );
544 TLorentzVector egTLV =
eg->p4();
550 return StatusCode::SUCCESS;
◆ extractFEs()
Definition at line 387 of file METEgammaAssociator.cxx.
398 std::vector<const xAOD::FlowElement*> nearbyFE;
399 nearbyFE.reserve(20);
402 ATH_MSG_ERROR(
"Attempted to extract non-PFlow FlowElements. This is not supported!");
403 return StatusCode::FAILURE;
409 if( ( !fe->
isCharged() && fe->
e() > FLT_MIN ) ||
413 nearbyFE.push_back(fe);
417 ATH_MSG_VERBOSE(
"Found " << nearbyFE.size() <<
" nearby FlowElements (PFOs)");
419 std::set<const xAOD::TrackParticle*> trackset;
424 felist.push_back(fe);
428 double eg_cl_e = swclus->
e();
435 double sumE_pfo = 0.;
443 double pfo_e = fe->
e();
446 ATH_MSG_VERBOSE(
"Reject topocluster in sum. Ratio vs eg cluster: " << (pfo_e/eg_cl_e));
447 if( !bestbadmatch || (fabs(pfo_e/eg_cl_e-1.) < fabs(bestbadmatch->
e()/eg_cl_e-1.)) ) bestbadmatch = fe;
451 ATH_MSG_VERBOSE(
"E match with new nPFO: " << fabs(sumE_pfo+pfo_e - eg_cl_e) / eg_cl_e);
452 if( (doSum = fabs(sumE_pfo+pfo_e-eg_cl_e) < fabs(sumE_pfo - eg_cl_e)) ) {
453 felist.push_back(fe);
455 ATH_MSG_VERBOSE(
"Accept pfo with pt " << fe->
pt() <<
", e " << fe->
e() <<
" in sum.");
457 ATH_MSG_VERBOSE(
"E match with new PFO: " << fabs(sumE_pfo+pfo_e - eg_cl_e) / eg_cl_e);
461 if(sumE_pfo<FLT_MIN && bestbadmatch) {
462 ATH_MSG_VERBOSE(
"No better matches found -- add bad match topocluster with pt "
463 << bestbadmatch->
pt() <<
", e " << bestbadmatch->
e() <<
".");
464 felist.push_back(bestbadmatch);
467 return StatusCode::SUCCESS;
◆ extractFEsFromLinks()
Definition at line 323 of file METEgammaAssociator.cxx.
328 ATH_MSG_DEBUG(
"Extract FEs From Links for " <<
eg->type() <<
" with pT " <<
eg->pt());
330 std::vector<FELink_t> nFELinks;
331 std::vector<FELink_t> cFELinks;
336 nFELinks=neutralFEReadDecorHandle(*
eg);
337 cFELinks=chargedFEReadDecorHandle(*
eg);
342 nFELinks=neutralFEReadDecorHandle(*
eg);
343 cFELinks=chargedFEReadDecorHandle(*
eg);
348 for (
const FELink_t& feLink : cFELinks) {
349 if (!feLink.isValid())
continue;
351 for (
const auto *
const fe : *constits.
feCont){
352 if (fe->index() == fe_init->
index() && fe->isCharged()){
355 ATH_MSG_DEBUG(
"Accept cFE with pt " << fe->pt() <<
", e " << fe->e() <<
", eta " << fe->eta() <<
", phi " << fe->phi() );
356 felist.push_back(fe);
363 double eg_cl_e =
eg->caloCluster()->e();
366 for (
const FELink_t& feLink : nFELinks) {
367 if (!feLink.isValid())
continue;
369 for (
const auto *
const fe : *constits.
feCont){
370 if (fe->index() == fe_init->
index() && !fe->isCharged()){
371 double fe_e = fe->
e();
372 if( ( !fe->isCharged()&& fe->e() > FLT_MIN ) ){
374 ATH_MSG_DEBUG(
"E match with new nFE: " << fabs(sumE_fe+fe_e - eg_cl_e) / eg_cl_e);
375 ATH_MSG_DEBUG(
"Accept nFE with pt " << fe->pt() <<
", e " << fe->e() <<
", eta " << fe->eta() <<
", phi " << fe->phi() <<
" in sum.");
376 ATH_MSG_DEBUG(
"Energy ratio of nFE to eg: " << fe_e / eg_cl_e);
377 felist.push_back(fe);
384 return StatusCode::SUCCESS;
◆ extractPFO()
|
finalprotectedvirtualinherited |
◆ extractPFOs()
Definition at line 229 of file METEgammaAssociator.cxx.
240 std::vector<const xAOD::PFO*> nearbyPFO;
241 nearbyPFO.reserve(20);
242 for(
const auto *
const pfo : *constits.
pfoCont) {
247 if( ( !pfo->isCharged() && pfo->e() > FLT_MIN ) ||
248 ( pfo->isCharged() && PVMatchedAcc(*pfo)
251 nearbyPFO.push_back(pfo);
257 std::set<const xAOD::TrackParticle*> trackset;
259 for(
const auto&
track : trackset) {
260 for(
const auto& pfo : nearbyPFO) {
261 if(pfo->isCharged() && pfo->track(0) ==
track) {
262 pfolist.push_back(pfo);
266 double eg_cl_e = swclus->
e();
273 double sumE_pfo = 0.;
276 for(
const auto& pfo : nearbyPFO) {
280 double pfo_e = pfo->eEM();
283 ATH_MSG_VERBOSE(
"Reject topocluster in sum. Ratio vs eg cluster: " << (pfo_e/eg_cl_e));
284 if( !bestbadmatch || (fabs(pfo_e/eg_cl_e-1.) < fabs(bestbadmatch->
e()/eg_cl_e-1.)) ) bestbadmatch = pfo;
288 ATH_MSG_VERBOSE(
"E match with new nPFO: " << fabs(sumE_pfo+pfo_e - eg_cl_e) / eg_cl_e);
289 if( (doSum = fabs(sumE_pfo+pfo_e-eg_cl_e) < fabs(sumE_pfo - eg_cl_e)) ) {
290 pfolist.push_back(pfo);
292 ATH_MSG_VERBOSE(
"Accept pfo with pt " << pfo->pt() <<
", e " << pfo->e() <<
" in sum.");
294 ATH_MSG_VERBOSE(
"E match with new PFO: " << fabs(sumE_pfo+pfo_e - eg_cl_e) / eg_cl_e);
298 if(sumE_pfo<FLT_MIN && bestbadmatch) {
299 ATH_MSG_VERBOSE(
"No better matches found -- add bad match topocluster with pt "
300 << bestbadmatch->
pt() <<
", e " << bestbadmatch->
e() <<
".");
301 pfolist.push_back(bestbadmatch);
304 return StatusCode::SUCCESS;
◆ extractPFOsFromLinks()
Definition at line 165 of file METEgammaAssociator.cxx.
170 ATH_MSG_DEBUG(
"Extract PFOs From Links for " <<
eg->type() <<
" with pT " <<
eg->pt());
172 std::vector<PFOLink_t> cPFOLinks;
173 std::vector<PFOLink_t> nPFOLinks;
178 nPFOLinks=neutralPFOReadDecorHandle(*
eg);
179 cPFOLinks=chargedPFOReadDecorHandle(*
eg);
184 nPFOLinks=neutralPFOReadDecorHandle(*
eg);
185 cPFOLinks=chargedPFOReadDecorHandle(*
eg);
190 for (
const PFOLink_t& pfoLink : cPFOLinks) {
191 if (!pfoLink.isValid())
continue;
193 for (
const auto *
const pfo : *constits.
pfoCont){
194 if (pfo->index() == pfo_init->
index() && pfo->isCharged()){
197 ATH_MSG_DEBUG(
"Accept cPFO with pt " << pfo->pt() <<
", e " << pfo->e() <<
", eta " << pfo->eta() <<
", phi " << pfo->phi() );
205 double eg_cl_e =
eg->caloCluster()->e();
206 double sumE_pfo = 0.;
208 for (
const PFOLink_t& pfoLink : nPFOLinks) {
209 if (!pfoLink.isValid())
continue;
211 for (
const auto *
const pfo : *constits.
pfoCont){
212 if (pfo->index() == pfo_init->
index() && !pfo->isCharged()){
213 double pfo_e = pfo->
eEM();
214 if( ( !pfo->isCharged()&& pfo->e() > FLT_MIN ) ){
216 ATH_MSG_DEBUG(
"E match with new nPFO: " << fabs(sumE_pfo+pfo_e - eg_cl_e) / eg_cl_e);
217 ATH_MSG_DEBUG(
"Accept nPFO with pt " << pfo->pt() <<
", e " << pfo->e() <<
", eta " << pfo->eta() <<
", phi " << pfo->phi() <<
" in sum.");
218 ATH_MSG_DEBUG(
"Energy ratio of nPFO to eg: " << pfo_e / eg_cl_e);
219 pfolist.push_back(pfo);
226 return StatusCode::SUCCESS;
◆ extractTopoClusters()
|
finalprotectedvirtualinherited |
Implements met::METAssociator.
Definition at line 87 of file METEgammaAssociator.cxx.
99 std::vector<const IParticle*> inputTC;
103 for(
const auto *
const cl : *constits.
tcCont) {
107 inputTC.push_back(
cl);
115 for(
const auto&
el : tcLinkAcc(*swclus)) {
117 inputTC.push_back(*
el);
119 ATH_MSG_ERROR(
"Invalid constituentClusterLinks on input electron/photon!");
120 return StatusCode::FAILURE;
126 return StatusCode::FAILURE;
131 return StatusCode::SUCCESS;
◆ extractTracks()
|
finalprotectedvirtualinherited |
◆ 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
◆ fillAssocMap()
|
protectedvirtualinherited |
Reimplemented in met::METTruthAssociator.
Definition at line 304 of file METAssociator.cxx.
307 ConstitHolder constits;
311 return StatusCode::FAILURE;
314 std::vector<const IParticle*> constlist;
315 constlist.reserve(20);
316 std::vector<const IParticle*> hardObjs_tmp;
317 for(
const auto *
const obj : *hardObjs) {
318 hardObjs_tmp.push_back(
obj);
322 for(
const auto&
obj : hardObjs_tmp) {
329 ATH_MSG_ERROR(
"Attempting to build FlowElement MET without a track collection.");
330 return StatusCode::FAILURE;
332 std::map<const IParticle*, MissingETBase::Types::constvec_t> momentumOverride;
334 float UEcorr_Pt = 0.;
337 dec_UEcorr(*
obj) = UEcorr_Pt;
347 ATH_MSG_DEBUG(
"Attempting to build PFlow without a track collection.");
348 return StatusCode::FAILURE;
350 std::map<const IParticle*,MissingETBase::Types::constvec_t> momentumOverride;
356 std::vector<const IParticle*> tclist;
360 for(
const auto&
cl : tclist) {
362 constlist.push_back((*constits.tcCont)[
cl->index()]);
371 return StatusCode::SUCCESS;
◆ finalize()
StatusCode met::METEgammaAssociator::finalize |
( |
| ) |
|
|
inherited |
◆ 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
◆ getProperty()
template<class T >
const T* asg::AsgTool::getProperty |
( |
const std::string & |
name | ) |
const |
|
inherited |
Get one of the tool's properties.
◆ GetUEcorr()
StatusCode met::METAssociator::GetUEcorr |
( |
const met::METAssociator::ConstitHolder & |
constits, |
|
|
std::vector< TLorentzVector > & |
v_clus, |
|
|
TLorentzVector & |
clus, |
|
|
TLorentzVector & |
HR, |
|
|
const float |
Drcone, |
|
|
const float |
MinDistCone, |
|
|
float & |
UEcorr |
|
) |
| const |
|
protectedinherited |
Definition at line 446 of file METAssociator.cxx.
455 unsigned int seed = 0;
457 if( !v_clus.empty() ){
462 bool isNextToPart(
true);
463 bool isNextToHR(
true);
466 int numOfRndTrials = 0;
467 const int maxNumOfRndTrials = 100;
469 while(isNextToPart || isNextToHR ){
470 isNextToPart =
false;
475 if(dR > MinDistCone){
479 for(
const auto& clus_j : v_clus) {
481 if(dR < MinDistCone){
488 if(numOfRndTrials == maxNumOfRndTrials){
490 return StatusCode::SUCCESS;
498 TLorentzVector tv_UEcorr;
499 std::pair <double, double> eta_rndphi = std::make_pair(clus.Eta(), phiRnd);
505 for(
const auto fe_itr : *constits.
feCont){
506 if(fe_itr->pt() < 0 || fe_itr->e() < 0){
512 if(fe_itr->isCharged() && !PVMatchedAcc(*fe_itr)){
516 double dR =
P4Helpers::deltaR( fe_itr->eta(), fe_itr->phi(), eta_rndphi.first, eta_rndphi.second );
519 TLorentzVector tv_fe = fe_itr->p4();
520 tv_fe.RotateZ(dphi_angle);
525 UEcorr = tv_UEcorr.Pt();
527 return StatusCode::SUCCESS;
◆ greaterPt()
|
inlinestaticprotectedinherited |
◆ greaterPtFE()
|
inlinestaticprotectedinherited |
◆ greaterPtPFO()
|
inlinestaticprotectedinherited |
◆ hasUnmatchedClusters()
Definition at line 653 of file METEgammaAssociator.cxx.
655 bool has_unmatched=
false;
657 float unmatchedSumpt=0;
659 float unmatchedTotEMFrac=0;
670 TLorentzVector totVec(0.,0.,0.,0.), unmatchedVec(0.,0.,0.,0.);
672 std::set<const xAOD::CaloCluster*> cPFOClusters;
675 for (
int cl = 0;
cl < nCluscPFO; ++
cl) {
679 std::vector<const xAOD::CaloCluster*> unmatchedClusters;
681 TLorentzVector tmpVec;
682 tmpVec.SetPtEtaPhiE(pfoclus->pt(),pfoclus->eta(),pfoclus->phi(),pfoclus->e());
683 totSumpt+=pfoclus->pt();
685 bool inEgamma =
false;
687 if (pfoclus == phclus) {
692 unmatchedClusters.push_back(pfoclus);
693 unmatchedSumpt+=pfoclus->pt();
694 unmatchedE+=pfoclus->e();
695 unmatchedVec+=tmpVec;
697 unmatchedTotEMFrac=unmatchedTotEMFrac+emfrac*pfoclus->e();
702 ATH_MSG_DEBUG(
"PFO associated to "<<nCluscPFO<<
" cluster, of which " << unmatchedClusters.size() <<
"unmatched one and unmatched pt "<<unmatchedSumpt);
703 dec_unmatchedFrac(*pfo)=nCluscPFO>0 ?
float(unmatchedClusters.size())/
float(nCluscPFO) : -1;
704 dec_unmatchedFracPt(*pfo)= totVec.Pt()>0 ?
float(unmatchedVec.Pt()/totVec.Pt()): -1;
705 dec_unmatchedFracSumpt(*pfo)= totSumpt>0 ?
float(unmatchedSumpt/totSumpt): -1;
706 dec_unmatchedFracE(*pfo)= totVec.E()>0 ?
float(unmatchedE/totVec.E()): -1;
707 dec_unmatchedTotEMFrac(*pfo)= totVec.E()>0 ?
float(unmatchedTotEMFrac/totVec.E()): -1;
708 dec_unmatchedFracEClusterPFO(*pfo)= pfo->
e()>0 ?
float(unmatchedE/pfo->
e()): -1;
709 dec_unmatchedFracPtClusterPFO(*pfo)= pfo->
pt()>0 ?
float(unmatchedE/pfo->
pt()): -1;
711 return has_unmatched;
◆ initialize()
StatusCode met::METPhotonAssociator::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...
Reimplemented from met::METEgammaAssociator.
Definition at line 37 of file METPhotonAssociator.cxx.
57 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.
◆ isGoodEoverP()
Definition at line 384 of file METAssociator.cxx.
398 std::vector<Iso::IsolationType> trkIsoCones;
410 std::vector<Iso::IsolationType> caloIsoCones;
420 caloIsoCorr_coreCone);
421 if(!caloIsoResult.
etcones.empty()) {
425 ATH_MSG_WARNING(
"isGoodEoverP: Failed to retrieve the isolation core correction (etcone10)! Setting etcone10=0");
435 if(Rerr>0.4)
return false;
436 else if (
EoverP<0.65 && ((
EoverP>0.1 && Rerr>0.05) || Rerr>0.1))
return false;
440 if(
etcone10/trkptsum<0.6 && trk->
pt()/trkptsum>0.6)
return false;
◆ 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.
◆ 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, LundVariablesTool, JetDumper, JetBottomUpSoftDrop, JetRecursiveSoftDrop, JetSoftDrop, JetConstituentsRetriever, JetSubStructureMomentToolsBase, JetSplitter, JetToolRunner, JetPruner, JetPseudojetRetriever, JetTrimmer, AsgHelloTool, and KtDeltaRTool.
Definition at line 131 of file AsgTool.cxx.
◆ renounce()
◆ renounceArray()
◆ retrieveConstituents()
Definition at line 170 of file METAssociator.cxx.
176 if (!topoclusterCont.isValid()) {
178 return StatusCode::FAILURE;
180 constits.
tcCont=topoclusterCont.cptr();
181 ATH_MSG_DEBUG(
"Successfully retrieved topocluster collection");
183 std::string hybridname =
"Etmiss";
189 if( hybridCont.isValid()) {
190 constits.
tcCont=hybridCont.cptr();
192 ATH_MSG_WARNING(
"Trying to do something currently unsupported- lets abort");
193 return StatusCode::FAILURE;
244 if (!vxCont.isValid()) {
247 return StatusCode::FAILURE;
250 ATH_MSG_DEBUG(
"Successfully retrieved primary vertex container");
251 ATH_MSG_DEBUG(
"Container holds " << vxCont->size() <<
" vertices");
253 for(
const auto *
const vx : *vxCont) {
256 {constits.
pv = vx;
break;}
259 ATH_MSG_DEBUG(
"Failed to find primary vertex! Reject all tracks.");
267 if (!trCont.isValid()) {
269 return StatusCode::FAILURE;
271 constits.
trkCont=trCont.cptr();
276 constits.
feCont =
nullptr;
278 if (!feCont.isValid()) {
280 return StatusCode::FAILURE;
282 constits.
feCont=feCont.cptr();
288 if (!pfCont.isValid()) {
290 return StatusCode::FAILURE;
292 constits.
pfoCont=pfCont.cptr();
297 return StatusCode::SUCCESS;
◆ selectEgammaClusters()
Definition at line 556 of file METEgammaAssociator.cxx.
560 double eg_cl_e = swclus->
e();
565 for(
const auto&
cl : inputTC) {
566 double tcl_e =
cl->e();
570 ATH_MSG_VERBOSE(
"Reject topocluster in sum. Ratio vs eg cluster: " << (tcl_e/eg_cl_e));
571 if( !bestbadmatch || (fabs(tcl_e/eg_cl_e-1.) < fabs(bestbadmatch->
e()/eg_cl_e-1.)) ) bestbadmatch =
cl;
575 ATH_MSG_VERBOSE(
"E match with new cluster: " << fabs(sumE_tc+tcl_e - eg_cl_e) / eg_cl_e);
576 if( (doSum = (fabs(sumE_tc+tcl_e - eg_cl_e) < fabs(sumE_tc - eg_cl_e))) ) {
577 ATH_MSG_VERBOSE(
"Accept topocluster with pt " <<
cl->pt() <<
", e " <<
cl->e() <<
" in sum.");
579 ATH_MSG_VERBOSE(
"E match with new cluster: " << fabs(sumE_tc+tcl_e - eg_cl_e) / eg_cl_e);
580 tclist.push_back(
cl);
584 if(sumE_tc<FLT_MIN && bestbadmatch) {
585 ATH_MSG_VERBOSE(
"No better matches found -- add bad match topocluster with pt "
586 << bestbadmatch->
pt() <<
", e " << bestbadmatch->
e() <<
".");
587 tclist.push_back(bestbadmatch);
589 return StatusCode::SUCCESS;
◆ selectEgammaTracks()
Definition at line 592 of file METEgammaAssociator.cxx.
599 for(
const auto&
track : egtracks) {
601 tracklist.insert(
track);
608 for(
const auto&
track : egtracks) {
610 tracklist.insert(
track);
615 for(
const auto *
const track : *trkCont) {
618 uint8_t expect_innermostHit(
false);
620 uint8_t expect_nextToInnermostHit(
false);
621 uint8_t N_nextToInnermostHit(
false);
624 ATH_MSG_WARNING(
"Track summary retrieval failed for 'expect(NextTo)InnermostPixelLayerHit'");
625 return StatusCode::FAILURE;
627 if(expect_innermostHit) {
629 ATH_MSG_WARNING(
"Track summary retrieval failed for 'numberOfInnermostPixelLayerHits'");
630 return StatusCode::FAILURE;
631 if(N_innermostHit==0 ) {
633 tracklist.insert(
track);
636 }
else if(expect_nextToInnermostHit) {
638 ATH_MSG_WARNING(
"Track summary retrieval failed for 'numberOfNextToInnermostPixelLayerHits'");
639 return StatusCode::FAILURE;
640 if(N_nextToInnermostHit==0 ) {
642 tracklist.insert(
track);
649 return StatusCode::SUCCESS;
◆ 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.
◆ updateVHKA()
◆ m_caloIsolationTool
◆ m_cenTrackPtThr
double met::METAssociator::m_cenTrackPtThr |
|
protectedinherited |
◆ m_chargedFELinksKey
std::string met::METAssociator::m_chargedFELinksKey |
|
protectedinherited |
◆ m_chargedPFOLinksKey
std::string met::METAssociator::m_chargedPFOLinksKey |
|
protectedinherited |
◆ m_checkUnmatched
bool met::METEgammaAssociator::m_checkUnmatched |
|
protectedinherited |
◆ m_clcollKey
◆ m_cleanChargedPFO
bool met::METAssociator::m_cleanChargedPFO |
|
protectedinherited |
◆ m_detStore
◆ m_Drcone
constexpr float met::METEgammaAssociator::m_Drcone = 0.2 |
|
staticconstexprprivateinherited |
◆ m_electronChargedFEReadDecorKey
◆ m_electronChargedPFOReadDecorKey
◆ m_electronNeutralFEReadDecorKey
◆ m_electronNeutralPFOReadDecorKey
◆ m_evtStore
◆ m_extraTrkMatch_dR
double met::METEgammaAssociator::m_extraTrkMatch_dR |
|
protectedinherited |
◆ m_fecollKey
◆ m_forcoll
std::string met::METAssociator::m_forcoll |
|
protectedinherited |
◆ m_foreta
double met::METAssociator::m_foreta |
|
protectedinherited |
◆ m_forTrackPtThr
double met::METAssociator::m_forTrackPtThr |
|
protectedinherited |
◆ m_hybridContKey
◆ m_MinDistCone
constexpr float met::METEgammaAssociator::m_MinDistCone = 0.4 |
|
staticconstexprprivateinherited |
◆ m_neutralFELinksKey
std::string met::METAssociator::m_neutralFELinksKey |
|
protectedinherited |
◆ m_neutralPFOLinksKey
std::string met::METAssociator::m_neutralPFOLinksKey |
|
protectedinherited |
◆ m_pfcollKey
◆ m_pflow
bool met::METAssociator::m_pflow |
|
protectedinherited |
◆ m_phContKey
◆ m_photonChargedFEReadDecorKey
◆ m_photonChargedPFOReadDecorKey
◆ m_photonNeutralFEReadDecorKey
◆ m_photonNeutralPFOReadDecorKey
◆ m_pvcollKey
◆ m_recoil
Gaudi::Property<bool> met::METAssociator::m_recoil {this, "HRecoil", false, ""} |
|
protectedinherited |
◆ m_skipconst
bool met::METAssociator::m_skipconst |
|
protectedinherited |
◆ m_tcMatch_dR
double met::METEgammaAssociator::m_tcMatch_dR |
|
protectedinherited |
◆ m_tcMatch_maxRat
double met::METEgammaAssociator::m_tcMatch_maxRat |
|
protectedinherited |
◆ m_tcMatch_method
unsigned short met::METEgammaAssociator::m_tcMatch_method |
|
protectedinherited |
◆ m_trkcollKey
◆ m_trkIsolationTool
◆ m_trkseltool
◆ m_useFELinks
bool met::METAssociator::m_useFELinks |
|
protectedinherited |
◆ m_useIsolationTools
bool met::METAssociator::m_useIsolationTools = false |
|
protectedinherited |
◆ m_useModifiedClus
bool met::METAssociator::m_useModifiedClus |
|
protectedinherited |
◆ m_usePFOLinks
bool met::METAssociator::m_usePFOLinks |
|
protectedinherited |
◆ m_useRapidity
bool met::METAssociator::m_useRapidity |
|
protectedinherited |
◆ m_useTracks
bool met::METAssociator::m_useTracks |
|
protectedinherited |
◆ m_varHandleArraysDeclared
◆ m_vhka
◆ m_weight_charged_pfo
bool met::METAssociator::m_weight_charged_pfo = false |
|
protectedinherited |
The documentation for this class was generated from the following files:
virtual double pt() const override final
The transverse momentum ( ) of the particle.
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.
virtual double pt() const
The transverse momentum ( ) of the particle.
@ coreEnergy
energy stored for this correction
virtual double eta() const override final
The pseudorapidity ( ) of the particle.
@ coreTrackPtr
tracks pointer
unsigned short m_tcMatch_method
Iso::IsolationTrackCorrectionBitset trackbitset
@ ptcone20
Track isolation.
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
StatusCode initialize()
Dummy implementation of the initialisation function.
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.
@ expectInnermostPixelLayerHit
Do we expect a 0th-layer barrel hit for this track?
Helper class to provide constant type-safe access to aux data.
virtual double pt() const override
#define ATH_MSG_VERBOSE(x)
const std::string & key() const
Return the StoreGate ID for the referenced object.
bool isInDeltaR(const I4Momentum &p1, const I4Momentum &p2, double dR)
Check if 2 I4Momentum are in a cone.
Class providing the definition of the 4-vector interface.
virtual void setOwner(IDataHandleHolder *o)=0
METEgammaAssociator()
Default constructor:
SG::ReadHandleKey< xAOD::PhotonContainer > m_phContKey
StatusCode extractFEs(const xAOD::Egamma *eg, std::vector< const xAOD::IParticle * > &felist, const met::METAssociator::ConstitHolder &constits) const
virtual double e() const
The total energy of the particle.
StatusCode selectEgammaTracks(const xAOD::Egamma *el, const xAOD::TrackParticleContainer *trkCont, std::set< const xAOD::TrackParticle * > &tracklist) const
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
static bool insert(MissingETComponentMap *pMap, const MissingET *pMET, const IParticle *pPart, MissingETBase::Types::weight_t weight=MissingETBase::Types::weight_t())
Insert contributing signal or physics object by pointer, with optional kinematic weight object.
ServiceHandle< StoreGateSvc > & evtStore()
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
Description of a calorimeter cluster.
double deltaPhi(double phiA, double phiB)
delta Phi in range [-pi,pi[
StatusCode extractFEsFromLinks(const xAOD::Egamma *eg, std::vector< const xAOD::IParticle * > &felist, const met::METAssociator::ConstitHolder &constits) const
@ expectNextToInnermostPixelLayerHit
Do we expect a 1st-layer barrel hit for this track?
unsigned int nCaloCluster() const
Find out how many CaloCluster are linked.
Handle class for reading a decoration on an object.
Helper class to provide type-safe access to aux data.
SG::ReadDecorHandleKey< xAOD::PhotonContainer > m_photonNeutralFEReadDecorKey
SG::ReadDecorHandleKey< xAOD::PhotonContainer > m_photonNeutralPFOReadDecorKey
StatusCode extractPFOsFromLinks(const xAOD::Egamma *eg, std::vector< const xAOD::IParticle * > &pfolist, const met::METAssociator::ConstitHolder &constits) const
const uint16_t AuthorAmbiguous
Object Reconstructed by standard cluster-based algorithm.
@ etcone20
Calorimeter isolation.
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
std::map< Iso::IsolationCaloCorrection, std::map< Iso::IsolationCorrectionParameter, float > > coreCorrections
static constexpr float m_MinDistCone
signal_t signalType() const
Principal data class for CaloCell clusters.
const std::string & name(Level lvl)
Convenience function for translating message levels to strings.
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
float z() const
Returns the z position.
size_t index() const
Return the index of this element within its container.
SG::ReadDecorHandleKey< xAOD::ElectronContainer > m_electronNeutralFEReadDecorKey
double deltaR(const I4Momentum &p4, double eta, double phi)
from 1 I4Momentum
SG::ReadDecorHandleKey< xAOD::ElectronContainer > m_electronNeutralPFOReadDecorKey
virtual void renounce()=0
virtual double pt() const =0
The transverse momentum ( ) of the particle.
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
ElementLink implementation for ROOT usage.
const xAOD::IParticle * chargedObject(std::size_t i) const
@ numberOfNextToInnermostPixelLayerHits
these are the hits in the 1st pixel barrel layer
float qOverP() const
Returns the parameter.
@ ENG_FRAC_EM
Energy fraction in EM calorimeters.
const ParametersCovMatrix_t definingParametersCovMatrix() const
Returns the 5x5 symmetric matrix containing the defining parameters covariance matrix.
SG::ReadDecorHandleKey< xAOD::ElectronContainer > m_electronChargedFEReadDecorKey
virtual double eEM() const
get EM scale energy
Class describing a particle flow object.
double error(const Amg::MatrixX &mat, int index)
return diagonal error of the matrix caller should ensure the matrix is symmetric and the index is in ...
virtual double e() const override
The total energy of the particle.
std::vector< float > etcones
@ coreCone
core energy (in dR<0.1).
StatusCode extractPFOs(const xAOD::Egamma *eg, std::vector< const xAOD::IParticle * > &pfolist, const met::METAssociator::ConstitHolder &constits) const
Photon_v1 Photon
Definition of the current "egamma version".
std::vector< float > ptcones
struct TBPatternUnitContext Muon
bool hasUnmatchedClusters(const xAOD::Egamma *eg, const xAOD::PFO *pfo) const
double m_extraTrkMatch_dR
void sort(typename std::reverse_iterator< DataModel_detail::iterator< DVL > > beg, typename std::reverse_iterator< DataModel_detail::iterator< DVL > > end, const Compare &comp)
Specialization of sort for DataVector/List.
#define ATH_MSG_WARNING(x)
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
const CaloCluster * cluster(unsigned int index) const
Retrieve a const pointer to a CaloCluster.
SG::ReadDecorHandleKey< xAOD::PhotonContainer > m_photonChargedFEReadDecorKey
Class describing a TrackParticle.
StatusCode selectEgammaClusters(const xAOD::CaloCluster *swclus, const std::vector< const xAOD::IParticle * > &inputTC, std::vector< const xAOD::IParticle * > &tclist) const
SG::ReadDecorHandleKey< xAOD::ElectronContainer > m_electronChargedPFOReadDecorKey
cl
print [x.__class__ for x in toList(dqregion.getSubRegions()) ]
static constexpr float m_Drcone
virtual double e() const
The total energy of the particle.
Iso::IsolationCaloCorrectionBitset calobitset
virtual double e() const =0
The total energy of the particle.
@ numberOfInnermostPixelLayerHits
these are the hits in the 0th pixel barrel layer
SG::ReadDecorHandleKey< xAOD::PhotonContainer > m_photonChargedPFOReadDecorKey
A detector object made of other lower level object(s)