CMS 3D CMS Logo

MuonSeedCleaner.h
Go to the documentation of this file.
1 #ifndef RecoMuon_MuonSeedCleaner_H
2 #define RecoMuon_MuonSeedCleaner_H
3 
15 
16 //muon service
18 
19 #include <vector>
20 
21 class DetLayer;
24 
25 typedef std::vector<TrajectorySeed> SeedContainer;
26 
28 public:
30  typedef std::deque<bool> BoolContainer;
31 
33  explicit MuonSeedCleaner(const edm::ParameterSet&);
34 
37 
38  // Operations
39 
41  //void setGeometry( const MuonDetLayerGeometry* lgeom ) {muonLayers = lgeom;}
42 
44  //void setBField( const MagneticField* theField ) {BField = theField;}
45 
47  std::vector<TrajectorySeed> seedCleaner(const edm::EventSetup& eventSetup, std::vector<TrajectorySeed>& seeds);
48 
49  int NRecHitsFromSegment(const TrackingRecHit& rhit);
51  //int NRecHitsFromSegment( const MuonTransientTrackingRecHit& rhit );
52 
53  std::vector<int> badSeedLayer;
54 
55 private:
57  std::vector<SeedContainer> GroupSeeds(std::vector<TrajectorySeed>& seeds);
58 
60  TrajectorySeed Chi2LengthSelection(std::vector<TrajectorySeed>& seeds);
62  TrajectorySeed LeanHighMomentum(std::vector<TrajectorySeed>& seeds);
64  TrajectorySeed BiggerCone(std::vector<TrajectorySeed>& seeds);
66  TrajectorySeed MoreRecHits(std::vector<TrajectorySeed>& seeds);
67 
69  bool MomentumFilter(std::vector<TrajectorySeed>& seeds);
71  SeedContainer SeedCandidates(std::vector<TrajectorySeed>& seeds, bool good);
73  unsigned int OverlapSegments(const TrajectorySeed& seed1, const TrajectorySeed& seed2);
74 
76  double NChi2OfSegment(const TrackingRecHit& rhit);
77 
78  double SeedChi2(const TrajectorySeed& seed);
79  int SeedLength(const TrajectorySeed& seed);
80 
85 
86  // obsoleted functions
89  SeedContainer LengthFilter(std::vector<TrajectorySeed>& seeds);
90 
91  // This Producer private debug flag
92  bool debug;
93 
94  // Number of Segments from a shower
95  SegmentContainer ShoweringSegments;
96  std::vector<int> ShoweringLayers;
97 
98  // muon service
100 
101  // Minimum separation when we can distinguish between 2 muon seeds
102  // (to suppress combinatorics)
103 };
104 #endif
TrajectorySeed BiggerCone(std::vector< TrajectorySeed > &seeds)
select the seed with bigger projection cone to next layer
std::vector< int > badSeedLayer
SegmentContainer ShoweringSegments
std::vector< TrajectorySeed > SeedContainer
MuonServiceProxy * theService
GlobalPoint SeedPosition(const TrajectorySeed &seed)
retrieve seed global position
~MuonSeedCleaner()
Destructor.
double SeedChi2(const TrajectorySeed &seed)
MuonSeedCleaner(const edm::ParameterSet &)
Constructor.
unsigned int OverlapSegments(const TrajectorySeed &seed1, const TrajectorySeed &seed2)
check overlapping segment for seeds
std::deque< bool > BoolContainer
bool MomentumFilter(std::vector< TrajectorySeed > &seeds)
filter out the bad pt seeds, if all are bad pt seeds then keep all
double NChi2OfSegment(const TrackingRecHit &rhit)
retrieve number of rechits& normalized chi2 of associated segments of a seed
MuonTransientTrackingRecHit::MuonRecHitContainer SegmentContainer
std::vector< int > ShoweringLayers
TrajectorySeed LeanHighMomentum(std::vector< TrajectorySeed > &seeds)
select the highest momentum pt seed
int NRecHitsFromSegment(const TrackingRecHit &rhit)
std::vector< SeedContainer > GroupSeeds(std::vector< TrajectorySeed > &seeds)
group the seeds
SeedContainer SeedCandidates(std::vector< TrajectorySeed > &seeds, bool good)
pick the seeds w/ 1st layer information and w/ more than 1 segments
SeedContainer LengthFilter(std::vector< TrajectorySeed > &seeds)
GlobalVector SeedMomentum(const TrajectorySeed &seed)
retrieve seed global momentum
std::vector< TrajectorySeed > seedCleaner(const edm::EventSetup &eventSetup, std::vector< TrajectorySeed > &seeds)
Cache pointer to geometry.
TrajectorySeed MoreRecHits(std::vector< TrajectorySeed > &seeds)
select the seed with more rechits
std::vector< TrajectorySeed > SeedContainer
std::vector< MuonRecHitPointer > MuonRecHitContainer
int SeedLength(const TrajectorySeed &seed)
TrajectorySeed Chi2LengthSelection(std::vector< TrajectorySeed > &seeds)
select seed by balance length and chi2