CMS 3D CMS Logo

List of all members | Classes | Public Types | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes
L1TkGlbMuonProducer Class Reference
Inheritance diagram for L1TkGlbMuonProducer:
edm::global::EDProducer<> edm::global::EDProducerBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Classes

struct  PropState
 

Public Types

enum  AlgoType { kTP = 1, kDynamicWindows = 2, kMantra = 3 }
 
typedef std::vector< L1TTTrackTypeL1TTTrackCollectionType
 
typedef TTTrack< Ref_Phase2TrackerDigi_L1TTTrackType
 
- Public Types inherited from edm::global::EDProducerBase
typedef EDProducerBase ModuleType
 
- Public Types inherited from edm::ProducerBase
using ModuleToResolverIndicies = std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex > >
 
typedef ProductRegistryHelper::TypeLabelList TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 

Public Member Functions

 L1TkGlbMuonProducer (const edm::ParameterSet &)
 
 ~L1TkGlbMuonProducer () override
 
- Public Member Functions inherited from edm::global::EDProducer<>
 EDProducer ()=default
 
 EDProducer (const EDProducer &)=delete
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
EDProduceroperator= (const EDProducer &)=delete
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
bool wantsInputProcessBlocks () const final
 
bool wantsProcessBlocks () const final
 
bool wantsStreamLuminosityBlocks () const final
 
bool wantsStreamRuns () const final
 
- Public Member Functions inherited from edm::global::EDProducerBase
 EDProducerBase ()
 
ModuleDescription const & moduleDescription () const
 
 ~EDProducerBase () override
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
std::vector< edm::ProductResolverIndex > const & indiciesForPutProducts (BranchType iBranchType) const
 
 ProducerBase ()
 
std::vector< edm::ProductResolverIndex > const & putTokenIndexToProductResolverIndex () const
 
std::vector< bool > const & recordProvenanceList () const
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription const &)> registrationCallback () const
 used by the fwk to register list of products More...
 
void resolvePutIndicies (BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel)
 
TypeLabelList const & typeLabelList () const
 used by the fwk to register the list of products of this module More...
 
 ~ProducerBase () noexcept(false) override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
ESProxyIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
std::vector< ESProxyIndex > const & esGetTokenIndicesVector (edm::Transition iTrans) const
 
std::vector< ESRecordIndex > const & esGetTokenRecordIndicesVector (edm::Transition iTrans) const
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::array< std::vector< ModuleDescription const *> *, NumBranchTypes > &modulesAll, std::vector< ModuleProcessName > &modulesInPreviousProcesses, ProductRegistry const &preg, std::map< std::string, ModuleDescription const *> const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void selectInputProcessBlocks (ProductRegistry const &productRegistry, ProcessBlockHelperBase const &processBlockHelperBase)
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 
- Static Public Member Functions inherited from edm::global::EDProducerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 

Private Member Functions

void produce (edm::StreamID, edm::Event &, const edm::EventSetup &) const override
 
PropState propagateToGMT (const L1TTTrackType &l1tk) const
 
void runOnMuonCollection_v1 (const edm::Handle< MuonBxCollection > &, const edm::Handle< L1TTTrackCollectionType > &, TkGlbMuonCollection &tkMuons) const
 
double sigmaEtaTP (const Muon &mu) const
 
double sigmaPhiTP (const Muon &mu) const
 

Private Attributes

float chi2Max_
 
bool correctGMTPropForTkZ_
 
float dRMax_
 
float etaBO_
 
float etaMax_
 
float etaMin_
 
float etaOE_
 
const edm::EDGetTokenT< MuonBxCollectionmuToken
 
int nStubsmin_
 
float pTMinTra_
 
const edm::EDGetTokenT< std::vector< TTTrack< Ref_Phase2TrackerDigi_ > > > trackToken_
 
bool use5ParameterFit_
 
bool useTPMatchWindows_
 
float zMax_
 

Additional Inherited Members

- Protected Member Functions inherited from edm::ProducerBase
template<Transition Tr = Transition::Event>
auto produces (std::string instanceName) noexcept
 declare what type of product will make and with which optional label More...
 
template<Transition B>
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<BranchType B>
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<typename ProductType , Transition B>
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<class ProductType >
BranchAliasSetterT< ProductType > produces ()
 
