File indexing completed on 2024-04-06 12:25:05
0001 #include "RecoEgamma/EgammaTools/interface/EgammaRandomSeeds.h"
0002
0003 #include "DataFormats/EgammaReco/interface/SuperCluster.h"
0004
0005 uint32_t egamma::getRandomSeedFromSC(const edm::Event& iEvent, const reco::SuperClusterRef scRef) {
0006 const int offset = 0;
0007 std::seed_seq seeder = {int(iEvent.id().event()),
0008 int(iEvent.id().luminosityBlock()),
0009 int(iEvent.id().run()),
0010 int(scRef->seed()->seed().rawId()),
0011 int(scRef->seed()->hitsAndFractions().size()),
0012 offset};
0013 uint32_t seed = 0, tries = 10;
0014 do {
0015 seeder.generate(&seed, &seed + 1);
0016 tries++;
0017 } while (seed == 0 && tries < 10);
0018 return seed ? seed : iEvent.id().event() + 10000 * scRef.key();
0019 }