Skip to content
Snippets Groups Projects
Commit ade94a78 authored by Marcin Wandas's avatar Marcin Wandas
Browse files

Make executeVertexFinder() const in TauVertexFinder

parent 73a1e762
6 merge requests!58791DataQualityConfigurations: Modify L1Calo config for web display,!46784MuonCondInterface: Enable thread-safety checking.,!46776Updated LArMonitoring config file for WD to match new files produced using MT,!45405updated ART test cron job,!42417Draft: DIRE and VINCIA Base Fragments for Pythia 8.3,!32433Make executeVertexFinder() const in TauVertexFinder class
...@@ -43,7 +43,7 @@ StatusCode TauVertexFinder::finalize() { ...@@ -43,7 +43,7 @@ StatusCode TauVertexFinder::finalize() {
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
StatusCode TauVertexFinder::executeVertexFinder(xAOD::TauJet& pTau, StatusCode TauVertexFinder::executeVertexFinder(xAOD::TauJet& pTau,
const xAOD::VertexContainer* vertexContainer, const xAOD::VertexContainer* vertexContainer,
const xAOD::TrackParticleContainer* trackContainer) { const xAOD::TrackParticleContainer* trackContainer) const {
const xAOD::VertexContainer * vxContainer = 0; const xAOD::VertexContainer * vxContainer = 0;
...@@ -117,13 +117,13 @@ ElementLink<xAOD::VertexContainer> ...@@ -117,13 +117,13 @@ ElementLink<xAOD::VertexContainer>
TauVertexFinder::getPV_TJVA(const xAOD::TauJet& pTau, TauVertexFinder::getPV_TJVA(const xAOD::TauJet& pTau,
const xAOD::VertexContainer& vertices, const xAOD::VertexContainer& vertices,
const xAOD::TrackParticleContainer * trackContainer, const xAOD::TrackParticleContainer * trackContainer,
float& maxJVF) float& maxJVF) const
{ {
const xAOD::Jet* pJetSeed = (*pTau.jetLink()); const xAOD::Jet* pJetSeed = (*pTau.jetLink());
std::vector<const xAOD::TrackParticle*> tracksForTJVA; std::vector<const xAOD::TrackParticle*> tracksForTJVA;
const double dDeltaRMax(0.2); const double dDeltaRMax(0.2);
m_matchedVertexOnline.clear(); std::vector<const xAOD::Vertex*> matchedVertexOnline;
// the implementation follows closely the example given in modifyJet(...) in https://svnweb.cern.ch/trac/atlasoff/browser/Reconstruction/Jet/JetMomentTools/trunk/Root/JetVertexFractionTool.cxx#15 // the implementation follows closely the example given in modifyJet(...) in https://svnweb.cern.ch/trac/atlasoff/browser/Reconstruction/Jet/JetMomentTools/trunk/Root/JetVertexFractionTool.cxx#15
const xAOD::TrackParticleContainer* trackParticleCont = 0; const xAOD::TrackParticleContainer* trackParticleCont = 0;
...@@ -180,7 +180,7 @@ TauVertexFinder::getPV_TJVA(const xAOD::TauJet& pTau, ...@@ -180,7 +180,7 @@ TauVertexFinder::getPV_TJVA(const xAOD::TauJet& pTau,
ATH_MSG_DEBUG("Creating online TJVA"); ATH_MSG_DEBUG("Creating online TJVA");
ATH_MSG_DEBUG("Building online track-vertex association trk size="<< tracksForTJVA.size() ATH_MSG_DEBUG("Building online track-vertex association trk size="<< tracksForTJVA.size()
<< " vtx size="<< vertices.size()); << " vtx size="<< vertices.size());
m_matchedVertexOnline.resize(tracksForTJVA.size(), 0 ); matchedVertexOnline.resize(tracksForTJVA.size(), 0 );
for (size_t iTrack = 0; iTrack < tracksForTJVA.size(); ++iTrack) for (size_t iTrack = 0; iTrack < tracksForTJVA.size(); ++iTrack)
{ {
...@@ -221,7 +221,7 @@ TauVertexFinder::getPV_TJVA(const xAOD::TauJet& pTau, ...@@ -221,7 +221,7 @@ TauVertexFinder::getPV_TJVA(const xAOD::TauJet& pTau,
// If we matched a vertex, then associate that vertex to the track // If we matched a vertex, then associate that vertex to the track
if (foundMatch) if (foundMatch)
m_matchedVertexOnline[ iTrack ] = vertices.at(matchedIndex); matchedVertexOnline[ iTrack ] = vertices.at(matchedIndex);
} }
} else { } else {
...@@ -243,7 +243,7 @@ TauVertexFinder::getPV_TJVA(const xAOD::TauJet& pTau, ...@@ -243,7 +243,7 @@ TauVertexFinder::getPV_TJVA(const xAOD::TauJet& pTau,
for (const xAOD::Vertex* vert : vertices) { for (const xAOD::Vertex* vert : vertices) {
float jvf = 0; float jvf = 0;
if(!inTrigger()) jvf = getJetVertexFraction(vert,tracksForTJVA,tva); if(!inTrigger()) jvf = getJetVertexFraction(vert,tracksForTJVA,tva);
else jvf = getJetVertexFraction(vert,tracksForTJVA); else jvf = getJetVertexFraction(vert,tracksForTJVA,matchedVertexOnline);
if (jvf > maxJVF) { if (jvf > maxJVF) {
maxJVF = jvf; maxJVF = jvf;
max_vert = vert; max_vert = vert;
...@@ -278,13 +278,15 @@ float TauVertexFinder::getJetVertexFraction(const xAOD::Vertex* vertex, const st ...@@ -278,13 +278,15 @@ float TauVertexFinder::getJetVertexFraction(const xAOD::Vertex* vertex, const st
return sumTrackAll!=0 ? sumTrackPV/sumTrackAll : 0; return sumTrackAll!=0 ? sumTrackPV/sumTrackAll : 0;
} }
// for online ATR-15665: reimplementation needed for online because the tva doesn't work. The size of the track collection from TE is not the same as the max track index // for online ATR-15665: reimplementation needed for online because the tva doesn't work. The size of the track collection from TE is not the same as the max track index
float TauVertexFinder::getJetVertexFraction(const xAOD::Vertex* vertex, const std::vector<const xAOD::TrackParticle*>& tracks) const float TauVertexFinder::getJetVertexFraction(const xAOD::Vertex* vertex,
const std::vector<const xAOD::TrackParticle*>& tracks,
const std::vector<const xAOD::Vertex*>& matchedVertexOnline) const
{ {
float sumTrackPV = 0; float sumTrackPV = 0;
float sumTrackAll = 0; float sumTrackAll = 0;
for (size_t iTrack = 0; iTrack < tracks.size(); ++iTrack) for (size_t iTrack = 0; iTrack < tracks.size(); ++iTrack)
{ {
const xAOD::Vertex* ptvtx = m_matchedVertexOnline[iTrack]; const xAOD::Vertex* ptvtx = matchedVertexOnline[iTrack];
if (ptvtx != nullptr) { // C++11 feature if (ptvtx != nullptr) { // C++11 feature
if (ptvtx->index() == vertex->index()) sumTrackPV += tracks.at(iTrack)->pt(); if (ptvtx->index() == vertex->index()) sumTrackPV += tracks.at(iTrack)->pt();
} }
......
...@@ -39,22 +39,32 @@ public: ...@@ -39,22 +39,32 @@ public:
//------------------------------------------------------------- //-------------------------------------------------------------
//! Algorithm functions //! Algorithm functions
//------------------------------------------------------------- //-------------------------------------------------------------
virtual StatusCode initialize() override; StatusCode initialize() override;
virtual StatusCode executeVertexFinder(xAOD::TauJet& pTau, StatusCode executeVertexFinder(xAOD::TauJet& pTau,
const xAOD::VertexContainer* vertexContainer = nullptr, const xAOD::VertexContainer* vertexContainer = nullptr,
const xAOD::TrackParticleContainer* trackContainer = nullptr) override; const xAOD::TrackParticleContainer* trackContainer = nullptr) override
virtual StatusCode finalize() override; {
return static_cast<const TauVertexFinder*>(this)->executeVertexFinder(pTau, vertexContainer, trackContainer);
}
StatusCode executeVertexFinder(xAOD::TauJet& pTau,
const xAOD::VertexContainer* vertexContainer = nullptr,
const xAOD::TrackParticleContainer* trackContainer = nullptr) const;
StatusCode finalize() override;
private: private:
ElementLink<xAOD::VertexContainer> ElementLink<xAOD::VertexContainer>
getPV_TJVA(const xAOD::TauJet& tauJet, getPV_TJVA(const xAOD::TauJet& tauJet,
const xAOD::VertexContainer& vertices, const xAOD::VertexContainer& vertices,
const xAOD::TrackParticleContainer* trackContainer, const xAOD::TrackParticleContainer* trackContainer,
float& maxJVF); float& maxJVF) const;
float getJetVertexFraction(const xAOD::Vertex* vertex, const std::vector<const xAOD::TrackParticle*>& tracks, const jet::TrackVertexAssociation* tva) const; float getJetVertexFraction(const xAOD::Vertex* vertex, const std::vector<const xAOD::TrackParticle*>& tracks, const jet::TrackVertexAssociation* tva) const;
// for online ATR-15665 // for online ATR-15665
float getJetVertexFraction(const xAOD::Vertex* vertex, const std::vector<const xAOD::TrackParticle*>& tracks) const; float getJetVertexFraction(const xAOD::Vertex* vertex,
const std::vector<const xAOD::TrackParticle*>& tracks,
const std::vector<const xAOD::Vertex*>& matchedVertexOnline) const;
private: private:
...@@ -69,9 +79,6 @@ private: ...@@ -69,9 +79,6 @@ private:
SG::ReadHandleKey<xAOD::VertexContainer> m_vertexInputContainer{this,"Key_vertexInputContainer", "PrimaryVertices", "input vertex container key"}; SG::ReadHandleKey<xAOD::VertexContainer> m_vertexInputContainer{this,"Key_vertexInputContainer", "PrimaryVertices", "input vertex container key"};
SG::ReadHandleKey<xAOD::TrackParticleContainer> m_trackPartInputContainer{this,"Key_trackPartInputContainer", "InDetTrackParticles", "input track particle container key"}; SG::ReadHandleKey<xAOD::TrackParticleContainer> m_trackPartInputContainer{this,"Key_trackPartInputContainer", "InDetTrackParticles", "input track particle container key"};
SG::ReadHandleKey<jet::TrackVertexAssociation> m_jetTrackVtxAssoc{this, "Key_JetTrackVtxAssoc_forTaus", "JetTrackVtxAssoc_forTaus", "input TVA for taus"}; SG::ReadHandleKey<jet::TrackVertexAssociation> m_jetTrackVtxAssoc{this, "Key_JetTrackVtxAssoc_forTaus", "JetTrackVtxAssoc_forTaus", "input TVA for taus"};
std::vector<const xAOD::Vertex*> m_matchedVertexOnline;
}; };
#endif // not TAUREC_TAUVERTEXFINDER_H #endif // not TAUREC_TAUVERTEXFINDER_H
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment