89 produces<TrajectorySeedCollection>();
94 if (conf.
exists(
"hitMasks")) {
99 std::vector<std::string> layerStringList =
101 std::string layerBegin = *(layerStringList.cbegin());
103 for (
auto it = layerStringList.cbegin(); it < layerStringList.cend(); ++it) {
104 std::vector<TrackingLayer> trackingLayerList;
107 unsigned int nHitsPerSeed = 0;
108 while (pos != std::string::npos) {
109 pos = line.find(
"+");
112 trackingLayerList.push_back(layerSpec);
113 line = line.substr(pos + 1, std::string::npos);
116 if (it == layerStringList.cbegin()) {
119 throw cms::Exception(
"FastSimTracking") <<
"All allowed seed layer definitions must have same elements";
125 if (conf.
exists(
"seedFinderSelector")) {
148 const std::vector<bool>*
hitMasks =
nullptr;
152 hitMasks = &(*hitMasksHandle);
161 const auto&
regions = *hregions;
176 for (
unsigned icomb = 0; icomb < recHitCombinations->size(); ++icomb) {
180 std::vector<const FastTrackerRecHit*> seedHitCandidates;
181 for (
const auto& _hit : recHitCombination) {
185 seedHitCandidates.push_back(_hit.get());
196 std::vector<unsigned int> seedHitNumbers =
seedFinder.getSeed(seedHitCandidates);
199 if (seedHitNumbers.size() > 1) {
202 for (
unsigned iIndex = 0; iIndex < seedHitNumbers.size(); ++iIndex) {
203 seedHits.
push_back(seedHitCandidates[seedHitNumbers[iIndex]]->
clone());
213 seedHits.
size() >= 3 ? &seedHits[2] :
nullptr,
214 seedHits.
size() >= 4 ? &seedHits[3] :
nullptr));
void setRecHitCombinationIndex(edm::OwnVector< T > &recHits, int32_t icomb)
T getParameter(std::string const &) const
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
TrajectorySeedProducer(const edm::ParameterSet &conf)
bool getByToken(EDGetToken token, Handle< PROD > &result) const
edm::EDGetTokenT< std::vector< bool > > hitMasksToken
bool exists(std::string const ¶meterName) const
checks if a parameter exists
edm::EDGetTokenT< edm::OwnVector< TrackingRegion > > trackingRegionToken
unsigned int nHitsPerSeed_
bool insert(const std::vector< DATA > &dataList)
void produce(edm::Event &e, const edm::EventSetup &es) override
#define DEFINE_FWK_MODULE(type)
std::string measurementTrackerLabel
std::vector< TrajectorySeed > TrajectorySeedCollection
std::unique_ptr< SeedFinderSelector > seedFinderSelector
static TrackingLayer createFromString(std::string layerSpecification)
bool hitIsMasked(const FastTrackerRecHit *hit, const std::vector< bool > &hitMasks)
std::vector< FastTrackerRecHitRef > FastTrackerRecHitCombination
std::vector< std::vector< TrackingLayer > > seedingLayers
TEveGeoShape * clone(const TEveElement *element, TEveElement *parent)
edm::EDGetTokenT< FastTrackerRecHitCombinationCollection > recHitCombinationsToken
bool isUninitialized() const
SeedingTree< TrackingLayer > _seedingTree
T const * product() const
std::unique_ptr< SeedCreator > seedCreator