#include <MuonSeedCleaner.h>
Public Types | |
typedef std::deque< bool > | BoolContainer |
typedef MuonTransientTrackingRecHit::MuonRecHitContainer | SegmentContainer |
Public Member Functions | |
MuonSeedCleaner (const edm::ParameterSet &) | |
Constructor. More... | |
int | NRecHitsFromSegment (const TrackingRecHit &rhit) |
int | NRecHitsFromSegment (MuonTransientTrackingRecHit *rhit) |
std::vector< TrajectorySeed > | seedCleaner (const edm::EventSetup &eventSetup, std::vector< TrajectorySeed > &seeds) |
Cache pointer to geometry. More... | |
~MuonSeedCleaner () | |
Destructor. More... | |
Public Attributes | |
std::vector< int > | badSeedLayer |
Private Member Functions | |
TrajectorySeed | BiggerCone (std::vector< TrajectorySeed > &seeds) |
select the seed with bigger projection cone to next layer More... | |
TrajectorySeed | Chi2LengthSelection (std::vector< TrajectorySeed > &seeds) |
select seed by balance length and chi2 More... | |
std::vector< SeedContainer > | GroupSeeds (std::vector< TrajectorySeed > &seeds) |
group the seeds More... | |
TrajectorySeed | LeanHighMomentum (std::vector< TrajectorySeed > &seeds) |
select the highest momentum pt seed More... | |
SeedContainer | LengthFilter (std::vector< TrajectorySeed > &seeds) |
bool | MomentumFilter (std::vector< TrajectorySeed > &seeds) |
filter out the bad pt seeds, if all are bad pt seeds then keep all More... | |
TrajectorySeed | MoreRecHits (std::vector< TrajectorySeed > &seeds) |
select the seed with more rechits More... | |
double | NChi2OfSegment (const TrackingRecHit &rhit) |
retrieve number of rechits& normalized chi2 of associated segments of a seed More... | |
unsigned int | OverlapSegments (TrajectorySeed seed1, TrajectorySeed seed2) |
check overlapping segment for seeds More... | |
SeedContainer | SeedCandidates (std::vector< TrajectorySeed > &seeds, bool good) |
pick the seeds w/ 1st layer information and w/ more than 1 segments More... | |
double | SeedChi2 (TrajectorySeed seed) |
int | SeedLength (TrajectorySeed seed) |
GlobalVector | SeedMomentum (TrajectorySeed seed) |
retrieve seed global momentum More... | |
GlobalPoint | SeedPosition (TrajectorySeed seed) |
retrieve seed global position More... | |
Private Attributes | |
const MagneticField * | BField |
bool | debug |
int | NShowerSeg |
std::vector< int > | ShoweringLayers |
SegmentContainer | ShoweringSegments |
MuonServiceProxy * | theService |
Algorith to clean duplicate seeds and select a right one
author: Shih-Chuan Kao - UCR
Definition at line 27 of file MuonSeedCleaner.h.
typedef std::deque<bool> MuonSeedCleaner::BoolContainer |
Definition at line 33 of file MuonSeedCleaner.h.
Definition at line 32 of file MuonSeedCleaner.h.
|
explicit |
Constructor.
Definition at line 49 of file MuonSeedCleaner.cc.
References debug, edm::ParameterSet::getParameter(), MuonServiceProxy_cff::MuonServiceProxy, and theService.
MuonSeedCleaner::~MuonSeedCleaner | ( | ) |
|
private |
select the seed with bigger projection cone to next layer
Definition at line 171 of file MuonSeedCleaner.cc.
References i, NRecHitsFromSegment(), diffTwoXMLs::r1, and mathSSE::sqrt().
Referenced by seedCleaner().
|
private |
select seed by balance length and chi2
Definition at line 131 of file MuonSeedCleaner.cc.
References i, and SeedChi2().
Referenced by seedCleaner().
|
private |
group the seeds
Definition at line 345 of file MuonSeedCleaner.cc.
References PFRecoTauDiscriminationAgainstElectronDeadECAL_cfi::dR, PV3DBase< T, PVType, FrameType >::eta(), i, j, lengthSorting(), OverlapSegments(), PV3DBase< T, PVType, FrameType >::phi(), SeedPosition(), python.multivaluedict::sort(), mathSSE::sqrt(), and funct::true.
Referenced by seedCleaner().
|
private |
select the highest momentum pt seed
Definition at line 203 of file MuonSeedCleaner.cc.
References i, SeedMomentum(), mathSSE::sqrt(), PV3DBase< T, PVType, FrameType >::x(), and PV3DBase< T, PVType, FrameType >::y().
Referenced by seedCleaner().
|
private |
pick the seed by better parameter error collect long seeds
Definition at line 256 of file MuonSeedCleaner.cc.
References i.
|
private |
filter out the bad pt seeds, if all are bad pt seeds then keep all
Definition at line 281 of file MuonSeedCleaner.cc.
References i, SeedMomentum(), mathSSE::sqrt(), PV3DBase< T, PVType, FrameType >::x(), and PV3DBase< T, PVType, FrameType >::y().
Referenced by seedCleaner().
|
private |
select the seed with more rechits
Definition at line 224 of file MuonSeedCleaner.cc.
References i, NRecHitsFromSegment(), diffTwoXMLs::r1, and SeedChi2().
Referenced by seedCleaner().
|
private |
retrieve number of rechits& normalized chi2 of associated segments of a seed
Definition at line 527 of file MuonSeedCleaner.cc.
References TrackingRecHit::clone(), TrackingRecHit::geographicalId(), MuonTransientTrackingRecHit::specificBuild(), theService, and MuonServiceProxy::trackingGeometry().
Referenced by SeedChi2().
int MuonSeedCleaner::NRecHitsFromSegment | ( | const TrackingRecHit & | rhit | ) |
Definition at line 481 of file MuonSeedCleaner.cc.
References TrackingRecHit::clone(), MuonSubdetId::CSC, MuonSubdetId::DT, TrackingRecHit::geographicalId(), GeomDet::geographicalId(), j, findQualityFiles::size, MuonTransientTrackingRecHit::specificBuild(), theService, and MuonServiceProxy::trackingGeometry().
Referenced by BiggerCone(), MuonSeedBuilder::foundMatchingSegment(), MuonSeedBuilder::IdentifyShowering(), MoreRecHits(), and SeedLength().
int MuonSeedCleaner::NRecHitsFromSegment | ( | MuonTransientTrackingRecHit * | rhit | ) |
Definition at line 505 of file MuonSeedCleaner.cc.
References MuonSubdetId::CSC, MuonSubdetId::DT, TrackingRecHit::geographicalId(), j, GenericTransientTrackingRecHit::recHits(), findQualityFiles::size, and DetId::subdetId().
|
private |
check overlapping segment for seeds
Definition at line 396 of file MuonSeedCleaner.cc.
References diffTwoXMLs::r1, diffTwoXMLs::r2, TrajectorySeed::recHits(), mathSSE::sqrt(), theService, GeomDet::toGlobal(), MuonServiceProxy::trackingGeometry(), PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().
Referenced by GroupSeeds().
|
private |
pick the seeds w/ 1st layer information and w/ more than 1 segments
Definition at line 302 of file MuonSeedCleaner.cc.
References MuonSubdetId::CSC, CSCDetId, MuonSubdetId::DT, funct::false, GeomDet::geographicalId(), i, diffTwoXMLs::r1, CSCDetId::station(), DetId::subdetId(), theService, and MuonServiceProxy::trackingGeometry().
Referenced by seedCleaner().
|
private |
Definition at line 426 of file MuonSeedCleaner.cc.
References NChi2OfSegment(), TrajectorySeed::nHits(), diffTwoXMLs::r1, and TrajectorySeed::recHits().
Referenced by Chi2LengthSelection(), and MoreRecHits().
std::vector< TrajectorySeed > MuonSeedCleaner::seedCleaner | ( | const edm::EventSetup & | eventSetup, |
std::vector< TrajectorySeed > & | seeds | ||
) |
Cache pointer to geometry.
Cache pointer to Magnetic field cleaning the seeds
Definition at line 74 of file MuonSeedCleaner.cc.
References BiggerCone(), Chi2LengthSelection(), PV3DBase< T, PVType, FrameType >::eta(), eta(), GroupSeeds(), i, LeanHighMomentum(), MomentumFilter(), MoreRecHits(), SeedCandidates(), SeedPosition(), theService, and MuonServiceProxy::update().
Referenced by MuonSeedBuilder::build().
|
private |
Definition at line 440 of file MuonSeedCleaner.cc.
References NRecHitsFromSegment(), diffTwoXMLs::r1, and TrajectorySeed::recHits().
|
private |
retrieve seed global momentum
Definition at line 467 of file MuonSeedCleaner.cc.
References PTrajectoryStateOnDet::detId(), TrajectoryStateOnSurface::globalMomentum(), MuonServiceProxy::magneticField(), TrajectorySeed::startingState(), theService, MuonServiceProxy::trackingGeometry(), and trajectoryStateTransform::transientState().
Referenced by LeanHighMomentum(), and MomentumFilter().
|
private |
retrieve seed global position
Definition at line 453 of file MuonSeedCleaner.cc.
References PTrajectoryStateOnDet::detId(), TrajectoryStateOnSurface::globalPosition(), MuonServiceProxy::magneticField(), pos, TrajectorySeed::startingState(), theService, MuonServiceProxy::trackingGeometry(), and trajectoryStateTransform::transientState().
Referenced by GroupSeeds(), and seedCleaner().
std::vector<int> MuonSeedCleaner::badSeedLayer |
Definition at line 56 of file MuonSeedCleaner.h.
|
private |
Definition at line 110 of file MuonSeedCleaner.h.
|
private |
Definition at line 99 of file MuonSeedCleaner.h.
Referenced by MuonSeedCleaner().
|
private |
Definition at line 102 of file MuonSeedCleaner.h.
|
private |
Definition at line 104 of file MuonSeedCleaner.h.
|
private |
Definition at line 103 of file MuonSeedCleaner.h.
|
private |
Definition at line 113 of file MuonSeedCleaner.h.
Referenced by MuonSeedCleaner(), NChi2OfSegment(), NRecHitsFromSegment(), OverlapSegments(), SeedCandidates(), seedCleaner(), SeedMomentum(), SeedPosition(), and ~MuonSeedCleaner().