ATLAS Offline Software
Reconstruction
Jet
JetRecTools
JetRecTools
SoftKillerWeightTool.h
Go to the documentation of this file.
1
// this file is -*- C++ -*-
2
3
/*
4
Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
5
*/
6
7
// SoftKillerWeightTool.h
8
9
#ifndef JETRECTOOLS_SOFTKILLERWEIGHTTOOL_H
10
#define JETRECTOOLS_SOFTKILLERWEIGHTTOOL_H
11
12
13
14
// \class SoftKillerWeightTool
15
// \author Jennifer Roloff
16
// \date November 2015
17
//
18
// This is the tool to reweight clusters according to the SoftKiller
19
// algorithm
20
// It creates a new cluster collection based on the original clusters
21
// and the grid spacing for SK
22
//
23
//
24
// Properties are as follows:
25
// OutputContainer: Name of the output cluster collection
26
// InputCollection: Name of the input cluster collection.
27
// GridSize: The grid size that should be applied for the SK
28
// algorithm. Suggested values between 0.3 and 0.6
29
// SKRapMin: The minimum (absolute) rapidity over which to calculate SK
30
// SKRapMax: The maximum (absolute) rapidity over which to calculate SK
31
// SKRapMinApplied: The minimum (absolute) rapidity over which to apply SK
32
// SKRapMaxApplied: The maximum (absolute) rapidity over which to apply SK
33
// isCaloSplit: If false, SK is run the same on all clusters. If
34
// true, SK is run separately for clusters in the ECal and the
35
// HCal.
36
// ECalGridSize: Only necessary if isCaloSplit == true. The SK grid spacing
37
// used for the ECal.
38
// HCalGridSize: Only necessary if isCaloSplit == true. The SK grid spacing
39
// used for the HCal.
40
//
41
//
42
// This tool may be used on its own or in sequence with other pileup
43
// suppression methods. For central jets, it is suggested that the
44
// input collection be clusters with area subtraction (such as Voronoi)
45
// applied.
46
//
47
48
#include <string>
49
#include <utility>
50
#include "
JetRecTools/JetConstituentModifierBase.h
"
51
#include "
xAODBase/IParticleContainer.h
"
52
53
#include "fastjet/PseudoJet.hh"
54
55
class
SoftKillerWeightTool
:
public
JetConstituentModifierBase
{
56
ASG_TOOL_CLASS
(
SoftKillerWeightTool
,
IJetConstituentModifier
)
57
58
public
:
59
60
SoftKillerWeightTool
(
const
std::string&
name
);
61
62
// Check that the configuration is sane
63
StatusCode
initialize
();
64
65
private
:
66
// Implement the correction
67
StatusCode
process_impl
(
xAOD::IParticleContainer
* cont)
const
;
68
69
// Detailed implementation methods where clusters in
70
// both calorimeters are treated consistently
71
float
calculateWeight
(
xAOD::IParticle
&
part
,
double
minPt)
const
;
72
double
getSoftKillerMinPt
(
xAOD::IParticleContainer
& cont)
const
;
73
74
// Detailed implementation methods where clusters in
75
// ECAL and HCAL are treated independently
76
float
calculateSplitWeight
(
xAOD::IParticle
&
part
,
double
minPtECal,
double
minPtHCal)
const
;
77
std::pair<double,double>
getSoftKillerMinPtSplit
(
xAOD::IParticleContainer
& cont)
const
;
78
79
double
findMinPt
(
const
std::vector<fastjet::PseudoJet> &partSK)
const
;
80
std::vector<fastjet::PseudoJet>
makeSKParticles
(
const
std::vector<fastjet::PseudoJet>& partPJ)
const
;
81
82
83
private
:
84
//mutable int m_initCount;
85
float
m_lambdaCalDivide
;
86
87
// Properties.
88
bool
m_isCaloSplit
;
89
float
m_gridSpacing
;
90
float
m_eCalGrid
;
91
float
m_hCalGrid
;
92
float
m_rapmin
;
93
float
m_rapmax
;
94
float
m_rapminApplied
;
95
float
m_rapmaxApplied
;
96
bool
m_ignoreChargedPFOs
;
97
98
};
99
100
101
#endif
LArG4FSStartPointFilter.part
part
Definition:
LArG4FSStartPointFilter.py:21
SoftKillerWeightTool::makeSKParticles
std::vector< fastjet::PseudoJet > makeSKParticles(const std::vector< fastjet::PseudoJet > &partPJ) const
SoftKillerWeightTool::calculateSplitWeight
float calculateSplitWeight(xAOD::IParticle &part, double minPtECal, double minPtHCal) const
Definition:
SoftKillerWeightTool.cxx:212
JetConstituentModifierBase.h
SoftKillerWeightTool::SoftKillerWeightTool
SoftKillerWeightTool(const std::string &name)
Definition:
SoftKillerWeightTool.cxx:23
SoftKillerWeightTool::m_eCalGrid
float m_eCalGrid
Definition:
SoftKillerWeightTool.h:90
SoftKillerWeightTool::findMinPt
double findMinPt(const std::vector< fastjet::PseudoJet > &partSK) const
Definition:
SoftKillerWeightTool.cxx:102
xAOD::IParticle
Class providing the definition of the 4-vector interface.
Definition:
Event/xAOD/xAODBase/xAODBase/IParticle.h:41
SoftKillerWeightTool::m_lambdaCalDivide
float m_lambdaCalDivide
Definition:
SoftKillerWeightTool.h:85
SoftKillerWeightTool::m_rapmin
float m_rapmin
Definition:
SoftKillerWeightTool.h:92
IJetConstituentModifier
Definition:
IJetConstituentModifier.h:16
SoftKillerWeightTool
Definition:
SoftKillerWeightTool.h:55
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition:
PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
IParticleContainer.h
DataVector
Derived DataVector<T>.
Definition:
DataVector.h:581
SoftKillerWeightTool::getSoftKillerMinPtSplit
std::pair< double, double > getSoftKillerMinPtSplit(xAOD::IParticleContainer &cont) const
Definition:
SoftKillerWeightTool.cxx:156
SoftKillerWeightTool::m_rapminApplied
float m_rapminApplied
Definition:
SoftKillerWeightTool.h:94
name
std::string name
Definition:
Control/AthContainers/Root/debug.cxx:221
JetConstituentModifierBase
Definition:
JetConstituentModifierBase.h:22
SoftKillerWeightTool::m_ignoreChargedPFOs
bool m_ignoreChargedPFOs
Definition:
SoftKillerWeightTool.h:96
SoftKillerWeightTool::calculateWeight
float calculateWeight(xAOD::IParticle &part, double minPt) const
Definition:
SoftKillerWeightTool.cxx:204
SoftKillerWeightTool::m_gridSpacing
float m_gridSpacing
Definition:
SoftKillerWeightTool.h:89
SoftKillerWeightTool::initialize
StatusCode initialize()
Dummy implementation of the initialisation function.
Definition:
SoftKillerWeightTool.cxx:51
SoftKillerWeightTool::m_rapmaxApplied
float m_rapmaxApplied
Definition:
SoftKillerWeightTool.h:95
SoftKillerWeightTool::getSoftKillerMinPt
double getSoftKillerMinPt(xAOD::IParticleContainer &cont) const
Definition:
SoftKillerWeightTool.cxx:117
ASG_TOOL_CLASS
#define ASG_TOOL_CLASS(CLASSNAME, INT1)
Definition:
AsgToolMacros.h:68
SoftKillerWeightTool::process_impl
StatusCode process_impl(xAOD::IParticleContainer *cont) const
Definition:
SoftKillerWeightTool.cxx:73
SoftKillerWeightTool::m_hCalGrid
float m_hCalGrid
Definition:
SoftKillerWeightTool.h:91
SoftKillerWeightTool::m_rapmax
float m_rapmax
Definition:
SoftKillerWeightTool.h:93
SoftKillerWeightTool::m_isCaloSplit
bool m_isCaloSplit
Definition:
SoftKillerWeightTool.h:88
Generated on Thu Nov 7 2024 21:26:23 for ATLAS Offline Software by
1.8.18