|
ATLAS Offline Software
|
Go to the documentation of this file.
28 if (std::fabs(
eta)>10. || std::fabs(
phi)>10.)
return;
31 double iradius = 1 /
radius;
43 std::vector<ElementLink<xAOD::IParticleContainer> > ipLinks(neutralLinks.size());
44 for(
size_t i=0;
i<neutralLinks.size();
i++) ipLinks[
i] = neutralLinks[
i];
61 template<
typename DTYPE,
typename CTYPE>
63 static const std::string
ts =
typeid(DTYPE).
name();
65 const auto split =
wh.key().rfind (
'.');
66 if (
split == std::string::npos)
67 throw std::runtime_error (
"decor key does not contain a .: " +
wh.key());
81 declareInterface<ITrackCaloClusterTool>(
this);
92 return StatusCode::SUCCESS;
109 if(tccInfo.
pv0==
nullptr){
111 return StatusCode::FAILURE;
130 const auto & clusterLinks = clusterLinksH(*trk);
131 if( clusterLinks.empty() )
continue;
144 ATH_MSG_VERBOSE (
"cluster->pt() " << cluster_pt <<
" cluster->eta() " << cluster->
eta() <<
" cluster->phi() "
145 << cluster->
phi() <<
" track pt " << trk->
pt() <<
" (tccInfo.clusterToTracksWeightMap.at(cluster)).Pt() " << (tccInfo.
clusterToTracksWeightMap.at(cluster)).Pt());
162 dec_isCorrected(*trk) = 1;
163 dec_calEntryEta(*trk) =
eta;
164 dec_calEntryPhi(*trk) =
phi;
174 ATH_MSG_VERBOSE (
"Created TCC with pt " << tcc->
pt() <<
" eta " << tcc->
eta() <<
" phi " << tcc->
phi() <<
" mass " << tcc->
m() <<
" signalType= " << tcc->
signalType());
178 double det_eta =
pars->position().eta();
179 dec_detEta(*tcc) = det_eta;
184 return StatusCode::SUCCESS;
215 if( ! clusterLinksH(*track).empty() )
continue;
229 double det_eta =
track->eta();
231 if(
pars) det_eta =
pars->position().eta();
232 dec_detEta(*tcc) = det_eta;
237 return StatusCode::SUCCESS;
255 return StatusCode::SUCCESS;
276 const std::vector< ElementLink<xAOD::CaloClusterContainer> >
ClusterLink {clusterLink};
282 dec_detEta(*tcc) = dec_detEta(*cluster);
287 return StatusCode::SUCCESS;
313 std::vector<ElementLink< xAOD::FlowElementContainer > >
m_pfoLinks;
323 double totalpfo_pt =
m_useEnergy ? totalP.E() : totalP.Pt();
356 return StatusCode::SUCCESS;
362 const EventContext& ctx=Gaudi::Hive::currentContext();
387 if(pfo->pt() <= 0)
continue;
394 if(pfo->isCharged()) {
397 if(!PVMatchedAcc(*pfo))
continue;
401 const std::vector< ElementLink<xAOD::FlowElementContainer> > PFOLink {pfoLink};
405 if(pfo->isCharged()) {
416 return StatusCode::SUCCESS;
virtual double phi() const
The azimuthal angle ( ) of the particle.
virtual double pt() const override final
The transverse momentum ( ) of the particle.
Scalar phi() const
phi method
const_pointer_type cptr()
Dereference the pointer.
virtual double m() const override
The invariant mass of the particle.
Helper class to provide type-safe access to aux data.
Scalar eta() const
pseudorapidity method
virtual double eta() const override final
The pseudorapidity ( ) of the particle.
std::string decorKeyFromKey(const std::string &key)
Extract the decoration part of key.
void setSignalType(signal_t t)
xAOD::FlowElementContainer * m_tccContainer
virtual double m() const
The invariant mass of the particle.
Helper to simultaneously calculate sin and cos of the same angle.
SignalType
Enum to encode the nature of the object this FlowElement represents.
const xAOD::TrackParticleContainer * allTracks
std::map< const xAOD::TrackParticle *, FourMom_t > trackTotalClusterPt
bool isMatched(int matchInfo)
const Amg::Vector3D & position() const
Returns the 3-pos.
virtual double phi() const override
The azimuthal angle ( ) of the particle.
Helper class to provide constant type-safe access to aux data.
virtual double pt() const override
#define ATH_MSG_VERBOSE(x)
void setOtherObjectLinks(const std::vector< ElementLink< IParticleContainer >> &elV)
const TrackCaloClusterInfo * m_tccInfo
Class providing the definition of the 4-vector interface.
Some common helper functions used by decoration handles.
virtual void processTrk(const xAOD::TrackParticle *trk)
const xAOD::FlowElementContainer * m_pfoContainer
const CP::ITrackVertexAssociationTool * m_trackVertexAssoTool
TLorentzVector FourMom_t
Definition of the 4-momentum type.
Description of a calorimeter cluster.
Handle class for reading a decoration on an object.
Helper class to provide type-safe access to aux data.
virtual double eta() const
The pseudorapidity ( ) of the particle.
::StatusCode StatusCode
StatusCode definition for legacy code.
void setParameters(T *h, TGraphAsymmErrors *tg)
FlowElement_v1 FlowElement
Definition of the current "pfo version".
virtual void processPFO(const xAOD::TrackParticle *trk, const xAOD::FlowElement *pfo)
signal_t signalType() const
size_t index() const
Return the index of this element within its container.
virtual void combinedUFOLoop(const TrackCaloClusterInfo *tccInfo, const xAOD::FlowElementContainer *pfos)
std::vector< ElementLink< xAOD::FlowElementContainer > > m_pfoLinks
std::string m_clustersLinkK
virtual FourMom_t p4() const
The full 4-momentum of the particle.
virtual double pt() const
The transverse momentum ( ) of the particle (negative for negative-energy clusters)
void setChargedObjectLinks(const std::vector< ElementLink< IParticleContainer >> &elV)
virtual double e() const override
The total energy of the particle.
\bried Internal helper class for TCC & UFO building.
value_type push_back(value_type pElem)
Add an element to the end of the collection.
std::map< const xAOD::IParticle *, FourMom_t > clusterToTracksWeightMap
Eigen::Matrix< double, 3, 1 > Vector3D
const_pointer_type ptr()
Dereference the pointer.
virtual double eta() const override
The pseudorapidity ( ) of the particle.
virtual FourMom_t p4() const override
The full 4-momentum of the particle.
Implement a concrete CombinedUFOLoop dedicated to building UFO see TCCHelpers.h in TrackCaloClusterRe...
Helper to simultaneously calculate sin and cos of the same angle.
void setP4(float pt, float eta, float phi, float m)
Handle class for reading a decoration on an object.
bool isAvailable(const ELT &e) const
Test to see if this variable exists in the store.
Class describing a TrackParticle.
Property holding a SG store/key/clid/attr name from which a ReadDecorHandle is made.
Implements a loop over tracks and pflow object to build UFOs.
const xAOD::CaloClusterContainer * allClusters
virtual double e() const
The total energy of the particle.
const SG::ReadDecorHandleKey< xAOD::TrackParticleContainer > * m_linkdecorkey
Base class for elements of a container that can have aux data.
virtual double phi() const override final
The azimuthal angle ( ) of the particle (has range to .)
A detector object made of other lower level object(s)