CMS 3D CMS Logo

HLTHcalMETNoiseCleaner.cc
Go to the documentation of this file.
1 // -*- C++ -*-
2 //
3 // Class: HLTHcalMETNoiseCleaner
4 //
12 //
13 // Original Author: Alexander Mott
14 // Created: Mon Nov 21 11:32:00 CEST 2011
15 //
16 //
17 //
18 
20 
26 
28 
35 
39 
40 #include <iostream>
41 #include <string>
42 #include <fstream>
43 #include <TVector3.h>
44 #include <TLorentzVector.h>
45 //#include <Point.h>
46 
48  : HcalNoiseRBXCollectionTag_(iConfig.getParameter<edm::InputTag>("HcalNoiseRBXCollection")),
49  CaloMetCollectionTag_(iConfig.getParameter<edm::InputTag>("CaloMetCollection")),
50  CaloMetCut_(iConfig.getParameter<double>("CaloMetCut")),
51  severity_(iConfig.getParameter<int>("severity")),
52  maxNumRBXs_(iConfig.getParameter<int>("maxNumRBXs")),
53  numRBXsToConsider_(iConfig.getParameter<int>("numRBXsToConsider")),
54  accept2NoiseRBXEvents_(iConfig.getParameter<bool>("accept2NoiseRBXEvents")),
55  needEMFCoincidence_(iConfig.getParameter<bool>("needEMFCoincidence")),
56  minRBXEnergy_(iConfig.getParameter<double>("minRBXEnergy")),
57  minRatio_(iConfig.getParameter<double>("minRatio")),
58  maxRatio_(iConfig.getParameter<double>("maxRatio")),
59  minHPDHits_(iConfig.getParameter<int>("minHPDHits")),
60  minRBXHits_(iConfig.getParameter<int>("minRBXHits")),
61  minHPDNoOtherHits_(iConfig.getParameter<int>("minHPDNoOtherHits")),
62  minZeros_(iConfig.getParameter<int>("minZeros")),
63  minHighEHitTime_(iConfig.getParameter<double>("minHighEHitTime")),
64  maxHighEHitTime_(iConfig.getParameter<double>("maxHighEHitTime")),
65  maxRBXEMF_(iConfig.getParameter<double>("maxRBXEMF")),
66  minRecHitE_(iConfig.getParameter<double>("minRecHitE")),
67  minLowHitE_(iConfig.getParameter<double>("minLowHitE")),
68  minHighHitE_(iConfig.getParameter<double>("minHighHitE")),
69  minR45HitE_(5.0),
70  TS4TS5EnergyThreshold_(iConfig.getParameter<double>("TS4TS5EnergyThreshold")) {
71  std::vector<double> TS4TS5UpperThresholdTemp = iConfig.getParameter<std::vector<double> >("TS4TS5UpperThreshold");
72  std::vector<double> TS4TS5UpperCutTemp = iConfig.getParameter<std::vector<double> >("TS4TS5UpperCut");
73  std::vector<double> TS4TS5LowerThresholdTemp = iConfig.getParameter<std::vector<double> >("TS4TS5LowerThreshold");
74  std::vector<double> TS4TS5LowerCutTemp = iConfig.getParameter<std::vector<double> >("TS4TS5LowerCut");
75 
76  for (int i = 0; i < (int)TS4TS5UpperThresholdTemp.size() && i < (int)TS4TS5UpperCutTemp.size(); i++)
77  TS4TS5UpperCut_.push_back(std::pair<double, double>(TS4TS5UpperThresholdTemp[i], TS4TS5UpperCutTemp[i]));
78  sort(TS4TS5UpperCut_.begin(), TS4TS5UpperCut_.end());
79 
80  for (int i = 0; i < (int)TS4TS5LowerThresholdTemp.size() && i < (int)TS4TS5LowerCutTemp.size(); i++)
81  TS4TS5LowerCut_.push_back(std::pair<double, double>(TS4TS5LowerThresholdTemp[i], TS4TS5LowerCutTemp[i]));
82  sort(TS4TS5LowerCut_.begin(), TS4TS5LowerCut_.end());
83 
84  m_theCaloMetToken = consumes<reco::CaloMETCollection>(CaloMetCollectionTag_);
85  m_theHcalNoiseToken = consumes<reco::HcalNoiseRBXCollection>(HcalNoiseRBXCollectionTag_);
86 
87  if (iConfig.existsAs<double>("minR45HitE"))
88  minR45HitE_ = iConfig.getParameter<double>("minR45HitE");
89 
90  produces<reco::CaloMETCollection>();
91 }
92 
94 
97  desc.add<edm::InputTag>("HcalNoiseRBXCollection", edm::InputTag("hltHcalNoiseInfoProducer"));
98  desc.add<edm::InputTag>("CaloMetCollection", edm::InputTag("hltMet"));
99  desc.add<double>("CaloMetCut", 0.0);
100  desc.add<int>("severity", 1);
101  desc.add<int>("maxNumRBXs", 2);
102  desc.add<int>("numRBXsToConsider", 2);
103  desc.add<bool>("accept2NoiseRBXEvents", true);
104  desc.add<bool>("needEMFCoincidence", true);
105  desc.add<double>("minRBXEnergy", 50.0);
106  desc.add<double>("minRatio", -999.);
107  desc.add<double>("maxRatio", 999.);
108  desc.add<int>("minHPDHits", 17);
109  desc.add<int>("minRBXHits", 999);
110  desc.add<int>("minHPDNoOtherHits", 10);
111  desc.add<int>("minZeros", 10);
112  desc.add<double>("minHighEHitTime", -9999.0);
113  desc.add<double>("maxHighEHitTime", 9999.0);
114  desc.add<double>("maxRBXEMF", 0.02);
115  desc.add<double>("minRecHitE", 1.5);
116  desc.add<double>("minLowHitE", 10.0);
117  desc.add<double>("minHighHitE", 25.0);
118  desc.add<double>("minR45HitE", 5.0);
119  desc.add<double>("TS4TS5EnergyThreshold", 50.0);
120 
121  double TS4TS5UpperThresholdArray[5] = {70, 90, 100, 400, 4000};
122  double TS4TS5UpperCutArray[5] = {1, 0.8, 0.75, 0.72, 0.72};
123  double TS4TS5LowerThresholdArray[7] = {100, 120, 150, 200, 300, 400, 500};
124  double TS4TS5LowerCutArray[7] = {-1, -0.7, -0.4, -0.2, -0.08, 0, 0.1};
125  std::vector<double> TS4TS5UpperThreshold(TS4TS5UpperThresholdArray, TS4TS5UpperThresholdArray + 5);
126  std::vector<double> TS4TS5UpperCut(TS4TS5UpperCutArray, TS4TS5UpperCutArray + 5);
127  std::vector<double> TS4TS5LowerThreshold(TS4TS5LowerThresholdArray, TS4TS5LowerThresholdArray + 7);
128  std::vector<double> TS4TS5LowerCut(TS4TS5LowerCutArray, TS4TS5LowerCutArray + 7);
129 
130  desc.add<std::vector<double> >("TS4TS5UpperThreshold", TS4TS5UpperThreshold);
131  desc.add<std::vector<double> >("TS4TS5UpperCut", TS4TS5UpperCut);
132  desc.add<std::vector<double> >("TS4TS5LowerThreshold", TS4TS5LowerThreshold);
133  desc.add<std::vector<double> >("TS4TS5LowerCut", TS4TS5LowerCut);
134  descriptions.add("hltHcalMETNoiseCleaner", desc);
135 }
136 
137 //
138 // member functions
139 //
140 
142  using namespace reco;
143 
144  //output collection
145  std::unique_ptr<CaloMETCollection> CleanedMET(new CaloMETCollection);
146 
147  //get the calo MET / MHT
149  iEvent.getByToken(m_theCaloMetToken, met_h);
150 
151  if (not met_h.isValid() or met_h->empty() or
152  met_h->front().pt() < 0) { //No Valid MET, don't do anything and accept the event
153  return true; // we shouldn't get here, but lets not crash
154  }
155 
156  reco::CaloMET inCaloMet = met_h->front();
157 
158  // in this case, do not filter anything
159  if (severity_ == 0) {
160  CleanedMET->push_back(inCaloMet);
161  iEvent.put(std::move(CleanedMET));
162  return true;
163  }
164 
165  // get the RBXs produced by RecoMET/METProducers/HcalNoiseInfoProducer
167  iEvent.getByToken(m_theHcalNoiseToken, rbxs_h);
168  if (!rbxs_h.isValid()) {
169  edm::LogError("DataNotFound") << "HLTHcalMETNoiseCleaner: Could not find HcalNoiseRBXCollection product named "
170  << HcalNoiseRBXCollectionTag_ << "." << std::endl;
171  CleanedMET->push_back(inCaloMet);
172  iEvent.put(std::move(CleanedMET));
173  return true; // no valid RBXs
174  }
175 
176  // create a sorted set of the RBXs, ordered by energy
178  for (auto const& rbx : *rbxs_h) {
180  minRecHitE_,
181  minLowHitE_,
182  minHighHitE_,
186  minR45HitE_);
187  data.insert(d);
188  }
189  //if 0 RBXs are in the list, just accept
190  if (data.empty()) {
191  CleanedMET->push_back(inCaloMet);
192  iEvent.put(std::move(CleanedMET));
193  return true;
194  }
195  // data is now sorted by RBX energy
196  // only consider top N=numRBXsToConsider_ energy RBXs
197  int cntr = 0;
198  int nNoise = 0;
199 
200  TVector3 metVec;
201  metVec.SetPtEtaPhi(met_h->front().pt(), 0, met_h->front().phi());
202 
203  TVector3 noiseHPDVector(0, 0, 0);
204  TVector3 secondHPDVector(0, 0, 0);
205  for (auto it = data.begin(); it != data.end() && cntr < numRBXsToConsider_; it++, cntr++) {
206  bool isNoise = false;
207  bool passFilter = true;
208  bool passEMF = true;
209  if (it->energy() > minRBXEnergy_) {
210  if (it->validRatio() && it->ratio() < minRatio_)
211  passFilter = false;
212  else if (it->validRatio() && it->ratio() > maxRatio_)
213  passFilter = false;
214  else if (it->numHPDHits() >= minHPDHits_)
215  passFilter = false;
216  else if (it->numRBXHits() >= minRBXHits_)
217  passFilter = false;
218  else if (it->numHPDNoOtherHits() >= minHPDNoOtherHits_)
219  passFilter = false;
220  else if (it->numZeros() >= minZeros_)
221  passFilter = false;
222  else if (it->minHighEHitTime() < minHighEHitTime_)
223  passFilter = false;
224  else if (it->maxHighEHitTime() > maxHighEHitTime_)
225  passFilter = false;
226  else if (!it->PassTS4TS5())
227  passFilter = false;
228 
229  if (it->RBXEMF() < maxRBXEMF_) {
230  passEMF = false;
231  }
232  }
233 
234  if ((needEMFCoincidence_ && !passEMF && !passFilter) || (!needEMFCoincidence_ && !passFilter)) { // check for noise
235  LogDebug("") << "HLTHcalMETNoiseCleaner debug: Found a noisy RBX: "
236  << "energy=" << it->energy() << "; "
237  << "ratio=" << it->ratio() << "; "
238  << "# RBX hits=" << it->numRBXHits() << "; "
239  << "# HPD hits=" << it->numHPDHits() << "; "
240  << "# Zeros=" << it->numZeros() << "; "
241  << "min time=" << it->minHighEHitTime() << "; "
242  << "max time=" << it->maxHighEHitTime() << "; "
243  << "passTS4TS5=" << it->PassTS4TS5() << "; "
244  << "RBX EMF=" << it->RBXEMF() << std::endl;
245  nNoise++;
246  isNoise = true;
247  } // OK, checked for noise
248 
249  //------------First Noisy RBX-----------------------
250  if (isNoise && nNoise == 1) {
251  edm::RefVector<CaloTowerCollection> noiseTowers = it->rbxTowers();
253  // get the energy vector for this RBX from the calotowers
254  for (noiseTowersIt = noiseTowers.begin(); noiseTowersIt != noiseTowers.end(); noiseTowersIt++) {
255  TVector3 towerVec;
256  towerVec.SetPtEtaPhi((*noiseTowersIt)->pt(), (*noiseTowersIt)->eta(), (*noiseTowersIt)->phi());
257  noiseHPDVector += towerVec; // add this tower to the vector for the RBX
258  }
259  if (noiseHPDVector.Mag() > 0)
260  noiseHPDVector.SetPtEtaPhi(noiseHPDVector.Pt(), 0, noiseHPDVector.Phi()); // make the noise transverse
261  else
262  noiseHPDVector.SetPtEtaPhi(0, 0, 0);
263  }
264  //-----------FOUND a SECOND NOISY RBX-------------------
265  if (isNoise && cntr > 0) {
266  CleanedMET->push_back(inCaloMet);
267  iEvent.put(std::move(CleanedMET));
268  return accept2NoiseRBXEvents_; // don't try to clean these for the moment, just keep or throw away
269  }
270  //----------LEADING RBX is NOT NOISY--------------------
271  if (!isNoise && cntr == 0) {
272  CleanedMET->push_back(inCaloMet);
273  iEvent.put(std::move(CleanedMET));
274  return true; // don't reject the event if the leading RBX isn't noise
275  }
276  //-----------SUBLEADING RBX is NOT NOISY: STORE INFO----
277  if (!isNoise && nNoise > 0) { //second RBX isn't noisy (and first one was), so clean
278  edm::RefVector<CaloTowerCollection> noiseTowers = it->rbxTowers();
280  for (noiseTowersIt = noiseTowers.begin(); noiseTowersIt != noiseTowers.end(); noiseTowersIt++) {
281  TVector3 towerVec;
282  towerVec.SetPtEtaPhi((*noiseTowersIt)->pt(), (*noiseTowersIt)->eta(), (*noiseTowersIt)->phi());
283  secondHPDVector += towerVec; // add this tower to the vector for the RBX
284  }
285  if (secondHPDVector.Mag() > 0)
286  secondHPDVector.SetPtEtaPhi(secondHPDVector.Pt(), 0, secondHPDVector.Phi()); // make the second transverse
287  else
288  secondHPDVector.SetPtEtaPhi(0, 0, 0);
289  break;
290  }
291  } // end RBX loop
292 
293  if (noiseHPDVector.Mag() == 0) {
294  CleanedMET->push_back(inCaloMet);
295  iEvent.put(std::move(CleanedMET));
296  return true; // don't reject the event if the leading RBX isn't noise
297  }
298 
299  //********************************************************************************
300  //The Event gets here only if it had exactly 1 noisy RBX in the lead position
301  //********************************************************************************
302 
303  float METsumet = met_h->front().energy();
304 
305  metVec += noiseHPDVector;
306 
307  float ZMETsumet = METsumet - noiseHPDVector.Mag();
308  float ZMETpt = metVec.Pt();
309  float ZMETphi = metVec.Phi();
310 
311  //put the second RBX vector in the eta phi position of the leading RBX vector
312 
313  float SMETsumet = 0;
314  float SMETpt = 0;
315  float SMETphi = 0;
316  if (secondHPDVector.Mag() > 0.) {
317  secondHPDVector.SetPtEtaPhi(secondHPDVector.Pt(), noiseHPDVector.Eta(), noiseHPDVector.Phi());
318  metVec -= secondHPDVector;
319  SMETsumet = METsumet - noiseHPDVector.Mag();
320  SMETpt = metVec.Pt();
321  SMETphi = metVec.Phi();
322  }
323  //Get the maximum MET:
324  float CorMetSumEt, CorMetPt, CorMetPhi;
325  if (ZMETpt > SMETpt) {
326  CorMetSumEt = ZMETsumet;
327  CorMetPt = ZMETpt;
328  CorMetPhi = ZMETphi;
329  } else {
330  CorMetSumEt = SMETsumet;
331  CorMetPt = SMETpt;
332  CorMetPhi = SMETphi;
333  }
334 
335  reco::CaloMET corMet = BuildCaloMet(CorMetSumEt, CorMetPt, CorMetPhi);
336  CleanedMET->push_back(corMet);
337  iEvent.put(std::move(CleanedMET));
338 
339  return (corMet.pt() > CaloMetCut_);
340 }
341 
343  // Instantiate the container to hold the calorimeter specific information
344 
345  typedef math::XYZPoint Point;
347 
349  // Initialise the container
350  specific.MaxEtInEmTowers = 0.0; // Maximum energy in EM towers
351  specific.MaxEtInHadTowers = 0.0; // Maximum energy in HCAL towers
352  specific.HadEtInHO = 0.0; // Hadronic energy fraction in HO
353  specific.HadEtInHB = 0.0; // Hadronic energy in HB
354  specific.HadEtInHF = 0.0; // Hadronic energy in HF
355  specific.HadEtInHE = 0.0; // Hadronic energy in HE
356  specific.EmEtInEB = 0.0; // Em energy in EB
357  specific.EmEtInEE = 0.0; // Em energy in EE
358  specific.EmEtInHF = 0.0; // Em energy in HF
359  specific.EtFractionHadronic = 0.0; // Hadronic energy fraction
360  specific.EtFractionEm = 0.0; // Em energy fraction
361  specific.CaloSETInpHF = 0.0; // CaloSET in HF+
362  specific.CaloSETInmHF = 0.0; // CaloSET in HF-
363  specific.CaloMETInpHF = 0.0; // CaloMET in HF+
364  specific.CaloMETInmHF = 0.0; // CaloMET in HF-
365  specific.CaloMETPhiInpHF = 0.0; // CaloMET-phi in HF+
366  specific.CaloMETPhiInmHF = 0.0; // CaloMET-phi in HF-
367  specific.METSignificance = 0.0;
368 
369  TLorentzVector p4TL;
370  p4TL.SetPtEtaPhiM(pt, 0., phi, 0.);
371  const LorentzVector p4(p4TL.X(), p4TL.Y(), 0, p4TL.T());
372  const Point vtx(0.0, 0.0, 0.0);
373  reco::CaloMET specificmet(specific, sumet, p4, vtx);
374  return specificmet;
375 }
HLTHcalMETNoiseCleaner::maxRatio_
double maxRatio_
Definition: HLTHcalMETNoiseCleaner.h:41
HLTHcalMETNoiseCleaner::HcalNoiseRBXCollectionTag_
edm::InputTag HcalNoiseRBXCollectionTag_
Definition: HLTHcalMETNoiseCleaner.h:31
ConfigurationDescriptions.h
HLTHcalMETNoiseCleaner::noisedataset_t
std::set< CommonHcalNoiseRBXData, noisedatacomp > noisedataset_t
Definition: HLTHcalMETNoiseCleaner.h:65
HLTHcalMETNoiseCleaner::CaloMetCollectionTag_
edm::InputTag CaloMetCollectionTag_
Definition: HLTHcalMETNoiseCleaner.h:32
HLTHcalMETNoiseCleaner::numRBXsToConsider_
int numRBXsToConsider_
Definition: HLTHcalMETNoiseCleaner.h:36
Handle.h
HLTHcalMETNoiseCleaner::minR45HitE_
double minR45HitE_
Definition: HLTHcalMETNoiseCleaner.h:51
electrons_cff.bool
bool
Definition: electrons_cff.py:366
mps_fire.i
i
Definition: mps_fire.py:428
MessageLogger.h
CaloTower.h
ESHandle.h
DiDispStaMuonMonitor_cfi.pt
pt
Definition: DiDispStaMuonMonitor_cfi.py:39
HLTHcalMETNoiseCleaner::minHighEHitTime_
double minHighEHitTime_
Definition: HLTHcalMETNoiseCleaner.h:46
HLTHcalMETNoiseCleaner::minRecHitE_
double minRecHitE_
Definition: HLTHcalMETNoiseCleaner.h:51
edm
HLT enums.
Definition: AlignableModifier.h:19
HLTHcalMETNoiseCleaner::needEMFCoincidence_
bool needEMFCoincidence_
Definition: HLTHcalMETNoiseCleaner.h:38
HLTHcalMETNoiseCleaner.h
edm::RefVector::begin
const_iterator begin() const
Initialize an iterator over the RefVector.
Definition: RefVector.h:223
HLTHcalMETNoiseCleaner::minHPDNoOtherHits_
int minHPDNoOtherHits_
Definition: HLTHcalMETNoiseCleaner.h:44
HLT_FULL_cff.InputTag
InputTag
Definition: HLT_FULL_cff.py:89281
edm::ParameterSetDescription
Definition: ParameterSetDescription.h:52
SpecificCaloMETData.h
HLTHcalMETNoiseCleaner::fillDescriptions
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
Definition: HLTHcalMETNoiseCleaner.cc:95
edm::RefVector
Definition: EDProductfwd.h:27
reco::LeafCandidate::pt
double pt() const final
transverse momentum
Definition: LeafCandidate.h:146
edm::ParameterSet::existsAs
bool existsAs(std::string const &parameterName, bool trackiness=true) const
checks if a parameter exists as a given type
Definition: ParameterSet.h:171
reco
fixed size matrix
Definition: AlignmentAlgorithmBase.h:45
HLTHcalMETNoiseCleaner::severity_
int severity_
Definition: HLTHcalMETNoiseCleaner.h:34
edm::Handle
Definition: AssociativeIterator.h:50
HLTHcalMETNoiseCleaner::TS4TS5EnergyThreshold_
double TS4TS5EnergyThreshold_
Definition: HLTHcalMETNoiseCleaner.h:53
reco::CaloMET
Definition: CaloMET.h:21
Point
math::XYZPoint Point
Definition: TrackerDpgAnalysis.cc:106
CommonHcalNoiseRBXData
Definition: HcalNoiseAlgo.h:11
edm::RefVector::end
const_iterator end() const
Termination of iteration.
Definition: RefVector.h:228
HLTHcalMETNoiseCleaner::minRBXEnergy_
double minRBXEnergy_
Definition: HLTHcalMETNoiseCleaner.h:39
HLTHcalMETNoiseCleaner::maxHighEHitTime_
double maxHighEHitTime_
Definition: HLTHcalMETNoiseCleaner.h:47
edm::ConfigurationDescriptions::add
void add(std::string const &label, ParameterSetDescription const &psetDescription)
Definition: ConfigurationDescriptions.cc:57
timingPdfMaker.specific
specific
Definition: timingPdfMaker.py:78
HLT_FULL_cff.TS4TS5LowerThreshold
TS4TS5LowerThreshold
Definition: HLT_FULL_cff.py:8354
HLTHcalMETNoiseCleaner::filter
bool filter(edm::Event &, const edm::EventSetup &) override
Definition: HLTHcalMETNoiseCleaner.cc:141
HLTHcalMETNoiseCleaner::minRatio_
double minRatio_
Definition: HLTHcalMETNoiseCleaner.h:40
ParameterSetDescription.h
HLTHcalMETNoiseCleaner::minLowHitE_
double minLowHitE_
Definition: HLTHcalMETNoiseCleaner.h:51
HLT_FULL_cff.TS4TS5UpperThreshold
TS4TS5UpperThreshold
Definition: HLT_FULL_cff.py:8357
HLTHcalMETNoiseCleaner::accept2NoiseRBXEvents_
bool accept2NoiseRBXEvents_
Definition: HLTHcalMETNoiseCleaner.h:37
edm::ConfigurationDescriptions
Definition: ConfigurationDescriptions.h:28
Point
Structure Point Contains parameters of Gaussian fits to DMRs.
Definition: DMRtrends.cc:57
LogDebug
#define LogDebug(id)
Definition: MessageLogger.h:233
edm::ParameterSet
Definition: ParameterSet.h:47
math::XYZPoint
XYZPointD XYZPoint
point in space with cartesian internal representation
Definition: Point3D.h:12
Event.h
HLTHcalMETNoiseCleaner::BuildCaloMet
reco::CaloMET BuildCaloMet(float sumet, float pt, float phi)
Definition: HLTHcalMETNoiseCleaner.cc:342
HLTHcalMETNoiseCleaner::TS4TS5UpperCut_
std::vector< std::pair< double, double > > TS4TS5UpperCut_
Definition: HLTHcalMETNoiseCleaner.h:54
jetUpdater_cfi.sort
sort
Definition: jetUpdater_cfi.py:29
HLTHcalMETNoiseCleaner::maxRBXEMF_
double maxRBXEMF_
Definition: HLTHcalMETNoiseCleaner.h:48
LorentzVector.h
HLTHcalMETNoiseCleaner::m_theCaloMetToken
edm::EDGetTokenT< reco::CaloMETCollection > m_theCaloMetToken
Definition: HLTHcalMETNoiseCleaner.h:28
createfilelist.int
int
Definition: createfilelist.py:10
iEvent
int iEvent
Definition: GenABIO.cc:224
HLTHcalMETNoiseCleaner::minHPDHits_
int minHPDHits_
Definition: HLTHcalMETNoiseCleaner.h:42
p4
double p4[4]
Definition: TauolaWrapper.h:92
HLTHcalMETNoiseCleaner::CaloMetCut_
double CaloMetCut_
Definition: HLTHcalMETNoiseCleaner.h:33
HLTHcalMETNoiseCleaner::TS4TS5LowerCut_
std::vector< std::pair< double, double > > TS4TS5LowerCut_
Definition: HLTHcalMETNoiseCleaner.h:55
HLTHcalMETNoiseCleaner::minZeros_
int minZeros_
Definition: HLTHcalMETNoiseCleaner.h:45
SpecificCaloMETData
Definition: SpecificCaloMETData.h:22
edm::EventSetup
Definition: EventSetup.h:58
edm::LogError
Log< level::Error, false > LogError
Definition: MessageLogger.h:123
InputTag.h
CaloTowerCollection.h
reco::JetExtendedAssociation::LorentzVector
math::PtEtaPhiELorentzVectorF LorentzVector
Definition: JetExtendedAssociation.h:25
DDAxes::phi
HLTHcalMETNoiseCleaner::minRBXHits_
int minRBXHits_
Definition: HLTHcalMETNoiseCleaner.h:43
submitPVResolutionJobs.desc
string desc
Definition: submitPVResolutionJobs.py:251
eostools.move
def move(src, dest)
Definition: eostools.py:511
HLTHcalMETNoiseCleaner::HLTHcalMETNoiseCleaner
HLTHcalMETNoiseCleaner(const edm::ParameterSet &)
Definition: HLTHcalMETNoiseCleaner.cc:47
extraflags_cff.vtx
vtx
Definition: extraflags_cff.py:18
math::XYZTLorentzVector
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
Definition: LorentzVector.h:29
LorentzVector
math::XYZTLorentzVector LorentzVector
Definition: HLTMuonMatchAndPlot.h:49
HLTHcalMETNoiseCleaner::minHighHitE_
double minHighHitE_
Definition: HLTHcalMETNoiseCleaner.h:51
HLTHcalMETNoiseCleaner::~HLTHcalMETNoiseCleaner
~HLTHcalMETNoiseCleaner() override
edm::RefVectorIterator
Definition: EDProductfwd.h:33
HLT_FULL_cff.TS4TS5UpperCut
TS4TS5UpperCut
Definition: HLT_FULL_cff.py:8376
Point3D.h
EventSetup.h
or
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventID const &, edm::Timestamp const & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
data
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:79
ztail.d
d
Definition: ztail.py:151
CaloMETCollection
Collection of Calo MET.
Candidate.h
ParameterSet.h
edm::HandleBase::isValid
bool isValid() const
Definition: HandleBase.h:70
edm::Event
Definition: Event.h:73
HLT_FULL_cff.TS4TS5LowerCut
TS4TS5LowerCut
Definition: HLT_FULL_cff.py:8360
edm::InputTag
Definition: InputTag.h:15
HLTHcalMETNoiseCleaner::m_theHcalNoiseToken
edm::EDGetTokenT< reco::HcalNoiseRBXCollection > m_theHcalNoiseToken
Definition: HLTHcalMETNoiseCleaner.h:29