CMS 3D CMS Logo

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

#include <L1Trigger/L1TMuon/src/L1TMuonProducer.cc>

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

Public Member Functions

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

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 

Private Member Functions

void addMuonsToCollections (MicroGMTConfiguration::InterMuonList &coll, MicroGMTConfiguration::InterMuonList &interout, std::unique_ptr< MuonBxCollection > &out, int bx) const
 
void beginLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &) override
 
void beginRun (edm::Run const &, edm::EventSetup const &) override
 
void calculateRank (MicroGMTConfiguration::InterMuonList &muons) const
 
void convertMuons (edm::Handle< MicroGMTConfiguration::InputCollection > const &in, MicroGMTConfiguration::InterMuonList &out, GMTInternalWedges &wedges, int bx) const
 
void endLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &) override
 
void endRun (edm::Run const &, edm::EventSetup const &) override
 
void produce (edm::Event &, const edm::EventSetup &) override
 
void sortMuons (MicroGMTConfiguration::InterMuonList &, unsigned) const
 
void splitAndConvertMuons (edm::Handle< MicroGMTConfiguration::InputCollection > const &in, MicroGMTConfiguration::InterMuonList &out_pos, MicroGMTConfiguration::InterMuonList &out_neg, GMTInternalWedges &wedges_pos, GMTInternalWedges &wedges_neg, int bx) const
 

Static Private Member Functions

static bool compareMuons (const std::shared_ptr< MicroGMTConfiguration::InterMuon > &mu1, const std::shared_ptr< MicroGMTConfiguration::InterMuon > &mu2)
 

Private Attributes

bool m_autoBxRange
 
bool m_autoCancelMode
 
edm::InputTag m_barrelTfInputTag
 
edm::EDGetTokenT< MicroGMTConfiguration::InputCollectionm_barrelTfInputToken
 
l1t::cancelmode m_bmtfCancelMode
 
std::bitset< 12 > m_bmtfInputsToDisable
 
int m_bxMax
 
int m_bxMin
 
std::bitset< 28 > m_caloInputsToDisable
 
edm::EDGetTokenT< MicroGMTConfiguration::CaloInputCollectionm_caloTowerInputToken
 
MicroGMTCancelOutUnit m_cancelOutUnit
 
std::ofstream m_debugOut
 
l1t::cancelmode m_emtfCancelMode
 
std::bitset< 12 > m_emtfInputsToDisable
 
edm::InputTag m_endcapTfInputTag
 
edm::EDGetTokenT< MicroGMTConfiguration::InputCollectionm_endcapTfInputToken
 
std::bitset< 72 > m_inputsToDisable
 
MicroGMTIsolationUnit m_isolationUnit
 
std::bitset< 12 > m_maskedBmtfInputs
 
std::bitset< 28 > m_maskedCaloInputs
 
std::bitset< 12 > m_maskedEmtfInputs
 
std::bitset< 72 > m_maskedInputs
 
std::bitset< 12 > m_maskedOmtfInputs
 
std::bitset< 12 > m_omtfInputsToDisable
 
edm::InputTag m_overlapTfInputTag
 
edm::EDGetTokenT< MicroGMTConfiguration::InputCollectionm_overlapTfInputToken
 
std::shared_ptr< MicroGMTRankPtQualLUTm_rankPtQualityLUT
 
edm::InputTag m_trigTowerTag
 
std::unique_ptr< L1TMuonGlobalParamsHelpermicroGMTParamsHelper
 

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

Description: Takes txt-file input and produces barrel- / overlap- / forward TF muons

Implementation: [Notes on implementation]

Definition at line 58 of file L1TMuonProducer.cc.

Constructor & Destructor Documentation

◆ L1TMuonProducer()

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

Definition at line 141 of file L1TMuonProducer.cc.

142  : m_debugOut("test/debug/iso_debug.dat"),
145  // edm::InputTag barrelTfInputTag = iConfig.getParameter<edm::InputTag>("barrelTFInput");
146  // edm::InputTag overlapTfInputTag = iConfig.getParameter<edm::InputTag>("overlapTFInput");
147  // edm::InputTag forwardTfInputTag = iConfig.getParameter<edm::InputTag>("forwardTFInput");
148 
149  m_barrelTfInputTag = iConfig.getParameter<edm::InputTag>("barrelTFInput");
150  m_overlapTfInputTag = iConfig.getParameter<edm::InputTag>("overlapTFInput");
151  m_endcapTfInputTag = iConfig.getParameter<edm::InputTag>("forwardTFInput");
152  m_trigTowerTag = iConfig.getParameter<edm::InputTag>("triggerTowerInput");
153 
154  m_autoBxRange = iConfig.getParameter<bool>("autoBxRange");
155  m_bxMin = iConfig.getParameter<int>("bxMin");
156  m_bxMax = iConfig.getParameter<int>("bxMax");
157 
158  m_autoCancelMode = iConfig.getParameter<bool>("autoCancelMode");
159  if (!m_autoCancelMode) {
160  if (iConfig.getParameter<std::string>("bmtfCancelMode").find("kftracks") == 0) {
162  }
163  if (iConfig.getParameter<std::string>("emtfCancelMode").find("tracks") == 0) {
165  }
166  }
167 
168  m_barrelTfInputToken = consumes<MicroGMTConfiguration::InputCollection>(m_barrelTfInputTag);
169  m_overlapTfInputToken = consumes<MicroGMTConfiguration::InputCollection>(m_overlapTfInputTag);
170  m_endcapTfInputToken = consumes<MicroGMTConfiguration::InputCollection>(m_endcapTfInputTag);
171  m_caloTowerInputToken = consumes<MicroGMTConfiguration::CaloInputCollection>(m_trigTowerTag);
172 
173  //register your products
174  produces<MuonBxCollection>();
175  produces<MuonBxCollection>("imdMuonsBMTF");
176  produces<MuonBxCollection>("imdMuonsEMTFPos");
177  produces<MuonBxCollection>("imdMuonsEMTFNeg");
178  produces<MuonBxCollection>("imdMuonsOMTFPos");
179  produces<MuonBxCollection>("imdMuonsOMTFNeg");
180 }

References edm::ParameterSet::getParameter(), l1t::kftracks, m_autoBxRange, m_autoCancelMode, m_barrelTfInputTag, m_barrelTfInputToken, m_bmtfCancelMode, m_bxMax, m_bxMin, m_caloTowerInputToken, m_emtfCancelMode, m_endcapTfInputTag, m_endcapTfInputToken, m_overlapTfInputTag, m_overlapTfInputToken, m_trigTowerTag, AlCaHLTBitMon_QueryRunRegistry::string, and PDWG_EXOHSCP_cff::tracks.

