21 m_isfEnvDefSvc(
"ISF_ISFEnvelopeDefSvc",
name),
23 m_idMaxExtentZ(3550.),
29 declareProperty(
"ISFEnvelopeDefSvc",
31 "The ISF EnvelopeDefinition Service");
33 declareProperty(
"Tolerance",
35 "Tolerance on coordinates.");
37 declareProperty(
"InDetMaxExtentZ",
39 "The desired InnerDetector maximum extension in |z|");
56 if ( m_isfEnvDefSvc.retrieve().isFailure() ){
57 ATH_MSG_FATAL(
"Could not retrieve EnvelopeDefinition service ('" << m_isfEnvDefSvc.typeAndName() <<
"'). Abort.");
58 return StatusCode::FAILURE;
68 for (
unsigned int curPos=0; curPos<m_rposzInDet.size(); curPos++ ) {
69 double curZ = m_rposzInDet[curPos].second;
86 mirrorRZ( m_rposzBeamPipe, m_rzBeamPipe );
87 mirrorRZ( m_rposzInDet , m_rzInDet );
88 mirrorRZ( m_rposzCalo , m_rzCalo );
94 for (
unsigned int num = 0;
num<m_rzBeamPipe.size();
num++) {
98 for (
unsigned int num = 0;
num<m_rzInDet.size();
num++) {
102 for (
unsigned int num = 0;
num<m_rzCalo.size();
num++) {
109 return StatusCode::SUCCESS;
116 return StatusCode::SUCCESS;
127 else return m_isfEnvDefSvc->getRZBoundary( region );
139 else return m_isfEnvDefSvc->getRPositiveZBoundary( region );
146 double shiftToZ )
const {
149 ATH_MSG_DEBUG(
"Will shift '" << volName <<
"' boundary at |z|="<<shiftFromZ<<
" to |z|="<<shiftToZ<<
"");
151 RZPairVector rposzPairs = m_isfEnvDefSvc->getRPositiveZBoundary(region);
153 for (
unsigned int curPos=0; curPos<rposzPairs.size(); curPos++ ) {
154 double curR = rposzPairs[curPos].first;
155 double curZ = rposzPairs[curPos].second;
158 if ( fabs(curZ-shiftFromZ) < m_tolerance ) {
160 ATH_MSG_VERBOSE(
"Found boundary point in '" << volName <<
"' volume." <<
161 " Shifting (r,|z|)=("<<curR<<
","<<curZ<<
") to (r,|z|)=("<<curR<<
","<<shiftToZ<<
")");
163 rposzPairs[curPos].second = shiftToZ;