Main Page
Namespaces
Classes
Package Documentation
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Groups
Pages
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
#include "
MagneticField/Records/interface/IdealMagneticFieldRecord.h
"
61
62
#include "
FWCore/Framework/interface/ConsumesCollector.h
"
63
64
#include "TH2D.h"
65
#include "TVector3.h"
66
67
//____________________________________________________________________________||
68
class
TCMETAlgo
{
69
public
:
70
typedef
std::vector<const reco::Candidate>
InputCollection
;
71
TCMETAlgo
();
72
virtual
~TCMETAlgo
();
73
reco::MET
CalculateTCMET
(
edm::Event
&
event
,
const
edm::EventSetup
&
setup
);
74
TH2D*
getResponseFunction_fit
();
75
TH2D*
getResponseFunction_mode
();
76
TH2D*
getResponseFunction_shower
();
77
TH2D*
getResponseFunction_noshower
();
78
void
configure
(
const
edm::ParameterSet
&
iConfig
,
edm::ConsumesCollector
&& iConsumesCollector);
79
80
private
:
81
double
met_x_
;
82
double
met_y_
;
83
double
sumEt_
;
84
85
void
initialize_MET_with_PFClusters
(
edm::Event
&
event
);
86
void
initialize_MET_with_CaloMET
(
edm::Event
&
event
);
87
void
correct_MET_for_Muons
();
88
void
correct_MET_for_Tracks
();
89
90
edm::Handle<reco::MuonCollection>
muonHandle_
;
91
edm::Handle<reco::GsfElectronCollection>
electronHandle_
;
92
edm::Handle<reco::TrackCollection>
trackHandle_
;
93
edm::Handle<reco::BeamSpot>
beamSpotHandle_
;
94
edm::Handle<reco::VertexCollection>
vertexHandle_
;
95
edm::Handle<edm::ValueMap<reco::MuonMETCorrectionData>
>
muonDepValueMapHandle_
;
96
edm::Handle<edm::ValueMap<reco::MuonMETCorrectionData>
>
tcmetDepValueMapHandle_
;
97
98
edm::ESHandle<MagneticField>
magneticFieldHandle_
;
99
100
edm::EDGetTokenT<reco::MuonCollection>
muonToken_
;
101
edm::EDGetTokenT<reco::GsfElectronCollection>
electronToken_
;
102
edm::EDGetTokenT<edm::View<reco::MET>
>
metToken_
;
103
edm::EDGetTokenT<reco::TrackCollection>
trackToken_
;
104
edm::EDGetTokenT<reco::BeamSpot>
beamSpotToken_
;
105
edm::EDGetTokenT<reco::VertexCollection>
vertexToken_
;
106
edm::EDGetTokenT<reco::PFClusterCollection>
clustersECALToken_
;
107
edm::EDGetTokenT<reco::PFClusterCollection>
clustersHCALToken_
;
108
edm::EDGetTokenT<reco::PFClusterCollection>
clustersHFToken_
;
109
edm::EDGetTokenT<edm::ValueMap<reco::MuonMETCorrectionData>
>
muonDepValueMapToken_
;
110
edm::EDGetTokenT<edm::ValueMap<reco::MuonMETCorrectionData>
>
tcmetDepValueMapToken_
;
111
edm::ESGetToken<MagneticField, IdealMagneticFieldRecord>
magneticFieldToken_
;
112
113
bool
usePFClusters_
;
114
int
nLayers_
;
115
int
nLayersTight_
;
116
int
vertexNdof_
;
117
double
vertexZ_
;
118
double
vertexRho_
;
119
double
vertexMaxDZ_
;
120
double
maxpt_eta25_
;
121
double
maxpt_eta20_
;
122
bool
vetoDuplicates_
;
123
double
dupMinPt_
;
124
double
dupDPhi_
;
125
double
dupDCotTh_
;
126
std::vector<int>
duplicateTracks_
;
127
128
double
d0cuta_
;
129
double
d0cutb_
;
130
double
maxd0cut_
;
131
double
maxchi2_tight_
;
132
double
minhits_tight_
;
133
double
maxPtErr_tight_
;
134
int
nMinOuterHits_
;
135
std::vector<reco::TrackBase::TrackAlgorithm>
trackAlgos_
;
136
double
usedeltaRRejection_
;
137
double
deltaRShower_
;
138
double
minpt_
;
139
double
maxpt_
;
140
double
maxeta_
;
141
double
maxchi2_
;
142
double
minhits_
;
143
double
maxPtErr_
;
144
double
radius_
;
145
double
zdist_
;
146
double
corner_
;
147
double
eVetoDeltaR_
;
148
double
eVetoDeltaPhi_
;
149
double
eVetoDeltaCotTheta_
;
150
double
eVetoMinElectronPt_
;
151
double
hOverECut_
;
152
std::vector<int>
trkQuality_
;
153
std::vector<reco::TrackBase::TrackAlgorithm>
trkAlgos_
;
154
155
bool
isCosmics_
;
156
bool
correctShowerTracks_
;
157
bool
electronVetoCone_
;
158
bool
usePvtxd0_
;
159
bool
checkTrackPropagation_
;
160
161
class
TH2D*
response_function_
;
162
class
TH2D*
showerRF_
;
163
bool
hasValidVertex_
;
164
const
reco::VertexCollection
*
vertexColl_
;
165
166
bool
isMuon
(
const
reco::TrackRef
& trackRef);
167
bool
isElectron
(
const
reco::TrackRef
& trackRef);
168
bool
isGoodTrack
(
const
reco::TrackRef
trackRef);
169
bool
closeToElectron
(
const
reco::TrackRef
);
170
void
correctMETforMuon
(
const
reco::TrackRef
,
reco::MuonRef
& muonRef);
171
void
correctMETforMuon
(
reco::MuonRef
& muonRef);
172
void
correctMETforTrack
(
const
reco::TrackRef
, TH2D*
rf
,
const
TVector3&);
173
void
correctSumEtForTrack
(
const
reco::TrackRef
, TH2D*
rf
,
const
TVector3&);
174
class
TVector3
propagateTrackToCalorimeterFace
(
const
reco
::
TrackRef
trackRef);
175
void
findGoodShowerTracks
(std::vector<int>& goodShowerTracks);
176
bool
nearGoodShowerTrack
(const reco::TrackRef, const std::vector<int>& goodShowerTracks);
177
int
nExpectedInnerHits
(const reco::TrackRef);
178
int
nExpectedOuterHits
(const reco::TrackRef);
179
int
nLayers
(const reco::TrackRef);
180
bool
isValidVertex
();
181
void
findDuplicateTracks
();
182
int
vetoTrack
(int i1, int i2);
183
};
184
185
//____________________________________________________________________________||
186
#endif // TCMETAlgo_h
TCMETAlgo::beamSpotToken_
edm::EDGetTokenT< reco::BeamSpot > beamSpotToken_
Definition:
TCMETAlgo.h:104
TCMETAlgo::tcmetDepValueMapHandle_
edm::Handle< edm::ValueMap< reco::MuonMETCorrectionData > > tcmetDepValueMapHandle_
Definition:
TCMETAlgo.h:96
Vertex.h
TCMETAlgo::zdist_
double zdist_
Definition:
TCMETAlgo.h:145
TCMETAlgo::CalculateTCMET
reco::MET CalculateTCMET(edm::Event &event, const edm::EventSetup &setup)
Definition:
TCMETAlgo.cc:170
TCMETAlgo::eVetoDeltaPhi_
double eVetoDeltaPhi_
Definition:
TCMETAlgo.h:148
TCMETAlgo::getResponseFunction_fit
TH2D * getResponseFunction_fit()
Definition:
TCMETAlgo.cc:3523
TCMETAlgo::met_y_
double met_y_
Definition:
TCMETAlgo.h:82
edmPickEvents.event
tuple event
Definition:
edmPickEvents.py:273
TCMETAlgo::getResponseFunction_noshower
TH2D * getResponseFunction_noshower()
Definition:
TCMETAlgo.cc:2153
PFClusterFwd.h
TCMETAlgo::vertexHandle_
edm::Handle< reco::VertexCollection > vertexHandle_
Definition:
TCMETAlgo.h:94
TCMETAlgo::magneticFieldHandle_
edm::ESHandle< MagneticField > magneticFieldHandle_
Definition:
TCMETAlgo.h:98
TCMETAlgo::nLayers
int nLayers(const reco::TrackRef)
Definition:
TCMETAlgo.cc:545
edm::Ref< TrackCollection >
TCMETAlgo::tcmetDepValueMapToken_
edm::EDGetTokenT< edm::ValueMap< reco::MuonMETCorrectionData > > tcmetDepValueMapToken_
Definition:
TCMETAlgo.h:110
MET.h
TCMETAlgo::vertexRho_
double vertexRho_
Definition:
TCMETAlgo.h:118
TCMETAlgo::dupDCotTh_
double dupDCotTh_
Definition:
TCMETAlgo.h:125
TCMETAlgo::dupMinPt_
double dupMinPt_
Definition:
TCMETAlgo.h:123
Event.h
TCMETAlgo::trkAlgos_
std::vector< reco::TrackBase::TrackAlgorithm > trkAlgos_
Definition:
TCMETAlgo.h:153
TCMETAlgo::vertexNdof_
int vertexNdof_
Definition:
TCMETAlgo.h:116
TCMETAlgo::nearGoodShowerTrack
bool nearGoodShowerTrack(const reco::TrackRef, const std::vector< int > &goodShowerTracks)
Definition:
TCMETAlgo.cc:492
edm::Handle< reco::MuonCollection >
EventSetup.h
TCMETAlgo::corner_
double corner_
Definition:
TCMETAlgo.h:146
TCMETAlgo::correctSumEtForTrack
void correctSumEtForTrack(const reco::TrackRef, TH2D *rf, const TVector3 &)
Definition:
TCMETAlgo.cc:725
reco::VertexCollection
std::vector< Vertex > VertexCollection
collection of Vertex objects
Definition:
VertexFwd.h:9
TCMETAlgo::vertexColl_
const reco::VertexCollection * vertexColl_
Definition:
TCMETAlgo.h:164
CommonMETData.h
TCMETAlgo::eVetoDeltaR_
double eVetoDeltaR_
Definition:
TCMETAlgo.h:147
TCMETAlgo::usePFClusters_
bool usePFClusters_
Definition:
TCMETAlgo.h:113
TrackFwd.h
CaloMETCollection.h
TCMETAlgo::trackToken_
edm::EDGetTokenT< reco::TrackCollection > trackToken_
Definition:
TCMETAlgo.h:103
TCMETAlgo::nExpectedOuterHits
int nExpectedOuterHits(const reco::TrackRef)
Definition:
TCMETAlgo.cc:540
TCMETAlgo::showerRF_
class TH2D * showerRF_
Definition:
TCMETAlgo.h:162
VertexFwd.h
MuonMETCorrectionData.h
TCMETAlgo::usePvtxd0_
bool usePvtxd0_
Definition:
TCMETAlgo.h:158
dt_dqm_sourceclient_common_cff.reco
tuple reco
Definition:
dt_dqm_sourceclient_common_cff.py:111
ValueMap.h
edm::EDGetTokenT< reco::MuonCollection >
TCMETAlgo::maxpt_eta25_
double maxpt_eta25_
Definition:
TCMETAlgo.h:120
TCMETAlgo::getResponseFunction_shower
TH2D * getResponseFunction_shower()
Definition:
TCMETAlgo.cc:785
TCMETAlgo::beamSpotHandle_
edm::Handle< reco::BeamSpot > beamSpotHandle_
Definition:
TCMETAlgo.h:93
TCMETAlgo::isMuon
bool isMuon(const reco::TrackRef &trackRef)
Definition:
TCMETAlgo.cc:548
MuonFwd.h
TCMETAlgo::electronVetoCone_
bool electronVetoCone_
Definition:
TCMETAlgo.h:157
MagneticField.h
ParameterSet.h
TCMETAlgo::maxpt_eta20_
double maxpt_eta20_
Definition:
TCMETAlgo.h:121
TCMETAlgo::eVetoMinElectronPt_
double eVetoMinElectronPt_
Definition:
TCMETAlgo.h:150
TCMETAlgo::vertexToken_
edm::EDGetTokenT< reco::VertexCollection > vertexToken_
Definition:
TCMETAlgo.h:105
ElectronFwd.h
TCMETAlgo::vertexZ_
double vertexZ_
Definition:
TCMETAlgo.h:117
TCMETAlgo::findGoodShowerTracks
void findGoodShowerTracks(std::vector< int > &goodShowerTracks)
Definition:
TCMETAlgo.cc:511
TCMETAlgo::isElectron
bool isElectron(const reco::TrackRef &trackRef)
Definition:
TCMETAlgo.cc:559
TCMETAlgo::TCMETAlgo
TCMETAlgo()
Definition:
TCMETAlgo.cc:59
TCMETAlgo::maxeta_
double maxeta_
Definition:
TCMETAlgo.h:140
edm::ESGetToken< MagneticField, IdealMagneticFieldRecord >
hcal_runs.rf
list rf
Definition:
hcal_runs.py:75
TCMETAlgo::isValidVertex
bool isValidVertex()
Definition:
TCMETAlgo.cc:442
TCMETAlgo::nLayers_
int nLayers_
Definition:
TCMETAlgo.h:114
TCMETAlgo::correctShowerTracks_
bool correctShowerTracks_
Definition:
TCMETAlgo.h:156
TCMETAlgo::trackHandle_
edm::Handle< reco::TrackCollection > trackHandle_
Definition:
TCMETAlgo.h:92
TCMETAlgo::findDuplicateTracks
void findDuplicateTracks()
Definition:
TCMETAlgo.cc:375
TCMETAlgo::d0cuta_
double d0cuta_
Definition:
TCMETAlgo.h:128
TCMETAlgo::InputCollection
std::vector< const reco::Candidate > InputCollection
Definition:
TCMETAlgo.h:70
TCMETAlgo::trkQuality_
std::vector< int > trkQuality_
Definition:
TCMETAlgo.h:152
TCMETAlgo::d0cutb_
double d0cutb_
Definition:
TCMETAlgo.h:129
reco::MET
Definition:
MET.h:41
TCMETAlgo::isGoodTrack
bool isGoodTrack(const reco::TrackRef trackRef)
Definition:
TCMETAlgo.cc:577
TCMETAlgo::muonToken_
edm::EDGetTokenT< reco::MuonCollection > muonToken_
Definition:
TCMETAlgo.h:100
edm::ESHandle< MagneticField >
TCMETAlgo::radius_
double radius_
Definition:
TCMETAlgo.h:144
TrackBase.h
ESHandle.h
TCMETAlgo::hasValidVertex_
bool hasValidVertex_
Definition:
TCMETAlgo.h:163
TCMETAlgo
Definition:
TCMETAlgo.h:68
TCMETAlgo::correct_MET_for_Tracks
void correct_MET_for_Tracks()
Definition:
TCMETAlgo.cc:319
TCMETAlgo::maxchi2_tight_
double maxchi2_tight_
Definition:
TCMETAlgo.h:131
TCMETAlgo::getResponseFunction_mode
TH2D * getResponseFunction_mode()
Definition:
TCMETAlgo.cc:4995
TCMETAlgo::met_x_
double met_x_
Definition:
TCMETAlgo.h:81
edm::EventSetup
Definition:
EventSetup.h:59
TCMETAlgo::usedeltaRRejection_
double usedeltaRRejection_
Definition:
TCMETAlgo.h:136
Muon.h
TCMETAlgo::magneticFieldToken_
edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > magneticFieldToken_
Definition:
TCMETAlgo.h:111
TCMETAlgo::sumEt_
double sumEt_
Definition:
TCMETAlgo.h:83
TCMETAlgo::muonHandle_
edm::Handle< reco::MuonCollection > muonHandle_
Definition:
TCMETAlgo.h:90
TCMETAlgo::metToken_
edm::EDGetTokenT< edm::View< reco::MET > > metToken_
Definition:
TCMETAlgo.h:102
TCMETAlgo::initialize_MET_with_CaloMET
void initialize_MET_with_CaloMET(edm::Event &event)
Definition:
TCMETAlgo.cc:240
GeneralSetup.setup
def setup
Definition:
GeneralSetup.py:2
GsfElectron.h
TCMETAlgo::correctMETforMuon
void correctMETforMuon(const reco::TrackRef, reco::MuonRef &muonRef)
Definition:
TCMETAlgo.cc:678
GsfElectronFwd.h
TCMETAlgo::propagateTrackToCalorimeterFace
class TVector3 propagateTrackToCalorimeterFace(const reco::TrackRef trackRef)
Definition:
TCMETAlgo.cc:740
TCMETAlgo::minhits_
double minhits_
Definition:
TCMETAlgo.h:142
TCMETAlgo::clustersECALToken_
edm::EDGetTokenT< reco::PFClusterCollection > clustersECALToken_
Definition:
TCMETAlgo.h:106
TCMETAlgo::deltaRShower_
double deltaRShower_
Definition:
TCMETAlgo.h:137
TCMETAlgo::correctMETforTrack
void correctMETforTrack(const reco::TrackRef, TH2D *rf, const TVector3 &)
Definition:
TCMETAlgo.cc:702
TCMETAlgo::nLayersTight_
int nLayersTight_
Definition:
TCMETAlgo.h:115
reco::TrackRef
edm::Ref< TrackCollection > TrackRef
persistent reference to a Track
Definition:
TrackFwd.h:20
TCMETAlgo::maxpt_
double maxpt_
Definition:
TCMETAlgo.h:139
TCMETAlgo::nMinOuterHits_
int nMinOuterHits_
Definition:
TCMETAlgo.h:134
TCMETAlgo::eVetoDeltaCotTheta_
double eVetoDeltaCotTheta_
Definition:
TCMETAlgo.h:149
TCMETAlgo::~TCMETAlgo
virtual ~TCMETAlgo()
Definition:
TCMETAlgo.cc:164
TCMETAlgo::clustersHCALToken_
edm::EDGetTokenT< reco::PFClusterCollection > clustersHCALToken_
Definition:
TCMETAlgo.h:107
TCMETAlgo::muonDepValueMapToken_
edm::EDGetTokenT< edm::ValueMap< reco::MuonMETCorrectionData > > muonDepValueMapToken_
Definition:
TCMETAlgo.h:109
TCMETAlgo::vetoTrack
int vetoTrack(int i1, int i2)
Definition:
TCMETAlgo.cc:420
TCMETAlgo::maxchi2_
double maxchi2_
Definition:
TCMETAlgo.h:141
TCMETAlgo::isCosmics_
bool isCosmics_
Definition:
TCMETAlgo.h:155
TCMETAlgo::response_function_
class TH2D * response_function_
Definition:
TCMETAlgo.h:161
BeamSpot.h
TCMETAlgo::clustersHFToken_
edm::EDGetTokenT< reco::PFClusterCollection > clustersHFToken_
Definition:
TCMETAlgo.h:108
TCMETAlgo::electronHandle_
edm::Handle< reco::GsfElectronCollection > electronHandle_
Definition:
TCMETAlgo.h:91
TCMETAlgo::trackAlgos_
std::vector< reco::TrackBase::TrackAlgorithm > trackAlgos_
Definition:
TCMETAlgo.h:135
TCMETAlgo::configure
void configure(const edm::ParameterSet &iConfig, edm::ConsumesCollector &&iConsumesCollector)
Definition:
TCMETAlgo.cc:62
edm::ParameterSet
Definition:
ParameterSet.h:47
CandidateFwd.h
TCMETAlgo::electronToken_
edm::EDGetTokenT< reco::GsfElectronCollection > electronToken_
Definition:
TCMETAlgo.h:101
TCMETAlgo::initialize_MET_with_PFClusters
void initialize_MET_with_PFClusters(edm::Event &event)
Definition:
TCMETAlgo.cc:196
CaloMET.h
edm::Event
Definition:
Event.h:73
TCMETAlgo::checkTrackPropagation_
bool checkTrackPropagation_
Definition:
TCMETAlgo.h:159
TCMETAlgo::hOverECut_
double hOverECut_
Definition:
TCMETAlgo.h:151
iConfig
iConfig
Definition:
TSGFromPropagation.cc:56
TCMETAlgo::closeToElectron
bool closeToElectron(const reco::TrackRef)
Definition:
TCMETAlgo.cc:456
TCMETAlgo::vertexMaxDZ_
double vertexMaxDZ_
Definition:
TCMETAlgo.h:119
TCMETAlgo::duplicateTracks_
std::vector< int > duplicateTracks_
Definition:
TCMETAlgo.h:126
ConsumesCollector.h
TCMETAlgo::dupDPhi_
double dupDPhi_
Definition:
TCMETAlgo.h:124
TCMETAlgo::maxPtErr_
double maxPtErr_
Definition:
TCMETAlgo.h:143
Electron.h
TCMETAlgo::muonDepValueMapHandle_
edm::Handle< edm::ValueMap< reco::MuonMETCorrectionData > > muonDepValueMapHandle_
Definition:
TCMETAlgo.h:95
TCMETAlgo::minpt_
double minpt_
Definition:
TCMETAlgo.h:138
TCMETAlgo::minhits_tight_
double minhits_tight_
Definition:
TCMETAlgo.h:132
IdealMagneticFieldRecord.h
TCMETAlgo::nExpectedInnerHits
int nExpectedInnerHits(const reco::TrackRef)
Definition:
TCMETAlgo.cc:535
runTheMatrix.const
string const
Definition:
runTheMatrix.py:336
TCMETAlgo::maxd0cut_
double maxd0cut_
Definition:
TCMETAlgo.h:130
TCMETAlgo::vetoDuplicates_
bool vetoDuplicates_
Definition:
TCMETAlgo.h:122
TCMETAlgo::correct_MET_for_Muons
void correct_MET_for_Muons()
Definition:
TCMETAlgo.cc:249
edm::ConsumesCollector
Definition:
ConsumesCollector.h:45
Handle.h
TCMETAlgo::maxPtErr_tight_
double maxPtErr_tight_
Definition:
TCMETAlgo.h:133
Generated for CMSSW Reference Manual by
1.8.5