template<typename ProductType , BranchType B>
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<typename ProductType , BranchType B>
BranchAliasSetterT< ProductType > produces ()
 
template<class ProductType >
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<typename ProductType , Transition B>
BranchAliasSetterT< ProductType > produces ()
 
template<Transition Tr = Transition::Event>
auto produces () noexcept
 
ProducesCollector producesCollector ()
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
template<BranchType B = InEvent>
EDConsumerBaseAdaptor< Bconsumes (edm::InputTag tag) noexcept
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
template<Transition Tr = Transition::Event>
constexpr auto esConsumes ()
 
template<Transition Tr = Transition::Event>
auto esConsumes (ESInputTag tag)
 
template<Transition Tr = Transition::Event>
ESGetTokenGeneric esConsumes (eventsetup::EventSetupRecordKey const &iRecord, eventsetup::DataKey const &iKey)
 Used with EventSetupRecord::doGet. More...
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
void resetItemsToGetFrom (BranchType iType)
 

Detailed Description

Definition at line 50 of file L1TkGlbMuonProducer.cc.

Member Typedef Documentation

◆ L1TTTrackCollectionType

Definition at line 53 of file L1TkGlbMuonProducer.cc.

◆ L1TTTrackType

Definition at line 52 of file L1TkGlbMuonProducer.cc.

Member Enumeration Documentation

◆ AlgoType

Constructor & Destructor Documentation

◆ L1TkGlbMuonProducer()

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

Definition at line 101 of file L1TkGlbMuonProducer.cc.

References correctGMTPropForTkZ_, edm::ParameterSet::getParameter(), use5ParameterFit_, and useTPMatchWindows_.

102  : etaMin_((float)iConfig.getParameter<double>("ETAMIN")),
103  etaMax_((float)iConfig.getParameter<double>("ETAMAX")),
104  zMax_((float)iConfig.getParameter<double>("ZMAX")),
105  chi2Max_((float)iConfig.getParameter<double>("CHI2MAX")),
106  pTMinTra_((float)iConfig.getParameter<double>("PTMINTRA")),
107  dRMax_((float)iConfig.getParameter<double>("DRmax")),
108  nStubsmin_(iConfig.getParameter<int>("nStubsmin")),
109  muToken(consumes<MuonBxCollection>(iConfig.getParameter<edm::InputTag>("L1MuonInputTag"))),
111  iConfig.getParameter<edm::InputTag>("L1TrackInputTag"))) {
112  correctGMTPropForTkZ_ = iConfig.getParameter<bool>("correctGMTPropForTkZ");
113 
114  use5ParameterFit_ = iConfig.getParameter<bool>("use5ParameterFit");
115  useTPMatchWindows_ = iConfig.getParameter<bool>("useTPMatchWindows");
116  produces<TkGlbMuonCollection>();
117 }
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
const edm::EDGetTokenT< MuonBxCollection > muToken
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
const edm::EDGetTokenT< std::vector< TTTrack< Ref_Phase2TrackerDigi_ > > > trackToken_
Class to store the L1 Track Trigger tracks.
Definition: TTTrack.h:29

◆ ~L1TkGlbMuonProducer()

L1TkGlbMuonProducer::~L1TkGlbMuonProducer ( )
override

Definition at line 119 of file L1TkGlbMuonProducer.cc.

119 {}

Member Function Documentation

◆ fillDescriptions()

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

Definition at line 251 of file L1TkGlbMuonProducer.cc.

References edm::ConfigurationDescriptions::add(), submitPVResolutionJobs::desc, and HLT_2022v12_cff::InputTag.

251  {
252  // L1TkGlbMuons
254  desc.add<edm::InputTag>("L1MuonInputTag", edm::InputTag("simGmtStage2Digis"));
255  desc.add<edm::InputTag>("L1TrackInputTag", edm::InputTag("TTTracksFromTrackletEmulation", "Level1TTTracks"));
256  desc.add<double>("ETAMIN", 0);
257  desc.add<double>("ETAMAX", 5.0);
258  desc.add<double>("ZMAX", 25.0);
259  desc.add<double>("CHI2MAX", 100.0);
260  desc.add<double>("PTMINTRA", 2.0);
261  desc.add<double>("DRmax", 0.5);
262  desc.add<int>("nStubsmin", 4);
263  desc.add<bool>("correctGMTPropForTkZ", true);
264  desc.add<bool>("use5ParameterFit", false);
265  desc.add<bool>("useTPMatchWindows", true);
266  descriptions.add("L1TkGlbMuons", desc);
267  // or use the following to generate the label from the module's C++ type
268  //descriptions.addWithDefaultLabel(desc);
269 }
void add(std::string const &label, ParameterSetDescription const &psetDescription)

