CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Types | Public Member Functions | Static Public Member Functions | Private Attributes | Static Private Attributes
L1MuonSeededTrackingRegionsProducer Class Reference

#include <L1MuonSeededTrackingRegionsProducer.h>

Inheritance diagram for L1MuonSeededTrackingRegionsProducer:
TrackingRegionProducer

Public Types

enum  Mode { BEAM_SPOT_FIXED, BEAM_SPOT_SIGMA, VERTICES_FIXED, VERTICES_SIGMA }
 

Public Member Functions

 L1MuonSeededTrackingRegionsProducer (const edm::ParameterSet &iConfig, edm::ConsumesCollector &&iC)
 
std::vector< std::unique_ptr
< TrackingRegion > > 
regions (const edm::Event &iEvent, const edm::EventSetup &iSetup) const override
 
 ~L1MuonSeededTrackingRegionsProducer () override=default
 
- Public Member Functions inherited from TrackingRegionProducer
virtual ~TrackingRegionProducer ()
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 

Private Attributes

const bool centralBxOnly_
 
const double l1MaxEta_
 
const double l1MinPt_
 
const unsigned l1MinQuality_
 
std::vector< double > m_deltaEtas
 
std::vector< double > m_deltaPhis
 
int m_maxNRegions
 
int m_maxNVertices
 
Mode m_mode
 
float m_nSigmaZBeamSpot
 
float m_nSigmaZVertex
 
float m_originRadius
 
bool m_precise
 
float m_ptMin
 
std::vector< double > m_ptRanges
 
bool m_searchOpt
 
RectangularEtaPhiTrackingRegion::UseMeasurementTracker m_whereToUseMeasurementTracker
 
float m_zErrorBeamSpot
 
float m_zErrorVetex
 
const double minPtBarrel_
 
const double minPtEndcap_
 
const std::string propagatorName_
 
std::unique_ptr< MuonServiceProxyservice_
 
edm::EDGetTokenT< reco::BeamSpottoken_beamSpot
 
const edm::ESGetToken
< MagneticField,
IdealMagneticFieldRecord
token_field
 
edm::EDGetTokenT
< l1t::MuonBxCollection
token_input
 
edm::EDGetTokenT
< MeasurementTrackerEvent
token_measurementTracker
 
edm::ESGetToken
< MultipleScatteringParametrisationMaker,
TrackerMultipleScatteringRecord
token_msmaker
 
edm::EDGetTokenT
< reco::VertexCollection
token_vertex
 

Static Private Attributes

static constexpr int l1MuonTF_link_EMTFN_f_ {71}
 
static constexpr int l1MuonTF_link_EMTFN_i_ {66}
 
static constexpr int l1MuonTF_link_EMTFP_f_ {41}
 
static constexpr int l1MuonTF_link_EMTFP_i_ {36}
 
static constexpr double sigma_lambda_ {0.05}
 
static constexpr double sigma_phi_ {0.2}
 
static constexpr double sigma_qbpt_barrel_ {0.25}
 
static constexpr double sigma_qbpt_endcap_ {0.4}
 
static constexpr double sigma_qbpt_invalid_charge_ {1.0}
 
static constexpr double sigma_x_ {20.0}
 
static constexpr double sigma_y_ {20.0}
 

Detailed Description

class L1MuonSeededTrackingRegionsProducer

eta-phi TrackingRegions producer in directions defined by L1 muon objects of interest from a collection defined by the "input" parameter.

Four operational modes are supported ("mode" parameter):

BeamSpotFixed: origin is defined by the beam spot z-half-length is defined by a fixed zErrorBeamSpot parameter BeamSpotSigma: origin is defined by the beam spot z-half-length is defined by nSigmaZBeamSpot * beamSpot.sigmaZ VerticesFixed: origins are defined by vertices from VertexCollection (use maximum MaxNVertices of them) z-half-length is defined by a fixed zErrorVetex parameter VerticesSigma: origins are defined by vertices from VertexCollection (use maximum MaxNVertices of them) z-half-length is defined by nSigmaZVertex * vetex.zError

