28 return (*it).energy();
48 : EgammaCandidateCollection_(
50 EgammaGsfTrackCollection_(
62 egammaPtCut(iConfig.getParameter<double>(
"egammaPtCut")),
63 egammaEtaCut(iConfig.getParameter<double>(
"egammaEtaCut")),
72 produces<Run3ScoutingElectronCollection>();
73 produces<Run3ScoutingPhotonCollection>();
83 auto outElectrons = std::make_unique<Run3ScoutingElectronCollection>();
84 auto outPhotons = std::make_unique<Run3ScoutingPhotonCollection>();
190 for (
auto& candidate : *EgammaCandidateCollection) {
208 float sMin = moments.
sMin;
209 float sMaj = moments.
sMaj;
211 uint32_t seedId = (*SCseed).seed();
213 std::vector<DetId> mDetIds = EcalClusterTools::matrixDetId((topology), (*SCseed).seed(),
rechitMatrixSize);
215 int detSize = mDetIds.size();
216 std::vector<uint32_t> mDetIdIds;
217 std::vector<float> mEnergies;
218 std::vector<float> mTimes;
219 mDetIdIds.reserve(detSize);
220 mEnergies.reserve(detSize);
221 mTimes.reserve(detSize);
223 for (
int i = 0;
i < detSize;
i++) {
226 mDetIdIds.push_back(mDetIds[
i]);
236 if (candidate.superCluster()->energy() != 0.)
237 HoE = (*HoverEMap)[candidateRef] / candidate.superCluster()->energy();
242 for (
auto&
track : *EgammaGsfTrackCollection) {
247 if (scRefFromTrk == scRef) {
254 outPhotons->emplace_back(candidate.pt(),
258 (*SigmaIEtaIEtaMap)[candidateRef],
260 (*EcalPFClusterIsoMap)[candidateRef],
261 (*HcalPFClusterIsoMap)[candidateRef],
263 (*R9Map)[candidateRef],
272 outElectrons->emplace_back(candidate.pt(),
278 (*DetaMap)[candidateRef],
279 (*DphiMap)[candidateRef],
280 (*SigmaIEtaIEtaMap)[candidateRef],
282 (*OneOEMinusOneOPMap)[candidateRef],
283 (*MissingHitsMap)[candidateRef],
285 (*EcalPFClusterIsoMap)[candidateRef],
286 (*HcalPFClusterIsoMap)[candidateRef],
287 (*EleGsfTrackIsoMap)[candidateRef],
288 (*R9Map)[candidateRef],
319 desc.add<
double>(
"egammaPtCut", 4.0);
320 desc.add<
double>(
"egammaEtaCut", 2.5);
321 desc.add<
double>(
"egammaHoverECut", 1.0);
322 desc.add<
bool>(
"saveRecHitTiming",
false);
323 desc.add<
int>(
"mantissaPrecision", 10)->setComment(
"default float16, change to 23 for float32");
324 desc.add<
int>(
"rechitMatrixSize", 10);
325 desc.add<
bool>(
"rechitZeroSuppression",
true);
328 descriptions.
add(
"hltScoutingEgammaProducer",
desc);
helper::MatcherGetRef< C >::ref_type getRef(const Handle< C > &c, size_t k)
const int mantissaPrecision
const edm::EDGetTokenT< RecoEcalCandMap > SigmaIEtaIEtaMap_
const edm::EDGetTokenT< EcalRecHitCollection > ecalRechitEE_
edm::ESGetToken< CaloTopology, CaloTopologyRecord > topologyToken_
const edm::EDGetTokenT< RecoEcalCandMap > R9Map_
#define DEFINE_FWK_MODULE(type)
T const * product() const
std::vector< EcalRecHit >::const_iterator const_iterator
const edm::EDGetTokenT< reco::GsfTrackCollection > EgammaGsfTrackCollection_
const edm::EDGetTokenT< RecoEcalCandMap > EleGsfTrackIsoMap_
const edm::EDGetTokenT< RecoEcalCandMap > HoverEMap_
const edm::EDGetTokenT< reco::RecoEcalCandidateCollection > EgammaCandidateCollection_
const edm::EDGetTokenT< RecoEcalCandMap > DetaMap_
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
std::vector< GsfTrack > GsfTrackCollection
collection of GsfTracks
const int rechitMatrixSize
Abs< T >::type abs(const T &t)
const double egammaEtaCut
bool isNull() const
Checks for null.
float recHitT(const DetId id, const EcalRecHitCollection &recHits)
const edm::EDGetTokenT< RecoEcalCandMap > OneOEMinusOneOPMap_
const edm::EDGetTokenT< RecoEcalCandMap > MissingHitsMap_
const edm::EDGetTokenT< RecoEcalCandMap > DphiMap_
static constexpr float d0
const bool saveRecHitTiming
void add(std::string const &label, ParameterSetDescription const &psetDescription)
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
std::vector< RecoEcalCandidate > RecoEcalCandidateCollection
collectin of RecoEcalCandidate objects
void produce(edm::StreamID sid, edm::Event &iEvent, edm::EventSetup const &setup) const final
static float reduceMantissaToNbitsRounding(const float &f)
const bool rechitZeroSuppression
const edm::EDGetTokenT< EcalRecHitCollection > ecalRechitEB_
float recHitE(const DetId id, const EcalRecHitCollection &recHits)
~HLTScoutingEgammaProducer() override
const edm::EDGetTokenT< RecoEcalCandMap > HcalPFClusterIsoMap_
const edm::EDGetTokenT< RecoEcalCandMap > EcalPFClusterIsoMap_
HLTScoutingEgammaProducer(const edm::ParameterSet &)