36 const string metname =
"Muon|RecoMuon|SETMuonSeedSeed";
60 produces<TrajectorySeedCollection>();
64 LogTrace(
"Muon|RecoMuon|SETMuonSeedProducer") <<
"SETMuonSeedProducer destructor called" << endl;
76 const string metname =
"Muon|RecoMuon|SETMuonSeedSeed";
83 auto output = std::make_unique<TrajectorySeedCollection>();
96 edm::LogInfo(
"MuonSeedGenerator") <<
"No beam spot available from EventSetup \n";
103 bool fwFitFailed =
true;
105 std::vector<SeedCandidate> seedCandidates_AllChosen;
106 std::vector<MuonRecHitContainer> MuonRecHitContainer_clusters;
112 for (
unsigned int cluster = 0; cluster < MuonRecHitContainer_clusters.size(); ++cluster) {
114 std::vector<SeedCandidate> seedCandidates_inCluster;
118 std::vector<MuonRecHitContainer> MuonRecHitContainer_perLayer =
132 if (allValidSets.size() < 500) {
137 if (!seedCandidates_inCluster.empty()) {
139 std::vector<SeedCandidate> bestSets_inCluster;
140 fwFitFailed = !(
filter()->
fwfit_SET(seedCandidates_inCluster, bestSets_inCluster));
147 for (
unsigned int iSet = 0; iSet < bestSets_inCluster.size(); ++iSet) {
148 seedCandidates_AllChosen.push_back(bestSets_inCluster[iSet]);
153 for (
unsigned int iMuon = 0; iMuon < seedCandidates_AllChosen.size(); ++iMuon) {
156 SeedCandidate* aFinalSet = &(seedCandidates_AllChosen[iMuon]);
172 if (
filter()->goodState()) {
175 bool conversionPassed =
false;
178 conversionPassed =
filter()->
transform(finalCandidate, hitContainer, firstTSOS);
183 if (conversionPassed && !finalCandidate.empty() && !hitContainer.empty()) {
188 for (
unsigned int iHit = 0; iHit < hitContainer.size(); ++iHit) {
189 recHitsContainer.
push_back(hitContainer.at(iHit)->hit()->clone());