If, while using one of the "Vertices" modes, there's no vertices in an event, we fall back into either BeamSpotSigma or BeamSpotFixed mode, depending on the positiveness of nSigmaZBeamSpot.

Author
M. Oh. based on RecoTracker/TkTrackingRegions/plugins/CandidateSeededTrackingRegionsProducer.h

Definition at line 55 of file L1MuonSeededTrackingRegionsProducer.h.

Member Enumeration Documentation

Constructor & Destructor Documentation

L1MuonSeededTrackingRegionsProducer::L1MuonSeededTrackingRegionsProducer ( const edm::ParameterSet iConfig,
edm::ConsumesCollector &&  iC 
)
inlineexplicit

Definition at line 59 of file L1MuonSeededTrackingRegionsProducer.h.

References BEAM_SPOT_FIXED, BEAM_SPOT_SIGMA, edm::ParameterSet::getParameter(), RectangularEtaPhiTrackingRegion::kNever, m_deltaEtas, m_deltaPhis, m_maxNRegions, m_maxNVertices, m_mode, m_nSigmaZBeamSpot, m_nSigmaZVertex, m_originRadius, m_precise, m_ptMin, m_ptRanges, m_searchOpt, m_whereToUseMeasurementTracker, m_zErrorBeamSpot, m_zErrorVetex, eostools::move(), service_, AlCaHLTBitMon_QueryRunRegistry::string, RectangularEtaPhiTrackingRegion::stringToUseMeasurementTracker(), token_beamSpot, token_input, token_measurementTracker, token_msmaker, token_vertex, VERTICES_FIXED, and VERTICES_SIGMA.

