19 using namespace SurfaceOrientation;
24 handles::const_iterator
end) :
25 theVolumes(begin,end),
44 for (handles::const_iterator
i=first;
i!=
last; ++
i){
45 hisZ.
fill((*i)->center().z());
47 vector<float> zClust = hisZ.
clusterize(resolution);
50 <<
" layers: " << endl;
52 handles::const_iterator layStart =
first;
53 handles::const_iterator separ =
first;
55 for (
unsigned int i=0;
i<zClust.size() - 1; ++
i) {
56 float zSepar = (zClust[
i] + zClust[
i+1])/2.
f;
57 while ((*separ)->center().z() < zSepar) ++separ;
59 cout <<
" Layer at: " << zClust[
i]
60 <<
" elements: " << separ-layStart <<
" unique volumes: ";
69 cout <<
" Layer at: " << zClust.back() <<
" elements: " << last-separ
70 <<
" unique volumes: ";
86 vector<MagELayer*> mLayers;
87 for (vector<eLayer>::const_iterator lay = layers.begin();
88 lay!=layers.end(); ++lay) {
89 mLayers.push_back((*lay).buildMagELayer());
91 msector =
new MagESector(mLayers, theVolumes.front()->minPhi());
std::vector< eLayer > layers
MagESector * buildMagESector() const
Construct the MagESector upon request.
static void printUniqueNames(handles::const_iterator begin, handles::const_iterator end)
Just for debugging...
std::vector< float > clusterize(float resolution)
eSector(handles::const_iterator begin, handles::const_iterator end)
Constructor from list of volumes.
void precomputed_value_sort(RandomAccessIterator begin, RandomAccessIterator end, const Extractor &extr)