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 hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () 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
 
const edm::ESGetToken< TrackerTopology, TrackerTopologyRcdtTopoToken_
 

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

References Chi2MeasurementEstimator_cfi::Chi2MeasurementEstimator, edm::ParameterSet::getParameter(), glbMuonsToken, GlobalMuonRefitter_cff::GlobalMuonRefitter, HLT_FULL_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 57 of file GlobalTrackQualityProducer.cc.

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

References theEstimator, theGlbMatcher, theGlbRefitter, and theService.

Member Function Documentation

◆ fillDescriptions()

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

Definition at line 318 of file GlobalTrackQualityProducer.cc.

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

References edm::ConfigurationDescriptions::add(), edm::ParameterSetDescription::add(), submitPVResolutionJobs::desc, HLT_FULL_cff::InputTag, edm::ParameterSetDescription::setAllowAnything(), and AlCaHLTBitMon_QueryRunRegistry::string.

◆ kink()

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

Definition at line 183 of file GlobalTrackQualityProducer.cc.

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

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 248 of file GlobalTrackQualityProducer.cc.

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

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 68 of file GlobalTrackQualityProducer.cc.

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

References hltPixelTracks_cff::chi2, reco::MuonQuality::chi2LocalMomentum, reco::MuonQuality::chi2LocalPosition, ztail::d, MuonServiceProxy::eventSetup(), edm::EventSetup::getData(), 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(), GlobalMuonRefitter::refit(), GlobalMuonRefitter::setEvent(), GlobalMuonRefitter::setServices(), reco::MuonQuality::staRelChi2, AlCaHLTBitMon_QueryRunRegistry::string, theGlbMatcher, theGlbRefitter, theService, reco::MuonQuality::tightMatch, HLT_FULL_cff::track, HLT_FULL_cff::TrackCand, trackProbability(), reco::MuonQuality::trkKink, reco::MuonQuality::trkRelChi2, tTopoToken_, MuonServiceProxy::update(), and reco::MuonQuality::updatedSta.

◆ trackProbability()

double GlobalTrackQualityProducer::trackProbability ( Trajectory track) const
privatevirtual

Definition at line 310 of file GlobalTrackQualityProducer.cc.

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

References LnChiSquaredProbability(), and HLT_FULL_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

◆ tTopoToken_

const edm::ESGetToken<TrackerTopology, TrackerTopologyRcd> GlobalTrackQualityProducer::tTopoToken_
private

Definition at line 47 of file GlobalTrackQualityProducer.h.

Referenced by produce().

GlobalMuonRefitter_cff.GlobalMuonRefitter
GlobalMuonRefitter
Definition: GlobalMuonRefitter_cff.py:3
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
HLT_FULL_cff.track
track
Definition: HLT_FULL_cff.py:11779
GlobalTrackQualityProducer::theGlbRefitter
GlobalMuonRefitter * theGlbRefitter
Definition: GlobalTrackQualityProducer.h:49
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
HLT_FULL_cff.InputTag
InputTag
Definition: HLT_FULL_cff.py:89353
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:142
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:48
edm::LogWarning
Log< level::Warning, false > LogWarning
Definition: MessageLogger.h:122
MuonServiceProxy_cff.MuonServiceProxy
MuonServiceProxy
Definition: MuonServiceProxy_cff.py:14
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::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
GlobalTrackQualityProducer::tTopoToken_
const edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > tTopoToken_
Definition: GlobalTrackQualityProducer.h:47
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
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
edm::ParameterSet
Definition: ParameterSet.h:47
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:50
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
HLT_FULL_cff.TrackCand
TrackCand
Definition: HLT_FULL_cff.py:21935
GlobalTrackQualityProducer::newChi2
virtual std::pair< double, double > newChi2(Trajectory &muon) const
Definition: GlobalTrackQualityProducer.cc:248
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:49
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
edm::EventSetup::getData
bool getData(T &iHolder) const
Definition: EventSetup.h:120
HLT_FULL_cff.GlobalMuonTrackMatcher
GlobalMuonTrackMatcher
Definition: HLT_FULL_cff.py:9710
edm::Ref::id
ProductID id() const
Accessor for product ID.
Definition: Ref.h:244
submitPVResolutionJobs.desc
string desc
Definition: submitPVResolutionJobs.py:251
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:183
Trajectory
Definition: Trajectory.h:38
electronStore.links
links
Definition: electronStore.py:149
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
MuonTrajectoryBuilder::TrackCand
std::pair< const Trajectory *, reco::TrackRef > TrackCand
Definition: MuonTrajectoryBuilder.h:25
ztail.d
d
Definition: ztail.py:151
mps_fire.result
result
Definition: mps_fire.py:311
DetId::Muon
Definition: DetId.h:26
edm::helper::Filler
Definition: ValueMap.h:22
GlobalTrackQualityProducer::theEstimator
MeasurementEstimator * theEstimator
Definition: GlobalTrackQualityProducer.h:51
LogTrace
#define LogTrace(id)
Definition: MessageLogger.h:224
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:180
HLTSiStripMonitoring_cff.nSigma
nSigma
Definition: HLTSiStripMonitoring_cff.py:151
edm::InputTag
Definition: InputTag.h:15
edm::ConsumesCollector
Definition: ConsumesCollector.h:45
PV3DBase::phi
Geom::Phi< T > phi() const
Definition: PV3DBase.h:66
GlobalTrackQualityProducer::trackProbability
virtual double trackProbability(Trajectory &track) const
Definition: GlobalTrackQualityProducer.cc:310
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