◆ produce()

void L1TkGlbMuonProducer::produce ( edm::StreamID  ,
edm::Event iEvent,
const edm::EventSetup iSetup 
) const
overrideprivatevirtual

Implements edm::global::EDProducerBase.

Definition at line 122 of file L1TkGlbMuonProducer.cc.

References iEvent, eostools::move(), muToken, runOnMuonCollection_v1(), l1pfProducerBarrel_cfi::tkMuons, and trackToken_.

122  {
123  // the L1Mu objects
125  iEvent.getByToken(muToken, l1musH);
126 
127  // the L1Tracks
129  iEvent.getByToken(trackToken_, l1tksH);
130 
131  auto tkMuons = std::make_unique<TkGlbMuonCollection>();
132 
133  // Fill the collection
134  runOnMuonCollection_v1(l1musH, l1tksH, *tkMuons);
135 
136  // put the new track+muon objects in the event!
137  iEvent.put(std::move(tkMuons));
138 };
const edm::EDGetTokenT< MuonBxCollection > muToken
int iEvent
Definition: GenABIO.cc:224
void runOnMuonCollection_v1(const edm::Handle< MuonBxCollection > &, const edm::Handle< L1TTTrackCollectionType > &, TkGlbMuonCollection &tkMuons) const
const edm::EDGetTokenT< std::vector< TTTrack< Ref_Phase2TrackerDigi_ > > > trackToken_
def move(src, dest)
Definition: eostools.py:511

◆ propagateToGMT()

L1TkGlbMuonProducer::PropState L1TkGlbMuonProducer::propagateToGMT ( const L1TTTrackType l1tk) const
private

Definition at line 271 of file L1TkGlbMuonProducer.cc.

References funct::abs(), correctGMTPropForTkZ_, dumpMFGeometry_cfg::delta, mps_fire::dest, deta_tkz_scaling, M_PI, max_mu_propagator_eta, min_mu_propagator_barrel_eta, min_mu_propagator_barrel_pT, min_mu_propagator_p, TTTrack< T >::momentum(), chargedHadronTrackResolutionFilter_cfi::p3, TTTrack< T >::POCA(), reco::reduceRange(), TTTrack< T >::rInv(), scaling_to_2ndstation, sigmaEta_scaling, sigmaPhi_scaling, and PV3DBase< T, PVType, FrameType >::z().

Referenced by runOnMuonCollection_v1().

271  {
272  auto p3 = tk.momentum();
273  float tk_pt = p3.perp();
274  float tk_p = p3.mag();
275  float tk_eta = p3.eta();
276  float tk_aeta = std::abs(tk_eta);
277  float tk_phi = p3.phi();
278  float tk_q = tk.rInv() > 0 ? 1. : -1.;
279  float tk_z = tk.POCA().z();
281  tk_z = 0;
282 
284  if (tk_p < min_mu_propagator_p)
285  return dest;
287  return dest;
288  if (tk_aeta > max_mu_propagator_eta)
289  return dest;
290 
291  //0th order:
292  dest.valid = true;
293 
294  float dzCorrPhi = 1.;
295  float deta = 0;
296  float etaProp = tk_aeta;
297 
298  if (tk_aeta < min_mu_propagator_barrel_eta) {
300  deta = tk_z / deta_tkz_scaling / cosh(tk_aeta);
301  } else {
302  float delta = tk_z / scaling_to_2ndstation; //roughly scales as distance to 2nd station
303  if (tk_eta > 0)
304  delta *= -1;
305  dzCorrPhi = 1. + delta;
306 
307  float zOzs = tk_z / scaling_to_2ndstation;
308  if (tk_eta > 0)
309  deta = zOzs / (1. - zOzs);
310  else
311  deta = zOzs / (1. + zOzs);
312  deta = deta * tanh(tk_eta);
313  }
314  float resPhi = tk_phi - 1.464 * tk_q * cosh(1.7) / cosh(etaProp) / tk_pt * dzCorrPhi - M_PI / 144.;
315  resPhi = reco::reduceRange(resPhi);
316 
317  dest.eta = tk_eta + deta;
318  dest.phi = resPhi;
319  dest.pt = tk_pt; //not corrected for eloss
320 
321  dest.sigmaEta = sigmaEta_scaling / tk_pt; //multiple scattering term
322  dest.sigmaPhi = sigmaPhi_scaling / tk_pt; //need a better estimate for these
323  return dest;
324 }
constexpr T reduceRange(T x)
Definition: deltaPhi.h:18
static constexpr float scaling_to_2ndstation
static constexpr float sigmaEta_scaling
static constexpr float deta_tkz_scaling
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
static constexpr float min_mu_propagator_barrel_eta
static constexpr float min_mu_propagator_p
static constexpr float sigmaPhi_scaling
static constexpr float min_mu_propagator_barrel_pT
#define M_PI
static constexpr float max_mu_propagator_eta

