CMS 3D CMS Logo

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