ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Reconstruction
Jet
JetUtils
JetUtils
JetCaloCalculations.h
Go to the documentation of this file.
1
// emacs, this file is -*- c++ -*-
2
3
/*
4
Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
5
*/
6
7
#ifndef JETUTILS_JETCALOHELPER_H
8
#define JETUTILS_JETCALOHELPER_H
9
10
#include "
xAODJet/JetConstituentVector.h
"
11
12
#include <vector>
13
14
#include "
xAODJet/Jet.h
"
15
16
#include "
xAODCaloEvent/CaloCluster.h
"
17
18
namespace
CaloConstitHelpers
{
19
31
struct
CaloConstitExtractor
{
32
virtual
~CaloConstitExtractor
(){}
33
virtual
bool
valid
(
xAOD::JetConstituentVector::iterator
&)
const
{
return
false
;}
34
virtual
double
moment
(
xAOD::JetConstituentVector::iterator
& ,
xAOD::CaloCluster::MomentType
)
const
{
return
0;};
35
virtual
double
time
(
xAOD::JetConstituentVector::iterator
& )
const
{
return
0.;}
36
virtual
double
energyHEC
(
xAOD::JetConstituentVector::iterator
& )
const
{
return
0.;}
37
};
38
}
39
40
namespace
jet
{
76
class
JetCaloCalculator
{
77
public
:
78
//typedef typename Jet::navigable_type::paramter_type cellweight_t;
79
typedef
double
weight_t
;
80
81
JetCaloCalculator
() :
m_name
(
"JetCaloCalculator"
){}
82
JetCaloCalculator
(
xAOD::JetAttribute::AttributeID
id
) ;
83
84
virtual
~JetCaloCalculator
(){}
85
86
virtual
bool
setupEvent
() {
return
true
; };
87
virtual
bool
setupJet
(
const
xAOD::Jet
*
/*jet*/
) = 0;
88
89
93
virtual
bool
processConstituent
(
xAOD::JetConstituentVector::iterator
&
/*it*/
) {
return
true
;};
94
95
97
virtual
double
jetCalculation
()
const
{
return
0;};
98
100
virtual
double
operator()
(
const
xAOD::Jet
*
jet
,
xAOD::JetConstitScale
s=
xAOD::UncalibratedJetConstituent
);
101
102
virtual
std::string
name
()
const
{
return
m_name
;}
103
104
void
setName
(
const
std::string& n){
m_name
= n;}
105
106
107
void
setExtractor
(
const
CaloConstitHelpers::CaloConstitExtractor
* ex){
m_constitExtractor
= ex;}
108
110
virtual
JetCaloCalculator
*
clone
()
const
=0;
111
112
protected
:
113
std::string
m_name
;
114
xAOD::JetAttribute::AttributeID
m_id
{};
// unused for now.
115
const
CaloConstitHelpers::CaloConstitExtractor
*
m_constitExtractor
{};
// used to retrieve the cluster moment from the constituent (which can be a PFO object or a cluster)
116
};
117
118
123
#define JETCALCFUNCDECL( cname, id, others) \
124
public: \
125
virtual bool setupJet(const xAOD::Jet* jet); \
126
virtual bool processConstituent(xAOD::JetConstituentVector::iterator& iter); \
127
double jetCalculation() const ; \
128
cname(xAOD::JetAttribute::AttributeID i=id) : JetCaloCalculator( i ) { others } \
129
virtual JetCaloCalculator* clone() const {return new cname(*this); }
130
131
145
class
JetCaloCalculations
{
146
public
:
147
148
JetCaloCalculations
(
bool
ownCalc=
true
) :
m_owncalculators
(ownCalc) {}
149
150
virtual
~JetCaloCalculations
(){
clear
();}
151
void
addCalculator
(
JetCaloCalculator
* c);
152
153
bool
setupEvent
();
154
156
virtual
std::vector<double>
process
(
const
xAOD::Jet
*
jet
)
const
;
157
158
void
clear
();
159
160
161
size_t
numCalculators
()
const
{
return
m_calculators
.size();}
162
const
JetCaloCalculator
*
at
(
size_t
i)
const
{
return
m_calculators
[i];}
163
164
165
166
protected
:
167
std::vector<JetCaloCalculator*>
m_calculators
;
168
bool
m_owncalculators
;
169
};
170
171
}
172
#endif
CaloCluster.h
Jet.h
JetConstituentVector.h
This file defines helper classes to deal with jet constituents.
jet::JetCaloCalculations::m_owncalculators
bool m_owncalculators
Definition
JetCaloCalculations.h:168
jet::JetCaloCalculations::~JetCaloCalculations
virtual ~JetCaloCalculations()
Definition
JetCaloCalculations.h:150
jet::JetCaloCalculations::setupEvent
bool setupEvent()
Definition
JetCaloCalculations.cxx:262
jet::JetCaloCalculations::clear
void clear()
Definition
JetCaloCalculations.cxx:331
jet::JetCaloCalculations::JetCaloCalculations
JetCaloCalculations(bool ownCalc=true)
Definition
JetCaloCalculations.h:148
jet::JetCaloCalculations::at
const JetCaloCalculator * at(size_t i) const
Definition
JetCaloCalculations.h:162
jet::JetCaloCalculations::m_calculators
std::vector< JetCaloCalculator * > m_calculators
Definition
JetCaloCalculations.h:167
jet::JetCaloCalculations::addCalculator
void addCalculator(JetCaloCalculator *c)
Definition
JetCaloCalculations.cxx:257
jet::JetCaloCalculations::numCalculators
size_t numCalculators() const
Definition
JetCaloCalculations.h:161
jet::JetCaloCalculator
Base class to support cpu-efficient calculation on calorimeter jets either at CaloCell or constituent...
Definition
JetCaloCalculations.h:76
jet::JetCaloCalculator::weight_t
double weight_t
Definition
JetCaloCalculations.h:79
jet::JetCaloCalculator::jetCalculation
virtual double jetCalculation() const
return the result of the calculation
Definition
JetCaloCalculations.h:97
jet::JetCaloCalculator::setupJet
virtual bool setupJet(const xAOD::Jet *)=0
jet::JetCaloCalculator::clone
virtual JetCaloCalculator * clone() const =0
Clone. Base class should not be cloned.
jet::JetCaloCalculator::JetCaloCalculator
JetCaloCalculator()
Definition
JetCaloCalculations.h:81
jet::JetCaloCalculator::m_name
std::string m_name
Definition
JetCaloCalculations.h:113
jet::JetCaloCalculator::processConstituent
virtual bool processConstituent(xAOD::JetConstituentVector::iterator &)
Perform 1 calculation step using 1 constituent.
Definition
JetCaloCalculations.h:93
jet::JetCaloCalculator::name
virtual std::string name() const
Definition
JetCaloCalculations.h:102
jet::JetCaloCalculator::setupEvent
virtual bool setupEvent()
Definition
JetCaloCalculations.h:86
jet::JetCaloCalculator::operator()
virtual double operator()(const xAOD::Jet *jet, xAOD::JetConstitScale s=xAOD::UncalibratedJetConstituent)
convenience function to perform the full calculation on a given jet
Definition
JetCaloCalculations.cxx:222
jet::JetCaloCalculator::setExtractor
void setExtractor(const CaloConstitHelpers::CaloConstitExtractor *ex)
Definition
JetCaloCalculations.h:107
jet::JetCaloCalculator::m_constitExtractor
const CaloConstitHelpers::CaloConstitExtractor * m_constitExtractor
Definition
JetCaloCalculations.h:115
jet::JetCaloCalculator::setName
void setName(const std::string &n)
Definition
JetCaloCalculations.h:104
jet::JetCaloCalculator::m_id
xAOD::JetAttribute::AttributeID m_id
Definition
JetCaloCalculations.h:114
jet::JetCaloCalculator::~JetCaloCalculator
virtual ~JetCaloCalculator()
Definition
JetCaloCalculations.h:84
xAOD::CaloCluster_v1::MomentType
MomentType
Enums to identify different moments.
Definition
CaloCluster_v1.h:123
xAOD::JetConstituentVector::iterator
Definition
JetConstituentVector.h:121
process
const std::string process
Definition
fbtTestBasics.cxx:76
CaloConstitHelpers
Definition
JetCaloCalculations.h:18
jet
Definition
JetCalibTools_PlotJESFactors.cxx:23
xAOD::Jet
Jet_v1 Jet
Definition of the current "jet version".
Definition
Event/xAOD/xAODJet/xAODJet/Jet.h:17
xAOD::JetConstitScale
JetConstitScale
Definition
JetTypes.h:20
xAOD::UncalibratedJetConstituent
@ UncalibratedJetConstituent
Definition
JetTypes.h:21
CaloConstitHelpers::CaloConstitExtractor
Interface to retrieve calo informations from a jet constituent.
Definition
JetCaloCalculations.h:31
CaloConstitHelpers::CaloConstitExtractor::energyHEC
virtual double energyHEC(xAOD::JetConstituentVector::iterator &) const
Definition
JetCaloCalculations.h:36
CaloConstitHelpers::CaloConstitExtractor::time
virtual double time(xAOD::JetConstituentVector::iterator &) const
Definition
JetCaloCalculations.h:35
CaloConstitHelpers::CaloConstitExtractor::moment
virtual double moment(xAOD::JetConstituentVector::iterator &, xAOD::CaloCluster::MomentType) const
Definition
JetCaloCalculations.h:34
CaloConstitHelpers::CaloConstitExtractor::~CaloConstitExtractor
virtual ~CaloConstitExtractor()
Definition
JetCaloCalculations.h:32
CaloConstitHelpers::CaloConstitExtractor::valid
virtual bool valid(xAOD::JetConstituentVector::iterator &) const
Definition
JetCaloCalculations.h:33
xAOD::JetAttribute::AttributeID
AttributeID
Definition
JetAttributes.h:24
Generated on
for ATLAS Offline Software by
1.17.0