CMS 3D CMS Logo

MuonSeedOrcaPatternRecognition.h
Go to the documentation of this file.
1 #ifndef MuonSeedGenerator_MuonSeedOrcaPatternRecognition_h
2 #define MuonSeedGenerator_MuonSeedOrcaPatternRecognition_h
3 
7 
8 
10 {
11 public:
13 
14  void produce(const edm::Event& event, const edm::EventSetup& eSetup,
15  std::vector<MuonRecHitContainer> & result);
16 
17 private:
18 
19  // aalocates a zeroed array of a given size
20  bool * zero(unsigned listSize);
21 
22  void endcapPatterns(
23  const MuonRecHitContainer & me11, const MuonRecHitContainer & me12,
24  const MuonRecHitContainer & me2, const MuonRecHitContainer & me3,
25  const MuonRecHitContainer & me4, const MuonRecHitContainer & me0,
27  bool * MB1, bool * MB2, bool * MB3,
28  std::vector<MuonRecHitContainer> & result);
29 
30  void complete(MuonRecHitContainer& seedSegments,
31  const MuonRecHitContainer &recHits, bool* used=0) const;
32 
34  bestMatch(const ConstMuonRecHitPointer & first, MuonRecHitContainer & good_rhit) const;
35  // some score to measure how well the two hits match
36  double discriminator(const ConstMuonRecHitPointer & first,
37  MuonRecHitPointer & other) const;
38  // see if it's OK to add
39  bool check(const MuonRecHitContainer & segments);
40  bool isCrack(const ConstMuonRecHitPointer & segment) const;
41  void rememberCrackSegments(const MuonRecHitContainer & segments,
42  MuonRecHitContainer & crackSegments) const;
43 
44  void dumpLayer(const char * name, const MuonRecHitContainer & segments) const;
45 
47  MuonRecHitContainer filterSegments(const MuonRecHitContainer & segments, double dThetaCut) const;
48  void filterOverlappingChambers(MuonRecHitContainer & segments) const;
49  bool isME1A(const ConstMuonRecHitPointer & segment) const;
50  int countHits(const MuonRecHitPointer & segment) const;
51  // can mark other ME1A as used if one is.
52  void markAsUsed(int nr, const MuonRecHitContainer &recHits, bool* used) const;
53  std::vector<double> theCrackEtas;
59 
60 };
61 
62 #endif
63 
MuonTransientTrackingRecHit::ConstMuonRecHitPointer ConstMuonRecHitPointer
MuonRecHitPointer bestMatch(const ConstMuonRecHitPointer &first, MuonRecHitContainer &good_rhit) const
MuonTransientTrackingRecHit::MuonRecHitPointer MuonRecHitPointer
void filterOverlappingChambers(MuonRecHitContainer &segments) const
bool isCrack(const ConstMuonRecHitPointer &segment) const
bool check(const MuonRecHitContainer &segments)
int countHits(const MuonRecHitPointer &segment) const
void endcapPatterns(const MuonRecHitContainer &me11, const MuonRecHitContainer &me12, const MuonRecHitContainer &me2, const MuonRecHitContainer &me3, const MuonRecHitContainer &me4, const MuonRecHitContainer &me0, const MuonRecHitContainer &mb1, const MuonRecHitContainer &mb2, const MuonRecHitContainer &mb3, bool *MB1, bool *MB2, bool *MB3, std::vector< MuonRecHitContainer > &result)
void produce(const edm::Event &event, const edm::EventSetup &eSetup, std::vector< MuonRecHitContainer > &result)
void rememberCrackSegments(const MuonRecHitContainer &segments, MuonRecHitContainer &crackSegments) const
MuonTransientTrackingRecHit::MuonRecHitContainer MuonRecHitContainer
bool isME1A(const ConstMuonRecHitPointer &segment) const
void complete(MuonRecHitContainer &seedSegments, const MuonRecHitContainer &recHits, bool *used=0) const
void markAsUsed(int nr, const MuonRecHitContainer &recHits, bool *used) const
MuonSeedOrcaPatternRecognition(const edm::ParameterSet &pset, edm::ConsumesCollector &iC)
void dumpLayer(const char *name, const MuonRecHitContainer &segments) const
double discriminator(const ConstMuonRecHitPointer &first, MuonRecHitPointer &other) const
Definition: event.py:1
MuonRecHitContainer filterSegments(const MuonRecHitContainer &segments, double dThetaCut) const
apply some cuts to segments before using them