60  : token_field(iC.esConsumes()),
61  l1MinPt_(iConfig.getParameter<double>("L1MinPt")),
62  l1MaxEta_(iConfig.getParameter<double>("L1MaxEta")),
63  l1MinQuality_(iConfig.getParameter<unsigned int>("L1MinQuality")),
64  minPtBarrel_(iConfig.getParameter<double>("SetMinPtBarrelTo")),
65  minPtEndcap_(iConfig.getParameter<double>("SetMinPtEndcapTo")),
66  centralBxOnly_(iConfig.getParameter<bool>("CentralBxOnly")),
67  propagatorName_(iConfig.getParameter<std::string>("Propagator")) {
68  edm::ParameterSet regPSet = iConfig.getParameter<edm::ParameterSet>("RegionPSet");
69 
70  // operation mode
71  std::string modeString = regPSet.getParameter<std::string>("mode");
72  if (modeString == "BeamSpotFixed")
74  else if (modeString == "BeamSpotSigma")
76  else if (modeString == "VerticesFixed")
78  else if (modeString == "VerticesSigma")
80  else
81  edm::LogError("L1MuonSeededTrackingRegionsProducer") << "Unknown mode string: " << modeString;
82 
83  // basic inputs
85  m_maxNRegions = regPSet.getParameter<int>("maxNRegions");
87  m_maxNVertices = 1;
89  token_vertex = iC.consumes<reco::VertexCollection>(regPSet.getParameter<edm::InputTag>("vertexCollection"));
90  m_maxNVertices = regPSet.getParameter<int>("maxNVertices");
91  }
92 
93  // RectangularEtaPhiTrackingRegion parameters:
94  m_ptMin = regPSet.getParameter<double>("ptMin");
95  m_originRadius = regPSet.getParameter<double>("originRadius");
96  m_zErrorBeamSpot = regPSet.getParameter<double>("zErrorBeamSpot");
97  m_ptRanges = regPSet.getParameter<std::vector<double>>("ptRanges");
98  if (m_ptRanges.size() < 2) {
99  edm::LogError("L1MuonSeededTrackingRegionsProducer") << "Size of ptRanges does not be less than 2" << std::endl;
100  }
101  m_deltaEtas = regPSet.getParameter<std::vector<double>>("deltaEtas");
102  if (m_deltaEtas.size() != m_ptRanges.size() - 1) {
103  edm::LogError("L1MuonSeededTrackingRegionsProducer")
104  << "Size of deltaEtas does not match number of pt bins." << std::endl;
105  }
106  m_deltaPhis = regPSet.getParameter<std::vector<double>>("deltaPhis");
107  if (m_deltaPhis.size() != m_ptRanges.size() - 1) {
108  edm::LogError("L1MuonSeededTrackingRegionsProducer")
109  << "Size of deltaPhis does not match number of pt bins." << std::endl;
110  }
111 
112  m_precise = regPSet.getParameter<bool>("precise");
114  regPSet.getParameter<std::string>("whereToUseMeasurementTracker"));
115  if (m_whereToUseMeasurementTracker != RectangularEtaPhiTrackingRegion::UseMeasurementTracker::kNever) {
117  iC.consumes<MeasurementTrackerEvent>(regPSet.getParameter<edm::InputTag>("measurementTrackerName"));
118  }
119 
120  m_searchOpt = regPSet.getParameter<bool>("searchOpt");
121 
122  // mode-dependent z-halflength of tracking regions
123  if (m_mode == VERTICES_SIGMA)
124  m_nSigmaZVertex = regPSet.getParameter<double>("nSigmaZVertex");
125  if (m_mode == VERTICES_FIXED)
126  m_zErrorVetex = regPSet.getParameter<double>("zErrorVetex");
127  m_nSigmaZBeamSpot = -1.;
128  if (m_mode == BEAM_SPOT_SIGMA) {
129  m_nSigmaZBeamSpot = regPSet.getParameter<double>("nSigmaZBeamSpot");
130  if (m_nSigmaZBeamSpot < 0.)
131  edm::LogError("L1MuonSeededTrackingRegionsProducer")
132  << "nSigmaZBeamSpot must be positive for BeamSpotSigma mode!";
133  }
134  if (m_precise) {
135  token_msmaker = iC.esConsumes();
136  }
137 
138  // MuonServiceProxy
139  edm::ParameterSet serviceParameters = iConfig.getParameter<edm::ParameterSet>("ServiceParameters");
140  service_ = std::make_unique<MuonServiceProxy>(serviceParameters, std::move(iC));
141  }
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
edm::EDGetTokenT< MeasurementTrackerEvent > token_measurementTracker
std::vector< Vertex > VertexCollection
collection of Vertex objects
Definition: VertexFwd.h:9
static UseMeasurementTracker stringToUseMeasurementTracker(const std::string &name)
edm::EDGetTokenT< l1t::MuonBxCollection > token_input
Log< level::Error, false > LogError
def move
Definition: eostools.py:511
edm::EDGetTokenT< reco::VertexCollection > token_vertex
const edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > token_field
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
RectangularEtaPhiTrackingRegion::UseMeasurementTracker m_whereToUseMeasurementTracker
edm::ESGetToken< MultipleScatteringParametrisationMaker, TrackerMultipleScatteringRecord > token_msmaker
L1MuonSeededTrackingRegionsProducer::~L1MuonSeededTrackingRegionsProducer ( )
overridedefault

Member Function Documentation

static void L1MuonSeededTrackingRegionsProducer::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
inlinestatic

Definition at line 145 of file L1MuonSeededTrackingRegionsProducer.h.

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

