CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes
GlobalTrackQualityProducer Class Reference

#include <GlobalTrackQualityProducer.h>

Inheritance diagram for GlobalTrackQualityProducer:
edm::stream::EDProducer<>

Public Member Functions

 GlobalTrackQualityProducer (const edm::ParameterSet &iConfig)
 
 ~GlobalTrackQualityProducer () override
 
- Public Member Functions inherited from edm::stream::EDProducer<>
 EDProducer ()=default
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndRuns () const final
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 

Private Member Functions

virtual std::pair< double, double > kink (Trajectory &muon) const
 
virtual std::pair< double, double > newChi2 (Trajectory &muon) const
 
void produce (edm::Event &, const edm::EventSetup &) override
 
virtual double trackProbability (Trajectory &track) const
 

Private Attributes

edm::EDGetTokenT< reco::TrackCollectionglbMuonsToken
 
edm::InputTag inputCollection_
 
edm::InputTag inputLinksCollection_
 
edm::EDGetTokenT< reco::MuonTrackLinksCollectionlinkCollectionToken
 
MeasurementEstimatortheEstimator
 
GlobalMuonTrackMatchertheGlbMatcher
 
GlobalMuonRefittertheGlbRefitter
 
MuonServiceProxytheService
 

Additional Inherited Members

- Public Types inherited from edm::stream::EDProducer<>
typedef CacheContexts< T... > CacheTypes
 
typedef CacheTypes::GlobalCache GlobalCache
 
typedef AbilityChecker< T... > HasAbility
 
typedef CacheTypes::LuminosityBlockCache LuminosityBlockCache
 
typedef LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCacheLuminosityBlockContext
 
typedef CacheTypes::LuminosityBlockSummaryCache LuminosityBlockSummaryCache
 
typedef CacheTypes::RunCache RunCache
 
typedef RunContextT< RunCache, GlobalCacheRunContext
 
typedef CacheTypes::RunSummaryCache RunSummaryCache
 

Detailed Description

Definition at line 28 of file GlobalTrackQualityProducer.h.

Constructor & Destructor Documentation

◆ GlobalTrackQualityProducer()

GlobalTrackQualityProducer::GlobalTrackQualityProducer ( const edm::ParameterSet iConfig)
explicit

Definition at line 28 of file GlobalTrackQualityProducer.cc.

29  : inputCollection_(iConfig.getParameter<edm::InputTag>("InputCollection")),
30  inputLinksCollection_(iConfig.getParameter<edm::InputTag>("InputLinksCollection")),
31  theService(nullptr),
32  theGlbRefitter(nullptr),
33  theGlbMatcher(nullptr) {
34  // service parameters
35  edm::ParameterSet serviceParameters = iConfig.getParameter<edm::ParameterSet>("ServiceParameters");
36  theService = new MuonServiceProxy(serviceParameters, consumesCollector());
37 
38  // TrackRefitter parameters
39  edm::ConsumesCollector iC = consumesCollector();
40  edm::ParameterSet refitterParameters = iConfig.getParameter<edm::ParameterSet>("RefitterParameters");
41  theGlbRefitter = new GlobalMuonRefitter(refitterParameters, theService, iC);
42 
43  edm::ParameterSet trackMatcherPSet = iConfig.getParameter<edm::ParameterSet>("GlobalMuonTrackMatcher");
44  theGlbMatcher = new GlobalMuonTrackMatcher(trackMatcherPSet, theService);
45 
46  double maxChi2 = iConfig.getParameter<double>("MaxChi2");
47  double nSigma = iConfig.getParameter<double>("nSigma");
49 
50  glbMuonsToken = consumes<reco::TrackCollection>(inputCollection_);
51  linkCollectionToken = consumes<reco::MuonTrackLinksCollection>(inputLinksCollection_);
52 
53  produces<edm::ValueMap<reco::MuonQuality>>();
54 }

References Chi2MeasurementEstimator_cfi::Chi2MeasurementEstimator, edm::ParameterSet::getParameter(), glbMuonsToken, GlobalMuonRefitter_cff::GlobalMuonRefitter, HLT_2018_cff::GlobalMuonTrackMatcher, inputCollection_, inputLinksCollection_, linkCollectionToken, beam_dqm_sourceclient-live_cfg::maxChi2, MuonServiceProxy_cff::MuonServiceProxy, HLTSiStripMonitoring_cff::nSigma, theEstimator, theGlbMatcher, theGlbRefitter, and theService.

