CMS 3D CMS Logo

MuonTCMETValueMapProducer.cc
Go to the documentation of this file.
1 // -*- C++ -*-
2 //
3 // Package: METProducers
4 // Class: MuonTCMETValueMapProducer
5 //
6 // Original Author: Frank Golf
7 // Created: Sun Mar 15 11:33:20 CDT 2009
8 //
9 //
10 
11 //____________________________________________________________________________||
13 
15 
28 
31 
34 
37 
38 #include "TVector3.h"
39 #include "TMath.h"
40 
41 #include <algorithm>
42 
43 //____________________________________________________________________________||
45 
46 //____________________________________________________________________________||
47 namespace cms {
48 
50  produces<edm::ValueMap<reco::MuonMETCorrectionData>>("muCorrData");
51 
52  rfType_ = iConfig.getParameter<int>("rf_type");
53 
54  nLayers_ = iConfig.getParameter<int>("nLayers");
55  nLayersTight_ = iConfig.getParameter<int>("nLayersTight");
56  vertexNdof_ = iConfig.getParameter<int>("vertexNdof");
57  vertexZ_ = iConfig.getParameter<double>("vertexZ");
58  vertexRho_ = iConfig.getParameter<double>("vertexRho");
59  vertexMaxDZ_ = iConfig.getParameter<double>("vertexMaxDZ");
60  maxpt_eta20_ = iConfig.getParameter<double>("maxpt_eta20");
61  maxpt_eta25_ = iConfig.getParameter<double>("maxpt_eta25");
62 
63  // get configuration parameters
64  std::vector<std::string> algos = iConfig.getParameter<std::vector<std::string>>("trackAlgos");
65  std::transform(algos.begin(), algos.end(), std::back_inserter(trkAlgos_), [](const std::string& a) {
67  });
68  maxd0cut_ = iConfig.getParameter<double>("d0_max");
69  minpt_ = iConfig.getParameter<double>("pt_min");
70  maxpt_ = iConfig.getParameter<double>("pt_max");
71  maxeta_ = iConfig.getParameter<double>("eta_max");
72  maxchi2_ = iConfig.getParameter<double>("chi2_max");
73  minhits_ = iConfig.getParameter<double>("nhits_min");
74  maxPtErr_ = iConfig.getParameter<double>("ptErr_max");
75 
76  trkQuality_ = iConfig.getParameter<std::vector<int>>("track_quality");
77  algos = iConfig.getParameter<std::vector<std::string>>("track_algos");
78  std::transform(algos.begin(), algos.end(), std::back_inserter(trkAlgos_), [](const std::string& a) {
80  });
81  maxchi2_tight_ = iConfig.getParameter<double>("chi2_max_tight");
82  minhits_tight_ = iConfig.getParameter<double>("nhits_min_tight");
83  maxPtErr_tight_ = iConfig.getParameter<double>("ptErr_max_tight");
84  usePvtxd0_ = iConfig.getParameter<bool>("usePvtxd0");
85  d0cuta_ = iConfig.getParameter<double>("d0cuta");
86  d0cutb_ = iConfig.getParameter<double>("d0cutb");
87 
88  muon_dptrel_ = iConfig.getParameter<double>("muon_dptrel");
89  muond0_ = iConfig.getParameter<double>("d0_muon");
90  muonpt_ = iConfig.getParameter<double>("pt_muon");
91  muoneta_ = iConfig.getParameter<double>("eta_muon");
92  muonchi2_ = iConfig.getParameter<double>("chi2_muon");
93  muonhits_ = iConfig.getParameter<double>("nhits_muon");
94  muonGlobal_ = iConfig.getParameter<bool>("global_muon");
95  muonTracker_ = iConfig.getParameter<bool>("tracker_muon");
96  muonDeltaR_ = iConfig.getParameter<double>("deltaR_muon");
97  useCaloMuons_ = iConfig.getParameter<bool>("useCaloMuons");
98  muonMinValidStaHits_ = iConfig.getParameter<int>("muonMinValidStaHits");
99 
100  response_function = nullptr;
101  tcmetAlgo_ = new TCMETAlgo();
102 
103  if (rfType_ == 1)
105  else if (rfType_ == 2)
107 
108  muonToken_ = consumes<reco::MuonCollection>(iConfig.getParameter<edm::InputTag>("muonInputTag"));
109  beamSpotToken_ = consumes<reco::BeamSpot>(iConfig.getParameter<edm::InputTag>("beamSpotInputTag"));
110  vertexToken_ = consumes<reco::VertexCollection>(iConfig.getParameter<edm::InputTag>("vertexInputTag"));
111  }
112 
113  //____________________________________________________________________________||
115 
116  //____________________________________________________________________________||
118  iEvent.getByToken(muonToken_, muons_);
119  iEvent.getByToken(beamSpotToken_, beamSpot_);
120 
121  hasValidVertex = false;
122  if (usePvtxd0_) {
123  iEvent.getByToken(vertexToken_, vertexHandle_);
124 
125  if (vertexHandle_.isValid()) {
128  }
129  }
130 
131  edm::ESHandle<MagneticField> theMagField;
132  iSetup.get<IdealMagneticFieldRecord>().get(theMagField);
133  bField = theMagField.product();
134 
135  auto vm_muCorrData = std::make_unique<edm::ValueMap<reco::MuonMETCorrectionData>>();
136 
137  std::vector<reco::MuonMETCorrectionData> v_muCorrData;
138 
139  unsigned int nMuons = muons_->size();
140 
141  for (unsigned int iMu = 0; iMu < nMuons; iMu++) {
142  const reco::Muon* mu = &(*muons_)[iMu];
143  double deltax = 0.0;
144  double deltay = 0.0;
145 
147 
148  reco::TrackRef mu_track;
149  if (mu->isGlobalMuon() || mu->isTrackerMuon() || mu->isCaloMuon())
150  mu_track = mu->innerTrack();
151  else {
152  v_muCorrData.push_back(muMETCorrData);
153  continue;
154  }
155 
156  // figure out depositions muons would make if they were treated as pions
157  if (isGoodTrack(mu)) {
158  if (mu_track->pt() < minpt_)
160 
161  else {
162  int bin_index = response_function->FindBin(mu_track->eta(), mu_track->pt());
163  double response = response_function->GetBinContent(bin_index);
164 
165  TVector3 outerTrkPosition = propagateTrack(mu);
166 
167  deltax = response * mu_track->p() * sin(outerTrkPosition.Theta()) * cos(outerTrkPosition.Phi());
168  deltay = response * mu_track->p() * sin(outerTrkPosition.Theta()) * sin(outerTrkPosition.Phi());
169 
171  }
172  }
173 
174  // figure out muon flag
175  if (isGoodMuon(mu))
176  v_muCorrData.push_back(
178 
179  else if (useCaloMuons_ && isGoodCaloMuon(mu, iMu))
180  v_muCorrData.push_back(
182 
183  else
184  v_muCorrData.push_back(muMETCorrData);
185  }
186 
187  edm::ValueMap<reco::MuonMETCorrectionData>::Filler dataFiller(*vm_muCorrData);
188 
189  dataFiller.insert(muons_, v_muCorrData.begin(), v_muCorrData.end());
190  dataFiller.fill();
191 
192  iEvent.put(std::move(vm_muCorrData), "muCorrData");
193  }
194 
195  //____________________________________________________________________________||
197  double d0 = -999;
198  double nhits = 0;
199  double chi2 = 999;
200 
201  // get d0 corrected for beam spot
202  bool haveBeamSpot = true;
203  if (!beamSpot_.isValid())
204  haveBeamSpot = false;
205 
206  if (muonGlobal_ && !muon->isGlobalMuon())
207  return false;
208  if (muonTracker_ && !muon->isTrackerMuon())
209  return false;
210 
211  const reco::TrackRef siTrack = muon->innerTrack();
212  const reco::TrackRef globalTrack = muon->globalTrack();
213 
214  Point bspot = haveBeamSpot ? beamSpot_->position() : Point(0, 0, 0);
215  if (siTrack.isNonnull())
216  nhits = siTrack->numberOfValidHits();
217  if (globalTrack.isNonnull()) {
218  d0 = -1 * globalTrack->dxy(bspot);
219  chi2 = globalTrack->normalizedChi2();
220  }
221 
222  if (fabs(d0) > muond0_)
223  return false;
224  if (muon->pt() < muonpt_)
225  return false;
226  if (fabs(muon->eta()) > muoneta_)
227  return false;
228  if (nhits < muonhits_)
229  return false;
230  if (chi2 > muonchi2_)
231  return false;
232  if (globalTrack->hitPattern().numberOfValidMuonHits() < muonMinValidStaHits_)
233  return false;
234 
235  //reject muons with tracker dpt/pt > X
236  if (!siTrack.isNonnull())
237  return false;
238  if (siTrack->ptError() / siTrack->pt() > muon_dptrel_)
239  return false;
240 
241  else
242  return true;
243  }
244 
245  //____________________________________________________________________________||
247  if (muon->pt() < 10)
248  return false;
249 
250  if (!isGoodTrack(muon))
251  return false;
252 
253  const reco::TrackRef inputSiliconTrack = muon->innerTrack();
254  if (!inputSiliconTrack.isNonnull())
255  return false;
256 
257  //check if it is in the vicinity of a global or tracker muon
258  unsigned int nMuons = muons_->size();
259  for (unsigned int iMu = 0; iMu < nMuons; iMu++) {
260  if (iMu == index)
261  continue;
262 
263  const reco::Muon* mu = &(*muons_)[iMu];
264 
265  const reco::TrackRef testSiliconTrack = mu->innerTrack();
266  if (!testSiliconTrack.isNonnull())
267  continue;
268 
269  double deltaEta = inputSiliconTrack.get()->eta() - testSiliconTrack.get()->eta();
270  double deltaPhi = acos(cos(inputSiliconTrack.get()->phi() - testSiliconTrack.get()->phi()));
271  double deltaR = TMath::Sqrt(deltaEta * deltaEta + deltaPhi * deltaPhi);
272 
273  if (deltaR < muonDeltaR_)
274  return false;
275  }
276 
277  return true;
278  }
279 
280  //____________________________________________________________________________||
282  double d0;
283 
284  const reco::TrackRef siTrack = muon->innerTrack();
285  if (!siTrack.isNonnull())
286  return false;
287 
288  if (hasValidVertex) {
289  //get d0 corrected for primary vertex
290 
291  const Point pvtx = Point(vertices_->begin()->x(), vertices_->begin()->y(), vertices_->begin()->z());
292 
293  double dz = siTrack->dz(pvtx);
294 
295  if (fabs(dz) < vertexMaxDZ_) {
296  //get d0 corrected for pvtx
297  d0 = -1 * siTrack->dxy(pvtx);
298 
299  } else {
300  // get d0 corrected for beam spot
301  bool haveBeamSpot = true;
302  if (!beamSpot_.isValid())
303  haveBeamSpot = false;
304 
305  Point bspot = haveBeamSpot ? beamSpot_->position() : Point(0, 0, 0);
306  d0 = -1 * siTrack->dxy(bspot);
307  }
308  } else {
309  // get d0 corrected for beam spot
310  bool haveBeamSpot = true;
311  if (!beamSpot_.isValid())
312  haveBeamSpot = false;
313 
314  Point bspot = haveBeamSpot ? beamSpot_->position() : Point(0, 0, 0);
315  d0 = -1 * siTrack->dxy(bspot);
316  }
317 
318  if (std::find(trackAlgos_.begin(), trackAlgos_.end(), siTrack->algo()) != trackAlgos_.end()) {
319  //1st 4 tracking iterations (pT-dependent d0 cut)
320 
321  float d0cut = sqrt(std::pow(d0cuta_, 2) + std::pow(d0cutb_ / siTrack->pt(), 2));
322  if (d0cut > maxd0cut_)
323  d0cut = maxd0cut_;
324 
325  if (fabs(d0) > d0cut)
326  return false;
327  if (nLayers(siTrack) < nLayers_)
328  return false;
329  } else {
330  //last 2 tracking iterations (tighten chi2, nhits, pt error cuts)
331 
332  if (siTrack->normalizedChi2() > maxchi2_tight_)
333  return false;
334  if (siTrack->numberOfValidHits() < minhits_tight_)
335  return false;
336  if ((siTrack->ptError() / siTrack->pt()) > maxPtErr_tight_)
337  return false;
338  if (nLayers(siTrack) < nLayersTight_)
339  return false;
340  }
341 
342  if (siTrack->numberOfValidHits() < minhits_)
343  return false;
344  if (siTrack->normalizedChi2() > maxchi2_)
345  return false;
346  if (fabs(siTrack->eta()) > maxeta_)
347  return false;
348  if (siTrack->pt() > maxpt_)
349  return false;
350  if ((siTrack->ptError() / siTrack->pt()) > maxPtErr_)
351  return false;
352  if (fabs(siTrack->eta()) > 2.5 && siTrack->pt() > maxpt_eta25_)
353  return false;
354  if (fabs(siTrack->eta()) > 2.0 && siTrack->pt() > maxpt_eta20_)
355  return false;
356 
357  int cut = 0;
358  for (unsigned int i = 0; i < trkQuality_.size(); i++) {
359  cut |= (1 << trkQuality_.at(i));
360  }
361 
362  if (!((siTrack->qualityMask() & cut) == cut))
363  return false;
364 
365  bool isGoodAlgo = false;
366  if (trkAlgos_.empty())
367  isGoodAlgo = true;
368  for (unsigned int i = 0; i < trkAlgos_.size(); i++) {
369  if (siTrack->algo() == trkAlgos_.at(i))
370  isGoodAlgo = true;
371  }
372 
373  if (!isGoodAlgo)
374  return false;
375 
376  return true;
377  }
378 
379  //____________________________________________________________________________||
381  TVector3 outerTrkPosition;
382 
383  outerTrkPosition.SetPtEtaPhi(999., -10., 2 * TMath::Pi());
384 
385  const reco::TrackRef track = muon->innerTrack();
386 
387  if (!track.isNonnull()) {
388  return outerTrkPosition;
389  }
390 
391  GlobalPoint tpVertex(track->vx(), track->vy(), track->vz());
392  GlobalVector tpMomentum(track.get()->px(), track.get()->py(), track.get()->pz());
393  int tpCharge(track->charge());
394 
395  FreeTrajectoryState fts(tpVertex, tpMomentum, tpCharge, bField);
396 
397  const double zdist = 314.;
398 
399  const double radius = 130.;
400 
401  const double corner = 1.479;
402 
405 
408 
410 
412 
413  if (track.get()->eta() < -corner) {
414  tsos = myAP.propagate(fts, *lendcap);
415  } else if (fabs(track.get()->eta()) < corner) {
416  tsos = myAP.propagate(fts, *barrel);
417  } else if (track.get()->eta() > corner) {
418  tsos = myAP.propagate(fts, *rendcap);
419  }
420 
421  if (tsos.isValid())
422  outerTrkPosition.SetXYZ(tsos.globalPosition().x(), tsos.globalPosition().y(), tsos.globalPosition().z());
423 
424  else
425  outerTrkPosition.SetPtEtaPhi(999., -10., 2 * TMath::Pi());
426 
427  return outerTrkPosition;
428  }
429 
430  //____________________________________________________________________________||
432  const reco::HitPattern& p = track->hitPattern();
433  return p.trackerLayersWithMeasurement();
434  }
435 
436  //____________________________________________________________________________||
438  if (vertices_->begin()->isFake())
439  return false;
440  if (vertices_->begin()->ndof() < vertexNdof_)
441  return false;
442  if (fabs(vertices_->begin()->z()) > vertexZ_)
443  return false;
444  if (sqrt(std::pow(vertices_->begin()->x(), 2) + std::pow(vertices_->begin()->y(), 2)) > vertexRho_)
445  return false;
446 
447  return true;
448  }
449 
450 } // namespace cms
451 
452 //____________________________________________________________________________||
Vector3DBase
Definition: Vector3DBase.h:8
edm::ESHandle::product
T const * product() const
Definition: ESHandle.h:86
TkRotation< float >
TrajectoryStateOnSurface.h
cutBasedMuonId_MuonPOG_V0_cff.globalTrack
globalTrack
Definition: cutBasedMuonId_MuonPOG_V0_cff.py:135
edm::helper::Filler::insert
void insert(const H &h, I begin, I end)
Definition: ValueMap.h:53
mps_fire.i
i
Definition: mps_fire.py:355
Muon.h
Reference_intrackfit_cff.barrel
list barrel
Definition: Reference_intrackfit_cff.py:37
Cylinder.h
cms::MuonTCMETValueMapProducer::nLayers
int nLayers(const reco::TrackRef)
Definition: MuonTCMETValueMapProducer.cc:431
cms::MuonTCMETValueMapProducer::maxpt_eta20_
double maxpt_eta20_
Definition: MuonTCMETValueMapProducer.h:75
TCMETAlgo::getResponseFunction_fit
TH2D * getResponseFunction_fit()
Definition: TCMETAlgo.cc:3522
MuonTCMETValueMapProducer.h
edm::Handle::product
T const * product() const
Definition: Handle.h:70
cms::MuonTCMETValueMapProducer::vertexMaxDZ_
double vertexMaxDZ_
Definition: MuonTCMETValueMapProducer.h:73
TkAlMuonSelectors_cfi.cut
cut
Definition: TkAlMuonSelectors_cfi.py:5
cms::MuonTCMETValueMapProducer::d0cutb_
double d0cutb_
Definition: MuonTCMETValueMapProducer.h:88
muon
Definition: MuonCocktails.h:17
PV3DBase::x
T x() const
Definition: PV3DBase.h:59
amptDefaultParameters_cff.mu
mu
Definition: amptDefaultParameters_cff.py:16
cms::MuonTCMETValueMapProducer::d0cuta_
double d0cuta_
Definition: MuonTCMETValueMapProducer.h:87
cms::MuonTCMETValueMapProducer::minpt_
double minpt_
Definition: MuonTCMETValueMapProducer.h:77
TrackBase.h
AlCaHLTBitMon_ParallelJobs.p
p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
TrajectoryStateOnSurface::globalPosition
GlobalPoint globalPosition() const
Definition: TrajectoryStateOnSurface.h:65
cms::MuonTCMETValueMapProducer::muonDeltaR_
double muonDeltaR_
Definition: MuonTCMETValueMapProducer.h:99
edm::helper::Filler::fill
void fill()
Definition: ValueMap.h:65
distTCMET_cfi.corner
corner
Definition: distTCMET_cfi.py:38
cms::MuonTCMETValueMapProducer::maxd0cut_
double maxd0cut_
Definition: MuonTCMETValueMapProducer.h:83
cms::MuonTCMETValueMapProducer::nLayers_
int nLayers_
Definition: MuonTCMETValueMapProducer.h:68
edm::Ref::get
T const * get() const
Returns C++ pointer to the item.
Definition: Ref.h:232
cms::MuonTCMETValueMapProducer::trackAlgos_
std::vector< reco::TrackBase::TrackAlgorithm > trackAlgos_
Definition: MuonTCMETValueMapProducer.h:76
cms::MuonTCMETValueMapProducer::rfType_
int rfType_
Definition: MuonTCMETValueMapProducer.h:67
ReferenceCountingPointer< Plane >
hltPixelTracks_cff.chi2
chi2
Definition: hltPixelTracks_cff.py:25
cms::MuonTCMETValueMapProducer::muonGlobal_
bool muonGlobal_
Definition: MuonTCMETValueMapProducer.h:62
spr::find
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:19
cms::MuonTCMETValueMapProducer::maxchi2_
double maxchi2_
Definition: MuonTCMETValueMapProducer.h:80
cms::MuonTCMETValueMapProducer::muonchi2_
double muonchi2_
Definition: MuonTCMETValueMapProducer.h:96
distTCMET_cfi.zdist
zdist
Definition: distTCMET_cfi.py:37
reco::Muon
Definition: Muon.h:27
edm::Ref< TrackCollection >
cms::MuonTCMETValueMapProducer::isValidVertex
bool isValidVertex()
Definition: MuonTCMETValueMapProducer.cc:437
cms::MuonTCMETValueMapProducer::muonMinValidStaHits_
int muonMinValidStaHits_
Definition: MuonTCMETValueMapProducer.h:93
cms::MuonTCMETValueMapProducer::minhits_tight_
double minhits_tight_
Definition: MuonTCMETValueMapProducer.h:85
funct::sin
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
cms::MuonTCMETValueMapProducer::vertexZ_
double vertexZ_
Definition: MuonTCMETValueMapProducer.h:71
PV3DBase::z
T z() const
Definition: PV3DBase.h:61
cms::MuonTCMETValueMapProducer::muon_dptrel_
double muon_dptrel_
Definition: MuonTCMETValueMapProducer.h:100
IdealMagneticFieldRecord
Definition: IdealMagneticFieldRecord.h:11
Plane.h
cms::MuonTCMETValueMapProducer::useCaloMuons_
bool useCaloMuons_
Definition: MuonTCMETValueMapProducer.h:64
TrajectoryStateOnSurface
Definition: TrajectoryStateOnSurface.h:16
cms::MuonTCMETValueMapProducer::usePvtxd0_
bool usePvtxd0_
Definition: MuonTCMETValueMapProducer.h:89
MakerMacros.h
reco::HitPattern
Definition: HitPattern.h:147
cms::MuonTCMETValueMapProducer::maxPtErr_
double maxPtErr_
Definition: MuonTCMETValueMapProducer.h:82
funct::cos
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
cms::MuonTCMETValueMapProducer::isGoodTrack
bool isGoodTrack(const reco::Muon *)
Definition: MuonTCMETValueMapProducer.cc:281
Track.h
edm::EventSetup::get
T get() const
Definition: EventSetup.h:73
TrackFwd.h
BeamSpot.h
jets_cff.algos
algos
Definition: jets_cff.py:644
spr::deltaEta
static const double deltaEta
Definition: CaloConstants.h:8
SiPixelRawToDigiRegional_cfi.deltaPhi
deltaPhi
Definition: SiPixelRawToDigiRegional_cfi.py:9
cms::MuonTCMETValueMapProducer::vertices_
const reco::VertexCollection * vertices_
Definition: MuonTCMETValueMapProducer.h:58
jets_cff.nMuons
nMuons
Definition: jets_cff.py:209
reco::MuonMETCorrectionData::MuonCandidateValuesUsed
Definition: MuonMETCorrectionData.h:19
mathSSE::sqrt
T sqrt(T t)
Definition: SSEVec.h:19
IdealMagneticFieldRecord.h
edm::ESHandle< MagneticField >
TCMETAlgo::getResponseFunction_mode
TH2D * getResponseFunction_mode()
Definition: TCMETAlgo.cc:4994
HcalDetIdTransform::transform
unsigned transform(const HcalDetId &id, unsigned transformCode)
Definition: HcalDetIdTransform.cc:7
reco::BeamSpot::position
const Point & position() const
position
Definition: BeamSpot.h:59
Point3DBase< float, GlobalTag >
nhits
Definition: HIMultiTrackSelector.h:42
cms::MuonTCMETValueMapProducer::minhits_
double minhits_
Definition: MuonTCMETValueMapProducer.h:81
reco::MuonMETCorrectionData::NotUsed
Definition: MuonMETCorrectionData.h:10
cms::MuonTCMETValueMapProducer::muoneta_
double muoneta_
Definition: MuonTCMETValueMapProducer.h:95
PbPb_ZMuSkimMuonDPG_cff.deltaR
deltaR
Definition: PbPb_ZMuSkimMuonDPG_cff.py:63
cms::MuonTCMETValueMapProducer::muonTracker_
bool muonTracker_
Definition: MuonTCMETValueMapProducer.h:63
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
Plane::build
static PlanePointer build(Args &&... args)
Definition: Plane.h:33
cms::MuonTCMETValueMapProducer::produce
void produce(edm::Event &, const edm::EventSetup &) override
Definition: MuonTCMETValueMapProducer.cc:117
Point
Structure Point Contains parameters of Gaussian fits to DMRs.
Definition: DMRtrends.cc:57
cms::MuonTCMETValueMapProducer::muonToken_
edm::EDGetTokenT< reco::MuonCollection > muonToken_
Definition: MuonTCMETValueMapProducer.h:52
edm::ParameterSet
Definition: ParameterSet.h:36
math::XYZPoint
XYZPointD XYZPoint
point in space with cartesian internal representation
Definition: Point3D.h:12
reco::MuonMETCorrectionData::TreatedAsPion
Definition: MuonMETCorrectionData.h:17
a
double a
Definition: hdecay.h:119
edm::Ref::isNonnull
bool isNonnull() const
Checks for non-null.
Definition: Ref.h:238
cms::MuonTCMETValueMapProducer::response_function
class TH2D * response_function
Definition: MuonTCMETValueMapProducer.h:60
cms::MuonTCMETValueMapProducer::muond0_
double muond0_
Definition: MuonTCMETValueMapProducer.h:98
PV3DBase::y
T y() const
Definition: PV3DBase.h:60
Cylinder::build
static CylinderPointer build(const PositionType &pos, const RotationType &rot, Scalar radius, Bounds *bounds=nullptr)
Definition: Cylinder.h:45
iEvent
int iEvent
Definition: GenABIO.cc:224
cms::MuonTCMETValueMapProducer::nLayersTight_
int nLayersTight_
Definition: MuonTCMETValueMapProducer.h:69
M_PI
#define M_PI
Definition: BXVectorInputProducer.cc:50
IdealGeometryRecord.h
cms::MuonTCMETValueMapProducer::maxeta_
double maxeta_
Definition: MuonTCMETValueMapProducer.h:79
MagneticField.h
edm::EventSetup
Definition: EventSetup.h:57
AnalyticalPropagator.h
get
#define get
TCMETAlgo
Definition: TCMETAlgo.h:67
cms::MuonTCMETValueMapProducer::propagateTrack
class TVector3 propagateTrack(const reco::Muon *)
Definition: MuonTCMETValueMapProducer.cc:380
cms::MuonTCMETValueMapProducer::maxPtErr_tight_
double maxPtErr_tight_
Definition: MuonTCMETValueMapProducer.h:86
ValueMap.h
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
cms::MuonTCMETValueMapProducer::vertexHandle_
edm::Handle< reco::VertexCollection > vertexHandle_
Definition: MuonTCMETValueMapProducer.h:50
AnalyticalPropagator
Definition: AnalyticalPropagator.h:22
eostools.move
def move(src, dest)
Definition: eostools.py:511
cms::MuonTCMETValueMapProducer::MuonTCMETValueMapProducer
MuonTCMETValueMapProducer(const edm::ParameterSet &)
Definition: MuonTCMETValueMapProducer.cc:49
cms::MuonTCMETValueMapProducer::muonpt_
double muonpt_
Definition: MuonTCMETValueMapProducer.h:94
FreeTrajectoryState
Definition: FreeTrajectoryState.h:27
PVValHelper::dz
Definition: PVValidationHelpers.h:50
cms::MuonTCMETValueMapProducer::isGoodMuon
bool isGoodMuon(const reco::Muon *)
Definition: MuonTCMETValueMapProducer.cc:196
cms::MuonTCMETValueMapProducer::bField
const class MagneticField * bField
Definition: MuonTCMETValueMapProducer.h:56
cms::MuonTCMETValueMapProducer::isGoodCaloMuon
bool isGoodCaloMuon(const reco::Muon *, const unsigned int)
Definition: MuonTCMETValueMapProducer.cc:246
CosmicsPD_Skims.radius
radius
Definition: CosmicsPD_Skims.py:135
cms::MuonTCMETValueMapProducer::muons_
edm::Handle< reco::MuonCollection > muons_
Definition: MuonTCMETValueMapProducer.h:48
TCMETAlgo.h
MuonMETCorrectionData.h
Point3D.h
GlobalVector.h
cms::MuonTCMETValueMapProducer::~MuonTCMETValueMapProducer
~MuonTCMETValueMapProducer() override
Definition: MuonTCMETValueMapProducer.cc:114
cms::MuonTCMETValueMapProducer::maxpt_eta25_
double maxpt_eta25_
Definition: MuonTCMETValueMapProducer.h:74
cms::MuonTCMETValueMapProducer::maxpt_
double maxpt_
Definition: MuonTCMETValueMapProducer.h:78
AlignmentPI::index
index
Definition: AlignmentPayloadInspectorHelper.h:46
Pi
const double Pi
Definition: CosmicMuonParameters.h:18
HLT_2018_cff.track
track
Definition: HLT_2018_cff.py:10352
funct::pow
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:30
cms::MuonTCMETValueMapProducer::muonhits_
double muonhits_
Definition: MuonTCMETValueMapProducer.h:97
cms::MuonTCMETValueMapProducer::vertexRho_
double vertexRho_
Definition: MuonTCMETValueMapProducer.h:72
edm::helper::Filler
Definition: ValueMap.h:22
reco::TrackBase::algoByName
static TrackAlgorithm algoByName(const std::string &name)
Definition: TrackBase.cc:137
cms::MuonTCMETValueMapProducer::vertexToken_
edm::EDGetTokenT< reco::VertexCollection > vertexToken_
Definition: MuonTCMETValueMapProducer.h:54
cms::MuonTCMETValueMapProducer::tcmetAlgo_
TCMETAlgo * tcmetAlgo_
Definition: MuonTCMETValueMapProducer.h:101
cms::MuonTCMETValueMapProducer::trkQuality_
std::vector< int > trkQuality_
Definition: MuonTCMETValueMapProducer.h:90
reco::MuonMETCorrectionData
Definition: MuonMETCorrectionData.h:7
cms::MuonTCMETValueMapProducer::vertexNdof_
int vertexNdof_
Definition: MuonTCMETValueMapProducer.h:70
edm::HandleBase::isValid
bool isValid() const
Definition: HandleBase.h:70
edm::Event
Definition: Event.h:73
Point
math::XYZPoint Point
Definition: MuonTCMETValueMapProducer.cc:44
d0
static constexpr float d0
Definition: L1EGammaCrystalsEmulatorProducer.cc:84
GlobalPoint.h
cms::MuonTCMETValueMapProducer::maxchi2_tight_
double maxchi2_tight_
Definition: MuonTCMETValueMapProducer.h:84
cms::MuonTCMETValueMapProducer::beamSpot_
edm::Handle< reco::BeamSpot > beamSpot_
Definition: MuonTCMETValueMapProducer.h:49
edm::InputTag
Definition: InputTag.h:15
alongMomentum
Definition: PropagationDirection.h:4
TrajectoryStateOnSurface::isValid
bool isValid() const
Definition: TrajectoryStateOnSurface.h:54
cms::MuonTCMETValueMapProducer::beamSpotToken_
edm::EDGetTokenT< reco::BeamSpot > beamSpotToken_
Definition: MuonTCMETValueMapProducer.h:53
AnalyticalPropagator::propagate
TrajectoryStateOnSurface propagate(STA const &state, SUR const &surface) const
Definition: Propagator.h:50
cms::MuonTCMETValueMapProducer::trkAlgos_
std::vector< reco::TrackBase::TrackAlgorithm > trkAlgos_
Definition: MuonTCMETValueMapProducer.h:91
cms::MuonTCMETValueMapProducer::hasValidVertex
bool hasValidVertex
Definition: MuonTCMETValueMapProducer.h:65
cms
Namespace of DDCMS conversion namespace.
Definition: ProducerAnalyzer.cc:21