CMS 3D CMS Logo

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

#include <L2MuonSeedGeneratorFromL1TkMu.h>

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

Public Member Functions

 L2MuonSeedGeneratorFromL1TkMu (const edm::ParameterSet &)
 Constructor. More...
 
void produce (edm::Event &, const edm::EventSetup &) override
 
 ~L2MuonSeedGeneratorFromL1TkMu () override
 Destructor. More...
 
- 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

const TrajectorySeedassociateOfflineSeedToL1 (edm::Handle< edm::View< TrajectorySeed > > &, std::vector< int > &, TrajectoryStateOnSurface &, double)
 

Private Attributes

std::vector< double > etaBins
 
std::vector< double > matchingDR
 
edm::EDGetTokenT< l1t::TkMuonCollectionmuCollToken_
 
edm::EDGetTokenT< edm::View< TrajectorySeed > > offlineSeedToken_
 
MeasurementEstimatortheEstimator
 
const double theL1MaxEta
 
const double theL1MinPt
 
const double theMinPL1Tk
 
const double theMinPtBarrel
 
const double theMinPtEndcap
 
const double theMinPtL1TkBarrel
 
edm::InputTag theOfflineSeedLabel
 
std::string thePropagatorName
 
MuonServiceProxytheService
 the event setup proxy, it takes care the services update More...
 
edm::InputTag theSource
 
const bool useOfflineSeed
 
const bool useUnassociatedL1
 

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 47 of file L2MuonSeedGeneratorFromL1TkMu.h.

Constructor & Destructor Documentation

◆ L2MuonSeedGeneratorFromL1TkMu()

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

Constructor.

Definition at line 41 of file L2MuonSeedGeneratorFromL1TkMu.cc.

42  : theSource(iConfig.getParameter<InputTag>("InputObjects")),
43  thePropagatorName(iConfig.getParameter<string>("Propagator")),
44  theL1MinPt(iConfig.getParameter<double>("L1MinPt")),
45  theL1MaxEta(iConfig.getParameter<double>("L1MaxEta")),
46  theMinPtBarrel(iConfig.getParameter<double>("SetMinPtBarrelTo")),
47  theMinPtEndcap(iConfig.getParameter<double>("SetMinPtEndcapTo")),
48  theMinPL1Tk(iConfig.getParameter<double>("MinPL1Tk")),
49  theMinPtL1TkBarrel(iConfig.getParameter<double>("MinPtL1TkBarrel")),
50  useOfflineSeed(iConfig.getUntrackedParameter<bool>("UseOfflineSeed", false)),
51  useUnassociatedL1(iConfig.getParameter<bool>("UseUnassociatedL1")),
52  matchingDR(iConfig.getParameter<std::vector<double>>("MatchDR")),
53  etaBins(iConfig.getParameter<std::vector<double>>("EtaMatchingBins")) {
54  muCollToken_ = consumes<l1t::TkMuonCollection>(theSource);
55 
56  if (useOfflineSeed) {
57  theOfflineSeedLabel = iConfig.getUntrackedParameter<InputTag>("OfflineSeedLabel");
58  offlineSeedToken_ = consumes<edm::View<TrajectorySeed>>(theOfflineSeedLabel);
59 
60  // check that number of eta bins -1 matches number of dR cones
61  if (matchingDR.size() != etaBins.size() - 1) {
62  throw cms::Exception("Configuration") << "Size of MatchDR "
63  << "does not match number of eta bins." << endl;
64  }
65  }
66 
67  // service parameters
68  ParameterSet serviceParameters = iConfig.getParameter<ParameterSet>("ServiceParameters");
69 
70  // the services
71  theService = new MuonServiceProxy(serviceParameters, consumesCollector());
72 
73  // the estimator
75 
76  produces<L2MuonTrajectorySeedCollection>();
77 }

References Chi2MeasurementEstimator_cfi::Chi2MeasurementEstimator, etaBins, Exception, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), matchingDR, muCollToken_, MuonServiceProxy_cff::MuonServiceProxy, offlineSeedToken_, theEstimator, theOfflineSeedLabel, theService, theSource, and useOfflineSeed.

◆ ~L2MuonSeedGeneratorFromL1TkMu()

L2MuonSeedGeneratorFromL1TkMu::~L2MuonSeedGeneratorFromL1TkMu ( )
override

Destructor.

Definition at line 80 of file L2MuonSeedGeneratorFromL1TkMu.cc.

80  {
81  if (theService)
82  delete theService;
83  if (theEstimator)
84  delete theEstimator;
85 }

References theEstimator, and theService.

Member Function Documentation

◆ associateOfflineSeedToL1()

const TrajectorySeed * L2MuonSeedGeneratorFromL1TkMu::associateOfflineSeedToL1 ( edm::Handle< edm::View< TrajectorySeed > > &  ,
std::vector< int > &  ,
TrajectoryStateOnSurface ,
double   
)
private

Definition at line 339 of file L2MuonSeedGeneratorFromL1TkMu.cc.

