CMS 3D CMS Logo

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>
36 
41 
46 
58 
60 
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();
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 
86  void correct_MET_for_Muons();
88 
96 
98 
110 
112  int nLayers_;
115  double vertexZ_;
116  double vertexRho_;
117  double vertexMaxDZ_;
118  double maxpt_eta25_;
119  double maxpt_eta20_;
121  double dupMinPt_;
122  double dupDPhi_;
123  double dupDCotTh_;
124  std::vector<int> duplicateTracks_;
125 
126  double d0cuta_;
127  double d0cutb_;
128  double maxd0cut_;
133  std::vector<reco::TrackBase::TrackAlgorithm> trackAlgos_;
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_;
149  double hOverECut_;
150  std::vector<int> trkQuality_;
151  std::vector<reco::TrackBase::TrackAlgorithm> trkAlgos_;
152 
158 
159  class TH2D* response_function_;
160  class TH2D* showerRF_;
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);
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