4 : theNbins(utheDets.
size()), isPhiPeriodic_(
false), isPhiOverlapping_(
false) {
5 std::vector<const Det*> theDets = utheDets;
12 LogTrace(metname) <<
"RecoMuonDetLayers::PhiBorderFinder "
13 <<
"step w: " << step <<
" # of bins: " <<
theNbins;
15 std::vector<double> spread(theNbins);
16 std::vector<std::pair<double, double> > phiEdge;
17 phiEdge.reserve(theNbins);
27 if (plane ==
nullptr) {
29 throw cms::Exception(
"UnexpectedState") << (
"PhiBorderFinder: det surface is not a BoundPlane");
35 for (std::vector<GlobalPoint>::const_iterator
pt = dc.begin();
pt != dc.end();
pt++) {
36 float phi = (*pt).phi();
43 if (
phimin * phimax < 0. &&
48 phiEdge.push_back(std::pair<double, double>(
phimin, phimax));
79 if (rms < 0.01 * step) {
86 throw cms::Exception(
"UnexpectedState") <<
"PhiBorderFinder: consistency error";
const std::string metname
T1 value() const
Explicit access to value in case implicit conversion not OK.
U second(std::pair< T, U > const &p)
void swap(edm::DataFrameContainer &lhs, edm::DataFrameContainer &rhs)
std::vector< double > thePhiBorders
PhiBorderFinder(const std::vector< const Det * > &utheDets)
double stat_RMS(const CONT &cont)
void precomputed_value_sort(RandomAccessIterator begin, RandomAccessIterator end, const Extractor &extr, const Compare &comp)
geomsort::ExtractPhi< Det, float > DetPhi
static std::vector< GlobalPoint > corners(const Plane &)
static int position[264][3]
double positiveRange(double phi) const
std::vector< double > thePhiBins
int binIndex(int i) const
tuple size
Write out results.