◆ runOnMuonCollection_v1()

void L1TkGlbMuonProducer::runOnMuonCollection_v1 ( const edm::Handle< MuonBxCollection > &  muonH,
const edm::Handle< L1TTTrackCollectionType > &  l1tksH,
TkGlbMuonCollection tkMuons 
) const
private

Definition at line 140 of file L1TkGlbMuonProducer.cc.

References funct::abs(), BXVector< T >::begin(), chi2Max_, SiPixelRawToDigiRegional_cfi::deltaPhi, reco::deltaR2(), HLT_2022v12_cff::dEta, HLT_2022v12_cff::dPhi, dr2_cutoff, dRMax_, BXVector< T >::end(), L1TkGlbMuonProducer::PropState::eta, fftjetproducer_cfi::etaCut, etaMax_, etaMin_, LogDebug, matching_factor_eta, matching_factor_phi, TTTrack< T >::momentum(), mu_mass, nStubsmin_, chargedHadronTrackResolutionFilter_cfi::p3, L1TkGlbMuonProducer::PropState::phi, TTTrack< T >::POCA(), edm::Handle< T >::product(), propagateToGMT(), pTMinTra_, l1t::TkGlbMuon::setdR(), l1t::TkGlbMuon::setNTracksMatched(), l1t::TkGlbMuon::setTrkzVtx(), L1TkGlbMuonProducer::PropState::sigmaEta, sigmaEtaTP(), L1TkGlbMuonProducer::PropState::sigmaPhi, sigmaPhiTP(), mathSSE::sqrt(), l1pfProducerBarrel_cfi::tkMuons, useTPMatchWindows_, L1TkGlbMuonProducer::PropState::valid, and zMax_.

Referenced by produce().

