|
ATLAS Offline Software
|
Go to the documentation of this file.
68 return StatusCode::SUCCESS;
80 return StatusCode::FAILURE;
86 return StatusCode::FAILURE;
88 return StatusCode::SUCCESS;
95 std::vector<const xAOD::IParticle*>& tclist,
106 TLorentzVector clusterP4 = cluster->
p4();
111 clusterP4 = vertexedCluster.
p4();
114 if (clusterP4.DeltaR(tauAxis) > 0.2)
continue;
119 return StatusCode::SUCCESS;
124 std::vector<const xAOD::IParticle*>& constlist,
129 if(tauTrk->trackLinks().empty() || !tauTrk->trackLinks().at(0).isValid()){
130 ATH_MSG_DEBUG(
"Skipping absent tau track, probably thinned");
135 ATH_MSG_VERBOSE(
"Accept tau track " << trk <<
" px, py = " << trk->
p4().Px() <<
", " << trk->
p4().Py());
136 constlist.push_back(trk);
140 return StatusCode::SUCCESS;
145 std::vector<const xAOD::IParticle*>& pfolist,
147 std::map<const IParticle*,MissingETBase::Types::constvec_t> &)
const
152 for(
const auto *
const pfo : *constits.
pfoCont) {
154 if (!pfo->isCharged()) {
163 if(ttrk->trackLinks().empty() || !ttrk->trackLinks().at(0).isValid()){
164 ATH_MSG_DEBUG(
"Skipping absent tau track, probably thinned");
178 pfolist.push_back(pfo);
181 return StatusCode::SUCCESS;
185 std::vector<const xAOD::IParticle*>& felist,
187 std::map<const IParticle*,MissingETBase::Types::constvec_t> &)
const
195 return StatusCode::SUCCESS;
200 std::vector<const xAOD::IParticle*>& felist,
206 std::vector<FELink_t> nFELinks;
207 std::vector<FELink_t> cFELinks;
211 nFELinks=neutralFEReadDecorHandle(*tau);
212 cFELinks=chargedFEReadDecorHandle(*tau);
215 for (
const FELink_t& feLink : cFELinks) {
216 if (!feLink.isValid())
continue;
218 for (
const auto *
const fe : *constits.
feCont){
219 if (fe->index() == fe_init->
index() && fe->isCharged()){
222 ATH_MSG_DEBUG(
"Accept cFE with pt " << fe->pt() <<
", e " << fe->e() <<
", eta " << fe->eta() <<
", phi " << fe->phi() );
223 felist.push_back(fe);
230 for (
const FELink_t& feLink : nFELinks) {
231 if (!feLink.isValid())
continue;
233 for (
const auto *
const fe : *constits.
feCont){
234 if (fe->index() == fe_init->
index() && !fe->isCharged()){
235 if( ( !fe->isCharged()&& fe->e() > FLT_MIN ) ){
236 ATH_MSG_DEBUG(
"Accept nFE with pt " << fe->pt() <<
", e " << fe->e() <<
", eta " << fe->eta() <<
", phi " << fe->phi() <<
" in sum.");
237 felist.push_back(fe);
244 return StatusCode::SUCCESS;
250 std::vector<const xAOD::IParticle*>& felist,
255 ATH_MSG_ERROR(
"Tau seed jet link is invalid. Cannot extract FlowElements.");
256 return StatusCode::FAILURE;
271 if(ttrk->trackLinks().empty() || !ttrk->trackLinks().at(0).isValid()){
272 ATH_MSG_DEBUG(
"Skipping absent tau track, probably thinned");
286 felist.push_back(pfo);
289 return StatusCode::SUCCESS;
virtual FourMom_t p4() const final
The full 4-momentum of the particle.
constexpr ParticleHypothesis particle[PARTICLEHYPOTHESES]
the array of masses
StatusCode extractTopoClusters(const xAOD::IParticle *obj, std::vector< const xAOD::IParticle * > &tclist, const met::METAssociator::ConstitHolder &constits) const final
virtual StatusCode initialize() override
Dummy implementation of the initialisation function.
const_pointer_type cptr()
Dereference the pointer.
SG::ReadDecorHandleKey< xAOD::TauJetContainer > m_chargedFEReadDecorKey
virtual Type::ObjectType type() const
The type of the object as a simple enumeration.
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.
const Amg::Vector3D & position() const
Returns the 3-pos.
Helper class to provide constant type-safe access to aux data.
#define ATH_MSG_VERBOSE(x)
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
Class providing the definition of the 4-vector interface.
bool isValid() const
Test to see if the link can be dereferenced.
std::vector< const IParticle * > clusters() const
StatusCode extractFEs(const xAOD::TauJet *tau, std::vector< const xAOD::IParticle * > &felist, const met::METAssociator::ConstitHolder &constits) const
virtual double pt() const
The transverse momentum ( ) of the particle.
virtual FourMom_t p4() const override final
The full 4-momentum of the particle.
Description of a calorimeter cluster.
SG::ReadDecorHandleKey< xAOD::TauJetContainer > m_neutralFEReadDecorKey
Handle class for reading a decoration on an object.
StatusCode executeTool(xAOD::MissingETContainer *metCont, xAOD::MissingETAssociationMap *metMap) const final
::StatusCode StatusCode
StatusCode definition for legacy code.
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
Class describing a tau jet.
const JetLink_t & jetLink() const
size_t index() const
Return the index of this element within its container.
METTauAssociator()
Default constructor:
virtual bool isValid() override final
Can the handle be successfully dereferenced?
virtual FourMom_t p4() const
The full 4-momentum of the particle.
ElementLink implementation for ROOT usage.
const xAOD::IParticle * chargedObject(std::size_t i) const
Container for xAOD::MissingET_v1 objects.
virtual double e() const override
The total energy of the particle.
Evaluate cluster kinematics with a different vertex / signal state.
StatusCode extractFEsFromLinks(const xAOD::TauJet *tau, std::vector< const xAOD::IParticle * > &felist, const met::METAssociator::ConstitHolder &constits) const
SG::ReadHandleKey< xAOD::TauJetContainer > m_tauContKey
virtual FourMom_t p4() const
The full 4-momentum of the particle.
virtual FourMom_t p4() const override
The full 4-momentum of the particle.
Class describing a Vertex.
const Vertex * vertex() const
#define ATH_MSG_WARNING(x)
StatusCode extractTracks(const xAOD::IParticle *obj, std::vector< const xAOD::IParticle * > &constlist, const met::METAssociator::ConstitHolder &constits) const final
Class describing a TrackParticle.
const Trk::Track * track() const
Returns a pointer (which can be NULL) to the Trk::Track which was used to make this TrackParticle.
bool isInDeltaR(const xAOD::IParticle &p1, const xAOD::IParticle &p2, double dR, bool useRapidity=true)
Check if 2 xAOD::IParticle are in a cone.
Evaluate cluster kinematics with a different vertex / signal state.
std::vector< const TauTrack * > tracks(TauJetParameters::TauTrackFlag flag=TauJetParameters::TauTrackFlag::classifiedCharged) const
Get the v<const pointer> to a given tauTrack collection associated with this tau.
bool match(std::string s1, std::string s2)
match the individual directories of two strings
A detector object made of other lower level object(s)