343  {
344  const std::string metlabel = "Muon|RecoMuon|L2MuonSeedGeneratorFromL1TkMu";
345  MuonPatternRecoDumper debugtmp;
346 
347  edm::View<TrajectorySeed>::const_iterator offseed, endOffseed = offseeds->end();
348  const TrajectorySeed *selOffseed = nullptr;
349  double bestDr = 99999.;
350  unsigned int nOffseed(0);
351  int lastOffseed(-1);
352 
353  for (offseed = offseeds->begin(); offseed != endOffseed; ++offseed, ++nOffseed) {
354  if (offseedMap[nOffseed] != 0)
355  continue;
356  GlobalPoint glbPos = theService->trackingGeometry()
357  ->idToDet(offseed->startingState().detId())
358  ->surface()
359  .toGlobal(offseed->startingState().parameters().position());
360  GlobalVector glbMom = theService->trackingGeometry()
361  ->idToDet(offseed->startingState().detId())
362  ->surface()
363  .toGlobal(offseed->startingState().parameters().momentum());
364 
365  // Preliminary check
366  double preDr = deltaR(newTsos.globalPosition().eta(), newTsos.globalPosition().phi(), glbPos.eta(), glbPos.phi());
367  if (preDr > 1.0)
368  continue;
369 
370  const FreeTrajectoryState offseedFTS(
371  glbPos, glbMom, offseed->startingState().parameters().charge(), &*theService->magneticField());
372  TrajectoryStateOnSurface offseedTsos =
373  theService->propagator(thePropagatorName)->propagate(offseedFTS, newTsos.surface());
374  LogDebug(metlabel) << "Offline seed info: Det and State" << std::endl;
375  LogDebug(metlabel) << debugtmp.dumpMuonId(offseed->startingState().detId()) << std::endl;
376  LogDebug(metlabel) << "pos: (r=" << offseedFTS.position().mag() << ", phi=" << offseedFTS.position().phi()
377  << ", eta=" << offseedFTS.position().eta() << ")" << std::endl;
378  LogDebug(metlabel) << "mom: (q*pt=" << offseedFTS.charge() * offseedFTS.momentum().perp()
379  << ", phi=" << offseedFTS.momentum().phi() << ", eta=" << offseedFTS.momentum().eta() << ")"
380  << std::endl
381  << std::endl;
382 
383  if (offseedTsos.isValid()) {
384  LogDebug(metlabel) << "Offline seed info after propagation to L1 layer:" << std::endl;
385  LogDebug(metlabel) << "pos: (r=" << offseedTsos.globalPosition().mag()
386  << ", phi=" << offseedTsos.globalPosition().phi()
387  << ", eta=" << offseedTsos.globalPosition().eta() << ")" << std::endl;
388  LogDebug(metlabel) << "mom: (q*pt=" << offseedTsos.charge() * offseedTsos.globalMomentum().perp()
389  << ", phi=" << offseedTsos.globalMomentum().phi()
390  << ", eta=" << offseedTsos.globalMomentum().eta() << ")" << std::endl
391  << std::endl;
392  double newDr = deltaR(newTsos.globalPosition().eta(),
393  newTsos.globalPosition().phi(),
394  offseedTsos.globalPosition().eta(),
395  offseedTsos.globalPosition().phi());
396  LogDebug(metlabel) << " -- DR = " << newDr << std::endl;
397  if (newDr < dRcone && newDr < bestDr) {
398  LogDebug(metlabel) << " --> OK! " << newDr << std::endl << std::endl;
399  selOffseed = &*offseed;
400  bestDr = newDr;
401  offseedMap[nOffseed] = 1;
402  if (lastOffseed > -1)
403  offseedMap[lastOffseed] = 0;
404  lastOffseed = nOffseed;
405  } else {
406  LogDebug(metlabel) << " --> Rejected. " << newDr << std::endl << std::endl;
407  }
408  } else {
409  LogDebug(metlabel) << "Invalid offline seed TSOS after propagation!" << std::endl << std::endl;
410  }
411  }
412 
413  return selOffseed;
414 }

References edm::View< T >::begin(), PbPb_ZMuSkimMuonDPG_cff::deltaR, PFRecoTauChargedHadronBuilderPlugins_cfi::dRcone, MuonPatternRecoDumper::dumpMuonId(), PV3DBase< T, PVType, FrameType >::eta(), TrajectoryStateOnSurface::globalPosition(), LogDebug, PV3DBase< T, PVType, FrameType >::phi(), Geom::Phi< T1, Range >::phi(), AlCaHLTBitMon_QueryRunRegistry::string, TrajectoryStateOnSurface::surface(), thePropagatorName, and theService.

Referenced by produce().

◆ fillDescriptions()

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

Definition at line 87 of file L2MuonSeedGeneratorFromL1TkMu.cc.

