ATLAS Offline Software
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"
14 #include "xAODJet/JetContainer.h"
19 
22 
24  virtual public asg::AsgTool
25 {
27 
28 public:
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 
48 private:
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
ReadHandleKey.h
Property holding a SG store/key/clid from which a ReadHandle is made.
HIEventShapeJetIteration::HIEventShapeJetIteration
HIEventShapeJetIteration(const std::string &name)
Definition: HIEventShapeJetIteration.cxx:33
HIEventShapeMapTool.h
asg::AsgTool
Base class for the dual-use tool implementation classes.
Definition: AsgTool.h:47
HIEventShapeJetIteration::m_associationKey
Gaudi::Property< std::string > m_associationKey
Name of jet attribute providing link between jets and clusters.
Definition: HIEventShapeJetIteration.h:64
HIEventShapeJetIteration::m_subtractorTool
ToolHandle< IHISubtractorTool > m_subtractorTool
Definition: HIEventShapeJetIteration.h:50
HIEventShapeJetIteration::m_inputEventShapeKey
SG::ReadHandleKey< xAOD::HIEventShapeContainer > m_inputEventShapeKey
Name of input HIEventShapeContainer.
Definition: HIEventShapeJetIteration.h:55
IJetExecuteTool
IJetExecuteTool is a dual-use tool interface for generic tools, i.e. those that behave like algorithm...
Definition: IJetExecuteTool.h:19
SG::ReadHandleKey
Property holding a SG store/key/clid from which a ReadHandle is made.
Definition: StoreGate/StoreGate/ReadHandleKey.h:39
python.SystemOfUnits.ms
int ms
Definition: SystemOfUnits.py:132
HIEventShapeJetIteration::fillModulatorShape
StatusCode fillModulatorShape(xAOD::HIEventShape *ms, const xAOD::HIEventShapeContainer *output_shape, const std::set< unsigned int > &used_indices, unsigned int scheme) const
Definition: HIEventShapeJetIteration.cxx:213
HIEventShapeJetIteration::updateShape
void updateShape(xAOD::HIEventShapeContainer *output_shape, const std::vector< const xAOD::CaloCluster * > &assoc_clusters, const HIEventShapeIndex *es_index=nullptr) const
Definition: HIEventShapeJetIteration.cxx:183
xAOD::HIEventShape_v2
Interface class for the HI reconstruction EDM.
Definition: HIEventShape_v2.h:31
HIEventShapeJetIteration::m_modulationKey
SG::WriteHandleKey< xAOD::HIEventShapeContainer > m_modulationKey
Definition: HIEventShapeJetIteration.h:74
HIEventShapeJetIteration::m_caloJetSeedKey
SG::ReadHandleKey< xAOD::JetContainer > m_caloJetSeedKey
List of names of JetCollections, all jets in these collections are seeds.
Definition: HIEventShapeJetIteration.h:60
SG::WriteHandleKey
Property holding a SG store/key/clid from which a WriteHandle is made.
Definition: StoreGate/StoreGate/WriteHandleKey.h:40
IJetExecuteTool.h
HIEventShapeJetIteration::remodulate
StatusCode remodulate(xAOD::HIEventShapeContainer *output_shape, const xAOD::HIEventShape *ms, const std::set< unsigned int > &used_indices) const
Definition: HIEventShapeJetIteration.cxx:269
CaloCluster.h
HIEventShapeJetIteration::m_modulationScheme
Gaudi::Property< unsigned int > m_modulationScheme
Definition: HIEventShapeJetIteration.h:72
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
HIEventShapeJetIteration::m_modulatorTool
ToolHandle< IHIUEModulatorTool > m_modulatorTool
Definition: HIEventShapeJetIteration.h:51
HIEventShape.h
HIEventShapeContainer.h
HIEventShapeJetIteration::m_doRemodulation
Gaudi::Property< bool > m_doRemodulation
Definition: HIEventShapeJetIteration.h:70
JetTagCalibConfig.scheme
scheme
Definition: JetTagCalibConfig.py:10
HIEventShapeJetIteration::m_excludeConstituents
Gaudi::Property< bool > m_excludeConstituents
If selected, the jet constituents define the associated clusters.
Definition: HIEventShapeJetIteration.h:68
DataVector
Derived DataVector<T>.
Definition: DataVector.h:581
WriteHandleKey.h
Property holding a SG store/key/clid from which a WriteHandle is made.
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
HIEventShapeJetIteration::m_excludeDR
Gaudi::Property< float > m_excludeDR
All clusters w/in this DR of jet are excluded from shape calc.
Definition: HIEventShapeJetIteration.h:66
HIEventShapeIndex
Definition: HIEventShapeIndex.h:17
IHISubtractorTool.h
HIEventShapeJetIteration
Definition: HIEventShapeJetIteration.h:25
HIEventShapeJetIteration::m_outputEventShapeKey
SG::WriteHandleKey< xAOD::HIEventShapeContainer > m_outputEventShapeKey
Name of output HIEventShapeContainer.
Definition: HIEventShapeJetIteration.h:57
HIEventShapeJetIteration::m_shallowCopy
Gaudi::Property< bool > m_shallowCopy
Definition: HIEventShapeJetIteration.h:76
JetContainer.h
HIEventShapeJetIteration::getShapes
StatusCode getShapes(const xAOD::HIEventShapeContainer *&input_shape, xAOD::HIEventShapeContainer *&output_shape, bool record_aux=false) const
Definition: HIEventShapeJetIteration.cxx:304
IHIUEModulatorTool.h
HIEventShapeJetIteration::initialize
virtual StatusCode initialize() override
Dummy implementation of the initialisation function.
Definition: HIEventShapeJetIteration.cxx:37
HIEventShapeJetIteration::ASG_TOOL_CLASS
ASG_TOOL_CLASS(HIEventShapeJetIteration, IJetExecuteTool)
HIEventShapeJetIteration::m_eventShapeMapTool
ToolHandle< IHIEventShapeMapTool > m_eventShapeMapTool
Definition: HIEventShapeJetIteration.h:52
HIEventShapeJetIteration::execute
virtual int execute() const override
Method to be called for each event.
Definition: HIEventShapeJetIteration.cxx:49
HIEventShapeJetIteration::makeClusterList
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
Definition: HIEventShapeJetIteration.cxx:124
ToolHandle.h
HIEventShapeJetIteration::m_trackJetSeedKey
SG::ReadHandleKey< xAOD::JetContainer > m_trackJetSeedKey
Definition: HIEventShapeJetIteration.h:61
AsgTool.h