Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
Public Member Functions | Protected Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
EGammaAmbiguityTool Class Reference

Electron / photon ambiguity resolution. Dual-use version. More...

#include <EGammaAmbiguityTool.h>

Inheritance diagram for EGammaAmbiguityTool:
Collaboration diagram for EGammaAmbiguityTool:

Public Member Functions

 EGammaAmbiguityTool (const std::string &myname)
 Standard constructor. More...
 
virtual ~EGammaAmbiguityTool ()=default
 Standard destructor. More...
 
virtual StatusCode initialize () override final
 Gaudi Service Interface method implementations. More...
 
virtual unsigned int ambiguityResolve (const xAOD::CaloCluster *cluster, const xAOD::Vertex *vx, const xAOD::TrackParticle *tp, xAOD::AmbiguityTool::AmbiguityType &type) const override final
 Return value: AuthorElectron, AuthorPhoton, AuthorAmbiguous, AuthorUnknown. More...
 
virtual unsigned int ambiguityResolve (const xAOD::CaloCluster *cluster, const xAOD::Vertex *vx, const xAOD::TrackParticle *tp) const override final
 Return value: AuthorElectron, AuthorPhoton, AuthorAmbiguous, AuthorUnknown Needed because of existing client usage (i.e Trigger). More...
 
virtual unsigned int ambiguityResolve (const xAOD::Egamma &egamma) const override final
 Access the ambiguity resolution of central electrons and photons and return AuthorElectron, AuthorPhoton, AuthorAmbiguous, AuthorUnknown or the author of the object if no overlapping object is found. More...
 
virtual bool accept (const xAOD::Egamma &egamma) const override final
 Accept or reject egamma object based on ambiguity resolution (e.g. More...
 
bool hasInnermostPixelHit (const xAOD::TrackParticle &tp) const
 Return true if track has innermost pixel hit or next-to-innermost in case innermost is not expected or at least m_MinNoPixHits pixel hits in case next-to-innermost is not expected. More...
 
size_t nTrkWithInnermostPixelHits (const xAOD::Vertex &vx) const
 Return the number of tracks with "innermost pixel hits" (see above) in the given vertex. More...
 
bool isInVertex (const xAOD::TrackParticle &, const xAOD::Vertex &) const
 Return true if the given TrackParticle is part of the vertex. More...
 
bool passDeltaR_innermost (const xAOD::Vertex &vx) const
 Return true if the vertex passes the requirement on Rconv - RfirstHit. More...
 
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
 

Protected Member Functions

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...
 

Private Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t
 

Private Member Functions

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...
 

Private Attributes

int m_MinNoSiHits
 Minimum number of silicon hits to be an electron and not a photon. More...
 
int m_MinNoPixHits
 Minimum number of pixel hits to be an electron and not a photon. More...
 
float m_maxEoverPCut
 Maximum EoverP, more that this is ambiguous. More...
 
float m_minPtCut
 Minimum Pt, less that this is ambiguous. More...
 
float m_maxDeltaR_innermost
 Maximum value for Rconv - RfirstHit for Si+Si conversions where both tracks have innermost hits. More...
 
bool m_noVertexNoInnermostAsAmb
 no vertex && no innermost hit -> amb. More...
 
bool m_acceptAmbiguous
 @When used as a selector reject/accpet ambiguous cases 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
 

Detailed Description

Electron / photon ambiguity resolution. Dual-use version.

Electron / photon ambiguity resolution. Dual-use version, interface.

Authors
Bruno Lenzi, Anastopoulos Christos, Ludovica Apperio Bella
Date
May 2015
Author
Bruno Lenzi , Christos Anastopoulos, Ruggero Turra
Date
May 2015
Author
Bruno Lenzi
Date
May 2015

Definition at line 21 of file EGammaAmbiguityTool.h.

Member Typedef Documentation

◆ StoreGateSvc_t

typedef ServiceHandle<StoreGateSvc> AthCommonDataStore< AthCommonMsg< AlgTool > >::StoreGateSvc_t
privateinherited

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ EGammaAmbiguityTool()

EGammaAmbiguityTool::EGammaAmbiguityTool ( const std::string &  myname)

Standard constructor.

Definition at line 38 of file EGammaAmbiguityTool.cxx.

39  : asg::AsgTool(myname)
40 {
42  "minNoSiHits",
43  m_MinNoSiHits = 4,
44  "Minimum number of silicon hits to be an electron==>not photon for sure");
46  "minNoPixHits",
47  m_MinNoPixHits = 2,
48  "Minimum number of Pixel hits to be an electron==>not photon for sure");
49  declareProperty("maxEoverPCut",
50  m_maxEoverPCut = 10,
51  "Maximum EoverP , more that this is ambiguous");
53  "minPCut", m_minPtCut = 2000, "Minimum Pt, less than that is ambiguous");
54  declareProperty("maxDeltaR_innermost",
56  "Maximum value for Rconv - RfirstHit for Si+Si conversions "
57  "where both tracks have innermost hits");
58  declareProperty("noVertexNoInnermostAsAmb",
60  "If true classify as ambiguous when there is no vertex and "
61  "no innermost Hits. "
62  "If false classify no vertex as for sure not photon");
63  declareProperty("AcceptAmbiguous",
64  m_acceptAmbiguous = true,
65  "When used as a selector accept the ambiguous as default");
66 }

