19 #ifndef PHASE2GMT_SAMUONPRODUCER 20 #define PHASE2GMT_SAMUONPRODUCER 58 void endStream()
override;
72 produces<std::vector<l1t::SAMuon> >(
"promptSAMuons").setBranchAlias(
"prompt");
73 produces<std::vector<l1t::SAMuon> >(
"displacedSAMuons").setBranchAlias(
"displaced");
87 std::vector<SAMuon> prompt;
100 if (
abs(
mu.hwDXY()) > 0)
107 std::sort(prompt.begin(), prompt.end(), std::greater<>());
119 std::unique_ptr<std::vector<l1t::SAMuon> > prompt_ptr = std::make_unique<std::vector<l1t::SAMuon> >(prompt);
120 std::unique_ptr<std::vector<l1t::SAMuon> > displaced_ptr = std::make_unique<std::vector<l1t::SAMuon> >(
displaced);
131 int charge =
mu.charge() > 0 ? 0 : 1;
144 bstart = wordconcat<wordtype>(
word, bstart,
pt > 0, 1);
150 bstart = wordconcat<wordtype>(
word, bstart,
charge, 1);
172 desc.add<
unsigned int>(
"Nprompt", 12);
173 desc.add<
unsigned int>(
"Ndisplaced", 12);
174 descriptions.
add(
"standaloneMuons",
desc);
edm::EDGetTokenT< BXVector< l1t::Muon > > muonToken_
ap_uint< BITSGTPT > pt_sa_t
ap_uint< BITSSAQUAL > qual_sa_t
void setWord(uint64_t word)
void endStream() override
ap_int< BITSSAD0 > d0_sa_t
void beginStream(edm::StreamID) override
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
ap_int< BITSGTETA > eta_sa_t
Abs< T >::type abs(const T &t)
#define DEFINE_FWK_MODULE(type)
void produce(edm::Event &, const edm::EventSetup &) override
static constexpr float d0
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
ap_int< BITSSAZ0 > z0_sa_t
void add(std::string const &label, ParameterSetDescription const &psetDescription)
l1t::SAMuon Convertl1tMuon(const l1t::Muon &mu, const int bx_)
Phase2L1TGMTSAMuonProducer(const edm::ParameterSet &)
ap_int< BITSGTPHI > phi_sa_t