145  {
147 
148  // L1 muon selection parameters
149  desc.add<std::string>("Propagator", "");
150  desc.add<double>("L1MinPt", -1.);
151  desc.add<double>("L1MaxEta", 5.0);
152  desc.add<unsigned int>("L1MinQuality", 0);
153  desc.add<double>("SetMinPtBarrelTo", 3.5);
154  desc.add<double>("SetMinPtEndcapTo", 1.0);
155  desc.add<bool>("CentralBxOnly", true);
156 
157  // Tracking region parameters
158  edm::ParameterSetDescription descRegion;
159  descRegion.add<std::string>("mode", "BeamSpotSigma");
160  descRegion.add<edm::InputTag>("input", edm::InputTag(""));
161  descRegion.add<int>("maxNRegions", 10);
162  descRegion.add<edm::InputTag>("beamSpot", edm::InputTag("hltOnlineBeamSpot"));
163  descRegion.add<edm::InputTag>("vertexCollection", edm::InputTag("notUsed"));
164  descRegion.add<int>("maxNVertices", 1);
165  descRegion.add<double>("ptMin", 0.0);
166  descRegion.add<double>("originRadius", 0.2);
167  descRegion.add<double>("zErrorBeamSpot", 24.2);
168  descRegion.add<std::vector<double>>("ptRanges", {0., 1.e9});
169  descRegion.add<std::vector<double>>("deltaEtas", {0.35});
170  descRegion.add<std::vector<double>>("deltaPhis", {0.2});
171  descRegion.add<bool>("precise", true);
172  descRegion.add<double>("nSigmaZVertex", 3.);
173  descRegion.add<double>("zErrorVetex", 0.2);
174  descRegion.add<double>("nSigmaZBeamSpot", 4.);
175  descRegion.add<std::string>("whereToUseMeasurementTracker", "Never");
176  descRegion.add<edm::InputTag>("measurementTrackerName", edm::InputTag(""));
177  descRegion.add<bool>("searchOpt", false);
178  desc.add<edm::ParameterSetDescription>("RegionPSet", descRegion);
179 
180  // MuonServiceProxy for the propagation
182  psd0.addUntracked<std::vector<std::string>>("Propagators", {"SteppingHelixPropagatorAny"});
183  psd0.add<bool>("RPCLayers", false);
184  psd0.addUntracked<bool>("UseMuonNavigation", false);
185  desc.add<edm::ParameterSetDescription>("ServiceParameters", psd0);
186 
187  descriptions.add("hltIterL3MuonPixelTracksTrackingRegions", desc);
188  }
ParameterDescriptionBase * addUntracked(U const &iLabel, T const &value)
ParameterDescriptionBase * add(U const &iLabel, T const &value)
void add(std::string const &label, ParameterSetDescription const &psetDescription)
std::vector<std::unique_ptr<TrackingRegion> > L1MuonSeededTrackingRegionsProducer::regions ( const edm::Event iEvent,
const edm::EventSetup iSetup 
) const
inlineoverridevirtual

Implements TrackingRegionProducer.

Definition at line 190 of file L1MuonSeededTrackingRegionsProducer.h.

References funct::abs(), Reference_intrackfit_cff::barrel, BEAM_SPOT_FIXED, BEAM_SPOT_SIGMA, cms::cuda::bs, centralBxOnly_, RecoTauCleanerPlugins::charge, funct::cos(), CSCDetId, spr::deltaEta, srCondWrite_cfg::deltaPhi, DTChamberId, relativeConstraints::error, PVValHelper::eta, funct::exp(), first, edm::Event::get(), edm::Event::getByToken(), edm::EventSetup::getData(), edm::EDGetTokenT< T >::isUninitialized(), edm::HandleBase::isValid(), dqmiolumiharvest::j, l1MaxEta_, l1MinPt_, l1MinQuality_, l1MuonTF_link_EMTFN_f_, l1MuonTF_link_EMTFN_i_, l1MuonTF_link_EMTFP_f_, l1MuonTF_link_EMTFP_i_, MainPageGenerator::link, m_deltaEtas, m_deltaPhis, m_maxNRegions, m_maxNVertices, m_mode, m_nSigmaZBeamSpot, m_nSigmaZVertex, m_originRadius, M_PI, m_precise, m_ptMin, m_ptRanges, m_searchOpt, m_whereToUseMeasurementTracker, m_zErrorBeamSpot, m_zErrorVetex, HLT_FULL_cff::measurementTracker, minPtBarrel_, minPtEndcap_, FreeTrajectoryState::momentum(), phi, GeometricSearchDet::position(), edm::Handle< T >::product(), propagatorName_, DiDispStaMuonMonitor_cfi::pt, quality, CosmicsPD_Skims::radius, mps_fire::result, edm::second(), service_, sigma_lambda_, sigma_phi_, sigma_qbpt_barrel_, sigma_qbpt_endcap_, sigma_qbpt_invalid_charge_, sigma_x_, sigma_y_, funct::sin(), GeometricSearchDet::surface(), theta(), token_beamSpot, token_field, token_input, token_measurementTracker, token_msmaker, token_vertex, cuda_std::upper_bound(), findQualityFiles::v, beam_dqm_sourceclient-live_cfg::vertices, VERTICES_FIXED, VERTICES_SIGMA, PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().

