CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions
MuonSeedSimpleCleaner Class Reference

#include <MuonSeedSimpleCleaner.h>

Inheritance diagram for MuonSeedSimpleCleaner:
MuonSeedVCleaner

Public Member Functions

void clean (TrajectorySeedCollection &seeds) override
 
- Public Member Functions inherited from MuonSeedVCleaner
virtual ~MuonSeedVCleaner ()
 

Private Member Functions

bool checkPt (const TrajectorySeed &seed) const
 

Detailed Description

Definition at line 6 of file MuonSeedSimpleCleaner.h.

Member Function Documentation

bool MuonSeedSimpleCleaner::checkPt ( const TrajectorySeed seed) const
private

Definition at line 19 of file MuonSeedSimpleCleaner.cc.

References PTrajectoryStateOnDet::detId(), PixelPluginsPhase0_cfi::isBarrel, LocalTrajectoryParameters::momentum(), TrajectorySeed::nHits(), AlCaHLTBitMon_ParallelJobs::p, PTrajectoryStateOnDet::parameters(), PV3DBase< T, PVType, FrameType >::perp(), DiDispStaMuonMonitor_cfi::pt, mps_fire::result, TrajectorySeed::startingState(), DetId::subdetId(), and PV3DBase< T, PVType, FrameType >::z().

Referenced by clean().

19  {
20  bool result = true;
21  if (seed.nHits() == 1) {
22  int rawId = seed.startingState().detId();
23  DetId detId(rawId);
24 
25  bool isBarrel = (detId.subdetId() == 1);
27  // homemade local-to-global
28  double pt = (isBarrel) ? -p.z() : p.perp();
29  if (fabs(pt) < 3.05) {
30  result = false;
31  }
32  }
33  return result;
34 }
T perp() const
Definition: PV3DBase.h:69
T z() const
Definition: PV3DBase.h:61
unsigned int detId() const
LocalVector momentum() const
Momentum vector in the local frame.
Definition: DetId.h:17
PTrajectoryStateOnDet const & startingState() const
unsigned int nHits() const
const LocalTrajectoryParameters & parameters() const
void MuonSeedSimpleCleaner::clean ( TrajectorySeedCollection seeds)
overridevirtual

Implements MuonSeedVCleaner.

Definition at line 3 of file MuonSeedSimpleCleaner.cc.

References checkPt(), and SurveyInfoScenario_cff::seed.

3  {
4  for (std::vector<TrajectorySeed>::iterator seed = seeds.begin(); seed != seeds.end(); ++seed) {
5  if (!checkPt(*seed)) {
6  seeds.erase(seed--);
7  } else {
8  int counter = 0;
9  for (std::vector<TrajectorySeed>::iterator seed2 = seed; seed2 != seeds.end(); ++seed2)
10  if (seed->startingState().parameters().vector() == seed2->startingState().parameters().vector())
11  ++counter;
12  if (counter > 1) {
13  seeds.erase(seed--);
14  }
15  }
16  }
17 }
bool checkPt(const TrajectorySeed &seed) const