14 #include "GaudiKernel/ServiceHandle.h"
31 m_x_reader(make_reader(nullptr)),
32 m_y_reader(make_reader(nullptr)),
33 m_z_reader(make_reader(nullptr)),
34 m_calorimeterVolume(nullptr),
35 m_indetVolume(nullptr) {}
39 if (!r_file || !r_file->IsOpen()) {
41 return StatusCode::FAILURE;
44 TH1* histo_in_file =
nullptr;
45 r_file->GetObject(
m_histo_name.value().c_str(), histo_in_file);
46 m_histo = std::unique_ptr<TH1>(histo_in_file);
49 return StatusCode::FAILURE;
62 return StatusCode::SUCCESS;
74 return m_histo->GetBinContent(bin_x, bin_y, bin_z);
85 return axis->FindBin(perigee->eta());
90 return axis->FindBin(std::abs(perigee->eta()));
95 return axis->FindBin(perigee->parameters()[2]);
100 return axis->FindBin(std::abs(perigee->parameters()[2]));
105 return axis->FindBin(perigee->parameters()[3]);
110 return axis->FindBin(std::abs(perigee->parameters()[3]));
115 return axis->FindBin(perigee->pT());
143 }
else if (
axis_title ==
"#rho @ Calo-entrance") {
150 }
else if (
axis_title ==
"R @ Calo-entrance") {
157 }
else if (
axis_title ==
"z @ Calo-entrance") {
164 }
else if (
axis_title ==
"#rho @ Calo-centre") {
172 return axis->FindBin(calo_centre.perp());
182 return axis->FindBin(calo_centre.mag());
192 return axis->FindBin(calo_centre[2]);
194 }
else if (
axis_title ==
"#rho @ MS-entrance") {
223 id_exit = calo_entrance = calo_exit = ms_entrance =
nullptr;
225 ATH_MSG_DEBUG(
"No track has been given. Where is my track?!");
229 if (!trk_srf->trackParameters()) {
continue; }
230 if (
m_indetVolume->inside(trk_srf->trackParameters()->position())) {
238 if (trk_srf->materialEffectsOnTrack()->thicknessInX0() < 10) {
continue; }
239 if (!calo_entrance) {
240 calo_entrance = trk_srf;
247 else if (trk_srf->measurementOnTrack()) {
248 ms_entrance = trk_srf;