◆ ~L1TMuonProducer()

L1TMuonProducer::~L1TMuonProducer ( )
override

Definition at line 182 of file L1TMuonProducer.cc.

182 { m_debugOut.close(); }

References m_debugOut.

Member Function Documentation

◆ addMuonsToCollections()

void L1TMuonProducer::addMuonsToCollections ( MicroGMTConfiguration::InterMuonList coll,
MicroGMTConfiguration::InterMuonList interout,
std::unique_ptr< MuonBxCollection > &  out,
int  bx 
) const
private

Definition at line 426 of file L1TMuonProducer.cc.

429  {
430  for (auto& mu : coll) {
431  interout.push_back(mu);
432  math::PtEtaPhiMLorentzVector vec{(mu->hwPt() - 1) * 0.5, mu->hwEta() * 0.010875, mu->hwGlobalPhi() * 0.010908, 0.0};
433  int outMuQual = MicroGMTConfiguration::setOutputMuonQuality(mu->hwQual(), mu->trackFinderType(), mu->hwHF());
434  // set tfMuonIndex and iso to 0 like in the FW
435  Muon outMu{vec,
436  mu->hwPt(),
437  mu->hwEta(),
438  mu->hwGlobalPhi(),
439  outMuQual,
440  mu->hwSign(),
441  mu->hwSignValid(),
442  0,
443  0,
444  0,
445  true,
446  0,
447  mu->hwDPhi(),
448  mu->hwDEta(),
449  mu->hwRank()};
450 
451  int hwPtUnconstrained{mu->hwPtUnconstrained()};
452  outMu.setPtUnconstrained(hwPtUnconstrained == 0 ? 0 : (hwPtUnconstrained - 1) * 0.5); // Don't want negative pT.
453  outMu.setHwPtUnconstrained(hwPtUnconstrained);
454  outMu.setHwDXY(mu->hwDXY());
455 
456  if (mu->hwSignValid()) {
457  outMu.setCharge(1 - 2 * mu->hwSign());
458  } else {
459  outMu.setCharge(0);
460  }
461 
462  out->push_back(bx, outMu);
463  }
464 }

References l1GtPatternGenerator_cfi::bx, amptDefaultParameters_cff::mu, and MillePedeFileConverter_cfg::out.

Referenced by produce().

◆ beginLuminosityBlock()

void L1TMuonProducer::beginLuminosityBlock ( edm::LuminosityBlock const &  ,
edm::EventSetup const &   
)
overrideprivate

Definition at line 607 of file L1TMuonProducer.cc.

607 {}

◆ beginRun()

void L1TMuonProducer::beginRun ( edm::Run const &  run,
edm::EventSetup const &  iSetup 
)
overrideprivate

Definition at line 555 of file L1TMuonProducer.cc.

555  {
556  const L1TMuonGlobalParamsRcd& microGMTParamsRcd = iSetup.get<L1TMuonGlobalParamsRcd>();
557  edm::ESHandle<L1TMuonGlobalParams> microGMTParamsHandle;
558  microGMTParamsRcd.get(microGMTParamsHandle);
559 
560  std::unique_ptr<L1TMuonGlobalParams_PUBLIC> microGMTParams(
561  new L1TMuonGlobalParams_PUBLIC(cast_to_L1TMuonGlobalParams_PUBLIC(*microGMTParamsHandle.product())));
562  if (microGMTParams->pnodes_.empty()) {
563  edm::ESHandle<L1TMuonGlobalParams> o2oProtoHandle;
564  iSetup.get<L1TMuonGlobalParamsO2ORcd>().get(o2oProtoHandle);
566  std::unique_ptr<L1TMuonGlobalParamsHelper>(new L1TMuonGlobalParamsHelper(*o2oProtoHandle.product()));
567  } else
569 
570  //microGMTParamsHelper->print(std::cout);
571  m_inputsToDisable = microGMTParamsHelper->inputsToDisable();
572  edm::LogVerbatim("L1TMuonProducer")
573  << "uGMT inputsToDisable: " << m_inputsToDisable
574  << "\n EMTF-|OMTF-| BMTF |OMTF+|EMTF+| CALO | res 0";
575  m_caloInputsToDisable = microGMTParamsHelper->caloInputsToDisable();
576  m_bmtfInputsToDisable = microGMTParamsHelper->bmtfInputsToDisable();
577  m_omtfInputsToDisable = microGMTParamsHelper->omtfInputsToDisable();
578  m_emtfInputsToDisable = microGMTParamsHelper->emtfInputsToDisable();
579  m_maskedInputs = microGMTParamsHelper->maskedInputs();
580  edm::LogVerbatim("L1TMuonProducer")
581  << "uGMT maskedInputs: " << m_maskedInputs
582  << "\n EMTF-|OMTF-| BMTF |OMTF+|EMTF+| CALO | res 0";
583  m_maskedCaloInputs = microGMTParamsHelper->maskedCaloInputs();
584  m_maskedBmtfInputs = microGMTParamsHelper->maskedBmtfInputs();
585  m_maskedOmtfInputs = microGMTParamsHelper->maskedOmtfInputs();
586  m_maskedEmtfInputs = microGMTParamsHelper->maskedEmtfInputs();
591 
592  if (m_autoCancelMode) {
593  if (microGMTParamsHelper->fwVersion() >= 0x6000000) {
595  }
596  // TODO: No decision yet on when to use EMTF track addresses for cancel-out.
597  // if (microGMTParamsHelper->fwVersion() > 0x5000000) {
598  // m_emtfCancelMode = cancelmode::tracks;
599  // }
600  }
601 }

References cast_to_L1TMuonGlobalParams(), cast_to_L1TMuonGlobalParams_PUBLIC(), l1t::MicroGMTRankPtQualLUTFactory::create(), edm::EventSetup::get(), edm::eventsetup::EventSetupRecordImplementation< T >::get(), get, l1t::MicroGMTCancelOutUnit::initialise(), l1t::MicroGMTIsolationUnit::initialise(), l1t::kftracks, m_autoCancelMode, m_bmtfCancelMode, m_bmtfInputsToDisable, m_caloInputsToDisable, m_cancelOutUnit, m_emtfInputsToDisable, m_inputsToDisable, m_isolationUnit, m_maskedBmtfInputs, m_maskedCaloInputs, m_maskedEmtfInputs, m_maskedInputs, m_maskedOmtfInputs, m_omtfInputsToDisable, m_rankPtQualityLUT, microGMTParamsHelper, and edm::ESHandle< T >::product().

◆ calculateRank()

void L1TMuonProducer::calculateRank ( MicroGMTConfiguration::InterMuonList muons) const
private

Definition at line 419 of file L1TMuonProducer.cc.