87  {
89  desc.add<edm::InputTag>("InputObjects", edm::InputTag("hltGmtStage2Digis"));
90  desc.add<string>("Propagator", "");
91  desc.add<double>("L1MinPt", -1.);
92  desc.add<double>("L1MaxEta", 5.0);
93  desc.add<double>("SetMinPtBarrelTo", 3.5);
94  desc.add<double>("SetMinPtEndcapTo", 1.0);
95  desc.add<double>("MinPL1Tk", 3.5);
96  desc.add<double>("MinPtL1TkBarrel", 3.5);
97  desc.addUntracked<bool>("UseOfflineSeed", false);
98  desc.add<bool>("UseUnassociatedL1", true);
99  desc.add<std::vector<double>>("MatchDR", {0.3});
100  desc.add<std::vector<double>>("EtaMatchingBins", {0., 2.5});
101  desc.addUntracked<edm::InputTag>("OfflineSeedLabel", edm::InputTag(""));
102 
104  psd0.addUntracked<std::vector<std::string>>("Propagators", {"SteppingHelixPropagatorAny"});
105  psd0.add<bool>("RPCLayers", true);
106  psd0.addUntracked<bool>("UseMuonNavigation", true);
107  desc.add<edm::ParameterSetDescription>("ServiceParameters", psd0);
108  descriptions.add("L2MuonSeedGeneratorFromL1TkMu", desc);
109 }

References edm::ConfigurationDescriptions::add(), edm::ParameterSetDescription::add(), edm::ParameterSetDescription::addUntracked(), and HLT_2018_cff::InputTag.

◆ produce()

void L2MuonSeedGeneratorFromL1TkMu::produce ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
override

Definition at line 111 of file L2MuonSeedGeneratorFromL1TkMu.cc.

