ATLAS Offline Software
HIUEModulatorTool.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef HIJETREC_HIUEMODULATORTOOL_H
6 #define HIJETREC_HIUEMODULATORTOOL_H
7 
9 #include "AsgTools/AsgTool.h"
10 
12 
15 
16 class HIUEModulatorTool : public asg::AsgTool, virtual public IHIUEModulatorTool
17 {
19 public:
20 
21  HIUEModulatorTool(const std::string& myname);
22 
23  virtual float getModulation(float phi, const xAOD::HIEventShape* shape = nullptr) const override;
24  virtual StatusCode setEventShapeForModulation(const xAOD::HIEventShape* shape) override;
25  virtual void setHarmonics(const std::vector<unsigned int>& v) override;
26  virtual StatusCode initialize() override;
27 
28  virtual StatusCode getShape(const xAOD::HIEventShape* & shape) const override;
29 
30  static float modulate(const std::vector<unsigned int>& nh_vector, const xAOD::HIEventShape* shape, float phi);
31 
32 private:
33  StatusCode checkQVectorSize(const xAOD::HIEventShape* shape, unsigned int n) const;
35 
36  //Attempt to move to data handlers
37  //std::string m_shape_key;
38  //key attribute set to "empty string" to have consistency with previously set m_shape_key (NULLModifier)
39  SG::ReadHandleKey< xAOD::HIEventShapeContainer > m_shape_key { this, "EventShapeKey", "", "The input HI Event Shape"};
40 
42  std::vector<unsigned int> m_nh_vector;
43 
44  //bool m_do_v2;
45  Gaudi::Property< bool > m_do_v2 { this, "DoV2", true, "Do V2 modulation" };
46  //bool m_do_v3;
47  Gaudi::Property< bool > m_do_v3 { this, "DoV3", true, "Do V3 modulation" };
48  //bool m_do_v4;
49  Gaudi::Property< bool > m_do_v4 { this, "DoV4", true, "Do V4 modulation" };
50 
51 };
52 #endif
ReadHandleKey.h
Property holding a SG store/key/clid from which a ReadHandle is made.
HIUEModulatorTool::getShape
virtual StatusCode getShape(const xAOD::HIEventShape *&shape) const override
Definition: HIUEModulatorTool.cxx:64
HIUEModulatorTool::setEventShapeForModulation
virtual StatusCode setEventShapeForModulation(const xAOD::HIEventShape *shape) override
Definition: HIUEModulatorTool.cxx:41
asg::AsgTool
Base class for the dual-use tool implementation classes.
Definition: AsgTool.h:47
HIUEModulatorTool::HIUEModulatorTool
HIUEModulatorTool(const std::string &myname)
Definition: HIUEModulatorTool.cxx:12
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:64
SG::ReadHandleKey
Property holding a SG store/key/clid from which a ReadHandle is made.
Definition: StoreGate/StoreGate/ReadHandleKey.h:39
HIUEModulatorTool::m_do_v3
Gaudi::Property< bool > m_do_v3
Definition: HIUEModulatorTool.h:47
HIUEModulatorTool::m_nh_vector
std::vector< unsigned int > m_nh_vector
Definition: HIUEModulatorTool.h:42
HIUEModulatorTool
Definition: HIUEModulatorTool.h:17
xAOD::HIEventShape_v2
Interface class for the HI reconstruction EDM.
Definition: HIEventShape_v2.h:31
HIUEModulatorTool::getModulation
virtual float getModulation(float phi, const xAOD::HIEventShape *shape=nullptr) const override
Definition: HIUEModulatorTool.cxx:53
beamspotman.n
n
Definition: beamspotman.py:731
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
HIEventShapeContainer.h
HIUEModulatorTool::checkCompatibility
StatusCode checkCompatibility() const
Definition: HIUEModulatorTool.cxx:119
HIUEModulatorTool::initialize
virtual StatusCode initialize() override
Dummy implementation of the initialisation function.
Definition: HIUEModulatorTool.cxx:22
WriteHandleKey.h
Property holding a SG store/key/clid from which a WriteHandle is made.
HIUEModulatorTool::setHarmonics
virtual void setHarmonics(const std::vector< unsigned int > &v) override
Definition: HIUEModulatorTool.cxx:48
HIUEModulatorTool::checkQVectorSize
StatusCode checkQVectorSize(const xAOD::HIEventShape *shape, unsigned int n) const
Definition: HIUEModulatorTool.cxx:114
python.PyAthena.v
v
Definition: PyAthena.py:157
HIUEModulatorTool::m_do_v2
Gaudi::Property< bool > m_do_v2
Definition: HIUEModulatorTool.h:45
IHIUEModulatorTool
Abstract interface for tools that can provide UE modulation given an HIEventShape.
Definition: IHIUEModulatorTool.h:25
IHIUEModulatorTool.h
ASG_TOOL_CLASS
#define ASG_TOOL_CLASS(CLASSNAME, INT1)
Definition: AsgToolMacros.h:68
HIUEModulatorTool::m_do_v4
Gaudi::Property< bool > m_do_v4
Definition: HIUEModulatorTool.h:49
AsgTool.h
HIUEModulatorTool::m_shape_key
SG::ReadHandleKey< xAOD::HIEventShapeContainer > m_shape_key
Definition: HIUEModulatorTool.h:39
HIUEModulatorTool::modulate
static float modulate(const std::vector< unsigned int > &nh_vector, const xAOD::HIEventShape *shape, float phi)
Definition: HIUEModulatorTool.cxx:90
HIUEModulatorTool::m_shape
const xAOD::HIEventShape * m_shape
Definition: HIUEModulatorTool.h:41