191  {
192  std::vector<std::unique_ptr<TrackingRegion>> result;
193 
194  // pick up the candidate objects of interest
196  iEvent.getByToken(token_input, muColl);
197  if (muColl->size() == 0)
198  return result;
199 
200  // always need the beam spot (as a fall back strategy for vertex modes)
202  iEvent.getByToken(token_beamSpot, bs);
203  if (!bs.isValid())
204  return result;
205 
206  // this is a default origin for all modes
207  GlobalPoint default_origin(bs->x0(), bs->y0(), bs->z0());
208 
209  // vector of origin & halfLength pairs:
210  std::vector<std::pair<GlobalPoint, float>> origins;
211 
212  // fill the origins and halfLengths depending on the mode
214  origins.push_back(std::make_pair(
215  default_origin, (m_mode == BEAM_SPOT_FIXED) ? m_zErrorBeamSpot : m_nSigmaZBeamSpot * bs->sigmaZ()));
216  } else if (m_mode == VERTICES_FIXED || m_mode == VERTICES_SIGMA) {
218  iEvent.getByToken(token_vertex, vertices);
219  int n_vert = 0;
220  for (reco::VertexCollection::const_iterator v = vertices->begin();
221  v != vertices->end() && n_vert < m_maxNVertices;
222  ++v) {
223  if (v->isFake() || !v->isValid())
224  continue;
225 
226  origins.push_back(std::make_pair(GlobalPoint(v->x(), v->y(), v->z()),
227  (m_mode == VERTICES_FIXED) ? m_zErrorVetex : m_nSigmaZVertex * v->zError()));
228  ++n_vert;
229  }
230  // no-vertex fall-back case:
231  if (origins.empty()) {
232  origins.push_back(std::make_pair(
233  default_origin, (m_nSigmaZBeamSpot > 0.) ? m_nSigmaZBeamSpot * bs->z0Error() : m_zErrorBeamSpot));
234  }
235  }
236 
239  measurementTracker = &iEvent.get(token_measurementTracker);
240  }
241 
242  const auto& field = iSetup.getData(token_field);
243  const MultipleScatteringParametrisationMaker* msmaker = nullptr;
244  if (m_precise) {
245  msmaker = &iSetup.getData(token_msmaker);
246  }
247 
248  // create tracking regions (maximum MaxNRegions of them) in directions of the
249  // objects of interest (we expect that the collection was sorted in decreasing pt order)
250  int n_regions = 0;
251  for (int ibx = muColl->getFirstBX(); ibx <= muColl->getLastBX() && n_regions < m_maxNRegions; ++ibx) {
252  if (centralBxOnly_ && (ibx != 0))
253  continue;
254 
255  for (auto it = muColl->begin(ibx); it != muColl->end(ibx) && n_regions < m_maxNRegions; it++) {
256  unsigned int quality = it->hwQual();
257  if (quality <= l1MinQuality_)
258  continue;
259 
260  float pt = it->pt();
261  float eta = it->eta();
262  if (pt < l1MinPt_ || std::abs(eta) > l1MaxEta_)
263  continue;
264 
265  float theta = 2 * atan(exp(-eta));
266  float phi = it->phi();
267 
268  int valid_charge = it->hwChargeValid();
269  int charge = it->charge();
270  if (!valid_charge)
271  charge = 0;
272 
273  int link = l1MuonTF_link_EMTFP_i_ + (int)(it->tfMuonIndex() / 3.);
274  bool barrel = true;
275  if ((link >= l1MuonTF_link_EMTFP_i_ && link <= l1MuonTF_link_EMTFP_f_) ||
276  (link >= l1MuonTF_link_EMTFN_i_ && link <= l1MuonTF_link_EMTFN_f_))
277  barrel = false;
278 
279  // propagate L1 FTS to BS
280  service_->update(iSetup);
281  const DetLayer* detLayer = nullptr;
282  float radius = 0.;
283 
284  CLHEP::Hep3Vector vec(0., 1., 0.);
285  vec.setTheta(theta);
286  vec.setPhi(phi);
287 
288  DetId theid;
289  // Get the det layer on which the state should be put
290  if (barrel) {
291  // MB2
292  theid = DTChamberId(0, 2, 0);
293  detLayer = service_->detLayerGeometry()->idToLayer(theid);
294 
295  const BoundSurface* sur = &(detLayer->surface());
296  const BoundCylinder* bc = dynamic_cast<const BoundCylinder*>(sur);
297 
298  radius = std::abs(bc->radius() / sin(theta));
299 
300  if (pt < minPtBarrel_)
301  pt = minPtBarrel_;
302  } else {
303  // ME2
304  theid = theta < M_PI / 2. ? CSCDetId(1, 2, 0, 0, 0) : CSCDetId(2, 2, 0, 0, 0);
305 
306  detLayer = service_->detLayerGeometry()->idToLayer(theid);
307 
308  radius = std::abs(detLayer->position().z() / cos(theta));
309 
310  if (pt < minPtEndcap_)
311  pt = minPtEndcap_;
312  }
313  vec.setMag(radius);
314  GlobalPoint pos(vec.x(), vec.y(), vec.z());
315  GlobalVector mom(pt * cos(phi), pt * sin(phi), pt * cos(theta) / sin(theta));
316  GlobalTrajectoryParameters param(pos, mom, charge, &*service_->magneticField());
317 
319  mat[0][0] = (sigma_qbpt_barrel_ / pt) * (sigma_qbpt_barrel_ / pt); // sigma^2(charge/abs_momentum)
320  if (!barrel)
321  mat[0][0] = (sigma_qbpt_endcap_ / pt) * (sigma_qbpt_endcap_ / pt);
322 
323  //Assign q/pt = 0 +- 1/pt if charge has been declared invalid
324  if (!valid_charge)
326 
327  mat[1][1] = sigma_lambda_ * sigma_lambda_; // sigma^2(lambda)
328  mat[2][2] = sigma_phi_ * sigma_phi_; // sigma^2(phi)
329  mat[3][3] = sigma_x_ * sigma_x_; // sigma^2(x_transverse))
330  mat[4][4] = sigma_y_ * sigma_y_; // sigma^2(y_transverse))
331 
333 
334  const FreeTrajectoryState state(param, error);
335 
336  FreeTrajectoryState state_bs = service_->propagator(propagatorName_)->propagate(state, *bs.product());
337 
338  GlobalVector direction(state_bs.momentum().x(), state_bs.momentum().y(), state_bs.momentum().z());
339 
340  // set deltaEta and deltaPhi from L1 muon pt
341  auto deltaEta = m_deltaEtas.at(0);
342  auto deltaPhi = m_deltaPhis.at(0);
343  if (it->pt() < m_ptRanges.back()) {
344  auto lowEdge = std::upper_bound(m_ptRanges.begin(), m_ptRanges.end(), it->pt());
345  deltaEta = m_deltaEtas.at(lowEdge - m_ptRanges.begin() - 1);
346  deltaPhi = m_deltaPhis.at(lowEdge - m_ptRanges.begin() - 1);
347  }
348 
349  for (size_t j = 0; j < origins.size() && n_regions < m_maxNRegions; ++j) {
350  result.push_back(std::make_unique<RectangularEtaPhiTrackingRegion>(direction,
351  origins[j].first,
352  m_ptMin,
354  origins[j].second,
355  deltaEta,
356  deltaPhi,
357  field,
358  msmaker,
359  m_precise,
361  measurementTracker,
362  m_searchOpt));
363  ++n_regions;
364  }
365  }
366  }
367  edm::LogInfo("L1MuonSeededTrackingRegionsProducer") << "produced " << n_regions << " regions";
368 
369  return result;
370  }
virtual const BoundSurface & surface() const =0
The surface of the GeometricSearchDet.
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:539
tuple measurementTracker
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
constexpr bool isUninitialized() const noexcept
Definition: EDGetToken.h:99
Global3DPoint GlobalPoint
Definition: GlobalPoint.h:10
Geom::Theta< T > theta() const
T y() const
Definition: PV3DBase.h:60
__host__ __device__ constexpr RandomIt upper_bound(RandomIt first, RandomIt last, const T &value, Compare comp={})
edm::EDGetTokenT< MeasurementTrackerEvent > token_measurementTracker
string quality
Exp< T >::type exp(const T &t)
Definition: Exp.h:22
edm::EDGetTokenT< l1t::MuonBxCollection > token_input
static const double deltaEta
Definition: CaloConstants.h:8
tuple result
Definition: mps_fire.py:311
bool getData(T &iHolder) const
Definition: EventSetup.h:122
U second(std::pair< T, U > const &p)
T z() const
Definition: PV3DBase.h:61
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
bool get(ProductID const &oid, Handle< PROD > &result) const
Definition: Event.h:346
bool isValid() const
Definition: HandleBase.h:70
edm::EDGetTokenT< reco::VertexCollection > token_vertex
GlobalVector momentum() const
#define M_PI
Log< level::Info, false > LogInfo
Definition: DetId.h:17
T const * product() const
Definition: Handle.h:70
const edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > token_field
virtual const Surface::PositionType & position() const
Returns position of the surface.
ROOT::Math::SMatrix< double, 5, 5, ROOT::Math::MatRepSym< double, 5 > > AlgebraicSymMatrix55
RectangularEtaPhiTrackingRegion::UseMeasurementTracker m_whereToUseMeasurementTracker
T x() const
Definition: PV3DBase.h:59
edm::ESGetToken< MultipleScatteringParametrisationMaker, TrackerMultipleScatteringRecord > token_msmaker