111  {
112  const std::string metname = "Muon|RecoMuon|L2MuonSeedGeneratorFromL1TkMu";
114 
115  auto output = std::make_unique<L2MuonTrajectorySeedCollection>();
116 
118  iEvent.getByToken(muCollToken_, muColl);
119  LogDebug(metname) << "Number of muons " << muColl->size() << endl;
120 
121  edm::Handle<edm::View<TrajectorySeed>> offlineSeedHandle;
122  vector<int> offlineSeedMap;
123  if (useOfflineSeed) {
124  iEvent.getByToken(offlineSeedToken_, offlineSeedHandle);
125  offlineSeedMap = vector<int>(offlineSeedHandle->size(), 0);
126  }
127 
128  for (auto ittkmu = muColl->begin(); ittkmu != muColl->end(); ittkmu++) {
129  // L1 tracker track
130  auto it = ittkmu->trkPtr();
131 
132  // propagate to GMT
133  auto p3 = it->momentum();
134  float tk_pt = p3.perp();
135  float tk_p = p3.mag();
136  float tk_eta = p3.eta();
137  float tk_aeta = std::abs(tk_eta);
138  float tk_phi = p3.phi();
139  float tk_q = it->rInv() > 0 ? 1. : -1.;
140  float tk_z = it->POCA().z();
141 
142  if (tk_p < theMinPL1Tk)
143  continue;
144  if (tk_aeta < 1.1 && tk_pt < theMinPtL1TkBarrel)
145  continue;
146 
147  float dzCorrPhi = 1.;
148  float deta = 0;
149  float etaProp = tk_aeta;
150 
151  if (tk_aeta < 1.1) {
152  etaProp = 1.1;
153  deta = tk_z / 550. / cosh(tk_aeta);
154  } else {
155  float delta = tk_z / 850.; //roughly scales as distance to 2nd station
156  if (tk_eta > 0)
157  delta *= -1;
158  dzCorrPhi = 1. + delta;
159 
160  float zOzs = tk_z / 850.;
161  if (tk_eta > 0)
162  deta = zOzs / (1. - zOzs);
163  else
164  deta = zOzs / (1. + zOzs);
165  deta = deta * tanh(tk_eta);
166  }
167  float resPhi = tk_phi - 1.464 * tk_q * cosh(1.7) / cosh(etaProp) / tk_pt * dzCorrPhi - M_PI / 144.;
168  resPhi = reco::reduceRange(resPhi);
169 
170  float pt = tk_pt; //not corrected for eloss
171  float eta = tk_eta + deta;
172  float theta = 2 * atan(exp(-eta));
173  float phi = resPhi;
174  int charge = it->rInv() > 0 ? 1 : -1;
175 
176  bool barrel = tk_aeta < 1.1 ? true : false;
177 
178  if (pt < theL1MinPt || fabs(eta) > theL1MaxEta)
179  continue;
180 
181  LogDebug(metname) << "New L2 Muon Seed";
182  LogDebug(metname) << "Pt = " << pt << " GeV/c";
183  LogDebug(metname) << "eta = " << eta;
184  LogDebug(metname) << "theta = " << theta << " rad";
185  LogDebug(metname) << "phi = " << phi << " rad";
186  LogDebug(metname) << "charge = " << charge;
187  LogDebug(metname) << "In Barrel? = " << barrel;
188 
189  // Update the services
190  theService->update(iSetup);
191 
192  const DetLayer *detLayer = nullptr;
193  float radius = 0.;
194 
195  CLHEP::Hep3Vector vec(0., 1., 0.);
196  vec.setTheta(theta);
197  vec.setPhi(phi);
198 
199  DetId theid;
200  // Get the det layer on which the state should be put
201  if (barrel) {
202  LogDebug(metname) << "The seed is in the barrel";
203 
204  // MB2
205  theid = DTChamberId(0, 2, 0);
206  detLayer = theService->detLayerGeometry()->idToLayer(theid);
207  LogDebug(metname) << "L2 Layer: " << debug.dumpLayer(detLayer);
208 
209  const BoundSurface *sur = &(detLayer->surface());
210  const BoundCylinder *bc = dynamic_cast<const BoundCylinder *>(sur);
211 
212  radius = fabs(bc->radius() / sin(theta));
213 
214  LogDebug(metname) << "radius " << radius;
215 
216  if (pt < theMinPtBarrel)
217  pt = theMinPtBarrel;
218  } else {
219  LogDebug(metname) << "The seed is in the endcap";
220 
221  // ME2
222  theid = theta < Geom::pi() / 2. ? CSCDetId(1, 2, 0, 0, 0) : CSCDetId(2, 2, 0, 0, 0);
223 
224  detLayer = theService->detLayerGeometry()->idToLayer(theid);
225  LogDebug(metname) << "L2 Layer: " << debug.dumpLayer(detLayer);
226 
227  radius = fabs(detLayer->position().z() / cos(theta));
228 
229  if (pt < theMinPtEndcap)
230  pt = theMinPtEndcap;
231  }
232 
233  vec.setMag(radius);
234 
235  GlobalPoint pos(vec.x(), vec.y(), vec.z());
236 
237  GlobalVector mom(pt * cos(phi), pt * sin(phi), pt * cos(theta) / sin(theta));
238 
239  GlobalTrajectoryParameters param(pos, mom, charge, &*theService->magneticField());
241 
242  mat[0][0] = (0.25 / pt) * (0.25 / pt); // sigma^2(charge/abs_momentum)
243  if (!barrel)
244  mat[0][0] = (0.4 / pt) * (0.4 / pt);
245 
246  mat[1][1] = 0.05 * 0.05; // sigma^2(lambda)
247  mat[2][2] = 0.2 * 0.2; // sigma^2(phi)
248  mat[3][3] = 20. * 20.; // sigma^2(x_transverse))
249  mat[4][4] = 20. * 20.; // sigma^2(y_transverse))
250 
252 
253  const FreeTrajectoryState state(param, error);
254 
255  LogDebug(metname) << "Free trajectory State from the parameters";
256  LogDebug(metname) << debug.dumpFTS(state);
257 
258  // Propagate the state on the MB2/ME2 surface
259  TrajectoryStateOnSurface tsos = theService->propagator(thePropagatorName)->propagate(state, detLayer->surface());
260 
261  LogDebug(metname) << "State after the propagation on the layer";
262  LogDebug(metname) << debug.dumpLayer(detLayer);
263  LogDebug(metname) << debug.dumpTSOS(tsos);
264 
265  double dRcone = matchingDR[0];
266  if (fabs(eta) < etaBins.back()) {
267  std::vector<double>::iterator lowEdge = std::upper_bound(etaBins.begin(), etaBins.end(), fabs(eta));
268  dRcone = matchingDR.at(lowEdge - etaBins.begin() - 1);
269  }
270 
271  if (tsos.isValid()) {
273 
274  if (useOfflineSeed) {
275  // Get the compatible dets on the layer
276  std::vector<pair<const GeomDet *, TrajectoryStateOnSurface>> detsWithStates =
277  detLayer->compatibleDets(tsos, *theService->propagator(thePropagatorName), *theEstimator);
278 
279  if (detsWithStates.empty() && barrel) {
280  // Fallback solution using ME2, try again to propagate but using ME2 as reference
281  DetId fallback_id;
282  theta < Geom::pi() / 2. ? fallback_id = CSCDetId(1, 2, 0, 0, 0) : fallback_id = CSCDetId(2, 2, 0, 0, 0);
283  const DetLayer *ME2DetLayer = theService->detLayerGeometry()->idToLayer(fallback_id);
284 
285  tsos = theService->propagator(thePropagatorName)->propagate(state, ME2DetLayer->surface());
286  detsWithStates = ME2DetLayer->compatibleDets(tsos, *theService->propagator(thePropagatorName), *theEstimator);
287  }
288 
289  if (!detsWithStates.empty()) {
290  TrajectoryStateOnSurface newTSOS = detsWithStates.front().second;
291  const GeomDet *newTSOSDet = detsWithStates.front().first;
292 
293  LogDebug(metname) << "Most compatible det";
294  LogDebug(metname) << debug.dumpMuonId(newTSOSDet->geographicalId());
295 
296  if (newTSOS.isValid()) {
297  LogDebug(metname) << "pos: (r=" << newTSOS.globalPosition().mag()
298  << ", phi=" << newTSOS.globalPosition().phi()
299  << ", eta=" << newTSOS.globalPosition().eta() << ")";
300  LogDebug(metname) << "mom: (q*pt=" << newTSOS.charge() * newTSOS.globalMomentum().perp()
301  << ", phi=" << newTSOS.globalMomentum().phi()
302  << ", eta=" << newTSOS.globalMomentum().eta() << ")";
303 
304  const TrajectorySeed *assoOffseed =
305  associateOfflineSeedToL1(offlineSeedHandle, offlineSeedMap, newTSOS, dRcone);
306 
307  if (assoOffseed != nullptr) {
308  PTrajectoryStateOnDet const &seedTSOS = assoOffseed->startingState();
309  TrajectorySeed::const_iterator tsci = assoOffseed->recHits().first, tscie = assoOffseed->recHits().second;
310  for (; tsci != tscie; ++tsci) {
311  container.push_back(*tsci);
312  }
313  auto dummyRef = edm::Ref<MuonBxCollection>();
314  output->push_back(L2MuonTrajectorySeed(seedTSOS, container, alongMomentum, dummyRef));
315  } else {
316  if (useUnassociatedL1) {
317  // convert the TSOS into a PTSOD
318  PTrajectoryStateOnDet const &seedTSOS =
320  auto dummyRef = edm::Ref<MuonBxCollection>();
321  output->push_back(L2MuonTrajectorySeed(seedTSOS, container, alongMomentum, dummyRef));
322  }
323  }
324  }
325  }
326  } else {
327  // convert the TSOS into a PTSOD
329  auto dummyRef = edm::Ref<MuonBxCollection>();
330  output->push_back(L2MuonTrajectorySeed(seedTSOS, container, alongMomentum, dummyRef));
331  }
332  }
333  }
334 
335  iEvent.put(std::move(output));
336 }