◆ ~GlobalTrackQualityProducer()

GlobalTrackQualityProducer::~GlobalTrackQualityProducer ( )
override

Definition at line 56 of file GlobalTrackQualityProducer.cc.

56  {
57  if (theService)
58  delete theService;
59  if (theGlbRefitter)
60  delete theGlbRefitter;
61  if (theGlbMatcher)
62  delete theGlbMatcher;
63  if (theEstimator)
64  delete theEstimator;
65 }

References theEstimator, theGlbMatcher, theGlbRefitter, and theService.

Member Function Documentation

◆ fillDescriptions()

void GlobalTrackQualityProducer::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

Definition at line 319 of file GlobalTrackQualityProducer.cc.

319  {
321  {
323  psd1.setAllowAnything();
324  desc.add<edm::ParameterSetDescription>("ServiceParameters", psd1);
325  }
326  {
328  psd1.setAllowAnything();
329  desc.add<edm::ParameterSetDescription>("GlobalMuonTrackMatcher", psd1);
330  }
331  desc.add<edm::InputTag>("InputCollection", edm::InputTag("globalMuons"));
332  desc.add<edm::InputTag>("InputLinksCollection", edm::InputTag("globalMuons"));
333  desc.add<std::string>("BaseLabel", "GLB");
334  {
335  edm::ParameterSetDescription descGlbMuonRefitter;
336  descGlbMuonRefitter.setAllowAnything();
337  descGlbMuonRefitter.add<edm::InputTag>("DTRecSegmentLabel", edm::InputTag("dt1DRecHits"));
338  descGlbMuonRefitter.add<edm::InputTag>("CSCRecSegmentLabel", edm::InputTag("csc2DRecHits"));
339  descGlbMuonRefitter.add<edm::InputTag>("GEMRecHitLabel", edm::InputTag("gemRecHits"));
340  descGlbMuonRefitter.add<edm::InputTag>("ME0RecHitLabel", edm::InputTag("me0Segments"));
341  descGlbMuonRefitter.add<edm::InputTag>("RPCRecSegmentLabel", edm::InputTag("rpcRecHits"));
342 
343  descGlbMuonRefitter.add<std::string>("Fitter", "KFFitterForRefitInsideOut");
344  descGlbMuonRefitter.add<std::string>("Smoother", "KFSmootherForRefitInsideOut");
345  descGlbMuonRefitter.add<std::string>("Propagator", "SmartPropagatorAnyRK");
346  descGlbMuonRefitter.add<std::string>("TrackerRecHitBuilder", "WithAngleAndTemplate");
347  descGlbMuonRefitter.add<std::string>("MuonRecHitBuilder", "MuonRecHitBuilder");
348  descGlbMuonRefitter.add<bool>("DoPredictionsOnly", false);
349  descGlbMuonRefitter.add<std::string>("RefitDirection", "insideOut");
350  descGlbMuonRefitter.add<bool>("PropDirForCosmics", false);
351  descGlbMuonRefitter.add<bool>("RefitRPCHits", true);
352 
353  descGlbMuonRefitter.add<std::vector<int>>("DYTthrs", {10, 10});
354  descGlbMuonRefitter.add<int>("DYTselector", 1);
355  descGlbMuonRefitter.add<bool>("DYTupdator", false);
356  descGlbMuonRefitter.add<bool>("DYTuseAPE", false);
357  descGlbMuonRefitter.add<bool>("DYTuseThrsParametrization", true);
358  {
359  edm::ParameterSetDescription descDYTthrs;
360  descDYTthrs.add<std::vector<double>>("eta0p8", {1, -0.919853, 0.990742});
361  descDYTthrs.add<std::vector<double>>("eta1p2", {1, -0.897354, 0.987738});
362  descDYTthrs.add<std::vector<double>>("eta2p0", {4, -0.986855, 0.998516});
363  descDYTthrs.add<std::vector<double>>("eta2p2", {1, -0.940342, 0.992955});
364  descDYTthrs.add<std::vector<double>>("eta2p4", {1, -0.947633, 0.993762});
365  descGlbMuonRefitter.add<edm::ParameterSetDescription>("DYTthrsParameters", descDYTthrs);
366  }
367 
368  descGlbMuonRefitter.add<int>("SkipStation", -1);
369  descGlbMuonRefitter.add<int>("TrackerSkipSystem", -1);
370  descGlbMuonRefitter.add<int>("TrackerSkipSection", -1);
371  descGlbMuonRefitter.add<bool>("RefitFlag", true);
372 
373  desc.add<edm::ParameterSetDescription>("RefitterParameters", descGlbMuonRefitter);
374  }
375  desc.add<double>("nSigma", 3.0);
376  desc.add<double>("MaxChi2", 100000.0);
377 
378  descriptions.add("globalTrackQualityProducer", desc);
379 }