Member Data Documentation

const bool L1MuonSeededTrackingRegionsProducer::centralBxOnly_
private

Definition at line 403 of file L1MuonSeededTrackingRegionsProducer.h.

Referenced by regions().

const double L1MuonSeededTrackingRegionsProducer::l1MaxEta_
private

Definition at line 399 of file L1MuonSeededTrackingRegionsProducer.h.

Referenced by regions().

const double L1MuonSeededTrackingRegionsProducer::l1MinPt_
private

Definition at line 398 of file L1MuonSeededTrackingRegionsProducer.h.

Referenced by regions().

const unsigned L1MuonSeededTrackingRegionsProducer::l1MinQuality_
private

Definition at line 400 of file L1MuonSeededTrackingRegionsProducer.h.

Referenced by regions().

constexpr int L1MuonSeededTrackingRegionsProducer::l1MuonTF_link_EMTFN_f_ {71}
staticprivate

Definition at line 413 of file L1MuonSeededTrackingRegionsProducer.h.

Referenced by regions().

constexpr int L1MuonSeededTrackingRegionsProducer::l1MuonTF_link_EMTFN_i_ {66}
staticprivate

Definition at line 412 of file L1MuonSeededTrackingRegionsProducer.h.

Referenced by regions().

constexpr int L1MuonSeededTrackingRegionsProducer::l1MuonTF_link_EMTFP_f_ {41}
staticprivate