References funct::abs(), alongMomentum, associateOfflineSeedToL1(), Reference_intrackfit_cff::barrel, ALCARECOTkAlJpsiMuMu_cff::charge, TrajectoryStateOnSurface::charge(), GeometricSearchDet::compatibleDets(), funct::cos(), debug, dumpMFGeometry_cfg::delta, PFRecoTauChargedHadronBuilderPlugins_cfi::dRcone, relativeConstraints::error, PVValHelper::eta, PV3DBase< T, PVType, FrameType >::eta(), etaBins, JetChargeProducer_cfi::exp, GeomDet::geographicalId(), TrajectoryStateOnSurface::globalMomentum(), TrajectoryStateOnSurface::globalPosition(), iEvent, TrajectoryStateOnSurface::isValid(), LogDebug, M_PI, PV3DBase< T, PVType, FrameType >::mag(), matchingDR, metname, eostools::move(), muCollToken_, offlineSeedToken_, convertSQLitetoXML_cfg::output, p3, PV3DBase< T, PVType, FrameType >::perp(), trajectoryStateTransform::persistentState(), phi, PV3DBase< T, PVType, FrameType >::phi(), Geom::pi(), GeometricSearchDet::position(), DiDispStaMuonMonitor_cfi::pt, edm::OwnVector< T, P >::push_back(), CosmicsPD_Skims::radius, DetId::rawId(), TrajectorySeed::recHits(), reco::reduceRange(), funct::sin(), TrajectorySeed::startingState(), AlCaHLTBitMon_QueryRunRegistry::string, GeometricSearchDet::surface(), theEstimator, theL1MaxEta, theL1MinPt, theMinPL1Tk, theMinPtBarrel, theMinPtEndcap, theMinPtL1TkBarrel, thePropagatorName, theService, theta(), funct::true, cuda_std::upper_bound(), useOfflineSeed, useUnassociatedL1, and PV3DBase< T, PVType, FrameType >::z().

Member Data Documentation

◆ etaBins

std::vector<double> L2MuonSeedGeneratorFromL1TkMu::etaBins
private

Definition at line 75 of file L2MuonSeedGeneratorFromL1TkMu.h.

Referenced by L2MuonSeedGeneratorFromL1TkMu(), and produce().

◆ matchingDR

std::vector<double> L2MuonSeedGeneratorFromL1TkMu::matchingDR
private

Definition at line 74 of file L2MuonSeedGeneratorFromL1TkMu.h.

Referenced by L2MuonSeedGeneratorFromL1TkMu(), and produce().

◆ muCollToken_

edm::EDGetTokenT<l1t::TkMuonCollection> L2MuonSeedGeneratorFromL1TkMu::muCollToken_
private

Definition at line 63 of file L2MuonSeedGeneratorFromL1TkMu.h.

Referenced by L2MuonSeedGeneratorFromL1TkMu(), and produce().

◆ offlineSeedToken_

