16 using namespace SurfaceOrientation;
20 handles::const_iterator
end) :
22 theVolumes(begin,end),
35 handles::iterator secBegin =
theVolumes.begin();
36 handles::iterator secEnd;
56 }
else if (
size==12 ||
57 (((*secBegin)->shape()!=
ddtrap) && (*secBegin)->shape()!=
ddbox)) {
58 secEnd = secBegin+
size/12;
61 float tolerance = 0.025;
64 <<
" " << (*secBegin)->copyno << std::endl;
67 (*secBegin)->sameSurface(refSurf,
outer, tolerance));
77 secEnd = secBegin+
size/12;
80 if (!((*secBegin)->sameSurface((*(secEnd-1))->surface(
outer),
82 std::cout <<
"*** ERROR: Big mess while looking for sectors "
83 << (*secBegin)->name <<
" " << (*secBegin)->copyno <<
" "
84 << (*(secEnd-1))->name <<
" " << (*(secEnd-1))->copyno
91 <<
" from " << newbegin
92 <<
" (phi = " << (*secBegin)->center().phi() <<
") "
94 <<
" (phi = " << (*secEnd)->center().phi() <<
") "
95 <<
" # " << (*secBegin)->copyno <<
" ";
103 for (
int i = 0;
i<12; ++
i) {
104 int isec = (
i+binOffset)%12;
118 return (i>=0?i:i+
size);
130 return theVolumes.front()->minR();
144 std::cout <<
"ERROR: bLayer::buildMagBLayer, 0 sectors but "
145 <<
size <<
" volumes" << std::endl;
149 mlayer =
new MagBLayer(theVolumes.front()->magVolume,
minR());
153 std::vector<MagBSector*> mSectors;
154 for (
unsigned int i=0;
i<
sectors.size(); ++
i) {
155 mSectors.push_back(
sectors[
i].buildMagBSector());
static void printUniqueNames(handles::const_iterator begin, handles::const_iterator end, bool uniq=true)
Just for debugging...
std::vector< bSector > sectors
void precomputed_value_sort(RandomAccessIterator begin, RandomAccessIterator end, const Extractor &extr)
MagBLayer * buildMagBLayer() const
Construct the MagBLayer upon request.
const RotationType & rotation() const
bLayer(handles::const_iterator begin, handles::const_iterator end)
Constructor from list of volumes.
double minR() const
Return sector at i (handling periodicity)
tuple size
Write out results.
Global3DVector GlobalVector