35 ->setComment(
"input tag of the pixel local track collection");
37 ->setComment(
"input tag of the strip local track collection");
39 ->setComment(
"input tag of the diamond local track collection");
41 desc.
add<
bool>(
"usePixel",
true)
42 ->setComment(
"whether to consider the pixel detectors");
43 desc.
add<
bool>(
"useStrip",
false)
44 ->setComment(
"whether to consider the strip detectors");
45 desc.
add<
bool>(
"useDiamond",
false)
46 ->setComment(
"whether to consider the diamond detectors");
48 desc.
add<
int>(
"minTracks", 2)
49 ->setComment(
"minimum number of tracks");
50 desc.
add<
int>(
"minTracksPerArm", 1)
51 ->setComment(
"minimum number of tracks per arm of the CTPPS detector");
53 desc.
add<
int>(
"maxTracks", -1)
54 ->setComment(
"maximum number of tracks, if smaller than minTracks it will be ignored");
55 desc.
add<
int>(
"maxTracksPerArm", -1)
56 ->setComment(
"maximum number of tracks per arm of the CTPPS detector, if smaller than minTrackPerArm it will be ignored");
57 desc.
add<
int>(
"maxTracksPerPot", -1)
58 ->setComment(
"maximum number of tracks per roman pot of the CTPPS detector, if negative it will be ignored");
62 descriptions.
add(
"hltCTPPSLocalTrackFilter", desc);
91 LogDebug(
"") <<
"HLTCTPPSLocalTrackFilter: pixelTag/stripTag/diamondTag/usePixel/useStrip/useDiamond/minTracks/minTracksPerArm/maxTracks/maxTracksPerArm/maxTracksPerPot : " 112 std::map<uint32_t, int> tracksPerPot;
123 for(
const auto &rpv : (*pixelTracks))
126 if(tracksPerPot.count(rpv.id) == 0)
127 tracksPerPot[rpv.id] = 0;
129 for(
auto &
track : rpv)
133 if(
id.
arm() == 0) ++arm45Tracks;
134 if(
id.
arm() == 1) ++arm56Tracks;
135 ++tracksPerPot[rpv.id];
146 for(
const auto &rpv : (*stripTracks))
149 if(tracksPerPot.count(rpv.id) == 0)
150 tracksPerPot[rpv.id] = 0;
152 for(
auto &
track : rpv)
156 if(
id.
arm() == 0) ++arm45Tracks;
157 if(
id.
arm() == 1) ++arm56Tracks;
158 ++tracksPerPot[rpv.id];
169 for(
const auto &rpv : (*diamondTracks))
172 if(tracksPerPot.count(rpv.id) == 0)
173 tracksPerPot[rpv.id] = 0;
175 for(
auto &
track : rpv)
179 if(
id.
arm() == 0) ++arm45Tracks;
180 if(
id.
arm() == 1) ++arm56Tracks;
181 ++tracksPerPot[rpv.id];
199 for(
auto& pot : tracksPerPot)
Detector ID class for TOTEM Si strip detectors.
HLTCTPPSLocalTrackFilter(const edm::ParameterSet &)
edm::InputTag diamondLocalTrackInputTag_
~HLTCTPPSLocalTrackFilter() override
bool getByToken(EDGetToken token, Handle< PROD > &result) const
edm::EDGetTokenT< edm::DetSetVector< CTPPSDiamondLocalTrack > > diamondLocalTrackToken_
#define DEFINE_FWK_MODULE(type)
bool filter(edm::StreamID, edm::Event &, const edm::EventSetup &) const override
ParameterDescriptionBase * add(U const &iLabel, T const &value)
edm::InputTag stripLocalTrackInputTag_
void add(std::string const &label, ParameterSetDescription const &psetDescription)
Detector ID class for CTPPS Timing Diamond detectors. Bits [19:31] : Assigend in CTPPSDetId Calss Bit...
edm::EDGetTokenT< edm::DetSetVector< TotemRPLocalTrack > > stripLocalTrackToken_
static void fillDescriptions(edm::ConfigurationDescriptions &)
edm::EDGetTokenT< edm::DetSetVector< CTPPSPixelLocalTrack > > pixelLocalTrackToken_
edm::InputTag pixelLocalTrackInputTag_