142  {
143  const L1TTTrackCollectionType& l1tks = (*l1tksH.product());
144  const MuonBxCollection& l1mus = (*muonH.product());
145 
146  int imu = 0;
147 
148  for (auto l1mu = l1mus.begin(0); l1mu != l1mus.end(0); ++l1mu) { // considering BX = only
149  edm::Ref<MuonBxCollection> l1muRef(muonH, imu);
150  imu++;
151 
152  float l1mu_eta = l1mu->eta();
153  float l1mu_phi = l1mu->phi();
154 
155  float l1mu_feta = std::abs(l1mu_eta);
156  if (l1mu_feta < etaMin_)
157  continue;
158  if (l1mu_feta > etaMax_)
159  continue;
160 
161  float drmin = 999;
162 
163  PropState matchProp;
164  int match_idx = -1;
165  int il1tk = -1;
166 
167  int nTracksMatch = 0;
168 
169  for (const auto& l1tk : l1tks) {
170  il1tk++;
171 
172  float l1tk_pt = l1tk.momentum().perp();
173  if (l1tk_pt < pTMinTra_)
174  continue;
175 
176  float l1tk_z = l1tk.POCA().z();
177  if (std::abs(l1tk_z) > zMax_)
178  continue;
179 
180  float l1tk_chi2 = l1tk.chi2();
181  if (l1tk_chi2 > chi2Max_)
182  continue;
183 
184  int l1tk_nstubs = l1tk.getStubRefs().size();
185  if (l1tk_nstubs < nStubsmin_)
186  continue;
187 
188  float l1tk_eta = l1tk.momentum().eta();
189  float l1tk_phi = l1tk.momentum().phi();
190 
191  float dr2 = reco::deltaR2(l1mu_eta, l1mu_phi, l1tk_eta, l1tk_phi);
192  if (dr2 > dr2_cutoff)
193  continue;
194 
195  nTracksMatch++;
196 
197  const PropState& pstate = propagateToGMT(l1tk);
198  if (!pstate.valid)
199  continue;
200 
201  float dr2prop = reco::deltaR2(l1mu_eta, l1mu_phi, pstate.eta, pstate.phi);
202  // FIXME: check if this matching procedure can be improved with
203  // a pT dependent dR window
204  if (dr2prop < drmin) {
205  drmin = dr2prop;
206  match_idx = il1tk;
207  matchProp = pstate;
208  }
209  } // over l1tks
210 
211  LogDebug("L1TkGlbMuonProducer") << "matching index is " << match_idx;
212  if (match_idx >= 0) {
213  const L1TTTrackType& matchTk = l1tks[match_idx];
214 
215  float sigmaEta = sigmaEtaTP(*l1mu);
216  float sigmaPhi = sigmaPhiTP(*l1mu);
217 
218  float etaCut = matching_factor_eta * sqrt(sigmaEta * sigmaEta + matchProp.sigmaEta * matchProp.sigmaEta);
219  float phiCut = matching_factor_phi * sqrt(sigmaPhi * sigmaPhi + matchProp.sigmaPhi * matchProp.sigmaPhi);
220 
221  float dEta = std::abs(matchProp.eta - l1mu_eta);
222  float dPhi = std::abs(deltaPhi(matchProp.phi, l1mu_phi));
223 
224  bool matchCondition = useTPMatchWindows_ ? dEta < etaCut && dPhi < phiCut : drmin < dRMax_;
225 
226  if (matchCondition) {
227  edm::Ptr<L1TTTrackType> l1tkPtr(l1tksH, match_idx);
228 
229  const auto& p3 = matchTk.momentum();
230  float p4e = sqrt(mu_mass * mu_mass + p3.mag2());
231 
232  math::XYZTLorentzVector l1tkp4(p3.x(), p3.y(), p3.z(), p4e);
233 
234  const auto& tkv3 = matchTk.POCA();
235  math::XYZPoint v3(tkv3.x(), tkv3.y(), tkv3.z()); // why is this defined?
236 
237  float trkisol = -999;
238 
239  TkGlbMuon l1tkmu(l1tkp4, l1muRef, l1tkPtr, trkisol);
240 
241  l1tkmu.setTrkzVtx((float)tkv3.z());
242  l1tkmu.setdR(drmin);
243  l1tkmu.setNTracksMatched(nTracksMatch);
244  tkMuons.push_back(l1tkmu);
245  }
246  }
247  } //over l1mus
248 }
double sigmaEtaTP(const Muon &mu) const
static constexpr float dr2_cutoff
T const * product() const
Definition: Handle.h:70
static constexpr float matching_factor_phi
GlobalVector momentum() const
Track momentum.
Definition: TTTrack.h:295
const_iterator begin(int bx) const
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
Definition: LorentzVector.h:29
T sqrt(T t)
Definition: SSEVec.h:19
double sigmaPhiTP(const Muon &mu) const
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
static constexpr float matching_factor_eta
constexpr auto deltaR2(const T1 &t1, const T2 &t2) -> decltype(t1.eta())
Definition: deltaR.h:16
static constexpr float mu_mass
XYZPointD XYZPoint
point in space with cartesian internal representation
Definition: Point3D.h:12
Class to store the L1 Track Trigger tracks.
Definition: TTTrack.h:29
const_iterator end(int bx) const
PropState propagateToGMT(const L1TTTrackType &l1tk) const
std::vector< L1TTTrackType > L1TTTrackCollectionType
GlobalPoint POCA() const
POCA.
Definition: TTTrack.h:335
#define LogDebug(id)

◆ sigmaEtaTP()

double L1TkGlbMuonProducer::sigmaEtaTP ( const Muon mu) const
private

Definition at line 326 of file L1TkGlbMuonProducer.cc.

References funct::abs(), reco::LeafCandidate::eta(), eta_boundary1, eta_boundary2, eta_boundary3, sigmaEtaTP_higheta, sigmaEtaTP_loweta, and sigmaEtaTP_mediumeta.