References edm::ConfigurationDescriptions::add(), edm::ParameterSetDescription::add(), HLT_2018_cff::InputTag, edm::ParameterSetDescription::setAllowAnything(), and AlCaHLTBitMon_QueryRunRegistry::string.

◆ kink()

std::pair< double, double > GlobalTrackQualityProducer::kink ( Trajectory muon) const
privatevirtual

Definition at line 184 of file GlobalTrackQualityProducer.cc.

184  {
185  const std::string theCategory = "Muon|RecoMuon|GlobalTrackQualityProducer";
186 
187  using namespace std;
188  using namespace edm;
189  using namespace reco;
190 
191  double result = 0.0;
192  double resultGlb = 0.0;
193 
195  typedef ConstRecHitPointer RecHit;
196  typedef std::vector<TrajectoryMeasurement>::const_iterator TMI;
197 
198  vector<TrajectoryMeasurement> meas = muon.measurements();
199 
200  for (TMI m = meas.begin(); m != meas.end(); m++) {
202 
203  //not used double estimate = 0.0;
204 
205  RecHit rhit = (*m).recHit();
206  bool ok = false;
207  if (rhit->isValid()) {
208  if (DetId::Tracker == rhit->geographicalId().det())
209  ok = true;
210  }
211 
212  //if ( !ok ) continue;
213 
214  const TrajectoryStateOnSurface& tsos = (*m).predictedState();
215 
216  if (tsos.isValid() && rhit->isValid() && rhit->hit()->isValid() &&
217  !edm::isNotFinite(rhit->localPositionError().xx()) //this is paranoia induced by reported case
218  && !edm::isNotFinite(rhit->localPositionError().xy()) //it's better to track down the origin of bad numbers
219  && !edm::isNotFinite(rhit->localPositionError().yy())) {
220  double phi1 = tsos.globalPosition().phi();
221  if (phi1 < 0)
222  phi1 = 2 * M_PI + phi1;
223 
224  double phi2 = rhit->globalPosition().phi();
225  if (phi2 < 0)
226  phi2 = 2 * M_PI + phi2;
227 
228  double diff = fabs(phi1 - phi2);
229  if (diff > M_PI)
230  diff = 2 * M_PI - diff;
231 
232  GlobalPoint hitPos = rhit->globalPosition();
233 
234  GlobalError hitErr = rhit->globalPositionError();
235  //LogDebug(theCategory)<<"hitPos " << hitPos;
236  double error = hitErr.phierr(hitPos); // error squared
237 
238  double s = (error > 0.0) ? (diff * diff) / error : (diff * diff);
239 
240  if (ok)
241  result += s;
242  resultGlb += s;
243  }
244  }
245 
246  return std::pair<double, double>(result, resultGlb);
247 }

References change_name::diff, relativeConstraints::error, TrajectoryStateOnSurface::globalPosition(), edm::isNotFinite(), TrajectoryStateOnSurface::isValid(), visualization-live-secondInstance_cfg::m, M_PI, convertSQLiteXML::ok, PV3DBase< T, PVType, FrameType >::phi(), GlobalErrorBase< T, ErrorWeightType >::phierr(), mps_fire::result, alignCSCRings::s, AlCaHLTBitMon_QueryRunRegistry::string, and DetId::Tracker.

Referenced by produce().

◆ newChi2()

std::pair< double, double > GlobalTrackQualityProducer::newChi2 ( Trajectory muon) const
privatevirtual

Definition at line 249 of file GlobalTrackQualityProducer.cc.

