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;
std::vector< bool > BoolContainer
GE0SegAlgoRU(const edm::ParameterSet &ps)
Constructor.
SegmentParameters wideParameters
unsigned int maxNumberOfHitsPerLayer
bool isHitNearSegment(const float maxETA, const float maxPHI, const std::unique_ptr< MuonSegFit > &fit, const HitAndPositionPtrContainer &proto_segment, const HitAndPosition &h) const
std::vector< const HitAndPosition * > HitAndPositionPtrContainer
bool areHitsCloseInEta(const float maxETA, const bool beamConst, const GlobalPoint &h1, const GlobalPoint &h2) const
void pruneBadHits(const float maxChi2, HitAndPositionPtrContainer &proto_segment, std::unique_ptr< MuonSegFit > &fit, const unsigned int n_seg_min) const
std::pair< const GEMSuperChamber *, std::map< uint32_t, const GEMEtaPartition * > > GEMEnsemble
const GEMSuperChamber * theChamber
unsigned int maxNumberOfHits
constexpr std::array< uint8_t, layerIndexSize > layer
float getHitSegChi2(const std::unique_ptr< MuonSegFit > &fit, const GEMRecHit &hit) const
void compareProtoSegment(std::unique_ptr< MuonSegFit > ¤t_fit, HitAndPositionPtrContainer ¤t_proto_segment, const HitAndPosition &new_hit) const
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
void addUniqueSegments(SegmentByMetricContainer &proto_segments, std::vector< GEMSegment > &segments, BoolContainer &used) const
std::vector< GEMSegment > run(const GEMSuperChamber *chamber, const HitAndPositionContainer &rechits)
bool hasHitOnLayer(const HitAndPositionPtrContainer &proto_segment, const unsigned int layer) const
HitAndPosition(const GEMRecHit *rh, const LocalPoint &lp, const GlobalPoint &gp, unsigned int idx)
std::unique_ptr< MuonSegFit > makeFit(const HitAndPositionPtrContainer &proto_segment) const
bool areHitsCloseInGlobalPhi(const float maxPHI, const unsigned int nLayDisp, const GlobalPoint &h1, const GlobalPoint &h2) const
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
SegmentParameters displacedParameters
unsigned int minNumberOfHits
std::vector< std::pair< float, HitAndPositionPtrContainer > > SegmentByMetricContainer
std::vector< HitAndPosition > HitAndPositionContainer
std::unique_ptr< MuonSegFit > addHit(HitAndPositionPtrContainer &proto_segment, const HitAndPosition &aHit) const
SegmentParameters stdParameters
~GE0SegAlgoRU() override
Destructor.
GlobalPoint globalAtZ(const std::unique_ptr< MuonSegFit > &fit, float z) const
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.
void increaseProtoSegment(const float maxChi2, std::unique_ptr< MuonSegFit > ¤t_fit, HitAndPositionPtrContainer ¤t_proto_segment, const HitAndPosition &new_hit) const