RecoMET
METAlgorithms
interface
TCMETAlgo.h
Go to the documentation of this file.
1
// -*- C++ -*-
2
//
3
// Package: METAlgorithms
4
// Class: TCMETAlgo
5
//
6
//
7
18
//
19
// Original Author: F. Golf
20
// Created: March 24, 2009
21
//
22
//
23
24
//____________________________________________________________________________||
25
#ifndef TCMETAlgo_h
26
#define TCMETAlgo_h
27
28
//____________________________________________________________________________||
29
#include <vector>
30
#include <string>
31
#include "
FWCore/Framework/interface/Event.h
"
32
#include "
DataFormats/Common/interface/Handle.h
"
33
#include "
FWCore/Framework/interface/ESHandle.h
"
34
#include "
FWCore/Framework/interface/EventSetup.h
"
35
#include "
DataFormats/Common/interface/ValueMap.h
"
36
37
#include "
FWCore/ParameterSet/interface/ParameterSet.h
"
38
#include "
DataFormats/Candidate/interface/CandidateFwd.h
"
39
#include "
DataFormats/METReco/interface/CommonMETData.h
"
40
#include "
DataFormats/METReco/interface/MET.h
"
41
42
#include "
DataFormats/EgammaCandidates/interface/Electron.h
"
43
#include "
DataFormats/EgammaCandidates/interface/ElectronFwd.h
"
44
#include "
DataFormats/EgammaCandidates/interface/GsfElectron.h
"
45
#include "
DataFormats/EgammaCandidates/interface/GsfElectronFwd.h
"
46
47
#include "
DataFormats/MuonReco/interface/Muon.h
"
48
#include "
DataFormats/MuonReco/interface/MuonFwd.h
"
49
#include "
DataFormats/TrackReco/interface/TrackBase.h
"
50
#include "
DataFormats/VertexReco/interface/Vertex.h
"
51
#include "
DataFormats/VertexReco/interface/VertexFwd.h
"
52
#include "
DataFormats/TrackReco/interface/TrackFwd.h
"
53
#include "
DataFormats/METReco/interface/CaloMET.h
"
54
#include "
DataFormats/METReco/interface/CaloMETCollection.h
"
55
#include "
DataFormats/BeamSpot/interface/BeamSpot.h
"
56
#include "
DataFormats/MuonReco/interface/MuonMETCorrectionData.h
"
57
#include "
DataFormats/ParticleFlowReco/interface/PFClusterFwd.h
"
58
59
#include "
MagneticField/Engine/interface/MagneticField.h
"
60
61
#include "
FWCore/Framework/interface/ConsumesCollector.h
"
62
63
#include "TH2D.h"
64
#include "TVector3.h"
65
66
//____________________________________________________________________________||
67
class
TCMETAlgo
{
68
public
:
69
typedef
std::vector<const reco::Candidate>
InputCollection
;
70
TCMETAlgo
();
71
virtual
~TCMETAlgo
();
72
reco::MET
CalculateTCMET
(
edm::Event
&
event
,
const
edm::EventSetup
&
setup
);
73
TH2D*
getResponseFunction_fit
();
74
TH2D*
getResponseFunction_mode
();
75
TH2D*
getResponseFunction_shower
();
76
TH2D*
getResponseFunction_noshower
();
77
void
configure
(
const
edm::ParameterSet
& iConfig,
edm::ConsumesCollector
&& iConsumesCollector);
78
79
private
:
80
double
met_x_
;
81
double
met_y_
;
82
double
sumEt_
;
83
84
void
initialize_MET_with_PFClusters
(
edm::Event
&
event
);
85
void
initialize_MET_with_CaloMET
(
edm::Event
&
event
);
86
void
correct_MET_for_Muons
();
87
void
correct_MET_for_Tracks
();
88
89
edm::Handle<reco::MuonCollection>
muonHandle_
;
90
edm::Handle<reco::GsfElectronCollection>
electronHandle_
;
91
edm::Handle<reco::TrackCollection>
trackHandle_
;
92
edm::Handle<reco::BeamSpot>
beamSpotHandle_
;
93
edm::Handle<reco::VertexCollection>
vertexHandle_
;
94
edm::Handle<edm::ValueMap<reco::MuonMETCorrectionData>
>
muonDepValueMapHandle_
;
95
edm::Handle<edm::ValueMap<reco::MuonMETCorrectionData>
>
tcmetDepValueMapHandle_
;
96
97
edm::ESHandle<MagneticField>
magneticFieldHandle_
;
98
99
edm::EDGetTokenT<reco::MuonCollection>
muonToken_
;
100
edm::EDGetTokenT<reco::GsfElectronCollection>
electronToken_
;
101
edm::EDGetTokenT<edm::View<reco::MET>
>
metToken_
;
102
edm::EDGetTokenT<reco::TrackCollection>
trackToken_
;
103
edm::EDGetTokenT<reco::BeamSpot>
beamSpotToken_
;
104
edm::EDGetTokenT<reco::VertexCollection>
vertexToken_
;
105
edm::EDGetTokenT<reco::PFClusterCollection>
clustersECALToken_
;
106
edm::EDGetTokenT<reco::PFClusterCollection>
clustersHCALToken_
;
107
edm::EDGetTokenT<reco::PFClusterCollection>
clustersHFToken_
;
108
edm::EDGetTokenT<edm::ValueMap<reco::MuonMETCorrectionData>
>
muonDepValueMapToken_
;
109
edm::EDGetTokenT<edm::ValueMap<reco::MuonMETCorrectionData>
>
tcmetDepValueMapToken_
;
110
111
bool
usePFClusters_
;
112
int
nLayers_
;
113
int
nLayersTight_
;
114
int
vertexNdof_
;
115
double
vertexZ_
;
116
double
vertexRho_
;
117
double
vertexMaxDZ_
;
118
double
maxpt_eta25_
;
119
double
maxpt_eta20_
;
120
bool
vetoDuplicates_
;
121
double
dupMinPt_
;
122
double
dupDPhi_
;
123
double
dupDCotTh_
;
124
std::vector<int>
duplicateTracks_
;
125
126
double
d0cuta_
;
127
double
d0cutb_
;
128
double
maxd0cut_
;
129
double
maxchi2_tight_
;
130
double
minhits_tight_
;
131
double
maxPtErr_tight_
;
132
int
nMinOuterHits_
;
133
std::vector<reco::TrackBase::TrackAlgorithm>
trackAlgos_
;
134
double
usedeltaRRejection_
;
135
double
deltaRShower_
;
136
double
minpt_
;
137
double
maxpt_
;
138
double
maxeta_
;
139
double
maxchi2_
;
140
double
minhits_
;
141
double
maxPtErr_
;
142
double
radius_
;
143
double
zdist_
;
144
double
corner_
;
145
double
eVetoDeltaR_
;
146
double
eVetoDeltaPhi_
;
147
double
eVetoDeltaCotTheta_
;
148
double
eVetoMinElectronPt_
;
149
double
hOverECut_
;
150
std::vector<int>
trkQuality_
;
151
std::vector<reco::TrackBase::TrackAlgorithm>
trkAlgos_
;
152
153
bool
isCosmics_
;
154
bool
correctShowerTracks_
;
155
bool
electronVetoCone_
;
156
bool
usePvtxd0_
;
157
bool
checkTrackPropagation_
;
158
159
class
TH2D*
response_function_
;
160
class
TH2D*
showerRF_
;
161
bool
hasValidVertex_
;
162
const
reco::VertexCollection
*
vertexColl_
;
163
164
bool
isMuon
(
const
reco::TrackRef
& trackRef);
165
bool
isElectron
(
const
reco::TrackRef
& trackRef);
166
bool
isGoodTrack
(
const
reco::TrackRef
trackRef);
167
bool
closeToElectron
(
const
reco::TrackRef
);
168
void
correctMETforMuon
(
const
reco::TrackRef
,
reco::MuonRef
& muonRef);
169
void
correctMETforMuon
(
reco::MuonRef
& muonRef);
170
void
correctMETforTrack
(
const
reco::TrackRef
, TH2D*
rf
,
const
TVector3&);
171
void
correctSumEtForTrack
(
const
reco::TrackRef
, TH2D*
rf
,
const
TVector3&);
172
class
TVector3
propagateTrackToCalorimeterFace
(
const
reco
::
TrackRef
trackRef);
173
void
findGoodShowerTracks
(std::vector<int>& goodShowerTracks);
174
bool
nearGoodShowerTrack
(const reco::TrackRef, const std::vector<int>& goodShowerTracks);
175
int
nExpectedInnerHits
(const reco::TrackRef);
176
int
nExpectedOuterHits
(const reco::TrackRef);
177
int
nLayers
(const reco::TrackRef);
178
bool
isValidVertex
();
179
void
findDuplicateTracks
();
180
int
vetoTrack
(int i1, int i2);
181
};
182
183
//____________________________________________________________________________||
184
#endif // TCMETAlgo_h
TCMETAlgo::isGoodTrack
bool isGoodTrack(const reco::TrackRef trackRef)
Definition:
TCMETAlgo.cc:577
Handle.h
electrons_cff.bool
bool
Definition:
electrons_cff.py:366
TCMETAlgo::muonDepValueMapToken_
edm::EDGetTokenT< edm::ValueMap< reco::MuonMETCorrectionData > > muonDepValueMapToken_
Definition:
TCMETAlgo.h:108
Muon.h
TCMETAlgo::getResponseFunction_fit
TH2D * getResponseFunction_fit()
Definition:
TCMETAlgo.cc:3523
TCMETAlgo::clustersHFToken_
edm::EDGetTokenT< reco::PFClusterCollection > clustersHFToken_
Definition:
TCMETAlgo.h:107
TCMETAlgo::TCMETAlgo
TCMETAlgo()
Definition:
TCMETAlgo.cc:61
TCMETAlgo::hOverECut_
double hOverECut_
Definition:
TCMETAlgo.h:149
TCMETAlgo::minhits_
double minhits_
Definition:
TCMETAlgo.h:140
ESHandle.h
TCMETAlgo::~TCMETAlgo
virtual ~TCMETAlgo()
Definition:
TCMETAlgo.cc:164
TCMETAlgo::eVetoDeltaCotTheta_
double eVetoDeltaCotTheta_
Definition:
TCMETAlgo.h:147
edm::EDGetTokenT< reco::MuonCollection >
TCMETAlgo::initialize_MET_with_CaloMET
void initialize_MET_with_CaloMET(edm::Event &event)
Definition:
TCMETAlgo.cc:240
TrackBase.h
TCMETAlgo::minpt_
double minpt_
Definition:
TCMETAlgo.h:136
TCMETAlgo::electronHandle_
edm::Handle< reco::GsfElectronCollection > electronHandle_
Definition:
TCMETAlgo.h:90
reco::VertexCollection
std::vector< Vertex > VertexCollection
collection of Vertex objects
Definition:
VertexFwd.h:9
TCMETAlgo::correctMETforTrack
void correctMETforTrack(const reco::TrackRef, TH2D *rf, const TVector3 &)
Definition:
TCMETAlgo.cc:702
TCMETAlgo::vertexZ_
double vertexZ_
Definition:
TCMETAlgo.h:115
TCMETAlgo::showerRF_
class TH2D * showerRF_
Definition:
TCMETAlgo.h:160
TCMETAlgo::usePvtxd0_
bool usePvtxd0_
Definition:
TCMETAlgo.h:156
TCMETAlgo::beamSpotHandle_
edm::Handle< reco::BeamSpot > beamSpotHandle_
Definition:
TCMETAlgo.h:92
TCMETAlgo::trkAlgos_
std::vector< reco::TrackBase::TrackAlgorithm > trkAlgos_
Definition:
TCMETAlgo.h:151
TCMETAlgo::trackHandle_
edm::Handle< reco::TrackCollection > trackHandle_
Definition:
TCMETAlgo.h:91
TCMETAlgo::met_y_
double met_y_
Definition:
TCMETAlgo.h:81
TCMETAlgo::nExpectedOuterHits
int nExpectedOuterHits(const reco::TrackRef)
Definition:
TCMETAlgo.cc:540
TCMETAlgo::isCosmics_
bool isCosmics_
Definition:
TCMETAlgo.h:153
TCMETAlgo::vertexRho_
double vertexRho_
Definition:
TCMETAlgo.h:116
reco
fixed size matrix
Definition:
AlignmentAlgorithmBase.h:46
TCMETAlgo::InputCollection
std::vector< const reco::Candidate > InputCollection
Definition:
TCMETAlgo.h:69
TCMETAlgo::maxPtErr_tight_
double maxPtErr_tight_
Definition:
TCMETAlgo.h:131
watchdog.const
const
Definition:
watchdog.py:83
edm::Handle< reco::MuonCollection >
TCMETAlgo::vertexNdof_
int vertexNdof_
Definition:
TCMETAlgo.h:114
singleTopDQM_cfi.setup
setup
Definition:
singleTopDQM_cfi.py:37
TCMETAlgo::eVetoMinElectronPt_
double eVetoMinElectronPt_
Definition:
TCMETAlgo.h:148
TCMETAlgo::magneticFieldHandle_
edm::ESHandle< MagneticField > magneticFieldHandle_
Definition:
TCMETAlgo.h:97
edm::Ref< TrackCollection >
TCMETAlgo::radius_
double radius_
Definition:
TCMETAlgo.h:142
CaloMETCollection.h
TCMETAlgo::maxPtErr_
double maxPtErr_
Definition:
TCMETAlgo.h:141
TCMETAlgo::muonToken_
edm::EDGetTokenT< reco::MuonCollection > muonToken_
Definition:
TCMETAlgo.h:99
CandidateFwd.h
TCMETAlgo::findDuplicateTracks
void findDuplicateTracks()
Definition:
TCMETAlgo.cc:375
reco::MET
Definition:
MET.h:41
TCMETAlgo::nLayers_
int nLayers_
Definition:
TCMETAlgo.h:112
TCMETAlgo::maxpt_eta20_
double maxpt_eta20_
Definition:
TCMETAlgo.h:119
TCMETAlgo::dupDPhi_
double dupDPhi_
Definition:
TCMETAlgo.h:122
TrackFwd.h
TCMETAlgo::correct_MET_for_Muons
void correct_MET_for_Muons()
Definition:
TCMETAlgo.cc:249
BeamSpot.h
TCMETAlgo::metToken_
edm::EDGetTokenT< edm::View< reco::MET > > metToken_
Definition:
TCMETAlgo.h:101
CaloMET.h
TCMETAlgo::maxeta_
double maxeta_
Definition:
TCMETAlgo.h:138
MuonFwd.h
TCMETAlgo::dupMinPt_
double dupMinPt_
Definition:
TCMETAlgo.h:121
TCMETAlgo::correct_MET_for_Tracks
void correct_MET_for_Tracks()
Definition:
TCMETAlgo.cc:319
TCMETAlgo::getResponseFunction_shower
TH2D * getResponseFunction_shower()
Definition:
TCMETAlgo.cc:785
edm::ESHandle< MagneticField >
TCMETAlgo::electronToken_
edm::EDGetTokenT< reco::GsfElectronCollection > electronToken_
Definition:
TCMETAlgo.h:100
TCMETAlgo::d0cutb_
double d0cutb_
Definition:
TCMETAlgo.h:127
TCMETAlgo::clustersHCALToken_
edm::EDGetTokenT< reco::PFClusterCollection > clustersHCALToken_
Definition:
TCMETAlgo.h:106
TCMETAlgo::vertexHandle_
edm::Handle< reco::VertexCollection > vertexHandle_
Definition:
TCMETAlgo.h:93
TCMETAlgo::getResponseFunction_mode
TH2D * getResponseFunction_mode()
Definition:
TCMETAlgo.cc:4995
GsfElectron.h
TCMETAlgo::muonHandle_
edm::Handle< reco::MuonCollection > muonHandle_
Definition:
TCMETAlgo.h:89
TCMETAlgo::met_x_
double met_x_
Definition:
TCMETAlgo.h:80
reco::TrackRef
edm::Ref< TrackCollection > TrackRef
persistent reference to a Track
Definition:
TrackFwd.h:20
TCMETAlgo::vetoTrack
int vetoTrack(int i1, int i2)
Definition:
TCMETAlgo.cc:420
TCMETAlgo::maxchi2_tight_
double maxchi2_tight_
Definition:
TCMETAlgo.h:129
TCMETAlgo::CalculateTCMET
reco::MET CalculateTCMET(edm::Event &event, const edm::EventSetup &setup)
Definition:
TCMETAlgo.cc:170
ElectronFwd.h
TCMETAlgo::nExpectedInnerHits
int nExpectedInnerHits(const reco::TrackRef)
Definition:
TCMETAlgo.cc:535
GsfElectronFwd.h
TCMETAlgo::isMuon
bool isMuon(const reco::TrackRef &trackRef)
Definition:
TCMETAlgo.cc:548
TCMETAlgo::correctShowerTracks_
bool correctShowerTracks_
Definition:
TCMETAlgo.h:154
edm::ParameterSet
Definition:
ParameterSet.h:47
TCMETAlgo::zdist_
double zdist_
Definition:
TCMETAlgo.h:143
TCMETAlgo::trackAlgos_
std::vector< reco::TrackBase::TrackAlgorithm > trackAlgos_
Definition:
TCMETAlgo.h:133
Event.h
TCMETAlgo::closeToElectron
bool closeToElectron(const reco::TrackRef)
Definition:
TCMETAlgo.cc:456
TCMETAlgo::vertexToken_
edm::EDGetTokenT< reco::VertexCollection > vertexToken_
Definition:
TCMETAlgo.h:104
TCMETAlgo::maxpt_eta25_
double maxpt_eta25_
Definition:
TCMETAlgo.h:118
TCMETAlgo::maxpt_
double maxpt_
Definition:
TCMETAlgo.h:137
TCMETAlgo::vertexMaxDZ_
double vertexMaxDZ_
Definition:
TCMETAlgo.h:117
TCMETAlgo::nearGoodShowerTrack
bool nearGoodShowerTrack(const reco::TrackRef, const std::vector< int > &goodShowerTracks)
Definition:
TCMETAlgo.cc:492
createfilelist.int
int
Definition:
createfilelist.py:10
TCMETAlgo::configure
void configure(const edm::ParameterSet &iConfig, edm::ConsumesCollector &&iConsumesCollector)
Definition:
TCMETAlgo.cc:64
PFClusterFwd.h
TCMETAlgo::trkQuality_
std::vector< int > trkQuality_
Definition:
TCMETAlgo.h:150
CommonMETData.h
TCMETAlgo::tcmetDepValueMapHandle_
edm::Handle< edm::ValueMap< reco::MuonMETCorrectionData > > tcmetDepValueMapHandle_
Definition:
TCMETAlgo.h:95
MagneticField.h
edm::EventSetup
Definition:
EventSetup.h:58
hcal_runs.rf
rf
Definition:
hcal_runs.py:75
TCMETAlgo::dupDCotTh_
double dupDCotTh_
Definition:
TCMETAlgo.h:123
TCMETAlgo
Definition:
TCMETAlgo.h:67
TCMETAlgo::checkTrackPropagation_
bool checkTrackPropagation_
Definition:
TCMETAlgo.h:157
ValueMap.h
TCMETAlgo::nMinOuterHits_
int nMinOuterHits_
Definition:
TCMETAlgo.h:132
VertexFwd.h
MET.h
Electron.h
TCMETAlgo::nLayers
int nLayers(const reco::TrackRef)
Definition:
TCMETAlgo.cc:545
TCMETAlgo::findGoodShowerTracks
void findGoodShowerTracks(std::vector< int > &goodShowerTracks)
Definition:
TCMETAlgo.cc:511
TCMETAlgo::trackToken_
edm::EDGetTokenT< reco::TrackCollection > trackToken_
Definition:
TCMETAlgo.h:102
Vertex.h
TCMETAlgo::corner_
double corner_
Definition:
TCMETAlgo.h:144
TCMETAlgo::propagateTrackToCalorimeterFace
class TVector3 propagateTrackToCalorimeterFace(const reco::TrackRef trackRef)
Definition:
TCMETAlgo.cc:740
TCMETAlgo::vertexColl_
const reco::VertexCollection * vertexColl_
Definition:
TCMETAlgo.h:162
TCMETAlgo::correctMETforMuon
void correctMETforMuon(const reco::TrackRef, reco::MuonRef &muonRef)
Definition:
TCMETAlgo.cc:678
TCMETAlgo::initialize_MET_with_PFClusters
void initialize_MET_with_PFClusters(edm::Event &event)
Definition:
TCMETAlgo.cc:196
TCMETAlgo::vetoDuplicates_
bool vetoDuplicates_
Definition:
TCMETAlgo.h:120
TCMETAlgo::hasValidVertex_
bool hasValidVertex_
Definition:
TCMETAlgo.h:161
TCMETAlgo::sumEt_
double sumEt_
Definition:
TCMETAlgo.h:82
TCMETAlgo::tcmetDepValueMapToken_
edm::EDGetTokenT< edm::ValueMap< reco::MuonMETCorrectionData > > tcmetDepValueMapToken_
Definition:
TCMETAlgo.h:109
TCMETAlgo::minhits_tight_
double minhits_tight_
Definition:
TCMETAlgo.h:130
MuonMETCorrectionData.h
TCMETAlgo::usePFClusters_
bool usePFClusters_
Definition:
TCMETAlgo.h:111
EventSetup.h
TCMETAlgo::isElectron
bool isElectron(const reco::TrackRef &trackRef)
Definition:
TCMETAlgo.cc:559
funct::void
TEMPL(T2) struct Divides void
Definition:
Factorize.h:24
ConsumesCollector.h
TCMETAlgo::muonDepValueMapHandle_
edm::Handle< edm::ValueMap< reco::MuonMETCorrectionData > > muonDepValueMapHandle_
Definition:
TCMETAlgo.h:94
TCMETAlgo::correctSumEtForTrack
void correctSumEtForTrack(const reco::TrackRef, TH2D *rf, const TVector3 &)
Definition:
TCMETAlgo.cc:725
ParameterSet.h
TCMETAlgo::usedeltaRRejection_
double usedeltaRRejection_
Definition:
TCMETAlgo.h:134
TCMETAlgo::maxchi2_
double maxchi2_
Definition:
TCMETAlgo.h:139
TCMETAlgo::electronVetoCone_
bool electronVetoCone_
Definition:
TCMETAlgo.h:155
TCMETAlgo::d0cuta_
double d0cuta_
Definition:
TCMETAlgo.h:126
TCMETAlgo::eVetoDeltaPhi_
double eVetoDeltaPhi_
Definition:
TCMETAlgo.h:146
event
Definition:
event.py:1
TCMETAlgo::beamSpotToken_
edm::EDGetTokenT< reco::BeamSpot > beamSpotToken_
Definition:
TCMETAlgo.h:103
edm::Event
Definition:
Event.h:73
TCMETAlgo::isValidVertex
bool isValidVertex()
Definition:
TCMETAlgo.cc:442
TCMETAlgo::eVetoDeltaR_
double eVetoDeltaR_
Definition:
TCMETAlgo.h:145
TCMETAlgo::deltaRShower_
double deltaRShower_
Definition:
TCMETAlgo.h:135
edm::ConsumesCollector
Definition:
ConsumesCollector.h:45
TCMETAlgo::getResponseFunction_noshower
TH2D * getResponseFunction_noshower()
Definition:
TCMETAlgo.cc:2153
TCMETAlgo::nLayersTight_
int nLayersTight_
Definition:
TCMETAlgo.h:113
TCMETAlgo::response_function_
class TH2D * response_function_
Definition:
TCMETAlgo.h:159
TCMETAlgo::duplicateTracks_
std::vector< int > duplicateTracks_
Definition:
TCMETAlgo.h:124
TCMETAlgo::clustersECALToken_
edm::EDGetTokenT< reco::PFClusterCollection > clustersECALToken_
Definition:
TCMETAlgo.h:105
TCMETAlgo::maxd0cut_
double maxd0cut_
Definition:
TCMETAlgo.h:128
Generated for CMSSW Reference Manual by
1.8.16