ATLAS Offline Software
Loading...
Searching...
No Matches
HIEventShapeJetIteration.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef HIJETREC_HIEVENTSHAPEJETITERATION_H
6#define HIJETREC_HIEVENTSHAPEJETITERATION_H
7
8#include "AsgTools/AsgTool.h"
9#include <string>
11#include "AsgTools/ToolHandle.h"
19
22
24 virtual public asg::AsgTool
25{
27
28public:
29
30 HIEventShapeJetIteration(const std::string& name);
31
32 virtual StatusCode initialize() override;
33
34 virtual int execute() const override;
35
36 StatusCode makeClusterList(std::vector<const xAOD::CaloCluster*>& particleList, const xAOD::JetContainer* theJets,
37 std::set<unsigned int>& used_indices, std::set<unsigned int>& used_eta_bins) const;
38
39 //refactored for use in xAOD analysis.
40 //functionality decoupled from store access
41 StatusCode makeClusterList(std::vector<const xAOD::CaloCluster*>& particleList, const xAOD::JetContainer* theJets) const;
42 StatusCode makeClusterList(std::vector<const xAOD::CaloCluster*>& particleList, const std::vector<const xAOD::JetContainer*>& theJets_vector) const;
43 void updateShape(xAOD::HIEventShapeContainer* output_shape, const std::vector<const xAOD::CaloCluster*>& assoc_clusters, const HIEventShapeIndex* es_index=nullptr ) const;
44 StatusCode fillModulatorShape(xAOD::HIEventShape* ms, const xAOD::HIEventShapeContainer* output_shape, const std::set<unsigned int>& used_indices, unsigned int scheme) const;
45 StatusCode remodulate(xAOD::HIEventShapeContainer* output_shape, const xAOD::HIEventShape* ms, const std::set<unsigned int>& used_indices) const;
46 StatusCode getShapes(const xAOD::HIEventShapeContainer*& input_shape, xAOD::HIEventShapeContainer*& output_shape, bool record_aux=false) const;
47
48private:
49
50 ToolHandle<IHISubtractorTool> m_subtractorTool { this, "Subtractor", "HIJetClusterSubtractorTool", "Handle to HIJetClusterSubtractorTool" };
51 ToolHandle<IHIUEModulatorTool> m_modulatorTool { this, "Modulator" , "HIUEModulatorTool", "Handle to HIUEModulatorTool" };
52 ToolHandle<IHIEventShapeMapTool> m_eventShapeMapTool { this, "EventShapeMapTool", "HIEventShapeMapTool", "Handle to Event Shape Map Tool"};
53
55 SG::ReadHandleKey<xAOD::HIEventShapeContainer> m_inputEventShapeKey { this, "InputEventShapeKey", "HIEventShape", "HIEventShape"};
57 SG::WriteHandleKey<xAOD::HIEventShapeContainer> m_outputEventShapeKey { this, "OutputEventShapeKey", "HIEventShape_iter", "HIEventShape_iter"};
58
60 SG::ReadHandleKey<xAOD::JetContainer> m_caloJetSeedKey { this, "CaloJetSeedContainerKey", "", "Names of seed collections"};
61 SG::ReadHandleKey<xAOD::JetContainer> m_trackJetSeedKey { this, "TrackJetSeedContainerKey", "", "Names of seed collections"};
62
64 Gaudi::Property< std::string > m_associationKey { this, "AssociationKey", "", "Name of jet attribute providing link between jets and clusters" };
66 Gaudi::Property< float > m_excludeDR { this, "ExclusionRadius", 0.4, "Exclude all calo regions w/in this DR to jet" };
68 Gaudi::Property< bool > m_excludeConstituents { this, "ExcludeConstituents", false, "Only exclude constituents of jets" };
69
70 Gaudi::Property< bool > m_doRemodulation { this, "RemodulateUE", false, "Correct UE for incomplete cancellation of flow harmonics when iterating" };
71
72 Gaudi::Property< unsigned int > m_modulationScheme { this, "ModulationScheme", 0, "Scheme to build separate ES object for flow modulation" };
73
74 SG::WriteHandleKey<xAOD::HIEventShapeContainer> m_modulationKey { this, "ModulationEventShapeKey", "HIEventShape_itr_mod", "Modulation Event Shape Key"};
75
76 Gaudi::Property< bool > m_shallowCopy { this, "ShallowCopy", true, "Use shallow copy for iterated event shape" };
77
78};
79
80#endif
Property holding a SG store/key/clid from which a ReadHandle is made.
Property holding a SG store/key/clid from which a WriteHandle is made.
ToolHandle< IHIEventShapeMapTool > m_eventShapeMapTool
Gaudi::Property< std::string > m_associationKey
Name of jet attribute providing link between jets and clusters.
Gaudi::Property< bool > m_shallowCopy
HIEventShapeJetIteration(const std::string &name)
Gaudi::Property< unsigned int > m_modulationScheme
StatusCode fillModulatorShape(xAOD::HIEventShape *ms, const xAOD::HIEventShapeContainer *output_shape, const std::set< unsigned int > &used_indices, unsigned int scheme) const
StatusCode makeClusterList(std::vector< const xAOD::CaloCluster * > &particleList, const xAOD::JetContainer *theJets, std::set< unsigned int > &used_indices, std::set< unsigned int > &used_eta_bins) const
ASG_TOOL_CLASS(HIEventShapeJetIteration, IJetExecuteTool)
StatusCode remodulate(xAOD::HIEventShapeContainer *output_shape, const xAOD::HIEventShape *ms, const std::set< unsigned int > &used_indices) const
void updateShape(xAOD::HIEventShapeContainer *output_shape, const std::vector< const xAOD::CaloCluster * > &assoc_clusters, const HIEventShapeIndex *es_index=nullptr) const
SG::WriteHandleKey< xAOD::HIEventShapeContainer > m_outputEventShapeKey
Name of output HIEventShapeContainer.
StatusCode getShapes(const xAOD::HIEventShapeContainer *&input_shape, xAOD::HIEventShapeContainer *&output_shape, bool record_aux=false) const
virtual int execute() const override
Method to be called for each event.
Gaudi::Property< bool > m_doRemodulation
SG::ReadHandleKey< xAOD::HIEventShapeContainer > m_inputEventShapeKey
Name of input HIEventShapeContainer.
virtual StatusCode initialize() override
Dummy implementation of the initialisation function.
SG::ReadHandleKey< xAOD::JetContainer > m_trackJetSeedKey
ToolHandle< IHISubtractorTool > m_subtractorTool
SG::WriteHandleKey< xAOD::HIEventShapeContainer > m_modulationKey
SG::ReadHandleKey< xAOD::JetContainer > m_caloJetSeedKey
List of names of JetCollections, all jets in these collections are seeds.
ToolHandle< IHIUEModulatorTool > m_modulatorTool
Gaudi::Property< float > m_excludeDR
All clusters w/in this DR of jet are excluded from shape calc.
Gaudi::Property< bool > m_excludeConstituents
If selected, the jet constituents define the associated clusters.
IJetExecuteTool is a dual-use tool interface for generic tools, i.e. those that behave like algorithm...
Property holding a SG store/key/clid from which a ReadHandle is made.
Property holding a SG store/key/clid from which a WriteHandle is made.
Base class for the dual-use tool implementation classes.
Definition AsgTool.h:47
HIEventShapeContainer_v2 HIEventShapeContainer
Define the latest version of the container.
JetContainer_v1 JetContainer
Definition of the current "jet container version".
HIEventShape_v2 HIEventShape
Definition of the latest event info version.