Referenced by runOnMuonCollection_v1().

326  {
327  float l1mu_eta = l1mu.eta();
328  if (std::abs(l1mu_eta) <= eta_boundary1)
329  return sigmaEtaTP_loweta;
330  else if (std::abs(l1mu_eta) > eta_boundary1 && std::abs(l1mu_eta) <= eta_boundary2)
331  return sigmaEtaTP_mediumeta;
332  else if (std::abs(l1mu_eta) > eta_boundary2 && std::abs(l1mu_eta) <= eta_boundary3)
333  return sigmaEtaTP_higheta;
334  return sigmaEtaTP_loweta;
335 }
static constexpr float sigmaEtaTP_higheta
static constexpr float eta_boundary3
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
static constexpr float eta_boundary1
static constexpr float eta_boundary2
static constexpr float sigmaEtaTP_mediumeta
static constexpr float sigmaEtaTP_loweta

◆ sigmaPhiTP()

double L1TkGlbMuonProducer::sigmaPhiTP ( const Muon mu) const
private

Definition at line 337 of file L1TkGlbMuonProducer.cc.

References sigmaPhiTP_value.

Referenced by runOnMuonCollection_v1().

337 { return sigmaPhiTP_value; }
static constexpr float sigmaPhiTP_value

Member Data Documentation

◆ chi2Max_

float L1TkGlbMuonProducer::chi2Max_
private

Definition at line 89 of file L1TkGlbMuonProducer.cc.

Referenced by runOnMuonCollection_v1().

◆ correctGMTPropForTkZ_

bool L1TkGlbMuonProducer::correctGMTPropForTkZ_
private

Definition at line 93 of file L1TkGlbMuonProducer.cc.

Referenced by L1TkGlbMuonProducer(), and propagateToGMT().

◆ dRMax_

float L1TkGlbMuonProducer::dRMax_
private

Definition at line 91 of file L1TkGlbMuonProducer.cc.

Referenced by runOnMuonCollection_v1().

◆ etaBO_

float L1TkGlbMuonProducer::etaBO_
private

Definition at line 86 of file L1TkGlbMuonProducer.cc.

◆ etaMax_

float L1TkGlbMuonProducer::etaMax_
private

Definition at line 85 of file L1TkGlbMuonProducer.cc.

Referenced by runOnMuonCollection_v1().

◆ etaMin_

float L1TkGlbMuonProducer::etaMin_
private

Definition at line 84 of file L1TkGlbMuonProducer.cc.

Referenced by runOnMuonCollection_v1().

◆ etaOE_

float L1TkGlbMuonProducer::etaOE_
private

Definition at line 87 of file L1TkGlbMuonProducer.cc.

◆ muToken

const edm::EDGetTokenT<MuonBxCollection> L1TkGlbMuonProducer::muToken
private

Definition at line 97 of file L1TkGlbMuonProducer.cc.

Referenced by produce().

◆ nStubsmin_

int L1TkGlbMuonProducer::nStubsmin_
private

Definition at line 92 of file L1TkGlbMuonProducer.cc.

Referenced by runOnMuonCollection_v1().

◆ pTMinTra_

float L1TkGlbMuonProducer::pTMinTra_
private

Definition at line 90 of file L1TkGlbMuonProducer.cc.

Referenced by runOnMuonCollection_v1().

◆ trackToken_

const edm::EDGetTokenT<std::vector<TTTrack<Ref_Phase2TrackerDigi_> > > L1TkGlbMuonProducer::trackToken_
private

Definition at line 98 of file L1TkGlbMuonProducer.cc.

Referenced by produce().

◆ use5ParameterFit_

bool L1TkGlbMuonProducer::use5ParameterFit_
private

Definition at line 94 of file L1TkGlbMuonProducer.cc.

Referenced by L1TkGlbMuonProducer().

◆ useTPMatchWindows_

bool L1TkGlbMuonProducer::useTPMatchWindows_
private

Definition at line 95 of file L1TkGlbMuonProducer.cc.

Referenced by L1TkGlbMuonProducer(), and runOnMuonCollection_v1().

◆ zMax_

float L1TkGlbMuonProducer::zMax_
private

Definition at line 88 of file L1TkGlbMuonProducer.cc.

Referenced by runOnMuonCollection_v1().