Seeds Cleaner based on direction
- Date:
- 2010/02/16 17:08:46
- Revision:
- 1.4
- Author
- A. Grelli - Purdue University, Pavia University
Definition at line 35 of file TrackerSeedCleaner.h.
the cleaner
Definition at line 63 of file TrackerSeedCleaner.cc.
References SiPixelRawToDigiRegional_cfi::deltaPhi, TrackingRegionBase::direction(), PV3DBase< T, PVType, FrameType >::eta(), MuonErrorMatrixValues_cff::etaRange, RectangularEtaPhiTrackingRegion::etaRange(), TrajectoryStateOnSurface::freeState(), TrajectoryStateOnSurface::globalMomentum(), LogDebug, PV3DBase< T, PVType, FrameType >::perp(), PV3DBase< T, PVType, FrameType >::phi(), RectangularEtaPhiTrackingRegion::phiMargin(), PtMinSelector_cfg::ptMin, TrackingRegionBase::ptMin(), query::result, TkTrackingRegionsMargin< T >::right(), evf::utils::state, trajectoryStateTransform::transientState(), PV3DBase< T, PVType, FrameType >::x(), reco::BeamSpot::x0(), PV3DBase< T, PVType, FrameType >::y(), reco::BeamSpot::y0(), PV3DBase< T, PVType, FrameType >::z(), and reco::BeamSpot::z0().
Referenced by TSGFromL2Muon::produce().
71 LogDebug(
"TrackerSeedCleaner")<<seeds.size()<<
" trajectory seeds to the events before cleaning"<<endl;
78 std::vector<TrajectorySeed >
result;
83 for(TrajectorySeedCollection::iterator seed = seeds.begin(); seed<seeds.end(); ++seed){
84 if(seed->nHits() < 2)
continue;
90 if (!tsAtClosestApproachSeed.isValid())
continue;
91 GlobalPoint vSeed1 = tsAtClosestApproachSeed.trackStateAtPCA().position();
92 GlobalVector pSeed = tsAtClosestApproachSeed.trackStateAtPCA().momentum();
98 double phiSeed = pSeed.
phi();
105 double etaLimit = (fabs(fabs(etaRange.max()) - fabs(etaRange.mean())) <0.1) ? 0.1 : fabs(fabs(etaRange.max()) - fabs(etaRange.mean())) ;
108 double phiLimit = (phiMargin.right() < 0.1 ) ? 0.1 : phiMargin.
right();
110 double ptSeed = pSeed.
perp();
113 bool inEtaRange = etaSeed >= (etaRange.mean() - etaLimit) && etaSeed <= (etaRange.mean() + etaLimit) ;
116 bool inPtRange = ptSeed >= ptMin && ptSeed<= 2*(muR->pt());
119 if(seed->nHits()==3) inPtRange =
true;
124 result.push_back(*seed);
125 LogDebug(
"TrackerSeedCleaner")<<
" Keeping the seed : this seed passed pt selection";
131 result.push_back(*seed);
132 LogDebug(
"TrackerSeedCleaner")<<
" Keeping the seed : this seed passed direction selection";
139 result.push_back(*seed);
140 LogDebug(
"TrackerSeedCleaner")<<
" Keeping the seed : this seed passed direction and pt selection";
145 LogDebug(
"TrackerSeedCleaner")<<
" eta for current seed "<<etaSeed<<
"\n"
146 <<
" phi for current seed "<<phiSeed<<
"\n"
147 <<
" eta for L2 track "<<muR->eta()<<
"\n"
148 <<
" phi for L2 track "<<muR->phi()<<
"\n";
156 LogDebug(
"TrackerSeedCleaner")<<seeds.size()<<
" trajectory seeds to the events after cleaning"<<endl;
double z0() const
z coordinate
const Margin & phiMargin() const
Geom::Phi< T > phi() const
virtual GlobalVector direction() const
the direction around which region is constructed
void define(std::vector< TrajectorySeed > &)
collection definition
RedundantSeedCleaner * theRedundantCleaner
bool useDirection_Cleaner
const MuonServiceProxy * theProxyService
FreeTrajectoryState * freeState(bool withErrors=true) const
virtual float ptMin() const
minimal pt of interest
edm::Handle< reco::BeamSpot > bsHandle_
PixelRecoRange< float > Range
edm::ESHandle< TransientTrackingRecHitBuilder > theTTRHBuilder
GlobalVector globalMomentum() const
double y0() const
y coordinate
double x0() const
x coordinate
const Range & etaRange() const
allowed eta range [eta_min, eta_max] interval