419  {
420  for (auto& mu1 : muons) {
421  int rank = m_rankPtQualityLUT->lookup(mu1->hwPt(), mu1->hwQual());
422  mu1->setHwRank(rank);
423  }
424 }

References m_rankPtQualityLUT, and PDWG_BPHSkim_cff::muons.

Referenced by produce().

◆ compareMuons()

bool L1TMuonProducer::compareMuons ( const std::shared_ptr< MicroGMTConfiguration::InterMuon > &  mu1,
const std::shared_ptr< MicroGMTConfiguration::InterMuon > &  mu2 
)
staticprivate

Definition at line 377 of file L1TMuonProducer.cc.

378  {
379  return (mu1->hwWins() >= mu2->hwWins());
380 }

Referenced by sortMuons().

◆ convertMuons()

void L1TMuonProducer::convertMuons ( edm::Handle< MicroGMTConfiguration::InputCollection > const &  in,
MicroGMTConfiguration::InterMuonList out,
GMTInternalWedges wedges,
int  bx 
) const
private

Definition at line 516 of file L1TMuonProducer.cc.

519  {
520  // initialize the wedge collection:
521  for (int i = 0; i < 12; ++i) {
522  wedges[i] = std::vector<std::shared_ptr<GMTInternalMuon>>();
523  wedges[i].reserve(3);
524  }
525  if (bx < in->getFirstBX() || bx > in->getLastBX())
526  return;
527  int muIdx = 0;
528  int currentLink = 0;
529  for (size_t i = 0; i < in->size(bx); ++i, ++muIdx) {
530  if (in->at(bx, i).hwPt() > 0) {
531  int link = in->at(bx, i).link();
532  if (m_inputsToDisable.test(link) || m_maskedInputs.test(link)) {
533  continue; // only process if input link is enabled and not masked
534  }
535  if (currentLink != link) {
536  muIdx = 0;
537  currentLink = link;
538  }
539  int gPhi = MicroGMTConfiguration::calcGlobalPhi(
540  in->at(bx, i).hwPhi(), in->at(bx, i).trackFinderType(), in->at(bx, i).processor());
541  int tfMuonIdx = 3 * (currentLink - 36) + muIdx;
542  std::shared_ptr<GMTInternalMuon> outMu = std::make_shared<GMTInternalMuon>(in->at(bx, i), gPhi, tfMuonIdx);
543  out.emplace_back(outMu);
544  wedges[in->at(bx, i).processor()].push_back(outMu);
545  }
546  }
547  for (int i = 0; i < 12; ++i) {
548  if (wedges[i].size() > 3)
549  edm::LogWarning("Input Mismatch") << " too many inputs per processor for barrel. Wedge " << i << ": Size "
550  << wedges[i].size() << std::endl;
551  }
552 }

References l1GtPatternGenerator_cfi::bx, mps_fire::i, recoMuon::in, MainPageGenerator::link, m_inputsToDisable, m_maskedInputs, MillePedeFileConverter_cfg::out, and findQualityFiles::size.

Referenced by produce().

◆ endLuminosityBlock()

void L1TMuonProducer::endLuminosityBlock ( edm::LuminosityBlock const &  ,
edm::EventSetup const &   
)
overrideprivate

Definition at line 610 of file L1TMuonProducer.cc.

610 {}

◆ endRun()

void L1TMuonProducer::endRun ( edm::Run const &  ,
edm::EventSetup const &   
)
overrideprivate

Definition at line 604 of file L1TMuonProducer.cc.

604 {}

◆ fillDescriptions()

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

Definition at line 613 of file L1TMuonProducer.cc.

613  {
614  //The following says we do not know what parameters are allowed so do no validation
615  // Please change this to state exactly what you do use, even if it is no parameters
617  desc.setUnknown();
618  descriptions.addDefault(desc);
619 }

References edm::ConfigurationDescriptions::addDefault(), and edm::ParameterSetDescription::setUnknown().

◆ produce()

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

Definition at line 189 of file L1TMuonProducer.cc.

189  {
190  using namespace edm;
191  std::unique_ptr<MuonBxCollection> outMuons(new MuonBxCollection());
192  std::unique_ptr<MuonBxCollection> imdMuonsBMTF(new MuonBxCollection());
193  std::unique_ptr<MuonBxCollection> imdMuonsEMTFPos(new MuonBxCollection());
194  std::unique_ptr<MuonBxCollection> imdMuonsEMTFNeg(new MuonBxCollection());
195  std::unique_ptr<MuonBxCollection> imdMuonsOMTFPos(new MuonBxCollection());
196  std::unique_ptr<MuonBxCollection> imdMuonsOMTFNeg(new MuonBxCollection());
197 
202 
203  iEvent.getByToken(m_barrelTfInputToken, bmtfMuons);
204  iEvent.getByToken(m_endcapTfInputToken, emtfMuons);
205  iEvent.getByToken(m_overlapTfInputToken, omtfMuons);
206  iEvent.getByToken(m_caloTowerInputToken, trigTowers);
207 
208  // find out the BX range from the inputs
209  // the smallest BX window defines the output BX window
210  if (m_autoBxRange) {
211  int bxMin = -1000;
212  int bxMax = 1000;
213  if (!(m_caloInputsToDisable.all() || m_maskedCaloInputs.all())) {
214  bxMin = std::max(bxMin, trigTowers->getFirstBX());
215  bxMax = std::min(bxMax, trigTowers->getLastBX());
216  }
217  if (!(m_bmtfInputsToDisable.all() || m_maskedBmtfInputs.all())) {
218  bxMin = std::max(bxMin, bmtfMuons->getFirstBX());
219  bxMax = std::min(bxMax, bmtfMuons->getLastBX());
220  }
221  if (!(m_omtfInputsToDisable.all() || m_maskedOmtfInputs.all())) {
222  bxMin = std::max(bxMin, omtfMuons->getFirstBX());
223  bxMax = std::min(bxMax, omtfMuons->getLastBX());
224  }
225  if (!(m_emtfInputsToDisable.all() || m_maskedEmtfInputs.all())) {
226  bxMin = std::max(bxMin, emtfMuons->getFirstBX());
227  bxMax = std::min(bxMax, emtfMuons->getLastBX());
228  }
229  if (bxMin > 0) {
230  bxMin = 0;
231  }
232  if (bxMax < 0) {
233  bxMax = 0;
234  }
235  if (bxMin > -1000) {
236  m_bxMin = bxMin;
237  } else {
238  m_bxMin = 0;
239  }
240  if (bxMax < 1000) {
241  m_bxMax = bxMax;
242  } else {
243  m_bxMax = 0;
244  }
245  }
246 
247  // set BX range for outputs
248  outMuons->setBXRange(m_bxMin, m_bxMax);
249  imdMuonsBMTF->setBXRange(m_bxMin, m_bxMax);
250  imdMuonsEMTFPos->setBXRange(m_bxMin, m_bxMax);
251  imdMuonsEMTFNeg->setBXRange(m_bxMin, m_bxMax);
252  imdMuonsOMTFPos->setBXRange(m_bxMin, m_bxMax);
253  imdMuonsOMTFNeg->setBXRange(m_bxMin, m_bxMax);
254 
255  for (int bx = m_bxMin; bx <= m_bxMax; ++bx) {
256  m_isolationUnit.setTowerSums(*trigTowers, bx);
257  MicroGMTConfiguration::InterMuonList internMuonsBmtf;
258  MicroGMTConfiguration::InterMuonList internMuonsEmtfPos;
259  MicroGMTConfiguration::InterMuonList internMuonsEmtfNeg;
260  MicroGMTConfiguration::InterMuonList internMuonsOmtfPos;
261  MicroGMTConfiguration::InterMuonList internMuonsOmtfNeg;
262 
263  // These wedges contain shared pointers to the ones in the InterMuonList
264  GMTInternalWedges omtfNegWedges;
265  GMTInternalWedges bmtfWedges;
266  GMTInternalWedges emtfPosWedges;
267  GMTInternalWedges emtfNegWedges;
268  GMTInternalWedges omtfPosWedges;
269 
270  // this converts the InputMuon type to the InternalMuon type and splits them into
271  // positive / negative eta collections necessary as LUTs may differ for pos / neg.
272  convertMuons(bmtfMuons, internMuonsBmtf, bmtfWedges, bx);
273  splitAndConvertMuons(emtfMuons, internMuonsEmtfPos, internMuonsEmtfNeg, emtfPosWedges, emtfNegWedges, bx);
274  splitAndConvertMuons(omtfMuons, internMuonsOmtfPos, internMuonsOmtfNeg, omtfPosWedges, omtfNegWedges, bx);
275 
276  // cancel out within the track finders:
282 
283  // cancel out between track finder acceptance overlaps:
288 
289  m_isolationUnit.extrapolateMuons(internMuonsBmtf);
290  m_isolationUnit.extrapolateMuons(internMuonsEmtfNeg);
291  m_isolationUnit.extrapolateMuons(internMuonsEmtfPos);
292  m_isolationUnit.extrapolateMuons(internMuonsOmtfNeg);
293  m_isolationUnit.extrapolateMuons(internMuonsOmtfPos);
294 
295  // the rank calculated here is used in the sort below
296  calculateRank(internMuonsBmtf);
297  calculateRank(internMuonsEmtfNeg);
298  calculateRank(internMuonsEmtfPos);
299  calculateRank(internMuonsOmtfNeg);
300  calculateRank(internMuonsOmtfPos);
301 
302  // The sort function both sorts and removes all but best "nSurvivors"
303  sortMuons(internMuonsBmtf, 8);
304  sortMuons(internMuonsOmtfPos, 4);
305  sortMuons(internMuonsOmtfNeg, 4);
306  sortMuons(internMuonsEmtfPos, 4);
307  sortMuons(internMuonsEmtfNeg, 4);
308 
309  // This combines the 5 streams into one InternalMuon collection for
310  // the final global sort.
312  addMuonsToCollections(internMuonsEmtfPos, internalMuons, imdMuonsEMTFPos, bx);
313  addMuonsToCollections(internMuonsOmtfPos, internalMuons, imdMuonsOMTFPos, bx);
314  addMuonsToCollections(internMuonsBmtf, internalMuons, imdMuonsBMTF, bx);
315  addMuonsToCollections(internMuonsOmtfNeg, internalMuons, imdMuonsOMTFNeg, bx);
316  addMuonsToCollections(internMuonsEmtfNeg, internalMuons, imdMuonsEMTFNeg, bx);
317 
318  // sort internal muons and delete all but best 8
319  sortMuons(internalMuons, 8);
320 
321  m_isolationUnit.isolatePreSummed(internalMuons);
322  // copy muons to output collection...
323  for (const auto& mu : internalMuons) {
324  if (mu->hwPt() > 0) {
326  (mu->hwPt() - 1) * 0.5, mu->hwEta() * 0.010875, mu->hwGlobalPhi() * 0.010908, 0.0};
327  int iso = mu->hwAbsIso() + (mu->hwRelIso() << 1);
328  int outMuQual = MicroGMTConfiguration::setOutputMuonQuality(mu->hwQual(), mu->trackFinderType(), mu->hwHF());
329  Muon outMu{vec,
330  mu->hwPt(),
331  mu->hwEta(),
332  mu->hwGlobalPhi(),
333  outMuQual,
334  mu->hwSign(),
335  mu->hwSignValid(),
336  iso,
337  mu->tfMuonIndex(),
338  0,
339  true,
340  mu->hwIsoSum(),
341  mu->hwDPhi(),
342  mu->hwDEta(),
343  mu->hwRank()};
344 
345  // Set coordinates at the vertex
346  outMu.setHwEtaAtVtx(MicroGMTConfiguration::calcMuonHwEtaExtra(outMu));
347  outMu.setHwPhiAtVtx(MicroGMTConfiguration::calcMuonHwPhiExtra(outMu));
348  outMu.setEtaAtVtx(MicroGMTConfiguration::calcMuonEtaExtra(outMu));
349  outMu.setPhiAtVtx(MicroGMTConfiguration::calcMuonPhiExtra(outMu));
350 
351  // Set displacement information
352  int hwPtUnconstrained{mu->hwPtUnconstrained()};
353  outMu.setPtUnconstrained(hwPtUnconstrained == 0 ? 0
354  : (hwPtUnconstrained - 1) * 0.5); // Don't want negative pT.
355  outMu.setHwPtUnconstrained(hwPtUnconstrained);
356  outMu.setHwDXY(mu->hwDXY());
357 
358  if (mu->hwSignValid()) {
359  outMu.setCharge(1 - 2 * mu->hwSign());
360  } else {
361  outMu.setCharge(0);
362  }
363  m_debugOut << mu->hwCaloPhi() << " " << mu->hwCaloEta() << std::endl;
364  outMuons->push_back(bx, outMu);
365  }
366  }
367  }
368 
369  iEvent.put(std::move(outMuons));
370  iEvent.put(std::move(imdMuonsBMTF), "imdMuonsBMTF");
371  iEvent.put(std::move(imdMuonsEMTFPos), "imdMuonsEMTFPos");
372  iEvent.put(std::move(imdMuonsEMTFNeg), "imdMuonsEMTFNeg");
373  iEvent.put(std::move(imdMuonsOMTFPos), "imdMuonsOMTFPos");
374  iEvent.put(std::move(imdMuonsOMTFNeg), "imdMuonsOMTFNeg");
375 }

References addMuonsToCollections(), l1t::bmtf, l1GtPatternGenerator_cfi::bx, l1tstage1emulator_dqm_sourceclient-live_cfg::bxMax, l1tstage1emulator_dqm_sourceclient-live_cfg::bxMin, calculateRank(), convertMuons(), l1t::emtf_neg, l1t::emtf_pos, l1t::MicroGMTIsolationUnit::extrapolateMuons(), BXVector< T >::getFirstBX(), BXVector< T >::getLastBX(), iEvent, l1t::MicroGMTIsolationUnit::isolatePreSummed(), m_autoBxRange, m_barrelTfInputToken, m_bmtfCancelMode, m_bmtfInputsToDisable, m_bxMax, m_bxMin, m_caloInputsToDisable, m_caloTowerInputToken, m_cancelOutUnit, m_debugOut, m_emtfCancelMode, m_emtfInputsToDisable, m_endcapTfInputToken, m_isolationUnit, m_maskedBmtfInputs, m_maskedCaloInputs, m_maskedEmtfInputs, m_maskedOmtfInputs, m_omtfInputsToDisable, m_overlapTfInputToken, SiStripPI::max, min(), eostools::move(), amptDefaultParameters_cff::mu, l1t::omtf_neg, l1t::omtf_pos, l1t::MicroGMTCancelOutUnit::setCancelOutBits(), l1t::MicroGMTCancelOutUnit::setCancelOutBitsOverlapBarrel(), l1t::MicroGMTCancelOutUnit::setCancelOutBitsOverlapEndcap(), l1t::MicroGMTIsolationUnit::setTowerSums(), sortMuons(), and splitAndConvertMuons().

◆ sortMuons()

void L1TMuonProducer::sortMuons ( MicroGMTConfiguration::InterMuonList muons,
unsigned  nSurvivors 
) const
private

Definition at line 382 of file L1TMuonProducer.cc.

382  {
383  MicroGMTConfiguration::InterMuonList::iterator mu1;
384  // reset from previous sort stage
385  for (mu1 = muons.begin(); mu1 != muons.end(); ++mu1) {
386  (*mu1)->setHwWins(0);
387  }
388 
389  int nCancelled = 0;
390  for (mu1 = muons.begin(); mu1 != muons.end(); ++mu1) {
391  int mu1CancelBit = (*mu1)->hwCancelBit();
392  nCancelled += mu1CancelBit;
393  auto mu2 = mu1;
394  mu2++;
395  for (; mu2 != muons.end(); ++mu2) {
396  if (mu1CancelBit != 1 && (*mu2)->hwCancelBit() != 1) {
397  if ((*mu1)->hwRank() >= (*mu2)->hwRank()) {
398  (*mu1)->increaseWins();
399  } else {
400  (*mu2)->increaseWins();
401  }
402  } else if (mu1CancelBit != 1) {
403  (*mu1)->increaseWins();
404  } else if ((*mu2)->hwCancelBit() != 1) {
405  (*mu2)->increaseWins();
406  }
407  }
408  }
409 
410  size_t nMuonsBefore = muons.size();
411  int minWins = nMuonsBefore - nSurvivors;
412 
413  // remove all muons that were cancelled or that do not have sufficient rank
414  // (reduces the container size to nSurvivors)
415  muons.remove_if([&minWins](auto muon) { return ((muon->hwWins() < minWins) || (muon->hwCancelBit() == 1)); });
417 }

References compareMuons(), and PDWG_BPHSkim_cff::muons.

Referenced by produce().

◆ splitAndConvertMuons()

void L1TMuonProducer::splitAndConvertMuons ( edm::Handle< MicroGMTConfiguration::InputCollection > const &  in,
MicroGMTConfiguration::InterMuonList out_pos,
MicroGMTConfiguration::InterMuonList out_neg,
GMTInternalWedges wedges_pos,
GMTInternalWedges wedges_neg,
int  bx 
) const
private

Definition at line 466 of file L1TMuonProducer.cc.

471  {
472  // initialize the wedge collections:
473  for (int i = 0; i < 6; ++i) {
474  wedges_pos[i] = std::vector<std::shared_ptr<GMTInternalMuon>>();
475  wedges_pos[i].reserve(3);
476  wedges_neg[i] = std::vector<std::shared_ptr<GMTInternalMuon>>();
477  wedges_neg[i].reserve(3);
478  }
479  if (bx < in->getFirstBX() || bx > in->getLastBX())
480  return;
481  int muIdx = 0;
482  int currentLink = 0;
483  for (size_t i = 0; i < in->size(bx); ++i, ++muIdx) {
484  if (in->at(bx, i).hwPt() > 0) {
485  int link = in->at(bx, i).link();
486  if (m_inputsToDisable.test(link) || m_maskedInputs.test(link)) {
487  continue; // only process if input link is enabled and not masked
488  }
489  if (currentLink != link) {
490  muIdx = 0;
491  currentLink = link;
492  }
493  int gPhi = MicroGMTConfiguration::calcGlobalPhi(
494  in->at(bx, i).hwPhi(), in->at(bx, i).trackFinderType(), in->at(bx, i).processor());
495  int tfMuonIdx = 3 * (currentLink - 36) + muIdx;
496  std::shared_ptr<GMTInternalMuon> out = std::make_shared<GMTInternalMuon>(in->at(bx, i), gPhi, tfMuonIdx);
497  if (in->at(bx, i).hwEta() > 0) {
498  out_pos.push_back(out);
499  wedges_pos[in->at(bx, i).processor()].push_back(out);
500  } else {
501  out_neg.emplace_back(out);
502  wedges_neg[in->at(bx, i).processor()].push_back(out);
503  }
504  }
505  }
506  for (int i = 0; i < 6; ++i) {
507  if (wedges_pos[i].size() > 3)
508  edm::LogWarning("Input Mismatch") << " too many inputs per processor for emtf+ / omtf+. Wedge " << i << ": Size "
509  << wedges_pos[i].size() << std::endl;
510  if (wedges_neg[i].size() > 3)
511  edm::LogWarning("Input Mismatch") << " too many inputs per processor for emtf- / omtf-. Wedge " << i << ": Size "
512  << wedges_neg[i].size() << std::endl;
513  }
514 }

References l1GtPatternGenerator_cfi::bx, mps_fire::i, recoMuon::in, MainPageGenerator::link, m_inputsToDisable, m_maskedInputs, MillePedeFileConverter_cfg::out, and findQualityFiles::size.

Referenced by produce().

Member Data Documentation

◆ m_autoBxRange

bool L1TMuonProducer::m_autoBxRange
private

Definition at line 98 of file L1TMuonProducer.cc.

Referenced by L1TMuonProducer(), and produce().

◆ m_autoCancelMode

bool L1TMuonProducer::m_autoCancelMode
private

Definition at line 101 of file L1TMuonProducer.cc.

Referenced by beginRun(), and L1TMuonProducer().

◆ m_barrelTfInputTag

edm::InputTag L1TMuonProducer::m_barrelTfInputTag
private

Definition at line 113 of file L1TMuonProducer.cc.

Referenced by L1TMuonProducer().

◆ m_barrelTfInputToken

edm::EDGetTokenT<MicroGMTConfiguration::InputCollection> L1TMuonProducer::m_barrelTfInputToken
private

Definition at line 124 of file L1TMuonProducer.cc.

Referenced by L1TMuonProducer(), and produce().

◆ m_bmtfCancelMode

l1t::cancelmode L1TMuonProducer::m_bmtfCancelMode
private

Definition at line 121 of file L1TMuonProducer.cc.

Referenced by beginRun(), L1TMuonProducer(), and produce().

◆ m_bmtfInputsToDisable

std::bitset<12> L1TMuonProducer::m_bmtfInputsToDisable
private

Definition at line 104 of file L1TMuonProducer.cc.

Referenced by beginRun(), and produce().

◆ m_bxMax

int L1TMuonProducer::m_bxMax
private

Definition at line 100 of file L1TMuonProducer.cc.

Referenced by L1TMuonProducer(), and produce().

◆ m_bxMin

int L1TMuonProducer::m_bxMin
private

Definition at line 99 of file L1TMuonProducer.cc.

Referenced by L1TMuonProducer(), and produce().

◆ m_caloInputsToDisable

std::bitset<28> L1TMuonProducer::m_caloInputsToDisable
private

Definition at line 103 of file L1TMuonProducer.cc.

Referenced by beginRun(), and produce().

◆ m_caloTowerInputToken

edm::EDGetTokenT<MicroGMTConfiguration::CaloInputCollection> L1TMuonProducer::m_caloTowerInputToken
private

Definition at line 127 of file L1TMuonProducer.cc.

Referenced by L1TMuonProducer(), and produce().

◆ m_cancelOutUnit

MicroGMTCancelOutUnit L1TMuonProducer::m_cancelOutUnit
private

Definition at line 119 of file L1TMuonProducer.cc.

Referenced by beginRun(), and produce().

◆ m_debugOut

std::ofstream L1TMuonProducer::m_debugOut
private

Definition at line 120 of file L1TMuonProducer.cc.

Referenced by produce(), and ~L1TMuonProducer().

◆ m_emtfCancelMode

l1t::cancelmode L1TMuonProducer::m_emtfCancelMode
private

Definition at line 122 of file L1TMuonProducer.cc.

Referenced by L1TMuonProducer(), and produce().

◆ m_emtfInputsToDisable

std::bitset<12> L1TMuonProducer::m_emtfInputsToDisable
private

Definition at line 106 of file L1TMuonProducer.cc.

Referenced by beginRun(), and produce().

◆ m_endcapTfInputTag

edm::InputTag L1TMuonProducer::m_endcapTfInputTag
private

Definition at line 115 of file L1TMuonProducer.cc.

Referenced by L1TMuonProducer().

◆ m_endcapTfInputToken

edm::EDGetTokenT<MicroGMTConfiguration::InputCollection> L1TMuonProducer::m_endcapTfInputToken
private

Definition at line 126 of file L1TMuonProducer.cc.

Referenced by L1TMuonProducer(), and produce().

◆ m_inputsToDisable

std::bitset<72> L1TMuonProducer::m_inputsToDisable
private

Definition at line 102 of file L1TMuonProducer.cc.

Referenced by beginRun(), convertMuons(), and splitAndConvertMuons().

◆ m_isolationUnit

MicroGMTIsolationUnit L1TMuonProducer::m_isolationUnit
private

Definition at line 118 of file L1TMuonProducer.cc.

Referenced by beginRun(), and produce().

◆ m_maskedBmtfInputs

std::bitset<12> L1TMuonProducer::m_maskedBmtfInputs
private

Definition at line 109 of file L1TMuonProducer.cc.

Referenced by beginRun(), and produce().

◆ m_maskedCaloInputs

std::bitset<28> L1TMuonProducer::m_maskedCaloInputs
private

Definition at line 108 of file L1TMuonProducer.cc.

Referenced by beginRun(), and produce().

◆ m_maskedEmtfInputs

std::bitset<12> L1TMuonProducer::m_maskedEmtfInputs
private

Definition at line 111 of file L1TMuonProducer.cc.

Referenced by beginRun(), and produce().

◆ m_maskedInputs

std::bitset<72> L1TMuonProducer::m_maskedInputs
private

Definition at line 107 of file L1TMuonProducer.cc.

Referenced by beginRun(), convertMuons(), and splitAndConvertMuons().

◆ m_maskedOmtfInputs

std::bitset<12> L1TMuonProducer::m_maskedOmtfInputs
private

Definition at line 110 of file L1TMuonProducer.cc.

Referenced by beginRun(), and produce().

◆ m_omtfInputsToDisable

std::bitset<12> L1TMuonProducer::m_omtfInputsToDisable
private

Definition at line 105 of file L1TMuonProducer.cc.

Referenced by beginRun(), and produce().

◆ m_overlapTfInputTag

edm::InputTag L1TMuonProducer::m_overlapTfInputTag
private

Definition at line 114 of file L1TMuonProducer.cc.

Referenced by L1TMuonProducer().

◆ m_overlapTfInputToken

edm::EDGetTokenT<MicroGMTConfiguration::InputCollection> L1TMuonProducer::m_overlapTfInputToken
private

Definition at line 125 of file L1TMuonProducer.cc.

Referenced by L1TMuonProducer(), and produce().

◆ m_rankPtQualityLUT

std::shared_ptr<MicroGMTRankPtQualLUT> L1TMuonProducer::m_rankPtQualityLUT
private

Definition at line 117 of file L1TMuonProducer.cc.

Referenced by beginRun(), and calculateRank().

◆ m_trigTowerTag

edm::InputTag L1TMuonProducer::m_trigTowerTag
private

Definition at line 116 of file L1TMuonProducer.cc.

Referenced by L1TMuonProducer().

◆ microGMTParamsHelper

std::unique_ptr<L1TMuonGlobalParamsHelper> L1TMuonProducer::microGMTParamsHelper
private

Definition at line 112 of file L1TMuonProducer.cc.

