ATLAS Offline Software
Loading...
Searching...
No Matches
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
17{
19public:
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
32private:
33 StatusCode checkQVectorSize(const xAOD::HIEventShape* shape, unsigned int n) const;
34 StatusCode checkCompatibility() 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
Scalar phi() const
phi method
#define ASG_TOOL_CLASS(CLASSNAME, INT1)
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.
virtual StatusCode getShape(const xAOD::HIEventShape *&shape) const override
virtual void setHarmonics(const std::vector< unsigned int > &v) override
static float modulate(const std::vector< unsigned int > &nh_vector, const xAOD::HIEventShape *shape, float phi)
SG::ReadHandleKey< xAOD::HIEventShapeContainer > m_shape_key
Gaudi::Property< bool > m_do_v2
HIUEModulatorTool(const std::string &myname)
virtual StatusCode setEventShapeForModulation(const xAOD::HIEventShape *shape) override
StatusCode checkQVectorSize(const xAOD::HIEventShape *shape, unsigned int n) const
const xAOD::HIEventShape * m_shape
virtual float getModulation(float phi, const xAOD::HIEventShape *shape=nullptr) const override
StatusCode checkCompatibility() const
std::vector< unsigned int > m_nh_vector
Gaudi::Property< bool > m_do_v4
Gaudi::Property< bool > m_do_v3
virtual StatusCode initialize() override
Dummy implementation of the initialisation function.
Abstract interface for tools that can provide UE modulation given an HIEventShape.
Property holding a SG store/key/clid from which a ReadHandle is made.
Base class for the dual-use tool implementation classes.
Definition AsgTool.h:47
HIEventShape_v2 HIEventShape
Definition of the latest event info version.