249  {
250  const std::string theCategory = "Muon|RecoMuon|GlobalTrackQualityProducer";
251 
252  using namespace std;
253  using namespace edm;
254  using namespace reco;
255 
256  double muChi2 = 0.0;
257  double tkChi2 = 0.0;
258  unsigned int muNdof = 0;
259  unsigned int tkNdof = 0;
260 
262  typedef ConstRecHitPointer RecHit;
263  typedef vector<TrajectoryMeasurement>::const_iterator TMI;
264 
265  vector<TrajectoryMeasurement> meas = muon.measurements();
266 
267  for (TMI m = meas.begin(); m != meas.end(); m++) {
269  const TrajectoryStateOnSurface& uptsos = (*m).updatedState();
270  // FIXME FIXME CLONE!!!
271  // TrackingRecHit::RecHitPointer preciseHit = hit->clone(uptsos);
272  const auto& preciseHit = hit;
273  double estimate = 0.0;
274  if (preciseHit->isValid() && uptsos.isValid()) {
275  estimate = theEstimator->estimate(uptsos, *preciseHit).second;
276  }
277 
278  //LogTrace(theCategory) << "estimate " << estimate << " TM.est " << m->estimate();
279  //UNUSED: double tkDiff = 0.0;
280  //UNUSED: double staDiff = 0.0;
281  if (hit->isValid() && (hit->geographicalId().det()) == DetId::Tracker) {
282  tkChi2 += estimate;
283  //UNUSED: tkDiff = estimate - m->estimate();
284  tkNdof += hit->dimension();
285  }
286  if (hit->isValid() && (hit->geographicalId().det()) == DetId::Muon) {
287  muChi2 += estimate;
288  //UNUSED staDiff = estimate - m->estimate();
289  muNdof += hit->dimension();
290  }
291  }
292 
293  //For tkNdof < 6, should a large number or something else
294  // be used instead of just tkChi2 directly?
295  if (tkNdof > 5) {
296  tkChi2 /= (tkNdof - 5.);
297  }
298 
299  //For muNdof < 6, should a large number or something else
300  // be used instead of just muChi2 directly?
301  if (muNdof > 5) {
302  muChi2 /= (muNdof - 5.);
303  }
304 
305  return std::pair<double, double>(tkChi2, muChi2);
306 }

References MeasurementEstimator::estimate(), TrajectoryStateOnSurface::isValid(), visualization-live-secondInstance_cfg::m, DetId::Muon, AlCaHLTBitMon_QueryRunRegistry::string, theEstimator, and DetId::Tracker.

Referenced by produce().

◆ produce()

void GlobalTrackQualityProducer::produce ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
overrideprivate

Definition at line 67 of file GlobalTrackQualityProducer.cc.

