15 using namespace SurfaceOrientation;
17 using namespace magneticfield;
19 bSlab::bSlab(handles::const_iterator
begin, handles::const_iterator
end,
bool debugVal)
20 : volumes(begin, end), mslab(nullptr),
debug(debugVal) {
26 cout <<
" Slab has " <<
volumes.size() <<
" volumes" << endl;
29 handles::const_iterator
i =
volumes.begin();
30 float Zmax = (*i)->surface(
zplus).position().z();
31 float Zmin = (*i)->surface(
zminus).position().z();
34 if (fabs(Zmax - (*i)->surface(
zplus).position().z()) > epsilon ||
35 fabs(Zmin - (*i)->surface(
zminus).position().z()) > epsilon) {
37 cout <<
"*** WARNING: slabs Z coords not matching: D_Zmax = "
38 << fabs(Zmax - (*i)->surface(
zplus).position().z())
39 <<
" D_Zmin = " << fabs(Zmin - (*i)->surface(
zminus).position().z()) << endl;
50 if (
mslab ==
nullptr) {
51 vector<MagVolume*> mVols;
52 for (handles::const_iterator vol =
volumes.begin(); vol !=
volumes.end(); ++vol) {
53 mVols.push_back((*vol)->magVolume);
Geom::Phi< float > maxPhi() const
Boundary in phi.
const double Zmax[kNumberCalorimeter]
const double Zmin[kNumberCalorimeter]
void precomputed_value_sort(RandomAccessIterator begin, RandomAccessIterator end, const Extractor &extr, const Compare &comp)
Geom::Phi< float > minPhi() const
Boundary in phi.
MagBSlab * buildMagBSlab() const
Construct the MagBSlab upon request.