197{
200
201 SG::ReadCondHandle<CaloDetDescrManager> caloMgrHandle{
m_caloMgrKey};
202 const CaloDetDescrManager* caloDDMgr = *caloMgrHandle;
203
204 double trketa = 0.;
205
206 const DataVector <const Trk::TrackParameters>* paramvec =
track->trackParameters();
207 if (paramvec) {
210 }
211 else
212 ATH_MSG_ERROR (
" No track parameters for this track ??? do nothing " );
213
214 double distbar = 0.;
215 double distec = 0.;
217 double trketa_at = 0.;
218 double trkphi_at = 0.;
221
222
223 double x_ctb_0 = 0;
224 double y_ctb_0 = 0;
225 double z_ctb_0 = 0;
226 double etaCaloLocal_0 = 0;
227 double phiCaloLocal_0 = 0;
228 double trketa_at_0 = 0.;
229 double trkphi_at_0 = 0.;
230
231 double x_ctb_1 = 0;
232 double y_ctb_1 = 0;
233 double z_ctb_1 = 0;
234 double etaCaloLocal_1 = 0;
235 double phiCaloLocal_1 = 0;
236 double trketa_at_1 = 0.;
237 double trkphi_at_1 = 0.;
238
239 double x_ctb_2 = 0;
240 double y_ctb_2 = 0;
241 double z_ctb_2 = 0;
242 double etaCaloLocal_2 = 0;
243 double phiCaloLocal_2 = 0;
244 double trketa_at_2 = 0.;
245 double trkphi_at_2 = 0.;
246
247 double x_ctb_3 = 0;
248 double y_ctb_3 = 0;
249 double z_ctb_3 = 0;
250 double etaCaloLocal_3 = 0;
251 double phiCaloLocal_3 = 0;
252 double trketa_at_3 = 0.;
253 double trkphi_at_3 = 0.;
254
255 double x_ctb_tile = 0;
256 double y_ctb_tile = 0;
257 double z_ctb_tile = 0;
258 double etaCaloLocal_tile = 0;
259 double phiCaloLocal_tile = 0;
260 double trketa_at_tile = 0.;
261 double trkphi_at_tile = 0.;
262
263 if (paramvec) {
264
265
268
269 ATH_MSG_DEBUG (
" TrackTo ...PS : for eta= " << trketa <<
" dist to Barrel =" << distbar
270 << " to endcap =" << distec );
271 if (distbar < 0 )
sample = CaloCell_ID::PreSamplerB;
272 else if (distec < 0 )
sample = CaloCell_ID::PreSamplerE;
273 else if ( distbar < distec)
sample = CaloCell_ID::PreSamplerB;
274 else sample = CaloCell_ID::PreSamplerE;
276
278 pt_calo_ctb,pt_calo_local,trketa_at,trkphi_at);
279
280 if (result) {
281 got_a_track=true;
282 x_ctb_0 = pt_calo_ctb->x();
283 y_ctb_0 = pt_calo_ctb->y();
284 z_ctb_0 = pt_calo_ctb->z();
285 etaCaloLocal_0 = pt_calo_local->eta();
286 phiCaloLocal_0 = pt_calo_local->phi();
287 trketa_at_0 = trketa_at;
288 trkphi_at_0 = trkphi_at;
289
291 << " etaCaloLocal=" << pt_calo_local->eta()
292 << " phiCaloLocal=" << pt_calo_local->phi() );
293 }
294
295
298
299 ATH_MSG_DEBUG (
" TrackTo ...Strip : for eta= " << trketa <<
" dist to Barrel =" << distbar
300 << " to endcap =" << distec );
301 if (distbar < 0 )
sample = CaloCell_ID::EMB1;
302 else if (distec < 0 )
sample = CaloCell_ID::EME1;
303 else if ( distbar < distec)
sample = CaloCell_ID::EMB1;
304 else sample = CaloCell_ID::EME1;
306
308 pt_calo_ctb,pt_calo_local,trketa_at,trkphi_at);
309
310 if (result) {
311 got_a_track=true;
312 x_ctb_1 = pt_calo_ctb->x();
313 y_ctb_1 = pt_calo_ctb->y();
314 z_ctb_1 = pt_calo_ctb->z();
315 etaCaloLocal_1 = pt_calo_local->eta();
316 phiCaloLocal_1 = pt_calo_local->phi();
317 trketa_at_1 = trketa_at;
318 trkphi_at_1 = trkphi_at;
319
321 << " etaCaloLocal=" << pt_calo_local->eta()
322 << " phiCaloLocal=" << pt_calo_local->phi() );
323 }
324
325
326
329
330 ATH_MSG_DEBUG (
" TrackTo ...Middle : for eta= " << trketa <<
" dist to Barrel =" << distbar
331 << " to endcap =" << distec );
332 if (distbar < 0 )
sample = CaloCell_ID::EMB2;
333 else if (distec < 0 )
sample = CaloCell_ID::EME2;
334 else if ( distbar < distec)
sample = CaloCell_ID::EMB2;
335 else sample = CaloCell_ID::EME2;
337
339 pt_calo_ctb,pt_calo_local,trketa_at,trkphi_at);
340
341 if (result) {
342 got_a_track=true;
343 x_ctb_2 = pt_calo_ctb->x();
344 y_ctb_2 = pt_calo_ctb->y();
345 z_ctb_2 = pt_calo_ctb->z();
346 etaCaloLocal_2 = pt_calo_local->eta();
347 phiCaloLocal_2 = pt_calo_local->phi();
348 trketa_at_2 = trketa_at;
349 trkphi_at_2 = trkphi_at;
350
352 << " etaCaloLocal=" << pt_calo_local->eta()
353 << " phiCaloLocal=" << pt_calo_local->phi() );
354 }
355
356
357
358
359
360
361
362
363
364
367
368 ATH_MSG_DEBUG (
" TrackTo ...Back : for eta= " << trketa <<
" dist to Barrel =" << distbar
369 << " to endcap =" << distec );
370 if (distbar < 0 )
sample = CaloCell_ID::EMB3;
371 else if (distec < 0 )
sample = CaloCell_ID::EME3;
372 else if ( distbar < distec)
sample = CaloCell_ID::EMB3;
373 else sample = CaloCell_ID::EME3;
375
377 pt_calo_ctb,pt_calo_local,trketa_at,trkphi_at);
378
379 if (result) {
380 got_a_track=true;
381 x_ctb_3 = pt_calo_ctb->x();
382 y_ctb_3 = pt_calo_ctb->y();
383 z_ctb_3 = pt_calo_ctb->z();
384 etaCaloLocal_3 = pt_calo_local->eta();
385 phiCaloLocal_3 = pt_calo_local->phi();
386 trketa_at_3 = trketa_at;
387 trkphi_at_3 = trkphi_at;
388
390 << " etaCaloLocal=" << pt_calo_local->eta()
391 << " phiCaloLocal=" << pt_calo_local->phi() );
392 }
393
394
397
398 ATH_MSG_DEBUG (
" TrackTo ...Tile : for eta= " << trketa <<
" dist to Barrel =" << distbar
399 << " to endcap =" << distec );
400 if (distbar < 0 )
sample = CaloCell_ID::TileBar0;
401 else if (distec < 0 )
sample = CaloCell_ID::HEC0;
402 else if ( distbar > distec && distec < 10. )
sample = CaloCell_ID::HEC0;
403 else sample = CaloCell_ID::TileBar0;
405
407 pt_calo_ctb,pt_calo_local,trketa_at,trkphi_at);
408
409 if (result) {
410 got_a_track=true;
411 x_ctb_tile = pt_calo_ctb->x();
412 y_ctb_tile = pt_calo_ctb->y();
413 z_ctb_tile = pt_calo_ctb->z();
414 etaCaloLocal_tile = pt_calo_local->eta();
415 phiCaloLocal_tile = pt_calo_local->phi();
416 trketa_at_tile = trketa_at;
417 trkphi_at_tile = trkphi_at;
418
420 << " etaCaloLocal=" << pt_calo_local->eta()
421 << " phiCaloLocal=" << pt_calo_local->phi() );
422 }
423 }
424
425 ImpactInCalo * imp= new ImpactInCalo(x_ctb_0, y_ctb_0, z_ctb_0, etaCaloLocal_0, phiCaloLocal_0, trketa_at_0, trkphi_at_0,
426 x_ctb_1, y_ctb_1, z_ctb_1, etaCaloLocal_1, phiCaloLocal_1, trketa_at_1, trkphi_at_1,
427 x_ctb_2, y_ctb_2, z_ctb_2, etaCaloLocal_2, phiCaloLocal_2, trketa_at_2, trkphi_at_2,
428 x_ctb_3, y_ctb_3, z_ctb_3, etaCaloLocal_3, phiCaloLocal_3, trketa_at_3, trkphi_at_3,
429 x_ctb_tile, y_ctb_tile, z_ctb_tile, etaCaloLocal_tile, phiCaloLocal_tile, trketa_at_tile, trkphi_at_tile);
430
431 if(pt_calo_ctb) delete pt_calo_ctb;
432 if(pt_calo_local) delete pt_calo_local;
433
434 return imp;
435}
CaloSampling::CaloSample CaloSample
ParametersBase< TrackParametersDim, Charged > TrackParameters