Definition at line 411 of file L1MuonSeededTrackingRegionsProducer.h.

Referenced by regions().

constexpr int L1MuonSeededTrackingRegionsProducer::l1MuonTF_link_EMTFP_i_ {36}
staticprivate

Definition at line 410 of file L1MuonSeededTrackingRegionsProducer.h.

Referenced by regions().

std::vector<double> L1MuonSeededTrackingRegionsProducer::m_deltaEtas
private
std::vector<double> L1MuonSeededTrackingRegionsProducer::m_deltaPhis
private
int L1MuonSeededTrackingRegionsProducer::m_maxNRegions
private
int L1MuonSeededTrackingRegionsProducer::m_maxNVertices
private
Mode L1MuonSeededTrackingRegionsProducer::m_mode
private
float L1MuonSeededTrackingRegionsProducer::m_nSigmaZBeamSpot
private
float L1MuonSeededTrackingRegionsProducer::m_nSigmaZVertex
private
float L1MuonSeededTrackingRegionsProducer::m_originRadius
private
bool L1MuonSeededTrackingRegionsProducer::m_precise
private
float L1MuonSeededTrackingRegionsProducer::m_ptMin
private
std::vector<double> L1MuonSeededTrackingRegionsProducer::m_ptRanges
private
bool L1MuonSeededTrackingRegionsProducer::m_searchOpt
private
RectangularEtaPhiTrackingRegion::UseMeasurementTracker L1MuonSeededTrackingRegionsProducer::m_whereToUseMeasurementTracker
private
float L1MuonSeededTrackingRegionsProducer::m_zErrorBeamSpot
private
float L1MuonSeededTrackingRegionsProducer::m_zErrorVetex
private
const double L1MuonSeededTrackingRegionsProducer::minPtBarrel_
private

