00001 #ifndef MuonSeedGenerator_MuonSeedOrcaPatternRecognition_h
00002 #define MuonSeedGenerator_MuonSeedOrcaPatternRecognition_h
00003
00004 #include "RecoMuon/MuonSeedGenerator/src/MuonSeedVPatternRecognition.h"
00005
00006 class MuonSeedOrcaPatternRecognition : public MuonSeedVPatternRecognition
00007 {
00008 public:
00009 explicit MuonSeedOrcaPatternRecognition(const edm::ParameterSet & pset);
00010
00011 void produce(edm::Event& event, const edm::EventSetup& eSetup,
00012 std::vector<MuonRecHitContainer> & result);
00013
00014 private:
00015
00016
00017 bool * zero(unsigned listSize);
00018
00019 void endcapPatterns(
00020 const MuonRecHitContainer & me11, const MuonRecHitContainer & me12,
00021 const MuonRecHitContainer & me2, const MuonRecHitContainer & me3,
00022 const MuonRecHitContainer & me4, const MuonRecHitContainer & mb1,
00023 const MuonRecHitContainer & mb2, const MuonRecHitContainer & mb3,
00024 bool * MB1, bool * MB2, bool * MB3,
00025 std::vector<MuonRecHitContainer> & result);
00026
00027 void complete(MuonRecHitContainer& seedSegments,
00028 const MuonRecHitContainer &recHits, bool* used=0) const;
00029
00030
00031 bool check(const MuonRecHitContainer & segments);
00032 void rememberCrackSegments(const MuonRecHitContainer & segments,
00033 MuonRecHitContainer & crackSegments) const;
00034
00035 std::vector<double> theCrackEtas;
00036 double theCrackWindow;
00037 };
00038
00039 #endif
00040