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 
9 public:
11 
12  void produce(const edm::Event& event,
13  const edm::EventSetup& eSetup,
14  std::vector<MuonRecHitContainer>& result) override;
15 
16 private:
17  // aalocates a zeroed array of a given size
18  bool* zero(unsigned listSize);
19 
20  void endcapPatterns(const MuonRecHitContainer& me11,
21  const MuonRecHitContainer& me12,
22  const MuonRecHitContainer& me2,
23  const MuonRecHitContainer& me3,
24  const MuonRecHitContainer& me4,
25  const MuonRecHitContainer& me0,
26  const MuonRecHitContainer& mb1,
27  const MuonRecHitContainer& mb2,
28  const MuonRecHitContainer& mb3,
29  bool* MB1,
30  bool* MB2,
31  bool* MB3,
32  std::vector<MuonRecHitContainer>& result);
33 
34  void complete(MuonRecHitContainer& seedSegments, const MuonRecHitContainer& recHits, bool* used = nullptr) const;
35 
37  // some score to measure how well the two hits match
38  double discriminator(const ConstMuonRecHitPointer& first, MuonRecHitPointer& other) const;
39  // see if it's OK to add
40  bool check(const MuonRecHitContainer& segments);
41  bool isCrack(const ConstMuonRecHitPointer& segment) const;
42  void rememberCrackSegments(const MuonRecHitContainer& segments, 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 #endif
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 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 produce(const edm::Event &event, const edm::EventSetup &eSetup, std::vector< MuonRecHitContainer > &result) override
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