Main Page
Namespaces
Classes
Package Documentation
DataFormats
L1THGCal
interface
HGCalMulticluster.h
Go to the documentation of this file.
1
#ifndef DataFormats_L1Trigger_HGCalMulticluster_h
2
#define DataFormats_L1Trigger_HGCalMulticluster_h
3
4
#include "
DataFormats/Common/interface/Ptr.h
"
5
#include "
DataFormats/L1Trigger/interface/BXVector.h
"
6
#include "
DataFormats/L1THGCal/interface/HGCalClusterT.h
"
7
#include "
DataFormats/L1THGCal/interface/HGCalCluster.h
"
8
9
namespace
l1t
{
10
11
class
HGCalMulticluster
:
public
HGCalClusterT
<l1t::HGCalCluster> {
12
public
:
13
HGCalMulticluster
() :
hOverEValid_
(
false
) {}
14
HGCalMulticluster
(
const
LorentzVector
p4
,
int
pt
= 0,
int
eta
= 0,
int
phi
= 0);
15
16
HGCalMulticluster
(
const
edm::Ptr<l1t::HGCalCluster>
&tc,
float
fraction
= 1);
17
18
~HGCalMulticluster
()
override
;
19
20
float
hOverE
()
const
{
21
// --- this below would be faster when reading old objects, as HoE will only be computed once,
22
// --- but it may not be allowed by CMS rules because of the const_cast
23
// --- and could potentially cause a data race
24
// if (!hOverEValid_) (const_cast<HGCalMulticluster*>(this))->saveHOverE();
25
// --- this below is safe in any case
26
return
hOverEValid_
?
hOverE_
:
l1t::HGCalClusterT<l1t::HGCalCluster>::hOverE
();
27
}
28
29
void
saveHOverE
() {
30
hOverE_
=
l1t::HGCalClusterT<l1t::HGCalCluster>::hOverE
();
31
hOverEValid_
=
true
;
32
}
33
34
private
:
35
float
hOverE_
;
36
bool
hOverEValid_
;
37
};
38
39
typedef
BXVector<HGCalMulticluster>
HGCalMulticlusterBxCollection
;
40
41
}
// namespace l1t
42
43
#endif
reco::LeafCandidate::eta
double eta() const final
momentum pseudorapidity
Definition:
LeafCandidate.h:137
funct::false
false
Definition:
Factorize.h:36
l1t::HGCalClusterT::hOverE
double hOverE() const
Definition:
HGCalClusterT.h:106
reco::LeafCandidate::pt
double pt() const final
transverse momentum
Definition:
LeafCandidate.h:131
l1t
delete x;
Definition:
CaloConfig.h:22
BXVector.h
l1t::HGCalMulticluster::saveHOverE
void saveHOverE()
Definition:
HGCalMulticluster.h:29
l1t::HGCalMulticluster::hOverE
float hOverE() const
Definition:
HGCalMulticluster.h:20
HGCalClusterT.h
l1t::HGCalMulticlusterBxCollection
BXVector< HGCalMulticluster > HGCalMulticlusterBxCollection
Definition:
HGCalMulticluster.h:39
reco::LeafCandidate::p4
const LorentzVector & p4() const final
four-momentum Lorentz vector
Definition:
LeafCandidate.h:99
Ptr.h
edm::Ptr
Definition:
AssociationVector.h:30
l1t::HGCalMulticluster::hOverE_
float hOverE_
Definition:
HGCalMulticluster.h:35
reco::Candidate::LorentzVector
math::XYZTLorentzVector LorentzVector
Lorentz vector.
Definition:
Candidate.h:37
l1t::HGCalMulticluster::~HGCalMulticluster
~HGCalMulticluster() override
Definition:
HGCalMulticluster.cc:11
l1t::HGCalMulticluster
Definition:
HGCalMulticluster.h:11
HGCalCluster.h
dedxEstimators_cff.fraction
fraction
Definition:
dedxEstimators_cff.py:23
l1t::HGCalMulticluster::HGCalMulticluster
HGCalMulticluster()
Definition:
HGCalMulticluster.h:13
BXVector
Definition:
BXVector.h:15
reco::LeafCandidate::phi
double phi() const final
momentum azimuthal angle
Definition:
LeafCandidate.h:133
l1t::HGCalClusterT
Definition:
HGCalClusterT.h:21
l1t::HGCalMulticluster::hOverEValid_
bool hOverEValid_
Definition:
HGCalMulticluster.h:36
Generated for CMSSW Reference Manual by
1.8.11