Go to the documentation of this file. 1 #ifndef RecoLocalMuon_GEMSegment_GE0SegAlgoRU_h
2 #define RecoLocalMuon_GEMSegment_GE0SegAlgoRU_h
77 std::vector<GEMSegment>
run(
const GEMEnsemble& ensemble,
const std::vector<const GEMRecHit*>&
rechits)
override;
82 const unsigned int n_seg_min,
84 const std::vector<unsigned int>& recHits_per_layer,
86 std::vector<GEMSegment>& segments)
const;
91 std::unique_ptr<MuonSegFit>& current_fit,
94 HitAndPositionContainer::const_iterator
i1,
95 HitAndPositionContainer::const_iterator
i2)
const;
99 std::unique_ptr<MuonSegFit>&
fit,
100 const unsigned int n_seg_min)
const;
103 std::vector<GEMSegment>& segments,
109 const unsigned int nLayDisp,
123 const std::unique_ptr<MuonSegFit>&
fit,
125 const HitAndPosition&
h)
const;
134 const HitAndPosition& new_hit)
const;
137 std::unique_ptr<MuonSegFit>& current_fit,
139 const HitAndPosition& new_hit)
const;
void compareProtoSegment(std::unique_ptr< MuonSegFit > ¤t_fit, HitAndPositionPtrContainer ¤t_proto_segment, const HitAndPosition &new_hit) const
~GE0SegAlgoRU() override
Destructor.
std::vector< HitAndPosition > HitAndPositionContainer
bool isHitNearSegment(const float maxETA, const float maxPHI, const std::unique_ptr< MuonSegFit > &fit, const HitAndPositionPtrContainer &proto_segment, const HitAndPosition &h) const
unsigned int minNumberOfHits
bool areHitsCloseInGlobalPhi(const float maxPHI, const unsigned int nLayDisp, const GlobalPoint &h1, const GlobalPoint &h2) const
void addUniqueSegments(SegmentByMetricContainer &proto_segments, std::vector< GEMSegment > &segments, BoolContainer &used) const
bool hasHitOnLayer(const HitAndPositionPtrContainer &proto_segment, const unsigned int layer) const
SegmentParameters wideParameters
SegmentParameters displacedParameters
HitAndPosition(const GEMRecHit *rh, const LocalPoint &lp, const GlobalPoint &gp, unsigned int idx)
void lookForSegments(const SegmentParameters ¶ms, const unsigned int n_seg_min, const HitAndPositionContainer &rechits, const std::vector< unsigned int > &recHits_per_layer, BoolContainer &used, std::vector< GEMSegment > &segments) const
std::vector< std::pair< float, HitAndPositionPtrContainer > > SegmentByMetricContainer
std::unique_ptr< MuonSegFit > makeFit(const HitAndPositionPtrContainer &proto_segment) const
std::unique_ptr< MuonSegFit > addHit(HitAndPositionPtrContainer &proto_segment, const HitAndPosition &aHit) const
std::pair< const GEMSuperChamber *, std::map< uint32_t, const GEMEtaPartition * > > GEMEnsemble
GlobalPoint globalAtZ(const std::unique_ptr< MuonSegFit > &fit, float z) const
void pruneBadHits(const float maxChi2, HitAndPositionPtrContainer &proto_segment, std::unique_ptr< MuonSegFit > &fit, const unsigned int n_seg_min) const
constexpr std::array< uint8_t, layerIndexSize > layer
GE0SegAlgoRU(const edm::ParameterSet &ps)
Constructor.
void increaseProtoSegment(const float maxChi2, std::unique_ptr< MuonSegFit > ¤t_fit, HitAndPositionPtrContainer ¤t_proto_segment, const HitAndPosition &new_hit) const
std::vector< const HitAndPosition * > HitAndPositionPtrContainer
std::vector< bool > BoolContainer
void tryAddingHitsToSegment(const float maxETA, const float maxPhi, const float maxChi2, std::unique_ptr< MuonSegFit > ¤t_fit, HitAndPositionPtrContainer &proto_segment, const BoolContainer &used, HitAndPositionContainer::const_iterator i1, HitAndPositionContainer::const_iterator i2) const
unsigned int maxNumberOfHits
unsigned int maxNumberOfHitsPerLayer
SegmentParameters stdParameters
float getHitSegChi2(const std::unique_ptr< MuonSegFit > &fit, const GEMRecHit &hit) const
bool areHitsCloseInEta(const float maxETA, const bool beamConst, const GlobalPoint &h1, const GlobalPoint &h2) const
std::vector< GEMSegment > run(const GEMSuperChamber *chamber, const HitAndPositionContainer &rechits)
const GEMSuperChamber * theChamber