38 return StatusCode::SUCCESS;
52 if (writeHandle.isValid()) {
53 ATH_MSG_DEBUG(
"CondHandle " << writeHandle.fullKey() <<
" is already valid.");
54 return StatusCode::SUCCESS;
58 EventIDRange rangeTrt;
61 if (not trtDetEleHandle.
isValid()) {
63 return StatusCode::FAILURE;
73 if (not trtDetEleHandle.
range(rangeTrt)) {
74 ATH_MSG_FATAL(
"Failed to retrieve validity range for " << trtDetEleHandle.
key());
75 return StatusCode::FAILURE;
79 double P[33], Wf = 0.,Wz = 0.;
92 mrmin[
N] = 100000.; mrmax[
N] =-100000.;
93 mzmin[
N] = 100000.; mzmax[
N] =-100000.;
95 std::vector<const InDetDD::TRT_BaseElement*> pE;
98 for(
int ring = 0; ring!=Rings; ++ring) {
102 for(
int nsl=0; nsl!=NSlayers; ++nsl) {
105 double rmin = 100000., rmax =-100000.;
106 double zmin = 100000.,
zmax =-100000.;
110 for(
int f=0;
f!=NPhi; ++
f) {
122 Wf = sqrt(
P[20] *
P[20] +
P[21] *
P[21]);
123 Wz = sqrt(
P[22] *
P[22] +
P[23] *
P[23]);
126 if (
P[10] > mrmax[
N])
128 if (
P[11] < mzmin[
N])
130 if (
P[12] > mzmax[
N])
142 double df1 = std::abs(
P[13] -
P[2]);
144 df1 = std::abs(df1 -
pi2);
145 double df2 = std::abs(
P[14] -
P[2]);
147 df2 = std::abs(df2 -
pi2);
155 double r =(rmax+rmin)*.5;
156 double dr =(rmax-rmin)*.5;
160 (layerVectors.at(
N)).push_back(std::move(
layer));
171 for(
N=0;
N<3;
N+=2) {
173 mrmin[
N] = 100000.; mrmax[
N] =-100000.;
174 mzmin[
N] = 100000.; mzmax[
N] =-100000.;
177 for(
int wh = 0;
wh!=Wheels; ++
wh) {
180 for(
int s = 0;
s!=
ns; ++
s) {
183 double rmin = 100000., rmax =-100000.;
184 double zmin = 100000.,
zmax =-100000.;
188 for(
int f=0;
f!=NPhi; ++
f) {
198 Wf = sqrt(
P[20]*
P[20]+
P[21]*
P[21]);
199 Wz = sqrt(
P[22]*
P[22]+
P[23]*
P[23]);
201 if(
P[ 9] < mrmin[
N] ) mrmin[
N] =
P[ 9];
202 if(
P[10] > mrmax[
N] ) mrmax[
N] =
P[10];
203 if(
P[11] < mzmin[
N] ) mzmin[
N] =
P[11];
204 if(
P[12] > mzmax[
N] ) mzmax[
N] =
P[12];
206 if(
P[ 9] < rmin ) rmin =
P[ 9];
207 if(
P[10] > rmax ) rmax =
P[10];
211 double df1 = std::abs(
P[13]-
P[2]);
if(df1>
pi) df1 = std::abs(df1-
pi2);
212 double df2 = std::abs(
P[14]-
P[2]);
if(df2>
pi) df2 = std::abs(df2-
pi2);
213 if(df1>dfm) dfm = df1;
214 if(df2>dfm) dfm = df2;
219 double r =(rmax+rmin)*.5;
220 double dr =(rmax-rmin)*.5;
224 (layerVectors.at(
N)).push_back(std::move(
layer));
230 double zmi = +100000.;
231 double zma = -100000.;
232 double rma = -100000.;
233 double rmi = +100000.;
234 for(
int i=0;
i!=3; ++
i) {
235 if(!layerVectors[
i].
empty()) {
236 if(mzmin[
i]<zmi) zmi=mzmin[
i];
237 if(mzmax[
i]>zma) zma=mzmax[
i];
238 if(mrmax[
i]>rma) rma=mrmax[
i];
239 if(mrmin[
i]<rmi) rmi=mrmin[
i];
243 double hz = std::abs(zma);
244 if(
hz<std::abs(zmi))
hz = std::abs(zmi);
247 std::unique_ptr<InDet::TRT_DetElementsRoadData_xk> writeCdo{std::make_unique<InDet::TRT_DetElementsRoadData_xk>()};
248 writeCdo->setTRTLayerVectors(std::move(layerVectors));
249 writeCdo->setBounds(CB,rmi);
251 if (writeHandle.record(rangeTrt, std::move(writeCdo)).isFailure()) {
253 <<
" with EventRange " << rangeTrt
254 <<
" into Conditions Store");
255 return StatusCode::FAILURE;
257 ATH_MSG_DEBUG(
"recorded new CDO " << writeHandle.key() <<
" with range " << rangeTrt <<
" into Conditions Store");
259 return StatusCode::SUCCESS;