Seeds Cleaner based on direction
- Author
- A. Grelli - Purdue University, Pavia University
Definition at line 39 of file TrackerSeedCleaner.h.
the cleaner
Definition at line 54 of file TrackerSeedCleaner.cc.
References cms::cuda::bs, SiPixelRawToDigiRegional_cfi::deltaPhi, generateTowerEtThresholdLUT::etaRange, LogDebug, PV3DBase< T, PVType, FrameType >::perp(), PV3DBase< T, PVType, FrameType >::phi(), ptMin, rpcPointValidation_cfi::recHit, nano_mu_digi_cff::region, mps_fire::result, fileCollector::seed, DetachedQuadStep_cff::seeds, trajectoryStateTransform::transientState(), PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().
63 LogDebug(
"TrackerSeedCleaner") <<
seeds.size() <<
" trajectory seeds to the events before cleaning" << endl;
70 std::vector<TrajectorySeed>
result;
75 if (
seed->nHits() < 2)
83 tscblBuilder(*
state.freeState(),
bs);
84 if (!tsAtClosestApproachSeed.isValid())
86 GlobalPoint vSeed1 = tsAtClosestApproachSeed.trackStateAtPCA().position();
87 GlobalVector pSeed = tsAtClosestApproachSeed.trackStateAtPCA().momentum();
91 double etaSeed =
state.globalMomentum().eta();
92 double phiSeed = pSeed.
phi();
103 Margin phiMargin =
region.phiMargin();
104 double phiLimit = (phiMargin.right() < 0.1) ? 0.1 : phiMargin.right();
106 double ptSeed = pSeed.
perp();
109 bool inEtaRange = etaSeed >= (
etaRange.mean() - etaLimit) && etaSeed <= (
etaRange.mean() + etaLimit);
110 bool inPhiRange = (fabs(
deltaPhi(phiSeed,
double(
region.direction().phi()))) < phiLimit);
112 bool inPtRange = ptSeed >=
ptMin && ptSeed <= 2 * (muR->pt());
115 if (
seed->nHits() == 3)
121 LogDebug(
"TrackerSeedCleaner") <<
" Keeping the seed : this seed passed pt selection";
127 LogDebug(
"TrackerSeedCleaner") <<
" Keeping the seed : this seed passed direction selection";
133 LogDebug(
"TrackerSeedCleaner") <<
" Keeping the seed : this seed passed direction and pt selection";
136 LogDebug(
"TrackerSeedCleaner") <<
" eta for current seed " << etaSeed <<
"\n" 137 <<
" phi for current seed " << phiSeed <<
"\n" 138 <<
" eta for L2 track " << muR->eta() <<
"\n" 139 <<
" phi for L2 track " << muR->phi() <<
"\n";
146 LogDebug(
"TrackerSeedCleaner") <<
seeds.size() <<
" trajectory seeds to the events after cleaning" << endl;
PixelRecoRange< float > Range
Geom::Phi< T > phi() const
void define(std::vector< TrajectorySeed > &)
collection definition
RedundantSeedCleaner * theRedundantCleaner
bool useDirection_Cleaner
const MuonServiceProxy * theProxyService
virtual RecHitPointer build(const TrackingRecHit *p) const =0
build a tracking rechit from an existing rechit
edm::Handle< reco::BeamSpot > bsHandle_
std::shared_ptr< TrackingRecHit const > RecHitPointer
edm::ESHandle< TransientTrackingRecHitBuilder > theTTRHBuilder
edm::ESGetToken< TransientTrackingRecHitBuilder, TransientRecHitRecord > theTTRHBuilderToken