edm::EDGetTokenT<edm::View<TrajectorySeed> > L2MuonSeedGeneratorFromL1TkMu::offlineSeedToken_
private

Definition at line 64 of file L2MuonSeedGeneratorFromL1TkMu.h.

Referenced by L2MuonSeedGeneratorFromL1TkMu(), and produce().

◆ theEstimator

MeasurementEstimator* L2MuonSeedGeneratorFromL1TkMu::theEstimator
private

◆ theL1MaxEta

const double L2MuonSeedGeneratorFromL1TkMu::theL1MaxEta
private

Definition at line 67 of file L2MuonSeedGeneratorFromL1TkMu.h.

Referenced by produce().

◆ theL1MinPt

const double L2MuonSeedGeneratorFromL1TkMu::theL1MinPt
private

Definition at line 66 of file L2MuonSeedGeneratorFromL1TkMu.h.

Referenced by produce().

◆ theMinPL1Tk

const double L2MuonSeedGeneratorFromL1TkMu::theMinPL1Tk
private

Definition at line 70 of file L2MuonSeedGeneratorFromL1TkMu.h.

Referenced by produce().

◆ theMinPtBarrel

const double L2MuonSeedGeneratorFromL1TkMu::theMinPtBarrel
private

Definition at line 68 of file L2MuonSeedGeneratorFromL1TkMu.h.

Referenced by produce().

◆ theMinPtEndcap

const double L2MuonSeedGeneratorFromL1TkMu::theMinPtEndcap
private

Definition at line 69 of file L2MuonSeedGeneratorFromL1TkMu.h.

Referenced by produce().

◆ theMinPtL1TkBarrel

const double L2MuonSeedGeneratorFromL1TkMu::theMinPtL1TkBarrel
private

Definition at line 71 of file L2MuonSeedGeneratorFromL1TkMu.h.

Referenced by produce().

◆ theOfflineSeedLabel

edm::InputTag L2MuonSeedGeneratorFromL1TkMu::theOfflineSeedLabel
private

Definition at line 60 of file L2MuonSeedGeneratorFromL1TkMu.h.

Referenced by L2MuonSeedGeneratorFromL1TkMu().

◆ thePropagatorName

std::string L2MuonSeedGeneratorFromL1TkMu::thePropagatorName
private

Definition at line 61 of file L2MuonSeedGeneratorFromL1TkMu.h.

Referenced by associateOfflineSeedToL1(), and produce().

◆ theService

MuonServiceProxy* L2MuonSeedGeneratorFromL1TkMu::theService
private

the event setup proxy, it takes care the services update

Definition at line 78 of file L2MuonSeedGeneratorFromL1TkMu.h.

Referenced by associateOfflineSeedToL1(), L2MuonSeedGeneratorFromL1TkMu(), produce(), and ~L2MuonSeedGeneratorFromL1TkMu().

◆ theSource

edm::InputTag L2MuonSeedGeneratorFromL1TkMu::theSource
private

Definition at line 59 of file L2MuonSeedGeneratorFromL1TkMu.h.

Referenced by L2MuonSeedGeneratorFromL1TkMu().

◆ useOfflineSeed

const bool L2MuonSeedGeneratorFromL1TkMu::useOfflineSeed
private

Definition at line 72 of file L2MuonSeedGeneratorFromL1TkMu.h.

Referenced by L2MuonSeedGeneratorFromL1TkMu(), and produce().

◆ useUnassociatedL1

const bool L2MuonSeedGeneratorFromL1TkMu::useUnassociatedL1
private

Definition at line 73 of file L2MuonSeedGeneratorFromL1TkMu.h.

Referenced by produce().

