Skip to content
Snippets Groups Projects
Commit df3c36d4 authored by Adam Bailey's avatar Adam Bailey
Browse files

Moved write handles from TauVertexVariables to TauRunnerAlg

Former-commit-id: b34c1d86
parent d151a554
No related branches found
No related tags found
8 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,!28528Revert 63f845ae,!27054Atr20369 210,!26342Monopole: Handle fractionally charged particles
......@@ -297,10 +297,8 @@ def getTauVertexVariables():
VertexFitter = getTauAdaptiveVertexFitter(),
#VertexFitter = "Trk::AdaptiveVertexFitter/InDetAdaptiveVxFitterTool",
SeedFinder = getTauCrossDistancesSeedFinder(),
runOnAOD = bAODmode,
Key_vertexInputContainer = _DefaultVertexContainer,
Key_trackPartInputContainer = _DefaultTrackContainer, # ATM only needed in case old API is used
Key_vertexOutputContainer = "TauSecondaryVertices"
Key_trackPartInputContainer = _DefaultTrackContainer # ATM only needed in case old API is used
#OutputLevel = 2
)
......
......@@ -35,7 +35,8 @@ class TauRecRunConfigured ( Configured ) :
Key_tauOutputContainer="TauJets",
Key_neutralPFOOutputContainer="TauPi0Clusters",
Key_pi0ClusterOutputContainer="TauNeutralParticleFlowObjects",
Key_hadronicPFOOutputContainer="TauHadronicParticleFlowObjects"
Key_hadronicPFOOutputContainer="TauHadronicParticleFlowObjects",
Key_vertexOutputContainer = "TauSecondaryVertices"
)
Configured.__init__(self, ignoreExistingDataObject=ignoreExistingDataObject)
......
......@@ -59,10 +59,10 @@ StatusCode TauRunnerAlg::initialize() {
ATH_CHECK( m_neutralPFOOutputContainer.initialize() );
ATH_CHECK( m_pi0ClusterOutputContainer.initialize() );
ATH_CHECK( m_hadronicPFOOutputContainer.initialize() );
ATH_CHECK( m_vertexOutputContainer.initialize() );
StatusCode sc;
//-------------------------------------------------------------------------
// Allocate tools
//-------------------------------------------------------------------------
......@@ -162,6 +162,15 @@ StatusCode TauRunnerAlg::execute() {
SG::WriteHandle<xAOD::CaloClusterContainer> pi0CaloClusHandle( m_pi0ClusterOutputContainer );
ATH_MSG_DEBUG(" write: " << pi0CaloClusHandle.key() << " = " << "..." );
ATH_CHECK(pi0CaloClusHandle.record(std::unique_ptr<xAOD::CaloClusterContainer>{pi0CaloClusterContainer}, std::unique_ptr<xAOD::CaloClusterAuxContainer>{pi0CaloClusterAuxContainer}));
// secondary vertices
xAOD::VertexContainer* pSecVtxContainer = new xAOD::VertexContainer();
xAOD::VertexAuxContainer* pSecVtxAuxContainer = new xAOD::VertexAuxContainer();
pSecVtxContainer->setStore( pSecVtxAuxContainer );
SG::WriteHandle<xAOD::VertexContainer> vertOutHandle( m_vertexOutputContainer );
ATH_MSG_DEBUG(" write: " << vertOutHandle.key() << " = " << "..." );
ATH_CHECK(vertOutHandle.record(std::unique_ptr<xAOD::VertexContainer>{pSecVtxContainer}, std::unique_ptr<xAOD::VertexAuxContainer>{pSecVtxAuxContainer}));
//-------------------------------------------------------------------------
// Initialize tools for this event
......
......@@ -21,11 +21,14 @@
#include "xAODCaloEvent/CaloClusterContainer.h"
#include "xAODCaloEvent/CaloClusterAuxContainer.h"
#include "xAODTracking/VertexContainer.h"
#include "xAODTracking/VertexAuxContainer.h"
/**
* @brief Main class for tau candidate processing.
*/
class TauRunnerAlg: public AthAlgorithm
{
public:
......@@ -55,6 +58,7 @@ class TauRunnerAlg: public AthAlgorithm
SG::WriteHandleKey<xAOD::PFOContainer> m_neutralPFOOutputContainer{this,"Key_neutralPFOOutputContainer", "TauNeutralParticleFlowObjects", "tau neutral pfo out key"};
SG::WriteHandleKey<xAOD::CaloClusterContainer> m_pi0ClusterOutputContainer{this,"Key_pi0ClusterOutputContainer", "TauPi0Clusters", "tau pi0cluster output"};
SG::WriteHandleKey<xAOD::PFOContainer> m_hadronicPFOOutputContainer{this,"Key_hadronicPFOOutputContainer", "TauHadronicParticleFlowObjects", "tau hadronic pfo out key"};
SG::WriteHandleKey<xAOD::VertexContainer> m_vertexOutputContainer{this,"Key_vertexOutputContainer", "TauSecondaryVertices", "input vertex container key"};
};
......
......@@ -27,13 +27,11 @@
TauVertexVariables::TauVertexVariables(const std::string &name ) :
TauRecToolBase(name),
m_fitTool("Trk::AdaptiveVertexFitter"),
m_SeedFinder("Trk::CrossDistancesSeedFinder"),
m_pSecVtxContainer(0),
m_pSecVtxAuxContainer(0){
m_SeedFinder("Trk::CrossDistancesSeedFinder")
{
declareProperty("TrackToVertexIPEstimator", m_trackToVertexIPEstimator);
declareProperty("VertexFitter", m_fitTool);
declareProperty("SeedFinder", m_SeedFinder);
declareProperty("runOnAOD", m_AODmode=false);//AODS are input file
}
//-----------------------------------------------------------------------------
......@@ -55,7 +53,6 @@ StatusCode TauVertexVariables::initialize() {
ATH_CHECK(m_vertexInputContainer.initialize() );
ATH_CHECK(m_trackPartInputContainer.initialize() );
ATH_CHECK(m_vertexOutputContainer.initialize() );
return StatusCode::SUCCESS;
}
......@@ -63,34 +60,12 @@ StatusCode TauVertexVariables::initialize() {
StatusCode TauVertexVariables::eventInitialize() {
bool inTrigger = tauEventData()->inTrigger();
// Only store the vertex containers if we are offline?
if(!inTrigger)
{
// Secondary Vertex Container for tau decay vertex
if(!m_AODmode){
m_pSecVtxContainer = new xAOD::VertexContainer();
m_pSecVtxAuxContainer = new xAOD::VertexAuxContainer();
m_pSecVtxContainer->setStore( m_pSecVtxAuxContainer );
// CHECK( evtStore()->record( m_pSecVtxContainer, "TauSecondaryVertices" ) );
// CHECK( evtStore()->record( m_pSecVtxAuxContainer, "TauSecondaryVerticesAux." ) );
}
else {
// CHECK( evtStore()->retrieve( m_pSecVtxContainer, "TauSecondaryVertices") );
// CHECK( evtStore()->retrieve( m_pSecVtxAuxContainer, "TauSecondaryVerticesAux.") );
}
}
return StatusCode::SUCCESS;
}
StatusCode TauVertexVariables::eventFinalize() {
SG::WriteHandle<xAOD::VertexContainer> vertOutHandle( m_vertexOutputContainer );
ATH_MSG_DEBUG(" write: " << vertOutHandle.key() << " = " << "..." );
ATH_CHECK(vertOutHandle.record(std::unique_ptr<xAOD::VertexContainer>{m_pSecVtxContainer}, std::unique_ptr<xAOD::VertexAuxContainer>{m_pSecVtxAuxContainer}));
return StatusCode::SUCCESS;
}
......@@ -107,7 +82,7 @@ StatusCode TauVertexVariables::finalize() {
//-----------------------------------------------------------------------------
// Execution
//-----------------------------------------------------------------------------
StatusCode TauVertexVariables::execute(xAOD::TauJet& pTau) {
StatusCode TauVertexVariables::executeVertexVariables(xAOD::TauJet& pTau, xAOD::VertexContainer& pSecVtxContainer) {
ATH_MSG_DEBUG("executing TauVertexVariables");
......@@ -233,7 +208,7 @@ StatusCode TauVertexVariables::execute(xAOD::TauJet& pTau) {
xAODvertex = m_fitTool->fit(xaodTracks, seedPoint);
if (xAODvertex && !inTrigger) {
ATH_MSG_VERBOSE("using new xAOD API: Secondary Vertex found and recorded! x="<<xAODvertex->position().x()<< ", y="<<xAODvertex->position().y()<<", perp="<<xAODvertex->position().perp());
m_pSecVtxContainer->push_back(xAODvertex);
pSecVtxContainer.push_back(xAODvertex);
xAODvertex->setVertexType(xAOD::VxType::NotSpecified);
}
......@@ -249,7 +224,7 @@ StatusCode TauVertexVariables::execute(xAOD::TauJet& pTau) {
// Note, we only attach the 2nd vertex if at offline, otherwise, break the trigger persistency
if (!inTrigger) {
pTau.setSecondaryVertex(m_pSecVtxContainer, xAODvertex); // set the link to the vertex
pTau.setSecondaryVertex(&pSecVtxContainer, xAODvertex); // set the link to the vertex
}
else {
delete xAODvertex; // delete the vertex when in trigger mode, because we can not save it
......
......@@ -35,11 +35,11 @@ public:
~TauVertexVariables();
virtual StatusCode initialize();
virtual StatusCode execute(xAOD::TauJet&);
virtual StatusCode execute(xAOD::TauJet&) { return StatusCode::SUCCESS; }
virtual StatusCode executeShotFinder(xAOD::TauJet&, xAOD::CaloClusterContainer&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; }
virtual StatusCode executePi0CreateROI(xAOD::TauJet&, CaloCellContainer&) { return StatusCode::SUCCESS; }
virtual StatusCode executePi0ClusterCreator(xAOD::TauJet&, xAOD::PFOContainer&, xAOD::PFOContainer&, xAOD::CaloClusterContainer&) { return StatusCode::SUCCESS; }
virtual StatusCode executeVertexVariables(xAOD::TauJet&, xAOD::VertexContainer&) { return StatusCode::SUCCESS; }
virtual StatusCode executeVertexVariables(xAOD::TauJet& pTau, xAOD::VertexContainer& pVertexContainer);
virtual StatusCode executePi0ClusterScaler(xAOD::TauJet&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; }
virtual StatusCode eventInitialize();
virtual StatusCode finalize();
......@@ -54,18 +54,12 @@ public:
double trFlightPathSig(const xAOD::TauJet& pTau, const xAOD::Vertex& secVertex);
private:
bool m_AODmode;
ToolHandle< Trk::ITrackToVertexIPEstimator > m_trackToVertexIPEstimator;
ToolHandle< Trk::IVertexFitter > m_fitTool; //!< Pointer to the base class of the fit algtools
ToolHandle< Trk::IVertexSeedFinder > m_SeedFinder;
xAOD::VertexContainer* m_pSecVtxContainer;
xAOD::VertexAuxContainer* m_pSecVtxAuxContainer;
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::WriteHandleKey<xAOD::VertexContainer> m_vertexOutputContainer{this,"Key_vertexOutputContainer", "TauSecondaryVertices", "input vertex container key"};
};
......
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