CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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 {
69 public:
70  typedef std::vector<const reco::Candidate> InputCollection;
71  TCMETAlgo();
72  virtual ~TCMETAlgo();
74  TH2D* getResponseFunction_fit ( );
75  TH2D* getResponseFunction_mode ( );
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 
87  void correct_MET_for_Muons();
89 
97 
99 
111 
112 
114  int nLayers_;
117  double vertexZ_;
118  double vertexRho_;
119  double vertexMaxDZ_;
120  double maxpt_eta25_;
121  double maxpt_eta20_;
123  double dupMinPt_;
124  double dupDPhi_;
125  double dupDCotTh_;
126  std::vector<int> duplicateTracks_;
127 
128  double d0cuta_;
129  double d0cutb_;
130  double maxd0cut_;
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_;
151  double hOverECut_;
152  std::vector<int> trkQuality_;
153  std::vector<int> trkAlgos_;
154 
160 
161 
162  class TH2D* response_function_;
163  class TH2D* showerRF_;
166 
167  bool isMuon(const reco::TrackRef& trackRef);
168  bool isElectron(const reco::TrackRef& trackRef);
169  bool isGoodTrack(const reco::TrackRef trackRef);
170  bool closeToElectron( const reco::TrackRef );
171  void correctMETforMuon(const reco::TrackRef, reco::MuonRef& muonRef);
172  void correctMETforMuon(reco::MuonRef& muonRef);
173  void correctMETforTrack( const reco::TrackRef , TH2D* rf, const TVector3& );
174  void correctSumEtForTrack( const reco::TrackRef , TH2D* rf, const TVector3& );
175  class TVector3 propagateTrackToCalorimeterFace(const reco::TrackRef trackRef);
176  void findGoodShowerTracks(std::vector<int>& goodShowerTracks);
177  bool nearGoodShowerTrack( const reco::TrackRef , const std::vector<int>& goodShowerTracks );
178  int nExpectedInnerHits(const reco::TrackRef);
179  int nExpectedOuterHits(const reco::TrackRef);
180  int nLayers(const reco::TrackRef);
181  bool isValidVertex();
182  void findDuplicateTracks();
183  int vetoTrack( int i1 , int i2 );
184 };
185 
186 //____________________________________________________________________________||
187 #endif // TCMETAlgo_h
188 
edm::EDGetTokenT< reco::BeamSpot > beamSpotToken_
Definition: TCMETAlgo.h:104
edm::Handle< edm::ValueMap< reco::MuonMETCorrectionData > > tcmetDepValueMapHandle_
Definition: TCMETAlgo.h:96
double zdist_
Definition: TCMETAlgo.h:145
reco::MET CalculateTCMET(edm::Event &event, const edm::EventSetup &setup)
Definition: TCMETAlgo.cc:172
double eVetoDeltaPhi_
Definition: TCMETAlgo.h:148
TH2D * getResponseFunction_fit()
Definition: TCMETAlgo.cc:3568
double met_y_
Definition: TCMETAlgo.h:82
TH2D * getResponseFunction_noshower()
Definition: TCMETAlgo.cc:2193
edm::Handle< reco::VertexCollection > vertexHandle_
Definition: TCMETAlgo.h:94
edm::ESHandle< MagneticField > magneticFieldHandle_
Definition: TCMETAlgo.h:98
int nLayers(const reco::TrackRef)
Definition: TCMETAlgo.cc:560
edm::EDGetTokenT< edm::ValueMap< reco::MuonMETCorrectionData > > tcmetDepValueMapToken_
Definition: TCMETAlgo.h:110
double vertexRho_
Definition: TCMETAlgo.h:118
double dupDCotTh_
Definition: TCMETAlgo.h:125
double dupMinPt_
Definition: TCMETAlgo.h:123
int vertexNdof_
Definition: TCMETAlgo.h:116
bool nearGoodShowerTrack(const reco::TrackRef, const std::vector< int > &goodShowerTracks)
Definition: TCMETAlgo.cc:505
double corner_
Definition: TCMETAlgo.h:146
void correctSumEtForTrack(const reco::TrackRef, TH2D *rf, const TVector3 &)
Definition: TCMETAlgo.cc:746
std::vector< Vertex > VertexCollection
collection of Vertex objects
Definition: VertexFwd.h:9
const reco::VertexCollection * vertexColl_
Definition: TCMETAlgo.h:165
double eVetoDeltaR_
Definition: TCMETAlgo.h:147
bool usePFClusters_
Definition: TCMETAlgo.h:113
edm::EDGetTokenT< reco::TrackCollection > trackToken_
Definition: TCMETAlgo.h:103
int nExpectedOuterHits(const reco::TrackRef)
Definition: TCMETAlgo.cc:554
class TH2D * showerRF_
Definition: TCMETAlgo.h:163
bool usePvtxd0_
Definition: TCMETAlgo.h:158
double maxpt_eta25_
Definition: TCMETAlgo.h:120
TH2D * getResponseFunction_shower()
Definition: TCMETAlgo.cc:820
edm::Handle< reco::BeamSpot > beamSpotHandle_
Definition: TCMETAlgo.h:93
bool isMuon(const reco::TrackRef &trackRef)
Definition: TCMETAlgo.cc:566
bool electronVetoCone_
Definition: TCMETAlgo.h:157
double maxpt_eta20_
Definition: TCMETAlgo.h:121
double eVetoMinElectronPt_
Definition: TCMETAlgo.h:150
edm::EDGetTokenT< reco::VertexCollection > vertexToken_
Definition: TCMETAlgo.h:105
double vertexZ_
Definition: TCMETAlgo.h:117
void findGoodShowerTracks(std::vector< int > &goodShowerTracks)
Definition: TCMETAlgo.cc:525
bool isElectron(const reco::TrackRef &trackRef)
Definition: TCMETAlgo.cc:578
double maxeta_
Definition: TCMETAlgo.h:140
int maxTrackAlgo_
Definition: TCMETAlgo.h:135
bool isValidVertex()
Definition: TCMETAlgo.cc:460
int nLayers_
Definition: TCMETAlgo.h:114
bool correctShowerTracks_
Definition: TCMETAlgo.h:156
edm::Handle< reco::TrackCollection > trackHandle_
Definition: TCMETAlgo.h:92
void findDuplicateTracks()
Definition: TCMETAlgo.cc:403
double d0cuta_
Definition: TCMETAlgo.h:128
std::vector< const reco::Candidate > InputCollection
Definition: TCMETAlgo.h:70
std::vector< int > trkQuality_
Definition: TCMETAlgo.h:152
double d0cutb_
Definition: TCMETAlgo.h:129
Definition: MET.h:42
bool isGoodTrack(const reco::TrackRef trackRef)
Definition: TCMETAlgo.cc:596
edm::EDGetTokenT< reco::MuonCollection > muonToken_
Definition: TCMETAlgo.h:100
double radius_
Definition: TCMETAlgo.h:144
bool hasValidVertex_
Definition: TCMETAlgo.h:164
void correct_MET_for_Tracks()
Definition: TCMETAlgo.cc:338
double maxchi2_tight_
Definition: TCMETAlgo.h:131
TH2D * getResponseFunction_mode()
Definition: TCMETAlgo.cc:5044
double met_x_
Definition: TCMETAlgo.h:81
double usedeltaRRejection_
Definition: TCMETAlgo.h:136
double sumEt_
Definition: TCMETAlgo.h:83
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger but the state exists so we define the behavior If all triggers are the negative crieriion will lead to accepting the event(this again matches the behavior of"!*"before the partial wildcard feature was incorporated).The per-event"cost"of each negative criterion with multiple relevant triggers is about the same as!*was in the past
edm::Handle< reco::MuonCollection > muonHandle_
Definition: TCMETAlgo.h:90
std::vector< int > trkAlgos_
Definition: TCMETAlgo.h:153
edm::EDGetTokenT< edm::View< reco::MET > > metToken_
Definition: TCMETAlgo.h:102
void initialize_MET_with_CaloMET(edm::Event &event)
Definition: TCMETAlgo.cc:247
void correctMETforMuon(const reco::TrackRef, reco::MuonRef &muonRef)
Definition: TCMETAlgo.cc:691
class TVector3 propagateTrackToCalorimeterFace(const reco::TrackRef trackRef)
Definition: TCMETAlgo.cc:769
double minhits_
Definition: TCMETAlgo.h:142
edm::EDGetTokenT< reco::PFClusterCollection > clustersECALToken_
Definition: TCMETAlgo.h:106
double deltaRShower_
Definition: TCMETAlgo.h:137
void correctMETforTrack(const reco::TrackRef, TH2D *rf, const TVector3 &)
Definition: TCMETAlgo.cc:717
int nLayersTight_
Definition: TCMETAlgo.h:115
edm::Ref< TrackCollection > TrackRef
persistent reference to a Track
Definition: TrackFwd.h:19
double maxpt_
Definition: TCMETAlgo.h:139
int nMinOuterHits_
Definition: TCMETAlgo.h:134
double eVetoDeltaCotTheta_
Definition: TCMETAlgo.h:149
string const
Definition: compareJSON.py:14
virtual ~TCMETAlgo()
Definition: TCMETAlgo.cc:165
edm::EDGetTokenT< reco::PFClusterCollection > clustersHCALToken_
Definition: TCMETAlgo.h:107
edm::EDGetTokenT< edm::ValueMap< reco::MuonMETCorrectionData > > muonDepValueMapToken_
Definition: TCMETAlgo.h:109
int vetoTrack(int i1, int i2)
Definition: TCMETAlgo.cc:442
double maxchi2_
Definition: TCMETAlgo.h:141
bool isCosmics_
Definition: TCMETAlgo.h:155
class TH2D * response_function_
Definition: TCMETAlgo.h:162
edm::EDGetTokenT< reco::PFClusterCollection > clustersHFToken_
Definition: TCMETAlgo.h:108
edm::Handle< reco::GsfElectronCollection > electronHandle_
Definition: TCMETAlgo.h:91
void configure(const edm::ParameterSet &iConfig, edm::ConsumesCollector &&iConsumesCollector)
Definition: TCMETAlgo.cc:65
edm::EDGetTokenT< reco::GsfElectronCollection > electronToken_
Definition: TCMETAlgo.h:101
void initialize_MET_with_PFClusters(edm::Event &event)
Definition: TCMETAlgo.cc:200
bool checkTrackPropagation_
Definition: TCMETAlgo.h:159
double hOverECut_
Definition: TCMETAlgo.h:151
bool closeToElectron(const reco::TrackRef)
Definition: TCMETAlgo.cc:471
double vertexMaxDZ_
Definition: TCMETAlgo.h:119
std::vector< int > duplicateTracks_
Definition: TCMETAlgo.h:126
double dupDPhi_
Definition: TCMETAlgo.h:124
double maxPtErr_
Definition: TCMETAlgo.h:143
void setup(std::vector< TH2F > &depth, std::string name, std::string units="")
edm::Handle< edm::ValueMap< reco::MuonMETCorrectionData > > muonDepValueMapHandle_
Definition: TCMETAlgo.h:95
double minpt_
Definition: TCMETAlgo.h:138
double minhits_tight_
Definition: TCMETAlgo.h:132
int nExpectedInnerHits(const reco::TrackRef)
Definition: TCMETAlgo.cc:549
double maxd0cut_
Definition: TCMETAlgo.h:130
bool vetoDuplicates_
Definition: TCMETAlgo.h:122
void correct_MET_for_Muons()
Definition: TCMETAlgo.cc:257
double maxPtErr_tight_
Definition: TCMETAlgo.h:133