ATLAS Offline Software
Loading...
Searching...
No Matches
RegSelLayer::PhiCluster Class Reference
Collaboration diagram for RegSelLayer::PhiCluster:

Public Member Functions

void addModule (const RegSelModule &m)
unsigned size () const

Private Attributes

std::vector< int > m_N
std::vector< double > m_positions

Detailed Description

Definition at line 83 of file RegSelLayer.h.

Member Function Documentation

◆ addModule()

void RegSelLayer::PhiCluster::addModule ( const RegSelModule & m)

Definition at line 87 of file RegSelLayer.cxx.

87 {
88
89 static const double M_TWOPI = 2*M_PI;
90
91 double pmin = m.phiMin();
92 double pmax = m.phiMax();
93
94 if ( pmin>pmax ) pmax+=M_TWOPI;
95
96 double overlap = 0.2*std::fabs(pmax-pmin);
97 double start = pmin;
98
99 bool notoverlaping = true;
100 for ( int i=m_positions.size() ; i-- ; ) {
101
102 double tdelphi = m_positions[i]-start;
103
104 if ( tdelphi>M_PI ) start+=M_TWOPI;
105 if ( tdelphi<-M_PI ) start-=M_TWOPI;
106
107 if ( std::fabs(m_positions[i]-start)<overlap ) {
109 m_N[i]++;
110 m_positions[i] /= m_N[i];
111 notoverlaping = false;
112 break;
113 }
114 }
115
116 if ( notoverlaping ) {
117 m_N.push_back(1);
118 m_positions.push_back(start);
119 }
120
121}
#define M_PI
std::vector< int > m_N
Definition RegSelLayer.h:90
std::vector< double > m_positions
Definition RegSelLayer.h:91

◆ size()

unsigned RegSelLayer::PhiCluster::size ( ) const
inline

Definition at line 88 of file RegSelLayer.h.

88{ return m_N.size(); }

Member Data Documentation

◆ m_N

std::vector<int> RegSelLayer::PhiCluster::m_N
private

Definition at line 90 of file RegSelLayer.h.

◆ m_positions

std::vector<double> RegSelLayer::PhiCluster::m_positions
private

Definition at line 91 of file RegSelLayer.h.


The documentation for this class was generated from the following files: