20 std::vector<CSCShowerDigi> selected_showers;
26 auto chend = in_showers.
end();
28 auto digi = (*chamber).second.first;
29 auto dend = (*chamber).second.second;
30 for (; digi != dend; ++digi) {
35 if (selected_shower >= 0) {
40 if (digi->isValid()) {
42 selected_showers.emplace_back(*digi);
50 const unsigned nLooseInTime(std::count_if(
51 selected_showers.begin(), selected_showers.end(), [](
CSCShowerDigi p) {
return p.isLooseInTime(); }));
52 const unsigned nNominalInTime(std::count_if(
53 selected_showers.begin(), selected_showers.end(), [](
CSCShowerDigi p) {
return p.isNominalInTime(); }));
54 const unsigned nTightInTime(std::count_if(
55 selected_showers.begin(), selected_showers.end(), [](
CSCShowerDigi p) {
return p.isTightInTime(); }));
57 const bool hasOneLooseInTime(nLooseInTime >= 1);
58 const bool hasTwoLooseInTime(nLooseInTime >= 2);
59 const bool hasOneNominalInTime(nNominalInTime >= 1);
60 const bool hasOneTightInTime(nTightInTime >= 1);
69 const bool accept(acceptLoose
or acceptTwoLoose
or acceptNominal
or acceptTight);
74 hasOneNominalInTime,
false, hasTwoLooseInTime,
false, hasOneLooseInTime, hasOneTightInTime,
false);
85 int tp_endcap = tp_detId.
endcap();
87 int tp_station = tp_detId.
station();
88 int tp_chamber = tp_detId.
chamber();
93 int tp_subsector = (tp_station != 1) ? 0 : ((tp_chamber % 6 > 2) ? 1 : 2);
96 selected =
get_index_shower(tp_endcap, tp_sector, tp_subsector, tp_station, tp_csc_ID);
101 int tp_endcap,
int tp_sector,
int tp_subsector,
int tp_station,
int tp_csc_ID)
const {
106 if (tp_station == 1) {
107 selected = (tp_subsector - 1) * 9 + (tp_csc_ID - 1);
109 selected = (tp_station)*9 + (tp_csc_ID - 1);
bool enableTwoLooseShowers_
void process(const CSCShowerDigiCollection &showers, l1t::RegionalMuonShowerBxCollection &out_showers) const
bool enableOneNominalShower_
bool accept(const edm::Event &event, const edm::TriggerResults &triggerTable, const std::string &triggerPath)
bool enableOneTightShower_
constexpr int MIN_TRIGSECTOR
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventID const &, edm::Timestamp const & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
DigiRangeIterator begin() const
uint16_t getCSCID() const
void configure(const edm::ParameterSet &, int endcap, int sector)
bool enableOneLooseShower_
void setTFIdentifiers(int processor, tftype trackFinder)
Set the processor ID, track-finder type. From these two, the link is set.
int get_index_shower(int tp_endcap, int tp_sector, int tp_subsector, int tp_station, int tp_csc_ID) const
constexpr int MAX_TRIGSECTOR
int triggerSector() const
DigiRangeIterator end() const
void push_back(int bx, T object)
bool is_in_sector_csc(int tp_endcap, int tp_sector) const
int select_shower(const CSCDetId &, const CSCShowerDigi &) const
A container for a generic type of digis indexed by some index, implemented with a map<IndexType...