67  {
68  const std::string theCategory = "Muon|RecoMuon|GlobalTrackQualityProducer";
69 
70  theService->update(iSetup);
71 
73 
75 
76  // Take the GLB muon container(s)
78  iEvent.getByToken(glbMuonsToken, glbMuons);
79 
81  iEvent.getByToken(linkCollectionToken, linkCollectionHandle);
82 
83  //Retrieve tracker topology from geometry
85  iSetup.get<TrackerTopologyRcd>().get(tTopoHand);
86  const TrackerTopology* tTopo = tTopoHand.product();
87 
88  // reserve some space
89  std::vector<reco::MuonQuality> valuesQual;
90  valuesQual.reserve(glbMuons->size());
91 
92  int trackIndex = 0;
93  for (reco::TrackCollection::const_iterator track = glbMuons->begin(); track != glbMuons->end();
94  ++track, ++trackIndex) {
95  reco::TrackRef glbRef(glbMuons, trackIndex);
96  reco::TrackRef staTrack = reco::TrackRef();
97 
98  std::vector<Trajectory> refitted = theGlbRefitter->refit(*track, 1, tTopo);
99 
100  LogTrace(theCategory) << "GLBQual N refitted " << refitted.size();
101 
102  std::pair<double, double> thisKink;
103  double relative_muon_chi2 = 0.0;
104  double relative_tracker_chi2 = 0.0;
105  double glbTrackProbability = 0.0;
106  if (!refitted.empty()) {
107  thisKink = kink(refitted.front());
108  std::pair<double, double> chi = newChi2(refitted.front());
109  relative_muon_chi2 = chi.second; //normalized inside to /sum(muHits.dimension)
110  relative_tracker_chi2 = chi.first; //normalized inside to /sum(tkHits.dimension)
111  glbTrackProbability = trackProbability(refitted.front());
112  }
113 
114  LogTrace(theCategory) << "GLBQual: Kink " << thisKink.first << " " << thisKink.second;
115  LogTrace(theCategory) << "GLBQual: Rel Chi2 " << relative_tracker_chi2 << " " << relative_muon_chi2;
116  LogTrace(theCategory) << "GLBQual: trackProbability " << glbTrackProbability;
117 
118  // Fill the STA-TK match information
119  float chi2, d, dist, Rpos;
120  chi2 = d = dist = Rpos = -1.0;
121  bool passTight = false;
123  if (linkCollectionHandle.isValid()) {
124  for (reco::MuonTrackLinksCollection::const_iterator links = linkCollectionHandle->begin();
125  links != linkCollectionHandle->end();
126  ++links) {
127  if (links->trackerTrack().isNull() || links->standAloneTrack().isNull() || links->globalTrack().isNull()) {
128  edm::LogWarning(theCategory) << "Global muon links to constituent tracks are invalid. There should be no "
129  "such object. Muon is skipped.";
130  continue;
131  }
132  if (links->globalTrack() == glbRef) {
133  staTrack = !links->standAloneTrack().isNull() ? links->standAloneTrack() : reco::TrackRef();
134  TrackCand staCand = TrackCand((Trajectory*)nullptr, links->standAloneTrack());
135  TrackCand tkCand = TrackCand((Trajectory*)nullptr, links->trackerTrack());
136  chi2 = theGlbMatcher->match(staCand, tkCand, 0, 0);
137  d = theGlbMatcher->match(staCand, tkCand, 1, 0);
138  Rpos = theGlbMatcher->match(staCand, tkCand, 2, 0);
139  dist = theGlbMatcher->match(staCand, tkCand, 3, 0);
140  passTight = theGlbMatcher->matchTight(staCand, tkCand);
141  }
142  }
143  }
144 
145  if (!staTrack.isNull())
146  LogTrace(theCategory) << "GLBQual: Used UpdatedAtVtx : "
147  << (iEvent.getProvenance(staTrack.id()).productInstanceName() ==
148  std::string("UpdatedAtVtx"));
149 
150  float maxFloat01 =
151  std::numeric_limits<float>::max() * 0.1; // a better solution would be to use float above .. m/be not
152  reco::MuonQuality muQual;
153  if (!staTrack.isNull())
154  muQual.updatedSta = iEvent.getProvenance(staTrack.id()).productInstanceName() == std::string("UpdatedAtVtx");
155  muQual.trkKink = thisKink.first > maxFloat01 ? maxFloat01 : thisKink.first;
156  muQual.glbKink = thisKink.second > maxFloat01 ? maxFloat01 : thisKink.second;
157  muQual.trkRelChi2 = relative_tracker_chi2 > maxFloat01 ? maxFloat01 : relative_tracker_chi2;
158  muQual.staRelChi2 = relative_muon_chi2 > maxFloat01 ? maxFloat01 : relative_muon_chi2;
159  muQual.tightMatch = passTight;
160  muQual.chi2LocalPosition = dist;
161  muQual.chi2LocalMomentum = chi2;
162  muQual.localDistance = d;
163  muQual.globalDeltaEtaPhi = Rpos;
164  muQual.glbTrackProbability = glbTrackProbability;
165  valuesQual.push_back(muQual);
166  }
167 
168  /*
169  for(int i = 0; i < valuesTkRelChi2.size(); i++) {
170  LogTrace(theCategory)<<"value " << valuesTkRelChi2[i] ;
171  }
172  */
173 
174  // create and fill value maps
175  auto outQual = std::make_unique<edm::ValueMap<reco::MuonQuality>>();
176  edm::ValueMap<reco::MuonQuality>::Filler fillerQual(*outQual);
177  fillerQual.insert(glbMuons, valuesQual.begin(), valuesQual.end());
178  fillerQual.fill();
179 
180  // put value map into event
181  iEvent.put(std::move(outQual));
182 }

References hltPixelTracks_cff::chi2, reco::MuonQuality::chi2LocalMomentum, reco::MuonQuality::chi2LocalPosition, ztail::d, MuonServiceProxy::eventSetup(), edm::EventSetup::get(), get, reco::MuonQuality::glbKink, glbMuonsToken, reco::MuonQuality::glbTrackProbability, reco::MuonQuality::globalDeltaEtaPhi, edm::Ref< C, T, F >::id(), iEvent, edm::Ref< C, T, F >::isNull(), edm::HandleBase::isValid(), kink(), linkCollectionToken, electronStore::links, reco::MuonQuality::localDistance, LogTrace, GlobalMuonTrackMatcher::match(), GlobalMuonTrackMatcher::matchTight(), SiStripPI::max, eostools::move(), newChi2(), edm::ESHandle< T >::product(), GlobalMuonRefitter::refit(), GlobalMuonRefitter::setEvent(), GlobalMuonRefitter::setServices(), reco::MuonQuality::staRelChi2, AlCaHLTBitMon_QueryRunRegistry::string, theGlbMatcher, theGlbRefitter, theService, reco::MuonQuality::tightMatch, HLT_2018_cff::track, HLT_2018_cff::TrackCand, trackProbability(), reco::MuonQuality::trkKink, reco::MuonQuality::trkRelChi2, MuonServiceProxy::update(), and reco::MuonQuality::updatedSta.