◆ ~EGammaAmbiguityTool()

virtual EGammaAmbiguityTool::~EGammaAmbiguityTool ( )
virtualdefault

Standard destructor.

Member Function Documentation

◆ accept()

bool EGammaAmbiguityTool::accept ( const xAOD::Egamma egamma) const
finaloverridevirtual

Accept or reject egamma object based on ambiguity resolution (e.g.

Accept or reject egamma object based on ambiguity resolution.

if object is a photon and ambiguity return value is electron -> reject)

Implements IEGammaAmbiguityTool.

Definition at line 289 of file EGammaAmbiguityTool.cxx.

289  {
290  unsigned int author = ambiguityResolve(egamma);
291 
294  return true;
295  }
296 
298  return true;
299  }
300 
301  return (author == (egamma.type() == xAOD::Type::Electron ?
303 }

◆ ambiguityResolve() [1/3]

unsigned int EGammaAmbiguityTool::ambiguityResolve ( const xAOD::CaloCluster cluster,
const xAOD::Vertex vx,
const xAOD::TrackParticle tp 
) const
finaloverridevirtual

Return value: AuthorElectron, AuthorPhoton, AuthorAmbiguous, AuthorUnknown Needed because of existing client usage (i.e Trigger).

Implementation calls method above

Implements IEGammaAmbiguityTool.

Definition at line 232 of file EGammaAmbiguityTool.cxx.

234  {
235 
237  return ambiguityResolve(cluster,
238  vx,
239  tp,
240  type);
241 
242 }

◆ ambiguityResolve() [2/3]

unsigned int EGammaAmbiguityTool::ambiguityResolve ( const xAOD::CaloCluster cluster,
const xAOD::Vertex vx,
const xAOD::TrackParticle tp,
xAOD::AmbiguityTool::AmbiguityType type 
) const
finaloverridevirtual

Return value: AuthorElectron, AuthorPhoton, AuthorAmbiguous, AuthorUnknown.

Implements IEGammaAmbiguityTool.

Definition at line 75 of file EGammaAmbiguityTool.cxx.

78  {
79 
81  // Result should stay the same before after calibration corrections
82  double cluster_e = (cluster->clusterSize() != xAOD::CaloCluster::SW_35ele &&
83  cluster->clusterSize() != xAOD::CaloCluster::SW_35gam &&
84  cluster->clusterSize() != xAOD::CaloCluster::SuperCluster)
85  ? cluster->altE()
86  : cluster->e();
87 
88  //Number of hits from the track
89  uint8_t trkPixelHits(0);
90  uint8_t trkSiHits(0);
91  if (tp && !tp->summaryValue(trkPixelHits,xAOD::numberOfPixelHits)){
92  ATH_MSG_WARNING("Could not retrieve number of pixel hits from track");
93  }
94  if (tp && !tp->summaryValue(trkSiHits, xAOD::numberOfSCTHits)){
95  ATH_MSG_WARNING("Could not retrieve number of SCT hits from track");
96  }
97  trkSiHits += trkPixelHits;
98 
99  //Check if the vertex is double silicon
101  bool vxDoubleSi = (convType == xAOD::EgammaParameters::doubleSi);
102 
103  // Check if the track particle and the ones associated to the conversion vertex
104  // have innermost pixel hits
105  bool trkHasInnermostHit = tp && hasInnermostPixelHit(*tp);
106  size_t nTrkVxWithInnermostHit{};
107  if (vx and vxDoubleSi) nTrkVxWithInnermostHit = nTrkWithInnermostPixelHits(*vx);
108 
109  //See if the Si+Si conversion shares one track with the electron
110  //if not we might have a trident.
111  //if yes and the track is not good we definitely matched the conversion as electron.
112  bool shareTrack = vx && tp && trkSiHits>=m_MinNoSiHits && vxDoubleSi && isInVertex(*tp, *vx);
113 
114  //Debug messages
115  ATH_MSG_DEBUG("Vertex, SiSi, tracks with innermost pixel hits: "
116  << (vx != nullptr) << ", " << vxDoubleSi << ", " << nTrkVxWithInnermostHit);
117  ATH_MSG_DEBUG("Track, Si hits, pixel hits, has innermost pixel hit: "
118  << (tp != nullptr) << ", " << (int) trkSiHits << ", " << (int) trkPixelHits
119  << " , " << (int) trkHasInnermostHit);
120  ATH_MSG_DEBUG("Share track : " << shareTrack);
121 
122  //The Electron collection will NOT contain Photons
123  //The Photon collection will NOT contain Electrons
124 
125  //So for conversions vs electrons better to go to ambiguous
126  //except if we are sure.
127 
128  //Practically a photon here means definetely not Electron
129  //And vice-versa
130 
131  //Photon ==> Surely not electron
132  // - no track
133  // - or no track with the minimum requirent hits to be an electron
134  // - or Si+Si vertex and
135  // - No pixel
136  // - The electron track is part of the conversion
137  // In this case we do not want this to be in Electrons
138  if (!tp ||
139  trkSiHits<m_MinNoSiHits ||
140  (vxDoubleSi && !trkPixelHits && shareTrack)){
141  ATH_MSG_DEBUG("Returning Photon");
144  }
145 
146  // Ambigous due to E/P, Min Pt, pixel hits
147  // We are not sure it is a Photon, but is not good enough either to be surely
148  // an Electron
149  // - E/P >10 or track Pt < 2.0 GeV or no-pixel then Ambiguous
150  double track_ep = cluster_e * fabs(tp->qOverP());
151 
152  if(tp->pt()<m_minPtCut) {
153  ATH_MSG_DEBUG("Returning Ambiguous due min Pt");
156  }
157 
158  if( track_ep > m_maxEoverPCut) {
159  ATH_MSG_DEBUG("Returning Ambiguous due to E over P");
162  }
163 
164 
165  if(!trkPixelHits) {
166  ATH_MSG_DEBUG("Returning Ambiguous due to no pixels");
169  }
170 
171  // Electron ==> Surely not Photon
172  // - No vertex Matched (and trk has "innermost pixel hits" when
173  // m_noVertexNoInnermostAsAmb is true,
174  // othewise ambiguous)
175  // - Track with at least the minimum Si and Pixel hits (previous selection for
176  // photons/ambiguous)
177  // - And has E/P < 10 and Pt > 2.0 GeV (previous for ambiguous)
178  // - Or if a vertex exists and:
179  // * is not Si+Si
180  // * is Si+Si but only 1 trk has "innermost pixel hits"
181  // * is Si+Si and both tracks have "innermost pixel hits" but
182  // Rconv - RfirstHit > maxDeltaR_innermost
183  // In this case we do not want this to be in Photons
184 
185  if (!vx) {
186  if (trkHasInnermostHit || !m_noVertexNoInnermostAsAmb) {
187  ATH_MSG_DEBUG("Returning Electron");
190  } else {
191  // the true photons falling here are classified as unconverted photons
192  // but it may happen that they are late single-track conversions
193  // very few true electrons are falling here, since there is no innermost
194  // hits
195  ATH_MSG_DEBUG("Returning Ambiguous due to no conv vertex and track with "
196  "no innermost hits");
199  }
200  }
201 
202  // here we have a conv vertex
203  if (trkHasInnermostHit && (!vxDoubleSi || nTrkVxWithInnermostHit == 1 ||
204  !passDeltaR_innermost(*vx))) {
205  ATH_MSG_DEBUG("Returning Electron");
208  }
209 
210  // Ambiguous all else, these will go to both electrons and photons
211  // A matched Si+Si vertex (where either both or none of the tracks have
212  // "innermost pixel hits")
213  // and a track with "innermost pixel hits"
214  // A non Si+Si vertex matched and a track with no "innermost pixel hits"
215 
216  //If we have no double si
217  //or if the single track p matches the cluster E than the vertex p
218  //mark TrackEoverPBetterThanVertexEover.
219  //Otherwise maek as TrackEoverPBetterThanVertexEover
220  //as the double si vertex is a better match to the cluster E.
221  const double track_p = fabs(1.0/tp->qOverP());
222  const double vertex_p=xAOD::EgammaHelpers::momentumAtVertex(*vx).mag() ;
223  type = !vxDoubleSi || (fabs(track_p - cluster_e) < fabs(vertex_p- cluster_e))?
226  //end of types
227 
228  ATH_MSG_DEBUG("Returning Ambiguous");
230 }

◆ ambiguityResolve() [3/3]

unsigned int EGammaAmbiguityTool::ambiguityResolve ( const xAOD::Egamma egamma) const
finaloverridevirtual

Access the ambiguity resolution of central electrons and photons and return AuthorElectron, AuthorPhoton, AuthorAmbiguous, AuthorUnknown or the author of the object if no overlapping object is found.

Redo the ambiguity resolution of central electrons and photons and return AuthorElectron, AuthorPhoton, AuthorAmbiguous, AuthorUnknown or the author of the object if no overlapping object is found.

ELink.isAvailable(*egamma)) {

Implements IEGammaAmbiguityTool.

Definition at line 250 of file EGammaAmbiguityTool.cxx.

250  {
251 
252  //Fwd and Topo seeded not handled
255  ATH_MSG_DEBUG("Author Fwd of Topo seeded. Do not do overlap or ambiguity");
256  return egamma.author();
257  }
258 
259  //No overlap found so either photon or electron
260  if (!egamma.ambiguousObject()){
262  ATH_MSG_DEBUG("No overlaping object found");
263  return egamma.author();
264  }
265 
266  // Overlap found. define the electron and the photon
267  const xAOD::Electron* electron = static_cast<const xAOD::Electron*>(
268  egamma.type() == xAOD::Type::Electron ? &egamma : egamma.ambiguousObject());
269  const xAOD::Photon* photon = static_cast<const xAOD::Photon*>(
270  egamma.type() == xAOD::Type::Photon ? &egamma : egamma.ambiguousObject());
271 
272  //Error if cannot define any of them
273  if (!electron || !photon){
274  ATH_MSG_WARNING("Could not cast to electron and/or photon");
275  return egamma.author();
276  }
277 
278  //pass the proper input to the ambiguity resolve method
280  unsigned int result = ambiguityResolve(electron->caloCluster(),
281  photon->vertex(),
282  electron->trackParticle(),
283  type);
284  ATH_MSG_DEBUG("Performed ambiguity resolution, resulting type is: "<< type);
285  return result;
286 }

