1 #ifndef ME0Segment_ME0SegAlgoRU_h
2 #define ME0Segment_ME0SegAlgoRU_h
63 const unsigned int n_seg_min,
65 const std::vector<unsigned int>& recHits_per_layer,
67 std::vector<ME0Segment>& segments)
const;
73 std::unique_ptr<MuonSegFit>& current_fit,
76 HitAndPositionContainer::const_iterator i1,
77 HitAndPositionContainer::const_iterator i2)
const;
81 std::unique_ptr<MuonSegFit>&
fit,
82 const unsigned int n_seg_min)
const;
85 std::vector<ME0Segment>& segments,
91 const unsigned int nLayDisp,
105 const HitAndPosition&
h)
const;
109 const std::unique_ptr<MuonSegFit>&
fit,
111 const HitAndPosition&
h)
const;
120 const HitAndPosition& new_hit)
const;
123 std::unique_ptr<MuonSegFit>& current_fit,
125 const HitAndPosition& new_hit)
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< ME0Segment > &segments) const
bool areHitsCloseInGlobalPhi(const float maxPHI, const unsigned int nLayDisp, const GlobalPoint &h1, const GlobalPoint &h2) const
SegmentParameters displacedParameters
void increaseProtoSegment(const float maxChi2, std::unique_ptr< MuonSegFit > ¤t_fit, HitAndPositionPtrContainer ¤t_proto_segment, const HitAndPosition &new_hit) const
std::unique_ptr< MuonSegFit > makeFit(const HitAndPositionPtrContainer &proto_segment) const
std::vector< HitAndPosition > HitAndPositionContainer
constexpr std::array< uint8_t, layerIndexSize > layer
std::vector< const HitAndPosition * > HitAndPositionPtrContainer
void tryAddingHitsToSegment(const float maxTOF, 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< ME0Segment > &segments, BoolContainer &used) const
GlobalPoint globalAtZ(const std::unique_ptr< MuonSegFit > &fit, float z) const
ME0SegAlgoRU(const edm::ParameterSet &ps)
Constructor.
~ME0SegAlgoRU() override
Destructor.
std::vector< bool > BoolContainer
void pruneBadHits(const float maxChi2, HitAndPositionPtrContainer &proto_segment, std::unique_ptr< MuonSegFit > &fit, const unsigned int n_seg_min) const
bool areHitsConsistentInTime(const float maxTOF, const HitAndPositionPtrContainer &proto_segment, const HitAndPosition &h) const
void compareProtoSegment(std::unique_ptr< MuonSegFit > ¤t_fit, HitAndPositionPtrContainer ¤t_proto_segment, const HitAndPosition &new_hit) const
float getHitSegChi2(const std::unique_ptr< MuonSegFit > &fit, const ME0RecHit &hit) const
SegmentParameters stdParameters
bool isHitNearSegment(const float maxETA, const float maxPHI, const std::unique_ptr< MuonSegFit > &fit, const HitAndPositionPtrContainer &proto_segment, const HitAndPosition &h) const
bool hasHitOnLayer(const HitAndPositionPtrContainer &proto_segment, const unsigned int layer) const
std::vector< std::pair< float, HitAndPositionPtrContainer > > SegmentByMetricContainer
const ME0Chamber * theChamber
std::vector< ME0Segment > run(const ME0Chamber *chamber, const HitAndPositionContainer &rechits) override
bool areHitsCloseInEta(const float maxETA, const bool beamConst, const GlobalPoint &h1, const GlobalPoint &h2) const
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.
SegmentParameters wideParameters
std::unique_ptr< MuonSegFit > addHit(HitAndPositionPtrContainer &proto_segment, const HitAndPosition &aHit) const
unsigned int minNumberOfHits