ATLAS Offline Software
Loading...
Searching...
No Matches
JetBalancePFlowJvtTool.h
Go to the documentation of this file.
1
2
3/*
4 Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
5*/
6
7// JetBalancePFlowJvtTool.h
8// Header file for class JetBalancePFlowJvtTool
9// Author: Eimear Conroy <eimear.isobel.conroy@cern.ch>
10// Inherits from JetForwardPFlowJvtTool - Author: Anastasia Kotsokechagia <anastasia.kotsokechagia@cern.ch>
11
12// Tool for calculating bjvt values for pflow jets.
13// Short describtion of the tool;
14// First central PU jets are built per vertex.
15// Reconstructed calibrated jets are then used to calculate the per vertex missing momentum (miss-mom).
16// The per vertex missing momentum is defined as: The vector some of the calibrated jet momenta (for jets with pt>20GeV && Rpt>0.1 wrt to the vertex) + tracks assosiated to the vertex (otherwise).
17// PU Jets closeby (dR<0.3) to a HS jet are not considered.
18// The bJVT value for every central jet (cj) of the event is then calculated choosing the vertex with the largest negative miss-mom projection on the cj.
19// User action: After initializing the tool the user has to call the modify(xAOD::JetContainer& jetCont) function. Argument in this fuction is the PFlow jet container of the event.
20// The bjvt value for every central jet of the container is then calculated and can be retrieved.
22
23 //Parameters inherited from JetForwardPFlowJvtTool
24 // m_orLabel: "" (redundant here)
25 // m_jetsName : "Container name for the output reconstructed PU jets "
26 // m_tightOP: "If true a tight fjvt threshold value is applied" (redundant here)
27 // m_outLabelFjvt: "Decorator for passing fJVT threshold (tight or loose)" (redundant here)
28 // m_jetchargedp4: "Name of the jet charged momentum 4-vector"
29 // m_etaThresh: "Maximum eta value for considering a jet as central"
30 // m_forwardMinPt: "Minimum forward jet pt" (redundant here)
31 // m_forwardMaxPt: "Maximum forward jet pt. If -1 no threshold is applied" (redundant here)
32 // m_centerMinPt: "Minimum central jet pt"
33 // m_centerMaxPt: "Maximum central jet pt. If -1 no threshold is applied"
34 // m_pvind: "Hard-Scatter primary vertex index of the event. If -1 it's automatically retrieved from the event"
35 // m_rptCut: "Rpt cut value for central PU jets contributing in the missing momentum calculation"
36 // m_jvtCut: "JVT threshold value for considering a central PU jet as HS"
37 // m_dzCut: "Dz=z-z0 cut value for pfo objects participating in the HS vertex jet reco"
38 // m_vertices: "Number of vertices for which the missing momentum is calculated"
39 // m_maxRap: "Maximum rapidity value in fastjet::AreaDefinition"
40 // m_neutMaxRap: "Maximum rapidity value for neutral pfos participating in jet reco"
41 // m_weight: "PFO weight value"
42 // m_pfoToolName: "Name of PFO retriever tool" (redundant here)
43 // m_wpfoToolName: "Name of PFO weighting tool"
44 // m_pfoJESName: "Name of jet calibration tool" (redundant here)
45 // m_jetAlgo: "Jet calibration collection name" (redundant here)
46 // m_calibconfig: "Calibration config for PFlow jets, need to be updated with latest one" (redundant here)
47 // m_calibSeq: "Calibration sequence to be applied" (redundant here)
48 // m_calibArea: "Calibration area" (redundant here)
49 // m_isdata: "True if data" (redundant here)
50 //
51 //New parameters for bJVT
52 // m_QCDPUMinPt: "Minimum pt cut value for central PU jets contributing in the missing momentum calculation"
53 // m_QCDPUMaxPt: "Maximum pt cut value for central PU jets contributing in the missing momentum calculation. If -1 no threshold is applied"
54 // m_bjvtKey: "Decorator for passing bJVT threshold (tight or loose)"
55 // m_bjvtRawKey: "Decorator for raw bJVT variable"
56 // m_isQCDPUKey: "SG key for output isJVTQCDPU decoration"
57 // m_isStochPUKey: "SG key for output isJVTStochPU decoration"
58
59
60#ifndef BALANCEPFLOWJVTTOOL_JVT_BALANCEPFLOWJVTTOOL_H
61#define BALANCEPFLOWJVTTOOL_JVT_BALANCEPFLOWJVTTOOL_H 1
62
63// STL includes
64#include <string>
65
66// FrameWork includes
67#include "AsgTools/ToolHandle.h"
68#include "AsgTools/AsgTool.h"
75
80
81// Pflow / FE tools
86
87#include "AsgTools/ToolHandle.h"
89
91
92
93
95
97
98
99 // Public methods:
101 public:
102
104 JetBalancePFlowJvtTool(const std::string& name);
105
108
109 virtual StatusCode initialize() override;
110 virtual StatusCode decorate(const xAOD::JetContainer& jetCont) const override;
111
112 //New methods
113 bool isQCDPUJet(const xAOD::Jet *jet) const;
114
115 //Overridden/overloaded methods from JetForwardPFlowJvtTool
116 virtual std::vector<TVector2> calculateVertexMomenta(const xAOD::JetContainer *jets,int pvind, int vertices) const override;
117 StatusCode tagTruth(const xAOD::JetContainer *jets,const xAOD::JetContainer *truthJets,const xAOD::JetContainer *itpujets,const xAOD::JetContainer *ootpujets);
118
119 protected:
120 //New properties for bJVT, JetForwardPFlowJvtTool properties also inherited
121
122 Gaudi::Property<float> m_QCDPUMinPt{this, "QCDPUMinPt", 20e3, "Minimum pt cut value for central PU jets contributing in the missing momentum calculation"};
123 Gaudi::Property<float> m_QCDPUMaxPt{this, "QCDPUMaxPt", -1, "Maximum pt cut value for central PU jets contributing in the missing momentum calculation. If -1 no threshold is applied"};
124 //EMTopo tool also had selections on JVF and JVT
125
126 SG::WriteDecorHandleKey<xAOD::JetContainer> m_bjvtKey{this, "BjvtName", "passOnlyBJVT", "Decorator for passing bJVT threshold (tight or loose)"};
127 SG::WriteDecorHandleKey<xAOD::JetContainer> m_bjvtRawKey{this, "BjvtRawName", "bJvt", "Decorator for raw bJVT variable"};
128 SG::WriteDecorHandleKey<xAOD::JetContainer> m_isQCDPUKey{this, "isQCDPUName", "isJvtQCDPU", "SG key for output isJVTQCDPU decoration"};
129 SG::WriteDecorHandleKey<xAOD::JetContainer> m_isStochPUKey{this, "isStochPUName", "isJvtStochPU", "SG key for output isJVTStochPU decoration"};
130
132
133 };
134#endif //> !BALANCEJVTTOOL_JVT_BALANCEJVTTOOL_H
#define ASG_TOOL_CLASS(CLASSNAME, INT1)
Property holding a SG store/key/clid/attr name from which a ReadDecorHandle is made.
Handle class for reading a decoration on an object.
Handle class for adding a decoration to an object.
Interface for adding a decoration to a jet container.
virtual StatusCode initialize() override
Dummy implementation of the initialisation function.
SG::WriteDecorHandleKey< xAOD::JetContainer > m_isStochPUKey
SG::WriteDecorHandleKey< xAOD::JetContainer > m_isQCDPUKey
bool isQCDPUJet(const xAOD::Jet *jet) const
Gaudi::Property< float > m_QCDPUMinPt
Gaudi::Property< float > m_QCDPUMaxPt
SG::WriteDecorHandleKey< xAOD::JetContainer > m_bjvtRawKey
virtual ~JetBalancePFlowJvtTool()
Destructor:
JetBalancePFlowJvtTool(const std::string &name)
Constructor with parameters:
StatusCode tagTruth(const xAOD::JetContainer *jets, const xAOD::JetContainer *truthJets, const xAOD::JetContainer *itpujets, const xAOD::JetContainer *ootpujets)
virtual StatusCode decorate(const xAOD::JetContainer &jetCont) const override
Decorate a jet collection without otherwise modifying it.
virtual std::vector< TVector2 > calculateVertexMomenta(const xAOD::JetContainer *jets, int pvind, int vertices) const override
SG::WriteDecorHandleKey< xAOD::JetContainer > m_bjvtKey
JetForwardPFlowJvtTool(const std::string &name)
Constructor with parameters:
Property holding a SG store/key/clid/attr name from which a WriteDecorHandle is made.
Jet_v1 Jet
Definition of the current "jet version".
JetContainer_v1 JetContainer
Definition of the current "jet container version".