Definition at line 401 of file L1MuonSeededTrackingRegionsProducer.h.

Referenced by regions().

const double L1MuonSeededTrackingRegionsProducer::minPtEndcap_
private

Definition at line 402 of file L1MuonSeededTrackingRegionsProducer.h.

Referenced by regions().

const std::string L1MuonSeededTrackingRegionsProducer::propagatorName_
private

Definition at line 405 of file L1MuonSeededTrackingRegionsProducer.h.

Referenced by regions().

std::unique_ptr<MuonServiceProxy> L1MuonSeededTrackingRegionsProducer::service_
private
constexpr double L1MuonSeededTrackingRegionsProducer::sigma_lambda_ {0.05}
staticprivate

Definition at line 419 of file L1MuonSeededTrackingRegionsProducer.h.

Referenced by regions().

constexpr double L1MuonSeededTrackingRegionsProducer::sigma_phi_ {0.2}
staticprivate

Definition at line 420 of file L1MuonSeededTrackingRegionsProducer.h.

Referenced by regions().

constexpr double L1MuonSeededTrackingRegionsProducer::sigma_qbpt_barrel_ {0.25}
staticprivate

Definition at line 416 of file L1MuonSeededTrackingRegionsProducer.h.

Referenced by regions().

constexpr double L1MuonSeededTrackingRegionsProducer::sigma_qbpt_endcap_ {0.4}
staticprivate

Definition at line 417 of file L1MuonSeededTrackingRegionsProducer.h.

Referenced by regions().

constexpr double L1MuonSeededTrackingRegionsProducer::sigma_qbpt_invalid_charge_ {1.0}
staticprivate

Definition at line 418 of file L1MuonSeededTrackingRegionsProducer.h.

Referenced by regions().

constexpr double L1MuonSeededTrackingRegionsProducer::sigma_x_ {20.0}
staticprivate

Definition at line 421 of file L1MuonSeededTrackingRegionsProducer.h.

Referenced by regions().

constexpr double L1MuonSeededTrackingRegionsProducer::sigma_y_ {20.0}
staticprivate

Definition at line 422 of file L1MuonSeededTrackingRegionsProducer.h.

Referenced by regions().

edm::EDGetTokenT<reco::BeamSpot> L1MuonSeededTrackingRegionsProducer::token_beamSpot
private
const edm::ESGetToken<MagneticField, IdealMagneticFieldRecord> L1MuonSeededTrackingRegionsProducer::token_field
private

Definition at line 390 of file L1MuonSeededTrackingRegionsProducer.h.

Referenced by regions().

edm::EDGetTokenT<l1t::MuonBxCollection> L1MuonSeededTrackingRegionsProducer::token_input
private
edm::EDGetTokenT<MeasurementTrackerEvent> L1MuonSeededTrackingRegionsProducer::token_measurementTracker
private
edm::ESGetToken<MultipleScatteringParametrisationMaker, TrackerMultipleScatteringRecord> L1MuonSeededTrackingRegionsProducer::token_msmaker
private
edm::EDGetTokenT<reco::VertexCollection> L1MuonSeededTrackingRegionsProducer::token_vertex
private