◆ trackProbability()

double GlobalTrackQualityProducer::trackProbability ( Trajectory track) const
privatevirtual

Definition at line 311 of file GlobalTrackQualityProducer.cc.

311  {
312  if (track.ndof() > 0 && track.chiSquared() > 0) {
313  return -LnChiSquaredProbability(track.chiSquared(), track.ndof());
314  } else {
315  return 0.0;
316  }
317 }

References LnChiSquaredProbability(), and HLT_2018_cff::track.

Referenced by produce().

Member Data Documentation

◆ glbMuonsToken

edm::EDGetTokenT<reco::TrackCollection> GlobalTrackQualityProducer::glbMuonsToken
private

Definition at line 45 of file GlobalTrackQualityProducer.h.

Referenced by GlobalTrackQualityProducer(), and produce().

◆ inputCollection_

edm::InputTag GlobalTrackQualityProducer::inputCollection_
private

Definition at line 43 of file GlobalTrackQualityProducer.h.

Referenced by GlobalTrackQualityProducer().

◆ inputLinksCollection_

edm::InputTag GlobalTrackQualityProducer::inputLinksCollection_
private

Definition at line 44 of file GlobalTrackQualityProducer.h.

Referenced by GlobalTrackQualityProducer().

◆ linkCollectionToken

edm::EDGetTokenT<reco::MuonTrackLinksCollection> GlobalTrackQualityProducer::linkCollectionToken
private

Definition at line 46 of file GlobalTrackQualityProducer.h.

Referenced by GlobalTrackQualityProducer(), and produce().

◆ theEstimator

MeasurementEstimator* GlobalTrackQualityProducer::theEstimator
private

◆ theGlbMatcher

GlobalMuonTrackMatcher* GlobalTrackQualityProducer::theGlbMatcher
private

◆ theGlbRefitter

GlobalMuonRefitter* GlobalTrackQualityProducer::theGlbRefitter
private

◆ theService

