5#ifndef MUONPHILAYERHOUGH_H
6#define MUONPHILAYERHOUGH_H
20 using PhiHitVec = std::vector<std::shared_ptr<MuonHough::PhiHit>>;
49 std::pair<int, int>
range(
float ,
float phi1,
float phi2)
const {
50 float phimin = std::min(phi1, phi2);
51 float phimax = std::max(phi1, phi2);
57 return std::make_pair(bphimin, bphimax);
63 float maximum(
float r,
float phimin,
float phimax,
int& posbin)
const {
67 std::pair<int, int> minMax =
range(
r, phimin, phimax);
68 for (
int n = minMax.first; n <= minMax.second; ++n) {
75 std::cout <<
" maximum too large " <<
max * 0.001 <<
" min " << minMax.first <<
" max " << minMax.second <<
" nbins "
76 <<
m_nbins <<
" phimin " << phimin <<
" phimax " << phimax << std::endl;
77 for (
int n = minMax.first; n <= minMax.second; ++n) { std::cout <<
" bin " << n <<
" val " <<
m_histo[n] << std::endl; }
83 std::vector<TH1*>
rootHistos(
const std::string& prefix,
const float* phimin = 0,
const float* phimax = 0)
const;
std::vector< std::shared_ptr< MuonHough::PhiHit > > PhiHitVec
DetectorRegionIndex
enum to classify the different layers in the muon spectrometer
const MuonPhiLayerHough * hough
void fillLayer2(const PhiHitVec &hits, bool substract=false) const
MuonPhiLayerHough(int nbins, float rangemin, float rangemax, Muon::MuonStationIndex::DetectorRegionIndex region_)
void fillLayer(const PhiHitVec &hits, bool substract=false) const
float maximum(float r, float phimin, float phimax, int &posbin) const
MuonPhiLayerHough(const MuonPhiLayerHough &)
bool findMaximum(Maximum &maximum, float maxval) const
MuonPhiLayerHough & operator=(const MuonPhiLayerHough &right)
std::unique_ptr< unsigned int[]> m_histo
void associateHitsToMaximum(Maximum &maximum, const PhiHitVec &hits) const
Muon::MuonStationIndex::DetectorRegionIndex m_region
std::pair< int, int > range(float, float phi1, float phi2) const
std::vector< TH1 * > rootHistos(const std::string &prefix, const float *phimin=0, const float *phimax=0) const