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

Moved write handle from TauPi0ClusterScaler to TauRunnerAlg

Former-commit-id: e8125261
parent df3c36d4
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
......@@ -409,9 +409,7 @@ def getPi0ClusterScaler():
return cached_instances[_name]
from tauRecTools.tauRecToolsConf import TauPi0ClusterScaler
TauPi0ClusterScaler = TauPi0ClusterScaler(name = _name,
Key_chargedPFOOutputContainer = 'TauChargedParticleFlowObjects'
)
TauPi0ClusterScaler = TauPi0ClusterScaler(name = _name)
cached_instances[_name] = TauPi0ClusterScaler
return TauPi0ClusterScaler
......
......@@ -36,7 +36,8 @@ class TauRecRunConfigured ( Configured ) :
Key_neutralPFOOutputContainer="TauPi0Clusters",
Key_pi0ClusterOutputContainer="TauNeutralParticleFlowObjects",
Key_hadronicPFOOutputContainer="TauHadronicParticleFlowObjects",
Key_vertexOutputContainer = "TauSecondaryVertices"
Key_vertexOutputContainer = "TauSecondaryVertices",
Key_chargedPFOOutputContainer = 'TauChargedParticleFlowObjects'
)
Configured.__init__(self, ignoreExistingDataObject=ignoreExistingDataObject)
......
......@@ -83,14 +83,14 @@ class TauRecRunner ( TauRecRunConfigured ) :
if InDetFlags.doVertexFinding():
tools.append(taualgs.getTauVertexVariables())
#tools.append(taualgs.getTauCommonCalcVars())
#tools.append(taualgs.getTauSubstructure())
tools.append(taualgs.getTauCommonCalcVars())
tools.append(taualgs.getTauSubstructure())
#if self.doPi0Clus:
# tools.append(taualgs.getPi0ClusterScaler())
# tools.append(taualgs.getPi0ScoreCalculator())
if self.doPi0Clus:
tools.append(taualgs.getPi0ClusterScaler())
# tools.append(taualgs.getPi0ScoreCalculator())
# SWITCHED OFF SELECTOR< SINCE NO CHARGED PFOS AVAILABLE ATM
# tools.append(taualgs.getPi0Selector())
# tools.append(taualgs.getPi0Selector())
#tools.append(taualgs.getEnergyCalibrationLC(correctEnergy=False, correctAxis=True, postfix='_onlyAxis'))
......
......@@ -60,7 +60,7 @@ StatusCode TauRunnerAlg::initialize() {
ATH_CHECK( m_pi0ClusterOutputContainer.initialize() );
ATH_CHECK( m_hadronicPFOOutputContainer.initialize() );
ATH_CHECK( m_vertexOutputContainer.initialize() );
ATH_CHECK( m_chargedPFOOutputContainer.initialize() );
StatusCode sc;
//-------------------------------------------------------------------------
......@@ -171,8 +171,15 @@ StatusCode TauRunnerAlg::execute() {
ATH_MSG_DEBUG(" write: " << vertOutHandle.key() << " = " << "..." );
ATH_CHECK(vertOutHandle.record(std::unique_ptr<xAOD::VertexContainer>{pSecVtxContainer}, std::unique_ptr<xAOD::VertexAuxContainer>{pSecVtxAuxContainer}));
// charged PFO container
xAOD::PFOContainer* chargedPFOContainer = new xAOD::PFOContainer();
xAOD::PFOAuxContainer* chargedPFOAuxStore = new xAOD::PFOAuxContainer();
chargedPFOContainer->setStore(chargedPFOAuxStore);
SG::WriteHandle<xAOD::PFOContainer> chargedPFOHandle( m_chargedPFOOutputContainer );
ATH_MSG_DEBUG(" write: " << chargedPFOHandle.key() << " = " << "..." );
ATH_CHECK(chargedPFOHandle.record(std::unique_ptr<xAOD::PFOContainer>{chargedPFOContainer}, std::unique_ptr<xAOD::PFOAuxContainer>{chargedPFOAuxStore}));
//-------------------------------------------------------------------------
//-------------------------------------------------------------------------
// Initialize tools for this event
//-------------------------------------------------------------------------
ToolHandleArray<ITauToolBase> ::iterator itT = m_tools.begin();
......@@ -217,7 +224,9 @@ StatusCode TauRunnerAlg::execute() {
if ( (*itT)->name().find("Pi0ClusterCreator") != std::string::npos){
sc = (*itT)->executePi0ClusterCreator(*pTau, *neutralPFOContainer, *hadronicClusterPFOContainer, *pi0CaloClusterContainer);
}
else {
else if ( (*itT)->name().find("Pi0ClusterScaler") != std::string::npos){
sc = (*itT)->executePi0ClusterScaler(*pTau, *chargedPFOContainer);
}else {
sc = (*itT)->execute(*pTau);
}
if (sc.isFailure())
......
......@@ -59,6 +59,8 @@ class TauRunnerAlg: public AthAlgorithm
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"};
SG::WriteHandleKey<xAOD::PFOContainer> m_chargedPFOOutputContainer{this,"Key_chargedPFOOutputContainer", "TauChargedParticleFlowObjects", "tau charged pfo o\
ut key"};
};
......
......@@ -28,8 +28,6 @@ using std::string;
TauPi0ClusterScaler::TauPi0ClusterScaler( const string& name ) :
TauRecToolBase(name)
, m_chargedPFOContainer(0)
, m_chargedPFOAuxStore(0)
{
}
......@@ -44,20 +42,10 @@ TauPi0ClusterScaler::~TauPi0ClusterScaler()
StatusCode TauPi0ClusterScaler::initialize()
{
ATH_CHECK(m_chargedPFOOutputContainer.initialize());
return StatusCode::SUCCESS;
}
StatusCode TauPi0ClusterScaler::eventInitialize() {
//---------------------------------------------------------------------
// Create charged PFO container
//---------------------------------------------------------------------
m_chargedPFOContainer = new xAOD::PFOContainer();
m_chargedPFOAuxStore = new xAOD::PFOAuxContainer();
m_chargedPFOContainer->setStore(m_chargedPFOAuxStore);
StatusCode TauPi0ClusterScaler::eventInitialize()
return StatusCode::SUCCESS;
}
......@@ -67,7 +55,7 @@ StatusCode TauPi0ClusterScaler::finalize()
}
StatusCode TauPi0ClusterScaler::execute(xAOD::TauJet& pTau)
StatusCode TauPi0ClusterScaler::executePi0ClusterScaler(xAOD::TauJet& pTau, xAOD::PFOContainer& chargedPFOContainer)
{
// Clear vector of cell-based charged PFO Links.
// Required when rerunning on xAOD level.
......@@ -85,7 +73,7 @@ StatusCode TauPi0ClusterScaler::execute(xAOD::TauJet& pTau)
// reset neutral PFO kinematics (incase re-run on AOD)
resetNeutralPFOs(pTau);
// create new proto charged PFOs, extrapolate tracks, add to tau
createChargedPFOs(pTau);
createChargedPFOs(pTau, chargedPFOContainer);
// associate hadronic PFOs to charged PFOs using extrapolated positions in HCal
associateHadronicToChargedPFOs(pTau);
// associate charged PFOs to neutral PFOs using extrapolated positions in ECal
......@@ -130,7 +118,7 @@ void TauPi0ClusterScaler::resetNeutralPFOs(xAOD::TauJet& pTau)
void TauPi0ClusterScaler::createChargedPFOs(xAOD::TauJet& pTau)
void TauPi0ClusterScaler::createChargedPFOs(xAOD::TauJet& pTau, xAOD::PFOContainer& cPFOContainer)
{
ATH_MSG_DEBUG("Creating charged PFOs");
for(auto tauTrackLink : pTau.tauTrackLinks(xAOD::TauJetParameters::classifiedCharged)){
......@@ -141,7 +129,7 @@ void TauPi0ClusterScaler::createChargedPFOs(xAOD::TauJet& pTau)
const xAOD::TauTrack* tauTrack = (*tauTrackLink);
// create pfo
xAOD::PFO* chargedPFO = new xAOD::PFO();
m_chargedPFOContainer->push_back(chargedPFO);
cPFOContainer.push_back(chargedPFO);
// set properties
chargedPFO->setCharge(tauTrack->track()->charge());
chargedPFO->setP4(tauTrack->p4());
......@@ -156,7 +144,7 @@ void TauPi0ClusterScaler::createChargedPFOs(xAOD::TauJet& pTau)
ATH_MSG_WARNING("Could not add TauTrack to PFO");
// link from tau
pTau.addProtoChargedPFOLink(ElementLink< xAOD::PFOContainer >
(chargedPFO, *m_chargedPFOContainer));
(chargedPFO, cPFOContainer));
}
}
......@@ -377,9 +365,5 @@ void TauPi0ClusterScaler::subtractChargedEnergyFromNeutralPFOs(xAOD::TauJet& pTa
StatusCode TauPi0ClusterScaler::eventFinalize() {
SG::WriteHandle<xAOD::PFOContainer> chargedPFOHandle( m_chargedPFOOutputContainer );
ATH_MSG_DEBUG(" write: " << chargedPFOHandle.key() << " = " << "..." );
ATH_CHECK(chargedPFOHandle.record(std::unique_ptr<xAOD::PFOContainer>{m_chargedPFOContainer}, std::unique_ptr<xAOD::PFOAuxContainer>{m_chargedPFOAuxStore}));
return StatusCode::SUCCESS;
}
......@@ -31,12 +31,12 @@ public:
virtual StatusCode initialize();
virtual StatusCode eventInitialize();
virtual StatusCode finalize();
virtual StatusCode execute(xAOD::TauJet& pTau);
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 executePi0ClusterScaler(xAOD::TauJet&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; }
virtual StatusCode executePi0ClusterScaler(xAOD::TauJet& pTau, xAOD::PFOContainer& pChargedPFOContainer);
virtual StatusCode eventFinalize();
virtual void print() const { }
......@@ -50,7 +50,7 @@ private:
void resetNeutralPFOs(xAOD::TauJet& pTau);
/** @brief create charged PFOs */
void createChargedPFOs(xAOD::TauJet& pTau);
void createChargedPFOs(xAOD::TauJet& pTau, xAOD::PFOContainer& pChargedPFOContainer);
/** @brief extrapolate charged PFO tracks to EM and HAD layers */
//void extrapolateChargedPFOs(xAOD::TauJet& pTau);
......@@ -78,8 +78,6 @@ private:
//xAOD::PFODetails::PFOAttributes ETAHCAL;
//xAOD::PFODetails::PFOAttributes PHIHCAL;
SG::WriteHandleKey<xAOD::PFOContainer> m_chargedPFOOutputContainer{this,"Key_chargedPFOOutputContainer", "TauChargedParticleFlowObjects", "tau charged pfo out key"};
};
#endif /* TAUPI0CLUSTERSCALER_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