Vector3DBase
Definition: Vector3DBase.h:8
L2MuonSeedGeneratorFromL1TkMu::theOfflineSeedLabel
edm::InputTag theOfflineSeedLabel
Definition: L2MuonSeedGeneratorFromL1TkMu.h:60
edm::ParameterSetDescription::add
ParameterDescriptionBase * add(U const &iLabel, T const &value)
Definition: ParameterSetDescription.h:95
Reference_intrackfit_cff.barrel
list barrel
Definition: Reference_intrackfit_cff.py:37
GeomDet
Definition: GeomDet.h:27
DetLayer
Definition: DetLayer.h:21
MuonPatternRecoDumper::dumpMuonId
std::string dumpMuonId(const DetId &id) const
Definition: MuonPatternRecoDumper.cc:66
L2MuonSeedGeneratorFromL1TkMu::useUnassociatedL1
const bool useUnassociatedL1
Definition: L2MuonSeedGeneratorFromL1TkMu.h:73
DiDispStaMuonMonitor_cfi.pt
pt
Definition: DiDispStaMuonMonitor_cfi.py:39
convertSQLitetoXML_cfg.output
output
Definition: convertSQLitetoXML_cfg.py:32
trajectoryStateTransform::persistentState
PTrajectoryStateOnDet persistentState(const TrajectoryStateOnSurface &ts, unsigned int detid)
Definition: TrajectoryStateTransform.cc:14
TrajectoryStateOnSurface::globalPosition
GlobalPoint globalPosition() const
Definition: TrajectoryStateOnSurface.h:65
L2MuonSeedGeneratorFromL1TkMu::thePropagatorName
std::string thePropagatorName
Definition: L2MuonSeedGeneratorFromL1TkMu.h:61
pos
Definition: PixelAliasList.h:18
edm::ParameterSetDescription
Definition: ParameterSetDescription.h:52
TrajectoryStateOnSurface::charge
TrackCharge charge() const
Definition: TrajectoryStateOnSurface.h:68
TrajectorySeed::const_iterator
recHitContainer::const_iterator const_iterator
Definition: TrajectorySeed.h:20
Surface
Definition: Surface.h:36
L2MuonSeedGeneratorFromL1TkMu::theL1MaxEta
const double theL1MaxEta
Definition: L2MuonSeedGeneratorFromL1TkMu.h:67
GeometricSearchDet::compatibleDets
virtual std::vector< DetWithState > compatibleDets(const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est) const
Definition: GeometricSearchDet.cc:35
edm::ParameterSet::getUntrackedParameter
T getUntrackedParameter(std::string const &, T const &) const
L2MuonSeedGeneratorFromL1TkMu::muCollToken_
edm::EDGetTokenT< l1t::TkMuonCollection > muCollToken_
Definition: L2MuonSeedGeneratorFromL1TkMu.h:63
GeometricSearchDet::position
virtual const Surface::PositionType & position() const
Returns position of the surface.
Definition: GeometricSearchDet.h:31
edm::Handle
Definition: AssociativeIterator.h:50
relativeConstraints.error
error
Definition: relativeConstraints.py:53
L2MuonSeedGeneratorFromL1TkMu::useOfflineSeed
const bool useOfflineSeed
Definition: L2MuonSeedGeneratorFromL1TkMu.h:72
MuonServiceProxy_cff.MuonServiceProxy
MuonServiceProxy
Definition: MuonServiceProxy_cff.py:15
edm::Ref< MuonBxCollection >
funct::sin
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
PV3DBase::z
T z() const
Definition: PV3DBase.h:61
L2MuonSeedGeneratorFromL1TkMu::associateOfflineSeedToL1
const TrajectorySeed * associateOfflineSeedToL1(edm::Handle< edm::View< TrajectorySeed > > &, std::vector< int > &, TrajectoryStateOnSurface &, double)
Definition: L2MuonSeedGeneratorFromL1TkMu.cc:339
DetId
Definition: DetId.h:17
TrajectoryStateOnSurface
Definition: TrajectoryStateOnSurface.h:16
L2MuonSeedGeneratorFromL1TkMu::theL1MinPt
const double theL1MinPt
Definition: L2MuonSeedGeneratorFromL1TkMu.h:66
debug
#define debug
Definition: HDRShower.cc:19
L2MuonSeedGeneratorFromL1TkMu::theMinPL1Tk
const double theMinPL1Tk
Definition: L2MuonSeedGeneratorFromL1TkMu.h:70
funct::cos
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
CurvilinearTrajectoryError
Definition: CurvilinearTrajectoryError.h:27
edm::ConfigurationDescriptions::add
void add(std::string const &label, ParameterSetDescription const &psetDescription)
Definition: ConfigurationDescriptions.cc:57
MuonPatternRecoDumper
Definition: MuonPatternRecoDumper.h:18
cuda_std::upper_bound
__host__ constexpr __device__ RandomIt upper_bound(RandomIt first, RandomIt last, const T &value, Compare comp={})
Definition: cudastdAlgorithm.h:45
PVValHelper::eta
Definition: PVValidationHelpers.h:69
Chi2MeasurementEstimator_cfi.Chi2MeasurementEstimator
Chi2MeasurementEstimator
Definition: Chi2MeasurementEstimator_cfi.py:5
Geom::pi
constexpr double pi()
Definition: Pi.h:31
theta
Geom::Theta< T > theta() const
Definition: Basic3DVectorLD.h:150
GlobalTrajectoryParameters
Definition: GlobalTrajectoryParameters.h:15
Point3DBase< float, GlobalTag >
PbPb_ZMuSkimMuonDPG_cff.deltaR
deltaR
Definition: PbPb_ZMuSkimMuonDPG_cff.py:63
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
ALCARECOTkAlJpsiMuMu_cff.charge
charge
Definition: ALCARECOTkAlJpsiMuMu_cff.py:47
funct::true
true
Definition: Factorize.h:173
GeomDet::geographicalId
DetId geographicalId() const
The label of this GeomDet.
Definition: GeomDet.h:64
edm::ParameterSetDescription::addUntracked
ParameterDescriptionBase * addUntracked(U const &iLabel, T const &value)
Definition: ParameterSetDescription.h:100
HLT_2018_cff.InputTag
InputTag
Definition: HLT_2018_cff.py:79016
LogDebug
#define LogDebug(id)
Definition: MessageLogger.h:670
edm::ParameterSet
Definition: ParameterSet.h:36
L2MuonSeedGeneratorFromL1TkMu::theMinPtEndcap
const double theMinPtEndcap
Definition: L2MuonSeedGeneratorFromL1TkMu.h:69
dumpMFGeometry_cfg.delta
delta
Definition: dumpMFGeometry_cfg.py:25
CSCDetId
Definition: CSCDetId.h:26
PV3DBase::eta
T eta() const
Definition: PV3DBase.h:73
iEvent
int iEvent
Definition: GenABIO.cc:224
M_PI
#define M_PI
Definition: BXVectorInputProducer.cc:50
L2MuonSeedGeneratorFromL1TkMu::theService
MuonServiceProxy * theService
the event setup proxy, it takes care the services update
Definition: L2MuonSeedGeneratorFromL1TkMu.h:78
L2MuonSeedGeneratorFromL1TkMu::theEstimator
MeasurementEstimator * theEstimator
Definition: L2MuonSeedGeneratorFromL1TkMu.h:80
DDAxes::phi
PV3DBase::mag
T mag() const
Definition: PV3DBase.h:64
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
L2MuonTrajectorySeed
Definition: L2MuonTrajectorySeed.h:17
TrajectoryStateOnSurface::globalMomentum
GlobalVector globalMomentum() const
Definition: TrajectoryStateOnSurface.h:66
eostools.move
def move(src, dest)
Definition: eostools.py:511
L2MuonSeedGeneratorFromL1TkMu::theSource
edm::InputTag theSource
Definition: L2MuonSeedGeneratorFromL1TkMu.h:59
DetId::rawId
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
L2MuonSeedGeneratorFromL1TkMu::matchingDR
std::vector< double > matchingDR
Definition: L2MuonSeedGeneratorFromL1TkMu.h:74
FreeTrajectoryState
Definition: FreeTrajectoryState.h:27
Exception
Definition: hltDiff.cc:246
CosmicsPD_Skims.radius
radius
Definition: CosmicsPD_Skims.py:135
TrajectorySeed::recHits
range recHits() const
Definition: TrajectorySeed.h:52
L2MuonSeedGeneratorFromL1TkMu::etaBins
std::vector< double > etaBins
Definition: L2MuonSeedGeneratorFromL1TkMu.h:75
GeometricSearchDet::surface
virtual const BoundSurface & surface() const =0
The surface of the GeometricSearchDet.
TrajectorySeed
Definition: TrajectorySeed.h:17
BoundCylinder
p3
double p3[4]
Definition: TauolaWrapper.h:91
edm::OwnVector::push_back
void push_back(D *&d)
Definition: OwnVector.h:326
edm::View::const_iterator
boost::indirect_iterator< typename seq_t::const_iterator > const_iterator
Definition: View.h:86
TrajectorySeed::startingState
PTrajectoryStateOnDet const & startingState() const
Definition: TrajectorySeed.h:55
L2MuonSeedGeneratorFromL1TkMu::offlineSeedToken_
edm::EDGetTokenT< edm::View< TrajectorySeed > > offlineSeedToken_
Definition: L2MuonSeedGeneratorFromL1TkMu.h:64
PFRecoTauChargedHadronBuilderPlugins_cfi.dRcone
dRcone
Definition: PFRecoTauChargedHadronBuilderPlugins_cfi.py:46
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
DTChamberId
Definition: DTChamberId.h:14
PTrajectoryStateOnDet
Definition: PTrajectoryStateOnDet.h:10
L2MuonSeedGeneratorFromL1TkMu::theMinPtL1TkBarrel
const double theMinPtL1TkBarrel
Definition: L2MuonSeedGeneratorFromL1TkMu.h:71
JetChargeProducer_cfi.exp
exp
Definition: JetChargeProducer_cfi.py:6
AlgebraicSymMatrix55
ROOT::Math::SMatrix< double, 5, 5, ROOT::Math::MatRepSym< double, 5 > > AlgebraicSymMatrix55
Definition: AlgebraicROOTObjects.h:23
PV3DBase::perp
T perp() const
Definition: PV3DBase.h:69
edm::InputTag
Definition: InputTag.h:15
alongMomentum
Definition: PropagationDirection.h:4
PV3DBase::phi
Geom::Phi< T > phi() const
Definition: PV3DBase.h:66
TrajectoryStateOnSurface::isValid
bool isValid() const
Definition: TrajectoryStateOnSurface.h:54
edm::OwnVector< TrackingRecHit >
L2MuonSeedGeneratorFromL1TkMu::theMinPtBarrel
const double theMinPtBarrel
Definition: L2MuonSeedGeneratorFromL1TkMu.h:68
metname
const std::string metname
Definition: MuonSeedOrcaPatternRecognition.cc:43
reco::reduceRange
constexpr T reduceRange(T x)
Definition: deltaPhi.h:18