Commit d6c5bba6 authored by Mark Hodgkinson's avatar Mark Hodgkinson
Browse files

Add new algorithm to create charged FlowElements.

parent 62c4153c
#ifndef PFCHARGEDFLOWELEMENTCREATORALGORITHM_H
#define PFCHARGEDFLOWELEMENTCREATORALGORITHM_H
#include "eflowRec/eflowCaloObject.h"
#include "AthenaBaseComps/AthReentrantAlgorithm.h"
#include "GaudiKernel/ToolHandle.h"
#include "StoreGate/DataHandle.h"
#include "xAODPFlow/FlowElementContainer.h"
class PFChargedFlowElementCreatorAlgorithm : public AthReentrantAlgorithm {
public:
PFChargedFlowElementCreatorAlgorithm(const std::string& name, ISvcLocator* pSvcLocator);
~PFChargedFlowElementCreatorAlgorithm() {}
StatusCode initialize();
StatusCode execute(const EventContext&) const;
StatusCode finalize();
private:
/** Create the charged PFO */
void createChargedFlowElements(const eflowCaloObject& energyFlowCaloObject, bool addClusters, SG::WriteHandle<xAOD::FlowElementContainer>& chargedFlowElementContainerWriteHandle) const;
/** Toggle EOverP algorithm mode, whereby no charged shower subtraction is performed */
Gaudi::Property<bool> m_eOverPMode{this,"EOverPMode",false,"Toggle EOverP algorithm mode, whereby no charged shower subtraction is performed"};
/** ReadHandleKey for eflowCaloObjectContainer */
SG::ReadHandleKey<eflowCaloObjectContainer> m_eflowCaloObjectContainerReadHandleKey{this,"eflowCaloObjectContainerName","eflowCaloObjects","ReadHandleKey for eflowCaloObjectContainer"};
/** WriteHandleKey for charged PFO */
SG::WriteHandleKey<xAOD::FlowElementContainer> m_chargedFlowElementContainerWriteHandleKey{this,"FlowElementOutputName","JetETMissChargedFlowElements","WriteHandleKey for charged FlowElements"};
};
#endif
#include "eflowRec/PFChargedFlowElementCreatorAlgorithm.h"
PFChargedFlowElementCreatorAlgorithm::PFChargedFlowElementCreatorAlgorithm(const std::string& name, ISvcLocator* pSvcLocator) :
AthReentrantAlgorithm(name,pSvcLocator)
{
}
StatusCode PFChargedFlowElementCreatorAlgorithm::initialize(){
ATH_CHECK(m_eflowCaloObjectContainerReadHandleKey.initialize());
ATH_CHECK(m_chargedFlowElementContainerWriteHandleKey.initialize());
return StatusCode::SUCCESS;
}
StatusCode PFChargedFlowElementCreatorAlgorithm::execute(const EventContext& ctx) const {
ATH_MSG_DEBUG("Starting PFOChargedCreatorAlgorithm::execute");
return StatusCode::SUCCESS;
}
StatusCode PFChargedFlowElementCreatorAlgorithm::finalize(){ return StatusCode::SUCCESS; }
void PFChargedFlowElementCreatorAlgorithm::createChargedFlowElements(const eflowCaloObject& energyFlowCaloObject, bool addClusters, SG::WriteHandle<xAOD::FlowElementContainer>& chargedFlowElementContainerWriteHandle) const {
}
......@@ -9,6 +9,7 @@
#include "eflowRec/PFTrackSelector.h"
#include "eflowRec/PFClusterSelectorTool.h"
#include "eflowRec/PFAlgorithm.h"
#include "eflowRec/PFChargedFlowElementCreatorAlgorithm.h"
#include "eflowRec/PFCellLevelSubtractionTool.h"
#include "eflowRec/PFRecoverSplitShowersTool.h"
#include "eflowRec/PFMomentCalculatorTool.h"
......@@ -24,6 +25,7 @@ DECLARE_COMPONENT( PFEGammaPFOAssoc )
DECLARE_COMPONENT( PFClusterSelectorTool )
DECLARE_COMPONENT( PFTrackSelector )
DECLARE_COMPONENT( PFAlgorithm )
DECLARE_COMPONENT( PFChargedFlowElementCreatorAlgorithm)
DECLARE_COMPONENT( PFOChargedCreatorAlgorithm )
DECLARE_COMPONENT( PFONeutralCreatorAlgorithm )
DECLARE_COMPONENT( PFCellLevelSubtractionTool )
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment