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
 
 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
 
const EDProduceroperator= (const EDProducer &)=delete
 

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
 
edm::ESGetToken< L1TMuonGlobalParams, L1TMuonGlobalParamsRcdm_microGMTParamsToken
 
edm::ESGetToken< L1TMuonGlobalParams, L1TMuonGlobalParamsO2ORcdm_o2oProtoToken
 
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<>
using CacheTypes = CacheContexts< T... >
 
using GlobalCache = typename CacheTypes::GlobalCache
 
using HasAbility = AbilityChecker< T... >
 
using InputProcessBlockCache = typename CacheTypes::InputProcessBlockCache
 
using LuminosityBlockCache = typename CacheTypes::LuminosityBlockCache
 
using LuminosityBlockContext = LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCache >
 
using LuminosityBlockSummaryCache = typename CacheTypes::LuminosityBlockSummaryCache
 
using RunCache = typename CacheTypes::RunCache
 
using RunContext = RunContextT< RunCache, GlobalCache >
 
using RunSummaryCache = typename CacheTypes::RunSummaryCache
 

Detailed Description

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

Implementation: [Notes on implementation]

Definition at line 59 of file L1TMuonProducer.cc.

Constructor & Destructor Documentation

◆ L1TMuonProducer()

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

Definition at line 144 of file L1TMuonProducer.cc.

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

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_microGMTParamsToken, m_o2oProtoToken, m_overlapTfInputTag, m_overlapTfInputToken, m_trigTowerTag, AlCaHLTBitMon_QueryRunRegistry::string, and tracks.

◆ ~L1TMuonProducer()

L1TMuonProducer::~L1TMuonProducer ( )
override

Definition at line 187 of file L1TMuonProducer.cc.

187 { 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 433 of file L1TMuonProducer.cc.

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

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 613 of file L1TMuonProducer.cc.

613 {}

◆ beginRun()

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

Definition at line 564 of file L1TMuonProducer.cc.

564  {
565  edm::ESHandle<L1TMuonGlobalParams> microGMTParamsHandle = iSetup.getHandle(m_microGMTParamsToken);
566 
567  std::unique_ptr<L1TMuonGlobalParams_PUBLIC> microGMTParams(
569  if (microGMTParams->pnodes_.empty()) {
570  edm::ESHandle<L1TMuonGlobalParams> o2oProtoHandle = iSetup.getHandle(m_o2oProtoToken);
571  microGMTParamsHelper = std::make_unique<L1TMuonGlobalParamsHelper>(*o2oProtoHandle.product());
572  } else
574  std::make_unique<L1TMuonGlobalParamsHelper>(cast_to_L1TMuonGlobalParams(*microGMTParams.get()));
575 
576  //microGMTParamsHelper->print(std::cout);
577  m_inputsToDisable = microGMTParamsHelper->inputsToDisable();
578  edm::LogVerbatim("L1TMuonProducer")
579  << "uGMT inputsToDisable: " << m_inputsToDisable
580  << "\n EMTF-|OMTF-| BMTF |OMTF+|EMTF+| CALO | res 0";
581  m_caloInputsToDisable = microGMTParamsHelper->caloInputsToDisable();
582  m_bmtfInputsToDisable = microGMTParamsHelper->bmtfInputsToDisable();
583  m_omtfInputsToDisable = microGMTParamsHelper->omtfInputsToDisable();
584  m_emtfInputsToDisable = microGMTParamsHelper->emtfInputsToDisable();
585  m_maskedInputs = microGMTParamsHelper->maskedInputs();
586  edm::LogVerbatim("L1TMuonProducer")
587  << "uGMT maskedInputs: " << m_maskedInputs
588  << "\n EMTF-|OMTF-| BMTF |OMTF+|EMTF+| CALO | res 0";
589  m_maskedCaloInputs = microGMTParamsHelper->maskedCaloInputs();
590  m_maskedBmtfInputs = microGMTParamsHelper->maskedBmtfInputs();
591  m_maskedOmtfInputs = microGMTParamsHelper->maskedOmtfInputs();
592  m_maskedEmtfInputs = microGMTParamsHelper->maskedEmtfInputs();
597 
598  if (m_autoCancelMode) {
599  if (microGMTParamsHelper->fwVersion() >= 0x6000000) {
601  }
602  // TODO: No decision yet on when to use EMTF track addresses for cancel-out.
603  // if (microGMTParamsHelper->fwVersion() > 0x5000000) {
604  // m_emtfCancelMode = cancelmode::tracks;
605  // }
606  }
607 }

References cast_to_L1TMuonGlobalParams(), cast_to_L1TMuonGlobalParams_PUBLIC(), l1t::MicroGMTRankPtQualLUTFactory::create(), edm::EventSetup::getHandle(), 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_microGMTParamsToken, m_o2oProtoToken, m_omtfInputsToDisable, m_rankPtQualityLUT, microGMTParamsHelper, and edm::ESHandle< T >::product().

◆ calculateRank()

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

Definition at line 426 of file L1TMuonProducer.cc.

426  {
427  for (auto& mu1 : muons) {
428  int rank = m_rankPtQualityLUT->lookup(mu1->hwPt(), mu1->hwQual());
429  mu1->setHwRank(rank);
430  }
431 }

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 384 of file L1TMuonProducer.cc.

385  {
386  return (mu1->hwWins() >= mu2->hwWins());
387 }

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 525 of file L1TMuonProducer.cc.

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

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 616 of file L1TMuonProducer.cc.

616 {}

◆ endRun()

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

Definition at line 610 of file L1TMuonProducer.cc.

610 {}

◆ fillDescriptions()

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

Definition at line 619 of file L1TMuonProducer.cc.

619  {
620  //The following says we do not know what parameters are allowed so do no validation
621  // Please change this to state exactly what you do use, even if it is no parameters
623  desc.setUnknown();
624  descriptions.addDefault(desc);
625 }

References edm::ConfigurationDescriptions::addDefault(), and submitPVResolutionJobs::desc.

◆ produce()

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

Definition at line 194 of file L1TMuonProducer.cc.

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

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 389 of file L1TMuonProducer.cc.

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

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 475 of file L1TMuonProducer.cc.

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

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 99 of file L1TMuonProducer.cc.

Referenced by L1TMuonProducer(), and produce().

◆ m_autoCancelMode

bool L1TMuonProducer::m_autoCancelMode
private

Definition at line 102 of file L1TMuonProducer.cc.

Referenced by beginRun(), and L1TMuonProducer().

◆ m_barrelTfInputTag

edm::InputTag L1TMuonProducer::m_barrelTfInputTag
private

Definition at line 114 of file L1TMuonProducer.cc.

Referenced by L1TMuonProducer().

◆ m_barrelTfInputToken

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

Definition at line 125 of file L1TMuonProducer.cc.

Referenced by L1TMuonProducer(), and produce().

◆ m_bmtfCancelMode

l1t::cancelmode L1TMuonProducer::m_bmtfCancelMode
private

Definition at line 122 of file L1TMuonProducer.cc.

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

◆ m_bmtfInputsToDisable

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

Definition at line 105 of file L1TMuonProducer.cc.

Referenced by beginRun(), and produce().

◆ m_bxMax

int L1TMuonProducer::m_bxMax
private

Definition at line 101 of file L1TMuonProducer.cc.

Referenced by L1TMuonProducer(), and produce().

◆ m_bxMin

int L1TMuonProducer::m_bxMin
private

Definition at line 100 of file L1TMuonProducer.cc.

Referenced by L1TMuonProducer(), and produce().

◆ m_caloInputsToDisable

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

Definition at line 104 of file L1TMuonProducer.cc.

Referenced by beginRun(), and produce().

◆ m_caloTowerInputToken

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

Definition at line 128 of file L1TMuonProducer.cc.

Referenced by L1TMuonProducer(), and produce().

◆ m_cancelOutUnit

MicroGMTCancelOutUnit L1TMuonProducer::m_cancelOutUnit
private

Definition at line 120 of file L1TMuonProducer.cc.

Referenced by beginRun(), and produce().

◆ m_debugOut

std::ofstream L1TMuonProducer::m_debugOut
private

Definition at line 121 of file L1TMuonProducer.cc.

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

◆ m_emtfCancelMode

l1t::cancelmode L1TMuonProducer::m_emtfCancelMode
private

Definition at line 123 of file L1TMuonProducer.cc.

Referenced by L1TMuonProducer(), and produce().

◆ m_emtfInputsToDisable

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

Definition at line 107 of file L1TMuonProducer.cc.

Referenced by beginRun(), and produce().

◆ m_endcapTfInputTag

edm::InputTag L1TMuonProducer::m_endcapTfInputTag
private

Definition at line 116 of file L1TMuonProducer.cc.

Referenced by L1TMuonProducer().

◆ m_endcapTfInputToken

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

Definition at line 127 of file L1TMuonProducer.cc.

Referenced by L1TMuonProducer(), and produce().

◆ m_inputsToDisable

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

Definition at line 103 of file L1TMuonProducer.cc.

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

◆ m_isolationUnit

MicroGMTIsolationUnit L1TMuonProducer::m_isolationUnit
private

Definition at line 119 of file L1TMuonProducer.cc.

Referenced by beginRun(), and produce().

◆ m_maskedBmtfInputs

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

Definition at line 110 of file L1TMuonProducer.cc.

Referenced by beginRun(), and produce().

◆ m_maskedCaloInputs

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

Definition at line 109 of file L1TMuonProducer.cc.

Referenced by beginRun(), and produce().

◆ m_maskedEmtfInputs

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

Definition at line 112 of file L1TMuonProducer.cc.

Referenced by beginRun(), and produce().

◆ m_maskedInputs

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

Definition at line 108 of file L1TMuonProducer.cc.

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

◆ m_maskedOmtfInputs

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

Definition at line 111 of file L1TMuonProducer.cc.

Referenced by beginRun(), and produce().

◆ m_microGMTParamsToken

edm::ESGetToken<L1TMuonGlobalParams, L1TMuonGlobalParamsRcd> L1TMuonProducer::m_microGMTParamsToken
private

Definition at line 129 of file L1TMuonProducer.cc.

Referenced by beginRun(), and L1TMuonProducer().

◆ m_o2oProtoToken

edm::ESGetToken<L1TMuonGlobalParams, L1TMuonGlobalParamsO2ORcd> L1TMuonProducer::m_o2oProtoToken
private

Definition at line 130 of file L1TMuonProducer.cc.

Referenced by beginRun(), and L1TMuonProducer().

◆ m_omtfInputsToDisable

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

Definition at line 106 of file L1TMuonProducer.cc.

Referenced by beginRun(), and produce().

◆ m_overlapTfInputTag

edm::InputTag L1TMuonProducer::m_overlapTfInputTag
private

Definition at line 115 of file L1TMuonProducer.cc.

Referenced by L1TMuonProducer().

◆ m_overlapTfInputToken

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

Definition at line 126 of file L1TMuonProducer.cc.

Referenced by L1TMuonProducer(), and produce().

◆ m_rankPtQualityLUT

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

Definition at line 118 of file L1TMuonProducer.cc.

Referenced by beginRun(), and calculateRank().

◆ m_trigTowerTag

edm::InputTag L1TMuonProducer::m_trigTowerTag
private

Definition at line 117 of file L1TMuonProducer.cc.

Referenced by L1TMuonProducer().

◆ microGMTParamsHelper

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

Definition at line 113 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:116
mps_fire.i
i
Definition: mps_fire.py:428
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:126
MainPageGenerator.link
link
Definition: MainPageGenerator.py:271
L1TMuonProducer::m_bmtfCancelMode
l1t::cancelmode m_bmtfCancelMode
Definition: L1TMuonProducer.cc:122
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:102
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:105
L1TMuonProducer::convertMuons
void convertMuons(edm::Handle< MicroGMTConfiguration::InputCollection > const &in, MicroGMTConfiguration::InterMuonList &out, GMTInternalWedges &wedges, int bx) const
Definition: L1TMuonProducer.cc:525
L1TMuonProducer::m_maskedOmtfInputs
std::bitset< 12 > m_maskedOmtfInputs
Definition: L1TMuonProducer.cc:111
edm::Handle
Definition: AssociativeIterator.h:50
L1TMuonProducer::m_o2oProtoToken
edm::ESGetToken< L1TMuonGlobalParams, L1TMuonGlobalParamsO2ORcd > m_o2oProtoToken
Definition: L1TMuonProducer.cc:130
edm::LogWarning
Log< level::Warning, false > LogWarning
Definition: MessageLogger.h:122
L1TMuonProducer::m_caloTowerInputToken
edm::EDGetTokenT< MicroGMTConfiguration::CaloInputCollection > m_caloTowerInputToken
Definition: L1TMuonProducer.cc:128
L1TMuonProducer::m_rankPtQualityLUT
std::shared_ptr< MicroGMTRankPtQualLUT > m_rankPtQualityLUT
Definition: L1TMuonProducer.cc:118
Muon
Definition: Muon.py:1
L1TMuonProducer::m_emtfInputsToDisable
std::bitset< 12 > m_emtfInputsToDisable
Definition: L1TMuonProducer.cc:107
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:117
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:426
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:113
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:475
L1TMuonProducer::m_barrelTfInputToken
edm::EDGetTokenT< MicroGMTConfiguration::InputCollection > m_barrelTfInputToken
Definition: L1TMuonProducer.cc:125
L1TMuonProducer::m_maskedCaloInputs
std::bitset< 28 > m_maskedCaloInputs
Definition: L1TMuonProducer.cc:109
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:114
L1TMuonProducer::m_maskedBmtfInputs
std::bitset< 12 > m_maskedBmtfInputs
Definition: L1TMuonProducer.cc:110
L1TMuonProducer::m_maskedEmtfInputs
std::bitset< 12 > m_maskedEmtfInputs
Definition: L1TMuonProducer.cc:112
tracks
const uint32_t *__restrict__ const HitContainer *__restrict__ TkSoA *__restrict__ tracks
Definition: CAHitNtupletGeneratorKernelsImpl.h:176
SiStripPI::max
Definition: SiStripPayloadInspectorHelper.h:169
l1t::MicroGMTIsolationUnit::extrapolateMuons
void extrapolateMuons(MicroGMTConfiguration::InterMuonList &) const
Definition: MicroGMTIsolationUnit.cc:67
L1TMuonProducer::m_microGMTParamsToken
edm::ESGetToken< L1TMuonGlobalParams, L1TMuonGlobalParamsRcd > m_microGMTParamsToken
Definition: L1TMuonProducer.cc:129
l1t::kftracks
Definition: MicroGMTCancelOutUnit.h:11
L1TMuonProducer::m_emtfCancelMode
l1t::cancelmode m_emtfCancelMode
Definition: L1TMuonProducer.cc:123
recoMuon::in
Definition: RecoMuonEnumerators.h:6
L1TMuonProducer::m_maskedInputs
std::bitset< 72 > m_maskedInputs
Definition: L1TMuonProducer.cc:108
L1TMuonProducer::m_endcapTfInputToken
edm::EDGetTokenT< MicroGMTConfiguration::InputCollection > m_endcapTfInputToken
Definition: L1TMuonProducer.cc:127
iEvent
int iEvent
Definition: GenABIO.cc:224
L1TMuonProducer::m_bxMax
int m_bxMax
Definition: L1TMuonProducer.cc:101
L1TMuonProducer::m_autoBxRange
bool m_autoBxRange
Definition: L1TMuonProducer.cc:99
AlCaHLTBitMon_QueryRunRegistry.string
string string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
L1TMuonProducer::m_isolationUnit
MicroGMTIsolationUnit m_isolationUnit
Definition: L1TMuonProducer.cc:119
L1TMuonProducer::m_debugOut
std::ofstream m_debugOut
Definition: L1TMuonProducer.cc:121
L1TMuonProducer::compareMuons
static bool compareMuons(const std::shared_ptr< MicroGMTConfiguration::InterMuon > &mu1, const std::shared_ptr< MicroGMTConfiguration::InterMuon > &mu2)
Definition: L1TMuonProducer.cc:384
submitPVResolutionJobs.desc
string desc
Definition: submitPVResolutionJobs.py:251
l1t::MicroGMTIsolationUnit::isolatePreSummed
void isolatePreSummed(MicroGMTConfiguration::InterMuonList &muons) const
Definition: MicroGMTIsolationUnit.cc:203
eostools.move
def move(src, dest)
Definition: eostools.py:511
L1TMuonProducer::m_bxMin
int m_bxMin
Definition: L1TMuonProducer.cc:100
l1t::emtf_pos
Definition: RegionalMuonCandFwd.h:8
edm::LogVerbatim
Log< level::Info, true > LogVerbatim
Definition: MessageLogger.h:128
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:106
L1TMuonProducer::m_cancelOutUnit
MicroGMTCancelOutUnit m_cancelOutUnit
Definition: L1TMuonProducer.cc:120
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
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
L1TMuonProducer::sortMuons
void sortMuons(MicroGMTConfiguration::InterMuonList &, unsigned) const
Definition: L1TMuonProducer.cc:389
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:115
edm::InputTag
Definition: InputTag.h:15
L1TMuonProducer::m_inputsToDisable
std::bitset< 72 > m_inputsToDisable
Definition: L1TMuonProducer.cc:103
findQualityFiles.size
size
Write out results.
Definition: findQualityFiles.py:443
L1TMuonProducer::m_caloInputsToDisable
std::bitset< 28 > m_caloInputsToDisable
Definition: L1TMuonProducer.cc:104
L1TMuonProducer::addMuonsToCollections
void addMuonsToCollections(MicroGMTConfiguration::InterMuonList &coll, MicroGMTConfiguration::InterMuonList &interout, std::unique_ptr< MuonBxCollection > &out, int bx) const
Definition: L1TMuonProducer.cc:433