MuonServiceProxy* GlobalTrackQualityProducer::theService
private
GlobalMuonRefitter_cff.GlobalMuonRefitter
GlobalMuonRefitter
Definition: GlobalMuonRefitter_cff.py:3
edm::ESHandle::product
T const * product() const
Definition: ESHandle.h:86
change_name.diff
diff
Definition: change_name.py:13
GlobalErrorBase::phierr
T phierr(const GlobalPoint &aPoint) const
Definition: GlobalErrorBase.h:149
edm::ParameterSetDescription::add
ParameterDescriptionBase * add(U const &iLabel, T const &value)
Definition: ParameterSetDescription.h:95
reco::MuonQuality
Definition: MuonQuality.h:6
GlobalTrackQualityProducer::theGlbRefitter
GlobalMuonRefitter * theGlbRefitter
Definition: GlobalTrackQualityProducer.h:48
muon
Definition: MuonCocktails.h:17
edm::isNotFinite
constexpr bool isNotFinite(T x)
Definition: isFinite.h:9
reco::MuonQuality::globalDeltaEtaPhi
float globalDeltaEtaPhi
global delta-Eta-Phi of STA-TK matching
Definition: MuonQuality.h:25
edm::Ref::isNull
bool isNull() const
Checks for null.
Definition: Ref.h:235
edm
HLT enums.
Definition: AlignableModifier.h:19
reco::MuonQuality::trkRelChi2
float trkRelChi2
chi2 value for the inner track stub with respect to the global track
Definition: MuonQuality.h:15
TrackerTopology
Definition: TrackerTopology.h:16
GlobalMuonTrackMatcher::match
double match(const TrackCand &sta, const TrackCand &track, int matchOption=0, int surfaceOption=1) const
Definition: GlobalMuonTrackMatcher.cc:100
TrajectoryStateOnSurface::globalPosition
GlobalPoint globalPosition() const
Definition: TrajectoryStateOnSurface.h:65
edm::ParameterSetDescription
Definition: ParameterSetDescription.h:52
reco::MuonQuality::localDistance
float localDistance
local distance seperation for STA-TK TSOS matching on same surface
Definition: MuonQuality.h:23
reco::MuonQuality::glbTrackProbability
float glbTrackProbability
the tail probability (-ln(P)) of the global fit
Definition: MuonQuality.h:29
beam_dqm_sourceclient-live_cfg.maxChi2
maxChi2
Definition: beam_dqm_sourceclient-live_cfg.py:139
HLT_2018_cff.TrackCand
TrackCand
Definition: HLT_2018_cff.py:20529
reco::MuonQuality::chi2LocalPosition
float chi2LocalPosition
chi2 value for the STA-TK matching of local position
Definition: MuonQuality.h:19
reco
fixed size matrix
Definition: AlignmentAlgorithmBase.h:45
hltPixelTracks_cff.chi2
chi2
Definition: hltPixelTracks_cff.py:25
convertSQLiteXML.ok
bool ok
Definition: convertSQLiteXML.py:98
edm::Handle< reco::TrackCollection >
relativeConstraints.error
error
Definition: relativeConstraints.py:53
GlobalTrackQualityProducer::theService
MuonServiceProxy * theService
Definition: GlobalTrackQualityProducer.h:47
MuonServiceProxy_cff.MuonServiceProxy
MuonServiceProxy
Definition: MuonServiceProxy_cff.py:15
edm::Ref< TrackCollection >
GlobalTrackQualityProducer::glbMuonsToken
edm::EDGetTokenT< reco::TrackCollection > glbMuonsToken
Definition: GlobalTrackQualityProducer.h:45
reco::MuonQuality::staRelChi2
float staRelChi2
chi2 value for the outer track stub with respect to the global track
Definition: MuonQuality.h:17
MeasurementEstimator::estimate
virtual HitReturnType estimate(const TrajectoryStateOnSurface &ts, const TrackingRecHit &hit) const =0
GlobalTrackQualityProducer::inputCollection_
edm::InputTag inputCollection_
Definition: GlobalTrackQualityProducer.h:43
TrajectoryStateOnSurface
Definition: TrajectoryStateOnSurface.h:16
alignCSCRings.s
s
Definition: alignCSCRings.py:92
ConstRecHitPointer
TransientTrackingRecHit::ConstRecHitPointer ConstRecHitPointer
Definition: MillePedeAlignmentAlgorithm.cc:75
reco::MuonQuality::updatedSta
bool updatedSta
bool returns true if standAloneMuon_updatedAtVtx was used in the fit
Definition: MuonQuality.h:9
edm::EventSetup::get
T get() const
Definition: EventSetup.h:73
edm::ConfigurationDescriptions::add
void add(std::string const &label, ParameterSetDescription const &psetDescription)
Definition: ConfigurationDescriptions.cc:57
LnChiSquaredProbability
float LnChiSquaredProbability(double chiSquared, double nrDOF)
Definition: ChiSquaredProbability.cc:17
visualization-live-secondInstance_cfg.m
m
Definition: visualization-live-secondInstance_cfg.py:72
Chi2MeasurementEstimator_cfi.Chi2MeasurementEstimator
Chi2MeasurementEstimator
Definition: Chi2MeasurementEstimator_cfi.py:5
edm::ESHandle< TrackerTopology >
Point3DBase< float, GlobalTag >
reco::TrackRef
edm::Ref< TrackCollection > TrackRef
persistent reference to a Track
Definition: TrackFwd.h:20
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
edm::LogWarning
Definition: MessageLogger.h:141
MuonServiceProxy::update
void update(const edm::EventSetup &setup, bool duringEvent=true)
update the services each event
Definition: MuonServiceProxy.cc:111
MuonServiceProxy::eventSetup
const edm::EventSetup & eventSetup() const
Definition: MuonServiceProxy.h:76
HLT_2018_cff.InputTag
InputTag
Definition: HLT_2018_cff.py:79016
edm::ParameterSet
Definition: ParameterSet.h:36
DetId::Tracker
Definition: DetId.h:25
reco::MuonQuality::trkKink
float trkKink
value of the kink algorithm applied to the inner track stub
Definition: MuonQuality.h:11
GlobalTrackQualityProducer::theGlbMatcher
GlobalMuonTrackMatcher * theGlbMatcher
Definition: GlobalTrackQualityProducer.h:49
SiStripPI::max
Definition: SiStripPayloadInspectorHelper.h:169
reco::MuonQuality::glbKink
float glbKink
value of the kink algorithm applied to the global track
Definition: MuonQuality.h:13
GlobalTrackQualityProducer::newChi2
virtual std::pair< double, double > newChi2(Trajectory &muon) const
Definition: GlobalTrackQualityProducer.cc:249
TrackingRecHit::ConstRecHitPointer
std::shared_ptr< TrackingRecHit const > ConstRecHitPointer
Definition: TrackingRecHit.h:25
iEvent
int iEvent
Definition: GenABIO.cc:224
M_PI
#define M_PI
Definition: BXVectorInputProducer.cc:50
GlobalErrorBase< double, ErrorMatrixTag >
edm::ParameterSetDescription::setAllowAnything
void setAllowAnything()
allow any parameter label/value pairs
Definition: ParameterSetDescription.cc:37
GlobalMuonRefitter::setServices
void setServices(const edm::EventSetup &)
set the services needed by the TrackTransformer
Definition: GlobalMuonRefitter.cc:163
get
#define get
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
edm::Ref::id
ProductID id() const
Accessor for product ID.
Definition: Ref.h:244
eostools.move
def move(src, dest)
Definition: eostools.py:511
std
Definition: JetResolutionObject.h:76
GlobalTrackQualityProducer::linkCollectionToken
edm::EDGetTokenT< reco::MuonTrackLinksCollection > linkCollectionToken
Definition: GlobalTrackQualityProducer.h:46
reco::MuonQuality::tightMatch
bool tightMatch
if the STA-TK matching passed the tighter matching criteria
Definition: MuonQuality.h:27
GlobalMuonRefitter::setEvent
virtual void setEvent(const edm::Event &)
pass the Event to the algo at each event
Definition: GlobalMuonRefitter.cc:153
GlobalTrackQualityProducer::kink
virtual std::pair< double, double > kink(Trajectory &muon) const
Definition: GlobalTrackQualityProducer.cc:184
Trajectory
Definition: Trajectory.h:38
HLT_2018_cff.GlobalMuonTrackMatcher
GlobalMuonTrackMatcher
Definition: HLT_2018_cff.py:8323
electronStore.links
links
Definition: electronStore.py:149
MuonTrajectoryBuilder::TrackCand
std::pair< const Trajectory *, reco::TrackRef > TrackCand
Definition: MuonTrajectoryBuilder.h:25
HLT_2018_cff.track
track
Definition: HLT_2018_cff.py:10352
ztail.d
d
Definition: ztail.py:151
mps_fire.result
result
Definition: mps_fire.py:303
DetId::Muon
Definition: DetId.h:26
edm::helper::Filler
Definition: ValueMap.h:22
GlobalTrackQualityProducer::theEstimator
MeasurementEstimator * theEstimator
Definition: GlobalTrackQualityProducer.h:50
LogTrace
#define LogTrace(id)
Definition: MessageLogger.h:671
TrackerTopologyRcd
Definition: TrackerTopologyRcd.h:10
reco::MuonQuality::chi2LocalMomentum
float chi2LocalMomentum
chi2 value for the STA-TK matching of local momentum
Definition: MuonQuality.h:21
GlobalTrackQualityProducer::inputLinksCollection_
edm::InputTag inputLinksCollection_
Definition: GlobalTrackQualityProducer.h:44
edm::HandleBase::isValid
bool isValid() const
Definition: HandleBase.h:70
GlobalMuonRefitter::refit
std::vector< Trajectory > refit(const reco::Track &globalTrack, const int theMuonHitsOption, const TrackerTopology *tTopo) const
build combined trajectory from sta Track and tracker RecHits
Definition: GlobalMuonRefitter.cc:182
HLTSiStripMonitoring_cff.nSigma
nSigma
Definition: HLTSiStripMonitoring_cff.py:151
edm::InputTag
Definition: InputTag.h:15
edm::ConsumesCollector
Definition: ConsumesCollector.h:39
PV3DBase::phi
Geom::Phi< T > phi() const
Definition: PV3DBase.h:66
GlobalTrackQualityProducer::trackProbability
virtual double trackProbability(Trajectory &track) const
Definition: GlobalTrackQualityProducer.cc:311
TrajectoryStateOnSurface::isValid
bool isValid() const
Definition: TrajectoryStateOnSurface.h:54
hit
Definition: SiStripHitEffFromCalibTree.cc:88
GlobalMuonTrackMatcher::matchTight
bool matchTight(const TrackCand &sta, const TrackCand &track) const
check if two tracks are compatible (less than Chi2Cut, DeltaDCut, DeltaRCut)
Definition: GlobalMuonTrackMatcher.cc:80