20 std::vector<CSCShowerDigi> selected_showers;
24 auto chend = in_showers.
end();
26 auto digi = (*chamber).second.first;
27 auto dend = (*chamber).second.second;
28 for (; digi != dend; ++digi) {
33 if (selected_shower >= 0) {
38 if (digi->isValid()) {
39 selected_showers.emplace_back(*digi);
46 const unsigned nLooseInTime(std::count_if(
47 selected_showers.begin(), selected_showers.end(), [](
CSCShowerDigi p) {
return p.isLooseInTime(); }));
48 const unsigned nNominalInTime(std::count_if(
49 selected_showers.begin(), selected_showers.end(), [](
CSCShowerDigi p) {
return p.isNominalInTime(); }));
50 const unsigned nLooseOutOfTime(std::count_if(
51 selected_showers.begin(), selected_showers.end(), [](
CSCShowerDigi p) {
return p.isLooseOutOfTime(); }));
52 const unsigned nNominalOutOfTime(std::count_if(
53 selected_showers.begin(), selected_showers.end(), [](
CSCShowerDigi p) {
return p.isNominalOutOfTime(); }));
57 const bool hasTwoLooseOutOfTime(nLooseOutOfTime >=
nLooseShowers_);
63 const bool accept(acceptLoose
or acceptNominal);
68 hasOneNominalInTime, hasOneNominalOutOfTime, hasTwoLooseInTime, hasTwoLooseOutOfTime);
79 int tp_endcap = tp_detId.
endcap();
81 int tp_station = tp_detId.
station();
82 int tp_chamber = tp_detId.
chamber();
87 int tp_subsector = (tp_station != 1) ? 0 : ((tp_chamber % 6 > 2) ? 1 : 2);
90 selected =
get_index_shower(tp_endcap, tp_sector, tp_subsector, tp_station, tp_csc_ID);
95 int tp_endcap,
int tp_sector,
int tp_subsector,
int tp_station,
int tp_csc_ID)
const {
100 if (tp_station == 1) {
101 selected = (tp_subsector - 1) * 9 + (tp_csc_ID - 1);
103 selected = (tp_station)*9 + (tp_csc_ID - 1);