21 produces<L3MuonTrajectorySeedCollection>();
72 std::vector<edm::Handle<edm::View<TrajectorySeed> > > theSeeds;
74 unsigned seed_size = 0;
77 seed_size += theSeeds[
iseed]->size();
82 unsigned int imuMax = l2muonH->size();
84 for (; imu != imuMax; ++imu) {
89 if (muRef->pt() <
thePtCut || muRef->innerMomentum().Rho() <
thePtCut || muRef->innerMomentum().R() < 2.5)
96 std::vector<TrajectorySeed> tkSeeds;
97 std::set<unsigned> tkIds;
98 tkSeeds.reserve(seed_size);
101 unsigned nSeeds = aSeedCollection->size();
102 for (
unsigned seednr = 0; seednr < nSeeds; ++seednr) {
107 int simTrackId = static_cast<FastTrackerRecHit const&>(*aSeed->
recHits().
begin()).simTrackId(0);
110 std::set<unsigned>::iterator tkId = tkIds.find(simTrackId);
111 if (tkId != tkIds.end())
114 const SimTrack& theSimTrack = (*theSimTracks)[simTrackId];
116 if (
clean(muRef,
region.get(), aSeed, theSimTrack))
117 tkSeeds.push_back(*aSeed);
118 tkIds.insert(simTrackId);
132 unsigned int isMax = tkSeeds.size();
133 for (; is != isMax; ++is) {
154 double etaSeed = theSimTrack.
momentum().Eta();
155 double etaLimit = (fabs(fabs(
etaRange.max()) - fabs(
etaRange.mean())) < 0.05)
158 bool inEtaRange = etaSeed >= (
etaRange.mean() - etaLimit) && etaSeed <= (
etaRange.mean() + etaLimit);
164 double phiSeed = theSimTrack.
momentum().Phi();
165 double phiLimit = (phiMargin.
right() < 0.05) ? 0.05 : phiMargin.
right();
166 bool inPhiRange = (fabs(
deltaPhi(phiSeed,
double(
region->direction().phi()))) < phiLimit);
173 bool inPtRange = ptSeed >=
ptMin && ptSeed <= 2 * (muRef->pt());