Go to the documentation of this file.00001 #ifndef MuonSeedGenerator_MuonSeedOrcaPatternRecognition_h
00002 #define MuonSeedGenerator_MuonSeedOrcaPatternRecognition_h
00003
00004 #include "RecoMuon/MuonSeedGenerator/src/MuonSeedVPatternRecognition.h"
00005
00006
00007 class MuonSeedOrcaPatternRecognition : public MuonSeedVPatternRecognition
00008 {
00009 public:
00010 explicit MuonSeedOrcaPatternRecognition(const edm::ParameterSet & pset);
00011
00012 void produce(const edm::Event& event, const edm::EventSetup& eSetup,
00013 std::vector<MuonRecHitContainer> & result);
00014
00015 private:
00016
00017
00018 bool * zero(unsigned listSize);
00019
00020 void endcapPatterns(
00021 const MuonRecHitContainer & me11, const MuonRecHitContainer & me12,
00022 const MuonRecHitContainer & me2, const MuonRecHitContainer & me3,
00023 const MuonRecHitContainer & me4, const MuonRecHitContainer & mb1,
00024 const MuonRecHitContainer & mb2, const MuonRecHitContainer & mb3,
00025 bool * MB1, bool * MB2, bool * MB3,
00026 std::vector<MuonRecHitContainer> & result);
00027
00028 void complete(MuonRecHitContainer& seedSegments,
00029 const MuonRecHitContainer &recHits, bool* used=0) const;
00030
00031 MuonRecHitPointer
00032 bestMatch(const ConstMuonRecHitPointer & first, MuonRecHitContainer & good_rhit) const;
00033
00034 double discriminator(const ConstMuonRecHitPointer & first,
00035 MuonRecHitPointer & other) const;
00036
00037 bool check(const MuonRecHitContainer & segments);
00038 bool isCrack(const ConstMuonRecHitPointer & segment) const;
00039 void rememberCrackSegments(const MuonRecHitContainer & segments,
00040 MuonRecHitContainer & crackSegments) const;
00041
00042 void dumpLayer(const char * name, const MuonRecHitContainer & segments) const;
00043
00045 MuonRecHitContainer filterSegments(const MuonRecHitContainer & segments, double dThetaCut) const;
00046 void filterOverlappingChambers(MuonRecHitContainer & segments) const;
00047 bool isME1A(const ConstMuonRecHitPointer & segment) const;
00048 int countHits(const MuonRecHitPointer & segment) const;
00049
00050 void markAsUsed(int nr, const MuonRecHitContainer &recHits, bool* used) const;
00051 std::vector<double> theCrackEtas;
00052 double theCrackWindow;
00053 };
00054
00055 #endif
00056