Referenced by beginRun().

edm::ESHandle::product
T const * product() const
Definition: ESHandle.h:86
PDWG_BPHSkim_cff.muons
muons
Definition: PDWG_BPHSkim_cff.py:47
l1t::bmtf
Definition: RegionalMuonCandFwd.h:8
l1t::MicroGMTCancelOutUnit::setCancelOutBits
void setCancelOutBits(GMTInternalWedges &, tftype, cancelmode)
Cancel out between sectors/wedges in one track finder.
Definition: MicroGMTCancelOutUnit.cc:39
l1t::emtf_neg
Definition: RegionalMuonCandFwd.h:8
L1TMuonProducer::m_endcapTfInputTag
edm::InputTag m_endcapTfInputTag
Definition: L1TMuonProducer.cc:115
PDWG_EXOHSCP_cff.tracks
tracks
Definition: PDWG_EXOHSCP_cff.py:28
mps_fire.i
i
Definition: mps_fire.py:355
l1t::MicroGMTCancelOutUnit::setCancelOutBitsOverlapEndcap
void setCancelOutBitsOverlapEndcap(GMTInternalWedges &, GMTInternalWedges &, cancelmode)
Cancel-out between overlap and endcap track finders.
Definition: MicroGMTCancelOutUnit.cc:102
L1TMuonProducer::m_overlapTfInputToken
edm::EDGetTokenT< MicroGMTConfiguration::InputCollection > m_overlapTfInputToken
Definition: L1TMuonProducer.cc:125
MainPageGenerator.link
link
Definition: MainPageGenerator.py:271
L1TMuonProducer::m_bmtfCancelMode
l1t::cancelmode m_bmtfCancelMode
Definition: L1TMuonProducer.cc:121
muon
Definition: MuonCocktails.h:17
l1t::omtf_pos
Definition: RegionalMuonCandFwd.h:8
l1t::MicroGMTConfiguration::InterMuonList
GMTInternalMuonList InterMuonList
Definition: MicroGMTConfiguration.h:39
amptDefaultParameters_cff.mu
mu
Definition: amptDefaultParameters_cff.py:16
min
T min(T a, T b)
Definition: MathUtil.h:58
edm
HLT enums.
Definition: AlignableModifier.h:19
l1t::MuonBxCollection
BXVector< Muon > MuonBxCollection
Definition: Muon.h:11
l1GtPatternGenerator_cfi.bx
bx
Definition: l1GtPatternGenerator_cfi.py:18
edm::ParameterSetDescription
Definition: ParameterSetDescription.h:52
L1TMuonProducer::m_autoCancelMode
bool m_autoCancelMode
Definition: L1TMuonProducer.cc:101
l1t::MicroGMTIsolationUnit::initialise
void initialise(L1TMuonGlobalParamsHelper *)
Initialisation from ES record.
Definition: MicroGMTIsolationUnit.cc:12
L1TMuonProducer::m_bmtfInputsToDisable
std::bitset< 12 > m_bmtfInputsToDisable
Definition: L1TMuonProducer.cc:104
L1TMuonProducer::convertMuons
void convertMuons(edm::Handle< MicroGMTConfiguration::InputCollection > const &in, MicroGMTConfiguration::InterMuonList &out, GMTInternalWedges &wedges, int bx) const
Definition: L1TMuonProducer.cc:516
L1TMuonProducer::m_maskedOmtfInputs
std::bitset< 12 > m_maskedOmtfInputs
Definition: L1TMuonProducer.cc:110
edm::Handle
Definition: AssociativeIterator.h:50
L1TMuonProducer::m_caloTowerInputToken
edm::EDGetTokenT< MicroGMTConfiguration::CaloInputCollection > m_caloTowerInputToken
Definition: L1TMuonProducer.cc:127
L1TMuonProducer::m_rankPtQualityLUT
std::shared_ptr< MicroGMTRankPtQualLUT > m_rankPtQualityLUT
Definition: L1TMuonProducer.cc:117
Muon
Definition: Muon.py:1
L1TMuonProducer::m_emtfInputsToDisable
std::bitset< 12 > m_emtfInputsToDisable
Definition: L1TMuonProducer.cc:106
BXVector::getFirstBX
int getFirstBX() const
l1tstage1emulator_dqm_sourceclient-live_cfg.bxMin
bxMin
Definition: l1tstage1emulator_dqm_sourceclient-live_cfg.py:89
l1t::GMTInternalWedges
std::map< int, std::vector< std::shared_ptr< GMTInternalMuon > > > GMTInternalWedges
Definition: GMTInternalMuonFwd.h:11
L1TMuonProducer::m_trigTowerTag
edm::InputTag m_trigTowerTag
Definition: L1TMuonProducer.cc:116
l1t::MicroGMTRankPtQualLUTFactory::create
static ReturnType create(const std::string &filename, const int fwVersion, const unsigned ptFactor, const unsigned qualFactor)
Definition: MicroGMTRankPtQualLUTFactory.cc:18
L1TMuonGlobalParams_PUBLIC
Definition: L1TMuonGlobalParams_PUBLIC.h:21
L1TMuonProducer::calculateRank
void calculateRank(MicroGMTConfiguration::InterMuonList &muons) const
Definition: L1TMuonProducer.cc:419
edm::ESHandle
Definition: DTSurvey.h:22
l1tstage1emulator_dqm_sourceclient-live_cfg.bxMax
bxMax
Definition: l1tstage1emulator_dqm_sourceclient-live_cfg.py:90
L1TMuonProducer::microGMTParamsHelper
std::unique_ptr< L1TMuonGlobalParamsHelper > microGMTParamsHelper
Definition: L1TMuonProducer.cc:112
L1TMuonProducer::splitAndConvertMuons
void splitAndConvertMuons(edm::Handle< MicroGMTConfiguration::InputCollection > const &in, MicroGMTConfiguration::InterMuonList &out_pos, MicroGMTConfiguration::InterMuonList &out_neg, GMTInternalWedges &wedges_pos, GMTInternalWedges &wedges_neg, int bx) const
Definition: L1TMuonProducer.cc:466
L1TMuonProducer::m_barrelTfInputToken
edm::EDGetTokenT< MicroGMTConfiguration::InputCollection > m_barrelTfInputToken
Definition: L1TMuonProducer.cc:124
L1TMuonProducer::m_maskedCaloInputs
std::bitset< 28 > m_maskedCaloInputs
Definition: L1TMuonProducer.cc:108
l1t::MicroGMTIsolationUnit::setTowerSums
void setTowerSums(const MicroGMTConfiguration::CaloInputCollection &inputs, int bx)
Definition: MicroGMTIsolationUnit.cc:185
L1TMuonProducer::m_barrelTfInputTag
edm::InputTag m_barrelTfInputTag
Definition: L1TMuonProducer.cc:113
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
edm::LogWarning
Definition: MessageLogger.h:141
L1TMuonProducer::m_maskedBmtfInputs
std::bitset< 12 > m_maskedBmtfInputs
Definition: L1TMuonProducer.cc:109
L1TMuonProducer::m_maskedEmtfInputs
std::bitset< 12 > m_maskedEmtfInputs
Definition: L1TMuonProducer.cc:111
SiStripPI::max
Definition: SiStripPayloadInspectorHelper.h:169
l1t::MicroGMTIsolationUnit::extrapolateMuons
void extrapolateMuons(MicroGMTConfiguration::InterMuonList &) const
Definition: MicroGMTIsolationUnit.cc:67
l1t::kftracks
Definition: MicroGMTCancelOutUnit.h:11
L1TMuonProducer::m_emtfCancelMode
l1t::cancelmode m_emtfCancelMode
Definition: L1TMuonProducer.cc:122
recoMuon::in
Definition: RecoMuonEnumerators.h:6
L1TMuonProducer::m_maskedInputs
std::bitset< 72 > m_maskedInputs
Definition: L1TMuonProducer.cc:107
L1TMuonProducer::m_endcapTfInputToken
edm::EDGetTokenT< MicroGMTConfiguration::InputCollection > m_endcapTfInputToken
Definition: L1TMuonProducer.cc:126
iEvent
int iEvent
Definition: GenABIO.cc:224
L1TMuonProducer::m_bxMax
int m_bxMax
Definition: L1TMuonProducer.cc:100
L1TMuonProducer::m_autoBxRange
bool m_autoBxRange
Definition: L1TMuonProducer.cc:98
edm::LogVerbatim
Definition: MessageLogger.h:297
edm::ParameterSetDescription::setUnknown
void setUnknown()
Definition: ParameterSetDescription.cc:39
get
#define get
L1TMuonGlobalParamsRcd
Definition: L1TMuonGlobalParamsRcd.h:23
L1TMuonProducer::m_isolationUnit
MicroGMTIsolationUnit m_isolationUnit
Definition: L1TMuonProducer.cc:118
L1TMuonProducer::m_debugOut
std::ofstream m_debugOut
Definition: L1TMuonProducer.cc:120
L1TMuonProducer::compareMuons
static bool compareMuons(const std::shared_ptr< MicroGMTConfiguration::InterMuon > &mu1, const std::shared_ptr< MicroGMTConfiguration::InterMuon > &mu2)
Definition: L1TMuonProducer.cc:377
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
l1t::MicroGMTIsolationUnit::isolatePreSummed
void isolatePreSummed(MicroGMTConfiguration::InterMuonList &muons) const
Definition: MicroGMTIsolationUnit.cc:203
eostools.move
def move(src, dest)
Definition: eostools.py:511
L1TMuonGlobalParamsO2ORcd
Definition: L1TMuonGlobalParamsO2ORcd.h:26
L1TMuonProducer::m_bxMin
int m_bxMin
Definition: L1TMuonProducer.cc:99
l1t::emtf_pos
Definition: RegionalMuonCandFwd.h:8
l1t::MicroGMTCancelOutUnit::initialise
void initialise(L1TMuonGlobalParamsHelper *)
Initialisation from ES record.
Definition: MicroGMTCancelOutUnit.cc:10
AlignmentPI::coordinate
coordinate
Definition: AlignmentPayloadInspectorHelper.h:33
l1t::MicroGMTCancelOutUnit::setCancelOutBitsOverlapBarrel
void setCancelOutBitsOverlapBarrel(GMTInternalWedges &, GMTInternalWedges &, cancelmode)
Cancel-out between overlap and barrel track finders.
Definition: MicroGMTCancelOutUnit.cc:68
L1TMuonProducer::m_omtfInputsToDisable
std::bitset< 12 > m_omtfInputsToDisable
Definition: L1TMuonProducer.cc:105
L1TMuonProducer::m_cancelOutUnit
MicroGMTCancelOutUnit m_cancelOutUnit
Definition: L1TMuonProducer.cc:119
cast_to_L1TMuonGlobalParams
const L1TMuonGlobalParams & cast_to_L1TMuonGlobalParams(const L1TMuonGlobalParams_PUBLIC &x)
Definition: L1TMuonGlobalParams_PUBLIC.cc:10
MillePedeFileConverter_cfg.out
out
Definition: MillePedeFileConverter_cfg.py:31
edm::eventsetup::EventSetupRecordImplementation::get
PRODUCT const & get(ESGetToken< PRODUCT, T > const &iToken) const
Definition: EventSetupRecordImplementation.h:74
L1TMuonProducer::sortMuons
void sortMuons(MicroGMTConfiguration::InterMuonList &, unsigned) const
Definition: L1TMuonProducer.cc:382
math::PtEtaPhiMLorentzVector
PtEtaPhiMLorentzVectorD PtEtaPhiMLorentzVector
Lorentz vector with cartesian internal representation.
Definition: LorentzVector.h:25
cast_to_L1TMuonGlobalParams_PUBLIC
const L1TMuonGlobalParams_PUBLIC & cast_to_L1TMuonGlobalParams_PUBLIC(const L1TMuonGlobalParams &x)
Definition: L1TMuonGlobalParams_PUBLIC.cc:3
l1t::omtf_neg
Definition: RegionalMuonCandFwd.h:8
edm::ConfigurationDescriptions::addDefault
void addDefault(ParameterSetDescription const &psetDescription)
Definition: ConfigurationDescriptions.cc:99
BXVector::getLastBX
int getLastBX() const
L1TMuonProducer::m_overlapTfInputTag
edm::InputTag m_overlapTfInputTag
Definition: L1TMuonProducer.cc:114
edm::InputTag
Definition: InputTag.h:15
L1TMuonGlobalParamsHelper
Definition: L1TMuonGlobalParamsHelper.h:24
L1TMuonProducer::m_inputsToDisable
std::bitset< 72 > m_inputsToDisable
Definition: L1TMuonProducer.cc:102
findQualityFiles.size
size
Write out results.
Definition: findQualityFiles.py:443
L1TMuonProducer::m_caloInputsToDisable
std::bitset< 28 > m_caloInputsToDisable
Definition: L1TMuonProducer.cc:103
L1TMuonProducer::addMuonsToCollections
void addMuonsToCollections(MicroGMTConfiguration::InterMuonList &coll, MicroGMTConfiguration::InterMuonList &interout, std::unique_ptr< MuonBxCollection > &out, int bx) const
Definition: L1TMuonProducer.cc:426