◆ declareGaudiProperty() [1/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleKeyArrayType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKeyArray>

Definition at line 170 of file AthCommonDataStore.h.

172  {
173  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
174  hndl.value(),
175  hndl.documentation());
176 
177  }

◆ declareGaudiProperty() [2/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleKeyType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKey>

Definition at line 156 of file AthCommonDataStore.h.

158  {
159  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
160  hndl.value(),
161  hndl.documentation());
162 
163  }

◆ declareGaudiProperty() [3/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleBase>

Definition at line 184 of file AthCommonDataStore.h.

186  {
187  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
188  hndl.value(),
189  hndl.documentation());
190  }

◆ declareGaudiProperty() [4/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  t,
const SG::NotHandleType  
)
inlineprivateinherited

specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray>

Definition at line 199 of file AthCommonDataStore.h.

200  {
201  return PBASE::declareProperty(t);
202  }

◆ declareProperty() [1/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleBase hndl,
const std::string &  doc,
const SG::VarHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation 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.

249  {
250  this->declare(hndl.vhKey());
251  hndl.vhKey().setOwner(this);
252 
253  return PBASE::declareProperty(name,hndl,doc);
254  }

◆ declareProperty() [2/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleKey hndl,
const std::string &  doc,
const SG::VarHandleKeyType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation 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.

225  {
226  this->declare(hndl);
227  hndl.setOwner(this);
228 
229  return PBASE::declareProperty(name,hndl,doc);
230  }

◆ declareProperty() [3/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleKeyArray hndArr,
const std::string &  doc,
const SG::VarHandleKeyArrayType  
)
inlineinherited

Definition at line 259 of file AthCommonDataStore.h.

263  {
264 
265  // std::ostringstream ost;
266  // ost << Algorithm::name() << " VHKA declareProp: " << name
267  // << " size: " << hndArr.keys().size()
268  // << " mode: " << hndArr.mode()
269  // << " vhka size: " << m_vhka.size()
270  // << "\n";
271  // debug() << ost.str() << endmsg;
272 
273  hndArr.setOwner(this);
274  m_vhka.push_back(&hndArr);
275 
276  Gaudi::Details::PropertyBase* p = PBASE::declareProperty(name, hndArr, doc);
277  if (p != 0) {
278  p->declareUpdateHandler(&AthCommonDataStore<PBASE>::updateVHKA, this);
279  } else {
280  ATH_MSG_ERROR("unable to call declareProperty on VarHandleKeyArray "
281  << name);
282  }
283 
284  return p;
285 
286  }

◆ declareProperty() [4/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc,
const SG::NotHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation 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.

337  {
338  return PBASE::declareProperty(name, property, doc);
339  }

◆ declareProperty() [5/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc = "none" 
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation 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.

355  {
356  typedef typename SG::HandleClassifier<T>::type htype;
357  return declareProperty (name, property, doc, htype());
358  }

◆ declareProperty() [6/6]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( Gaudi::Property< T > &  t)
inlineinherited

Definition at line 145 of file AthCommonDataStore.h.

145  {
146  typedef typename SG::HandleClassifier<T>::type htype;
148  }

◆ detStore()

const ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< AlgTool > >::detStore ( ) const
inlineinherited

The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 95 of file AthCommonDataStore.h.

95 { return m_detStore; }

◆ evtStore() [1/2]

ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore ( )
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 85 of file AthCommonDataStore.h.

85 { return m_evtStore; }

◆ evtStore() [2/2]

const ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore ( ) const
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 90 of file AthCommonDataStore.h.

90 { return m_evtStore; }

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::extraDeps_update_handler ( Gaudi::Details::PropertyBase &  ExtraDeps)
protectedinherited

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

◆ getKey()

SG::sgkey_t asg::AsgTool::getKey ( const void *  ptr) const
inherited

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
ptrThe 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.

119  {
120 
121 #ifdef XAOD_STANDALONE
122  // In case we use @c xAOD::TEvent, we have a direct function call
123  // for this.
124  return evtStore()->event()->getKey( ptr );
125 #else
126  const SG::DataProxy* proxy = evtStore()->proxy( ptr );
127  return ( proxy == nullptr ? 0 : proxy->sgkey() );
128 #endif // XAOD_STANDALONE
129  }

◆ 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
ptrThe 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.

106  {
107 
108 #ifdef XAOD_STANDALONE
109  // In case we use @c xAOD::TEvent, we have a direct function call
110  // for this.
111  return evtStore()->event()->getName( ptr );
112 #else
113  const SG::DataProxy* proxy = evtStore()->proxy( ptr );
114  static const std::string dummy = "";
115  return ( proxy == nullptr ? dummy : proxy->name() );
116 #endif // XAOD_STANDALONE
117  }

◆ getProperty()

template<class T >
const T* asg::AsgTool::getProperty ( const std::string &  name) const
inherited

Get one of the tool's properties.

◆ hasInnermostPixelHit()

bool EGammaAmbiguityTool::hasInnermostPixelHit ( const xAOD::TrackParticle tp) const

Return true if track has innermost pixel hit or next-to-innermost in case innermost is not expected or at least m_MinNoPixHits pixel hits in case next-to-innermost is not expected.

Definition at line 309 of file EGammaAmbiguityTool.cxx.

310 {
311  uint8_t trkExpectHit(0);
312  uint8_t trkNhits(0);
313  CHECK_HITS( tp.summaryValue(trkNhits,xAOD::numberOfInnermostPixelLayerHits) );
314  if (trkNhits) {return true;}
315 
316  CHECK_HITS( tp.summaryValue(trkExpectHit,xAOD::expectInnermostPixelLayerHit) );
317  if (trkExpectHit) {return false;}
318 
320  if (trkNhits) {return true;}
321 
322  CHECK_HITS( tp.summaryValue(trkExpectHit,xAOD::expectNextToInnermostPixelLayerHit) );
323  if (trkExpectHit) {return false;}
324 
325  CHECK_HITS( tp.summaryValue(trkNhits,xAOD::numberOfPixelHits) );
326  return (trkNhits >= m_MinNoPixHits);
327 }

◆ initialize()

StatusCode EGammaAmbiguityTool::initialize ( )
finaloverridevirtual

Gaudi Service Interface method implementations.

Reimplemented from asg::AsgTool.

Definition at line 68 of file EGammaAmbiguityTool.cxx.

68  {
69  ATH_MSG_DEBUG("Initializing " << name() << "...");
70  return StatusCode::SUCCESS;
71 }

◆ inputHandles()

virtual std::vector<Gaudi::DataHandle*> AthCommonDataStore< AthCommonMsg< AlgTool > >::inputHandles ( ) const
overridevirtualinherited

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.

◆ isInVertex()

bool EGammaAmbiguityTool::isInVertex ( const xAOD::TrackParticle trk,
const xAOD::Vertex vx 
) const

Return true if the given TrackParticle is part of the vertex.

Definition at line 342 of file EGammaAmbiguityTool.cxx.

342  {
343  for (size_t i = 0; i < vx.nTrackParticles(); ++i){
344  const xAOD::TrackParticle *tp = vx.trackParticle(i);
345  if (!tp) {ATH_MSG_WARNING("Null pointer to track particle in vertex");}
346  if (tp == &trk) {return true;}
347  }
348  return false;
349 }

◆ msg() [1/2]

MsgStream& AthCommonMsg< AlgTool >::msg ( ) const
inlineinherited

Definition at line 24 of file AthCommonMsg.h.

24  {
25  return this->msgStream();
26  }

◆ msg() [2/2]

MsgStream& AthCommonMsg< AlgTool >::msg ( const MSG::Level  lvl) const
inlineinherited

Definition at line 27 of file AthCommonMsg.h.

27  {
28  return this->msgStream(lvl);
29  }

◆ 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.

101  {
102 
103  return MSG::name( msg().level() );
104  }

◆ msgLvl()

bool AthCommonMsg< AlgTool >::msgLvl ( const MSG::Level  lvl) const
inlineinherited

Definition at line 30 of file AthCommonMsg.h.

30  {
31  return this->msgLevel(lvl);
32  }

◆ nTrkWithInnermostPixelHits()

size_t EGammaAmbiguityTool::nTrkWithInnermostPixelHits ( const xAOD::Vertex vx) const

Return the number of tracks with "innermost pixel hits" (see above) in the given vertex.

Definition at line 331 of file EGammaAmbiguityTool.cxx.

331  {
332  size_t n = 0;
333  for (size_t i = 0; i < vx.nTrackParticles(); ++i){
334  const xAOD::TrackParticle *tp = vx.trackParticle(i);
335  if (!tp) {ATH_MSG_WARNING("Null pointer to track particle in vertex");}
336  else if (hasInnermostPixelHit(*tp)) {++n;}
337  }
338  return n;
339 }

◆ outputHandles()

virtual std::vector<Gaudi::DataHandle*> AthCommonDataStore< AthCommonMsg< AlgTool > >::outputHandles ( ) const
overridevirtualinherited

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.

◆ passDeltaR_innermost()

bool EGammaAmbiguityTool::passDeltaR_innermost ( const xAOD::Vertex vx) const

Return true if the vertex passes the requirement on Rconv - RfirstHit.

Definition at line 352 of file EGammaAmbiguityTool.cxx.

353 {
354  static const SG::AuxElement::Accessor<float> minRfirstHitAcc("minRfirstHit");
355  if (not minRfirstHitAcc.isAvailable(vx)) {
356  ATH_MSG_WARNING("minRfirstHit not available");
357  return false;
358  }
359  return xAOD::EgammaHelpers::conversionRadius(&vx) - minRfirstHitAcc(vx) < m_maxDeltaR_innermost;
360 }

◆ print()

void asg::AsgTool::print ( ) const
virtualinherited

◆ renounce()

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> AthCommonDataStore< AthCommonMsg< AlgTool > >::renounce ( T &  h)
inlineprotectedinherited

Definition at line 380 of file AthCommonDataStore.h.

381  {
382  h.renounce();
383  PBASE::renounce (h);
384  }

◆ renounceArray()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::renounceArray ( SG::VarHandleKeyArray handlesArray)
inlineprotectedinherited

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364  {
365  handlesArray.renounce();
366  }

◆ sysInitialize()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysInitialize ( )
overridevirtualinherited

Perform system initialization for an algorithm.

We override this to declare all the elements of handle key arrays at the end of initialization. See comments on updateVHKA.

Reimplemented in DerivationFramework::CfAthAlgTool, AthCheckedComponent< AthAlgTool >, AthCheckedComponent<::AthAlgTool >, and asg::AsgMetadataTool.

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysStart ( )
overridevirtualinherited

Handle START transition.

We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.

◆ updateVHKA()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::updateVHKA ( Gaudi::Details::PropertyBase &  )
inlineinherited

Definition at line 308 of file AthCommonDataStore.h.

308  {
309  // debug() << "updateVHKA for property " << p.name() << " " << p.toString()
310  // << " size: " << m_vhka.size() << endmsg;
311  for (auto &a : m_vhka) {
312  std::vector<SG::VarHandleKey*> keys = a->keys();
313  for (auto k : keys) {
314  k->setOwner(this);
315  }
316  }
317  }

Member Data Documentation

◆ m_acceptAmbiguous

bool EGammaAmbiguityTool::m_acceptAmbiguous
private

@When used as a selector reject/accpet ambiguous cases

Definition at line 97 of file EGammaAmbiguityTool.h.

◆ m_detStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
privateinherited

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_evtStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
privateinherited

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_maxDeltaR_innermost

float EGammaAmbiguityTool::m_maxDeltaR_innermost
private

Maximum value for Rconv - RfirstHit for Si+Si conversions where both tracks have innermost hits.

Definition at line 93 of file EGammaAmbiguityTool.h.

◆ m_maxEoverPCut

float EGammaAmbiguityTool::m_maxEoverPCut
private

Maximum EoverP, more that this is ambiguous.

Definition at line 89 of file EGammaAmbiguityTool.h.

◆ m_MinNoPixHits

int EGammaAmbiguityTool::m_MinNoPixHits
private

Minimum number of pixel hits to be an electron and not a photon.

Definition at line 87 of file EGammaAmbiguityTool.h.

◆ m_MinNoSiHits

int EGammaAmbiguityTool::m_MinNoSiHits
private

Minimum number of silicon hits to be an electron and not a photon.

Definition at line 85 of file EGammaAmbiguityTool.h.

◆ m_minPtCut

float EGammaAmbiguityTool::m_minPtCut
private

Minimum Pt, less that this is ambiguous.

Definition at line 91 of file EGammaAmbiguityTool.h.

◆ m_noVertexNoInnermostAsAmb

bool EGammaAmbiguityTool::m_noVertexNoInnermostAsAmb
private

no vertex && no innermost hit -> amb.

Use true in reconstruction to have more ambiguous

Definition at line 95 of file EGammaAmbiguityTool.h.

◆ m_varHandleArraysDeclared

bool AthCommonDataStore< AthCommonMsg< AlgTool > >::m_varHandleArraysDeclared
privateinherited

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

std::vector<SG::VarHandleKeyArray*> AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
privateinherited

Definition at line 398 of file AthCommonDataStore.h.


The documentation for this class was generated from the following files:
asg::AsgTool
Base class for the dual-use tool implementation classes.
Definition: AsgTool.h:47
CHECK_HITS
#define CHECK_HITS(EXP)
Definition: EGammaAmbiguityTool.cxx:29
xAOD::Electron
Electron_v1 Electron
Definition of the current "egamma version".
Definition: Event/xAOD/xAODEgamma/xAODEgamma/Electron.h:17
get_generator_info.result
result
Definition: get_generator_info.py:21
xAOD::Vertex_v1::nTrackParticles
size_t nTrackParticles() const
Get the number of tracks associated with this vertex.
Definition: Vertex_v1.cxx:270
StateLessPT_NewConfig.proxy
proxy
Definition: StateLessPT_NewConfig.py:395
EGammaAmbiguityTool::m_maxDeltaR_innermost
float m_maxDeltaR_innermost
Maximum value for Rconv - RfirstHit for Si+Si conversions where both tracks have innermost hits.
Definition: EGammaAmbiguityTool.h:93
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
xAOD::uint8_t
uint8_t
Definition: Muon_v1.cxx:557
SG::Accessor
Helper class to provide type-safe access to aux data.
Definition: Control/AthContainers/AthContainers/Accessor.h:68
EGammaAmbiguityTool::m_MinNoSiHits
int m_MinNoSiHits
Minimum number of silicon hits to be an electron and not a photon.
Definition: EGammaAmbiguityTool.h:85
EGammaAmbiguityTool::ambiguityResolve
virtual unsigned int ambiguityResolve(const xAOD::CaloCluster *cluster, const xAOD::Vertex *vx, const xAOD::TrackParticle *tp, xAOD::AmbiguityTool::AmbiguityType &type) const override final
Return value: AuthorElectron, AuthorPhoton, AuthorAmbiguous, AuthorUnknown.
Definition: EGammaAmbiguityTool.cxx:75
EGammaAmbiguityTool::nTrkWithInnermostPixelHits
size_t nTrkWithInnermostPixelHits(const xAOD::Vertex &vx) const
Return the number of tracks with "innermost pixel hits" (see above) in the given vertex.
Definition: EGammaAmbiguityTool.cxx:331
AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
xAOD::AmbiguityTool::unknown
@ unknown
Definition: IEGammaAmbiguityTool.h:42
xAOD::CaloCluster_v1::SuperCluster
@ SuperCluster
Definition: CaloCluster_v1.h:110
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
Definition: AthCommonDataStore.h:390
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
std::vector< SG::VarHandleKeyArray * > m_vhka
Definition: AthCommonDataStore.h:398
ParticleTest.tp
tp
Definition: ParticleTest.py:25
xAOD::numberOfPixelHits
@ numberOfPixelHits
these are the pixel hits, including the b-layer [unit8_t].
Definition: TrackingPrimitives.h:260
xAOD::expectInnermostPixelLayerHit
@ expectInnermostPixelLayerHit
Do we expect a 0th-layer barrel hit for this track?
Definition: TrackingPrimitives.h:237
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
xAOD::EgammaParameters::ConversionType
ConversionType
Definition: EgammaEnums.h:268
xAOD::EgammaParameters::AuthorFwdElectron
const uint16_t AuthorFwdElectron
Electron reconstructed by the Forward cluster-based algorithm.
Definition: EgammaDefs.h:30
dbg::ptr
void * ptr(T *p)
Definition: SGImplSvc.cxx:74
python.CaloAddPedShiftConfig.type
type
Definition: CaloAddPedShiftConfig.py:42
EGammaAmbiguityTool::hasInnermostPixelHit
bool hasInnermostPixelHit(const xAOD::TrackParticle &tp) const
Return true if track has innermost pixel hit or next-to-innermost in case innermost is not expected o...
Definition: EGammaAmbiguityTool.cxx:309
python.iconfTool.models.loaders.level
level
Definition: loaders.py:20
egamma
Definition: egamma.h:58
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
IDTPMcnv.htype
htype
Definition: IDTPMcnv.py:29
AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore
ServiceHandle< StoreGateSvc > & evtStore()
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:85
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:210
AthCommonDataStore
Definition: AthCommonDataStore.h:52
xAOD::AmbiguityTool::electron
@ electron
Definition: IEGammaAmbiguityTool.h:34
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
xAOD::expectNextToInnermostPixelLayerHit
@ expectNextToInnermostPixelLayerHit
Do we expect a 1st-layer barrel hit for this track?
Definition: TrackingPrimitives.h:248
columnar::ContainerId::cluster
@ cluster
lumiFormat.i
int i
Definition: lumiFormat.py:85
xAOD::EgammaParameters::AuthorCaloTopo35
const uint16_t AuthorCaloTopo35
Photon reconstructed by SW CaloTopo35 seeded clusters.
Definition: EgammaDefs.h:38
xAOD::EgammaParameters::AuthorAmbiguous
const uint16_t AuthorAmbiguous
Object Reconstructed by standard cluster-based algorithm.
Definition: EgammaDefs.h:32
beamspotman.n
n
Definition: beamspotman.py:731
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
xAOD::CaloCluster_v1::SW_35gam
@ SW_35gam
Definition: CaloCluster_v1.h:96
xAOD::AmbiguityTool::ambiguousVertexEoverPBetterThanTrackEoverP
@ ambiguousVertexEoverPBetterThanTrackEoverP
Definition: IEGammaAmbiguityTool.h:40
xAOD::EgammaHelpers::momentumAtVertex
Amg::Vector3D momentumAtVertex(const xAOD::Photon *, bool debug=false)
return the momentum at the vertex (which can be 0)
Definition: PhotonxAODHelpers.cxx:89
xAOD::EgammaParameters::doubleSi
@ doubleSi
two tracks, both with Si hits
Definition: EgammaEnums.h:279
xAOD::AmbiguityTool::ambiguousTrackEoverPBetterThanVertexEoverP
@ ambiguousTrackEoverPBetterThanVertexEoverP
Definition: IEGammaAmbiguityTool.h:35
EGammaAmbiguityTool::m_acceptAmbiguous
bool m_acceptAmbiguous
@When used as a selector reject/accpet ambiguous cases
Definition: EGammaAmbiguityTool.h:97
python.xAODType.dummy
dummy
Definition: xAODType.py:4
MSG::name
const std::string & name(Level lvl)
Convenience function for translating message levels to strings.
Definition: MsgLevel.cxx:19
EGammaAmbiguityTool::m_MinNoPixHits
int m_MinNoPixHits
Minimum number of pixel hits to be an electron and not a photon.
Definition: EGammaAmbiguityTool.h:87
xAOD::Vertex_v1::trackParticle
const TrackParticle * trackParticle(size_t i) const
Get the pointer to a given track that was used in vertex reco.
Definition: Vertex_v1.cxx:249
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
xAOD::AmbiguityTool::AmbiguityType
AmbiguityType
Definition: IEGammaAmbiguityTool.h:33
SG::VarHandleKeyArray::renounce
virtual void renounce()=0
SG::HandleClassifier::type
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
Definition: HandleClassifier.h:54
egamma::author
unsigned int author() const
Reconstruction Author
Definition: egamma.h:244
xAOD::numberOfNextToInnermostPixelLayerHits
@ numberOfNextToInnermostPixelLayerHits
these are the hits in the 1st pixel barrel layer
Definition: TrackingPrimitives.h:249
xAOD::AmbiguityTool::photon
@ photon
Definition: IEGammaAmbiguityTool.h:41
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
xAOD::AmbiguityTool::ambiguousNoInnermost
@ ambiguousNoInnermost
Definition: IEGammaAmbiguityTool.h:39
xAOD::EgammaHelpers::conversionRadius
float conversionRadius(const xAOD::Vertex *vx)
return the conversion radius or 9999.
Definition: PhotonxAODHelpers.cxx:77
xAOD::Electron_v1
Definition: Electron_v1.h:34
xAOD::AmbiguityTool::ambiguousTrackHighEoverP
@ ambiguousTrackHighEoverP
Definition: IEGammaAmbiguityTool.h:37
xAOD::Photon
Photon_v1 Photon
Definition of the current "egamma version".
Definition: Event/xAOD/xAODEgamma/xAODEgamma/Photon.h:17
EGammaAmbiguityTool::passDeltaR_innermost
bool passDeltaR_innermost(const xAOD::Vertex &vx) const
Return true if the vertex passes the requirement on Rconv - RfirstHit.
Definition: EGammaAmbiguityTool.cxx:352
xAOD::photon
@ photon
Definition: TrackingPrimitives.h:200
a
TList * a
Definition: liststreamerinfos.cxx:10
EGammaAmbiguityTool::isInVertex
bool isInVertex(const xAOD::TrackParticle &, const xAOD::Vertex &) const
Return true if the given TrackParticle is part of the vertex.
Definition: EGammaAmbiguityTool.cxx:342
EGammaAmbiguityTool::m_noVertexNoInnermostAsAmb
bool m_noVertexNoInnermostAsAmb
no vertex && no innermost hit -> amb.
Definition: EGammaAmbiguityTool.h:95
h
xAOD::AmbiguityTool::ambiguousTrackNoPixel
@ ambiguousTrackNoPixel
Definition: IEGammaAmbiguityTool.h:38
xAOD::Photon_v1
Definition: Photon_v1.h:37
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
EGammaAmbiguityTool::m_minPtCut
float m_minPtCut
Minimum Pt, less that this is ambiguous.
Definition: EGammaAmbiguityTool.h:91
CaloCondBlobAlgs_fillNoiseFromASCII.author
string author
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:26
AthCommonMsg< AlgTool >::msg
MsgStream & msg() const
Definition: AthCommonMsg.h:24
xAOD::EgammaParameters::electron
@ electron
Definition: EgammaEnums.h:18
xAOD::EgammaHelpers::conversionType
xAOD::EgammaParameters::ConversionType conversionType(const xAOD::Photon *ph)
return the photon conversion type (see EgammaEnums)
Definition: PhotonxAODHelpers.cxx:27
xAOD::EgammaParameters::AuthorPhoton
const uint16_t AuthorPhoton
Object Reconstructed by standard cluster-based algorithm.
Definition: EgammaDefs.h:28
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:629
xAOD::numberOfSCTHits
@ numberOfSCTHits
number of hits in SCT [unit8_t].
Definition: TrackingPrimitives.h:269
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:798
xAOD::TrackParticle_v1
Class describing a TrackParticle.
Definition: TrackParticle_v1.h:43
xAOD::AmbiguityTool::ambiguousTrackLowPt
@ ambiguousTrackLowPt
Definition: IEGammaAmbiguityTool.h:36
xAOD::CaloCluster_v1::SW_35ele
@ SW_35ele
Definition: CaloCluster_v1.h:92
SG::DataProxy
Definition: DataProxy.h:45
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
fitman.k
k
Definition: fitman.py:528
xAOD::numberOfInnermostPixelLayerHits
@ numberOfInnermostPixelLayerHits
these are the hits in the 0th pixel barrel layer
Definition: TrackingPrimitives.h:238
EGammaAmbiguityTool::m_maxEoverPCut
float m_maxEoverPCut
Maximum EoverP, more that this is ambiguous.
Definition: EGammaAmbiguityTool.h:89
xAOD::EgammaParameters::AuthorElectron
const uint16_t AuthorElectron
Object Reconstructed by standard cluster-based algorithm.
Definition: EgammaDefs.h:24