ATLAS Offline Software
Loading...
Searching...
No Matches
GSCCalibStep.h
Go to the documentation of this file.
1
2
3/*
4 Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
5*/
6
7// GSCCalibStep.h
8// Header file for class GSCCalibStep
10#ifndef JETCALIBTOOLS_GSCCALIBSTEP_H
11#define JETCALIBTOOLS_GSCCALIBSTEP_H 1
12
13#include <string>
14
15#include "AsgTools/AsgTool.h"
17#include "AsgTools/ToolHandle.h"
19
22
25
27
29 : public asg::AsgTool,
30 virtual public IJetCalibStep {
31
33
34public:
36 GSCCalibStep(const std::string& name = "GSCCalibStep");
37
38 virtual StatusCode initialize() override;
39 virtual StatusCode calibrate(xAOD::JetContainer&) const override;
40
41private:
42 Gaudi::Property<std::string> m_jetInScale {this, "InScale", "JetEtaJESScaleMomentum", "Starting jet scale"};
43 Gaudi::Property<std::string> m_jetOutScale {this, "OutScale", "JetGSCScaleMomentum", "Ending jet scale"};
44
45 ToolHandleArray<JetHelper::IVarTool> m_histTool_EM3 = {this , "histTool_EM3", {}, "EM3 histo reader" };
46 ToolHandleArray<JetHelper::IVarTool> m_histTool_ChargedFraction = {this , "histTool_CharFrac", {}, "ChargedFraction histo reader" };
47 ToolHandleArray<JetHelper::IVarTool> m_histTool_Tile0 = {this , "histTool_Tile0", {}, "Tile0 histo reader" };
48 ToolHandleArray<JetHelper::IVarTool> m_histTool_PunchThrough = {this , "histTool_PunchThrough", {}, "PunchThrough histo reader" };
49 ToolHandleArray<JetHelper::IVarTool> m_histTool_nTrk = {this , "histTool_nTrk", {}, "nTrk histo reader" };
50 ToolHandleArray<JetHelper::IVarTool> m_histTool_trackWIDTH = {this , "histTool_trackWIDTH", {}, "trackWIDTH histo reader" };
51
53 Gaudi::Property<bool> m_applyPunchThrough {this, "applyPunchThrough", false, "Boolean to turn on punch-through corretion"};
54 Gaudi::Property<std::vector<double>> m_punchThroughEtaBins {this, "PunchThroughEtaBins", {}, "Eta bins for punch through correction"};
55 Gaudi::Property<float> m_punchThroughMinPt{ this, "punchThroughMinPt", 50000., "Threshold for punch-through correction"};
56
58 float getChargedFractionResponse(const xAOD::Jet& jet, const JetHelper::JetContext& jc, uint etabin) const;
59 float getTile0Response(const xAOD::Jet& jet, const JetHelper::JetContext& jc, uint etabin) const;
60 float getEM3Response(const xAOD::Jet& jet, const JetHelper::JetContext& jc, uint etabin) const;
61 float getPunchThroughResponse(const xAOD::Jet& jet, const JetHelper::JetContext& jc, double eta_det) const;
62 float getNTrkResponse(const xAOD::Jet& jet, const JetHelper::JetContext& jc, uint etabin) const;
63 float getTrackWIDTHResponse(const xAOD::Jet& jet, const JetHelper::JetContext& jc, uint etabin) const;
64
66 const xAOD::Vertex *findHSVertex(const xAOD::VertexContainer& vertices) const;
67 SG::ReadHandleKey<xAOD::VertexContainer> m_vertexContainer_key{this, "VertexContainer", "PrimaryVertices", "SG key for input vertex container"};
68
69};
70
71#endif
#define ASG_TOOL_CLASS(CLASSNAME, INT1)
Handle class for reading a decoration on an object.
Property holding a SG store/key/clid from which a ReadHandle is made.
unsigned int uint
float getPunchThroughResponse(const xAOD::Jet &jet, const JetHelper::JetContext &jc, double eta_det) const
Gaudi::Property< std::vector< double > > m_punchThroughEtaBins
ToolHandleArray< JetHelper::IVarTool > m_histTool_ChargedFraction
virtual StatusCode calibrate(xAOD::JetContainer &) const override
Apply calibration to a jet container.
ToolHandleArray< JetHelper::IVarTool > m_histTool_trackWIDTH
float getNTrkResponse(const xAOD::Jet &jet, const JetHelper::JetContext &jc, uint etabin) const
Gaudi::Property< std::string > m_jetInScale
ToolHandleArray< JetHelper::IVarTool > m_histTool_EM3
float getTile0Response(const xAOD::Jet &jet, const JetHelper::JetContext &jc, uint etabin) const
SG::ReadHandleKey< xAOD::VertexContainer > m_vertexContainer_key
Gaudi::Property< std::string > m_jetOutScale
const xAOD::Vertex * findHSVertex(const xAOD::VertexContainer &vertices) const
Retrieve hard scatter vertex for its index. Return nullptr if one cannot be found.
float getEM3Response(const xAOD::Jet &jet, const JetHelper::JetContext &jc, uint etabin) const
ToolHandleArray< JetHelper::IVarTool > m_histTool_Tile0
float getTrackWIDTHResponse(const xAOD::Jet &jet, const JetHelper::JetContext &jc, uint etabin) const
virtual StatusCode initialize() override
Dummy implementation of the initialisation function.
ToolHandleArray< JetHelper::IVarTool > m_histTool_PunchThrough
ToolHandleArray< JetHelper::IVarTool > m_histTool_nTrk
float getChargedFractionResponse(const xAOD::Jet &jet, const JetHelper::JetContext &jc, uint etabin) const
Functions for retrieving the correction factors.
Gaudi::Property< float > m_punchThroughMinPt
Gaudi::Property< bool > m_applyPunchThrough
Properties for the punch-through correction:
GSCCalibStep(const std::string &name="GSCCalibStep")
Constructor with parameters:
Class JetContext Designed to read AOD information related to the event, N vertices,...
Definition JetContext.h:24
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
Jet_v1 Jet
Definition of the current "jet version".
VertexContainer_v1 VertexContainer
Definition of the current "Vertex container version".
Vertex_v1 Vertex
Define the latest version of the vertex class.
JetContainer_v1 JetContainer
Definition of the current "jet container version".