diff --git a/InnerDetector/InDetRecTools/TRT_ElectronPidTools/src/TRT_ElectronPidToolRun2.cxx b/InnerDetector/InDetRecTools/TRT_ElectronPidTools/src/TRT_ElectronPidToolRun2.cxx index 6c7ba6afe3e84049d7b2bba6acfd2c76c988be56..ba06091a9be27651b425ccd1257d4889d382faa3 100644 --- a/InnerDetector/InDetRecTools/TRT_ElectronPidTools/src/TRT_ElectronPidToolRun2.cxx +++ b/InnerDetector/InDetRecTools/TRT_ElectronPidTools/src/TRT_ElectronPidToolRun2.cxx @@ -135,15 +135,7 @@ StatusCode InDet::TRT_ElectronPidToolRun2::finalize() std::vector<float> InDet::TRT_ElectronPidToolRun2::electronProbability_old(const Trk::Track& track) { // Simply return values without calculation - std::vector<float> PIDvalues(Trk::numberOfeProbabilityTypes); - PIDvalues[Trk::eProbabilityComb] = 0.5; - PIDvalues[Trk::eProbabilityHT] = 0.5; - PIDvalues[Trk::eProbabilityToT] = 0.5; - PIDvalues[Trk::eProbabilityBrem] = 0.5; - PIDvalues[Trk::eProbabilityNN] = 0.5; - PIDvalues[Trk::TRTTrackOccupancy] = 0.0; - PIDvalues[Trk::TRTdEdx] = 0.0; - PIDvalues[Trk::eProbabilityNumberOfTRTHitsUsedFordEdx] = 0.0; + std::vector<float> PIDvalues = defaultElectronProbability(); const Trk::TrackParameters* perigee = track.perigeeParameters(); if (!perigee) { return PIDvalues; } return PIDvalues; @@ -175,15 +167,7 @@ InDet::TRT_ElectronPidToolRun2::electronProbability(const Trk::Track& track) con } // Initialize the vector with default PID values - std::vector<float> PIDvalues(Trk::numberOfeProbabilityTypes); - PIDvalues[Trk::eProbabilityComb] = 0.5; - PIDvalues[Trk::eProbabilityHT] = 0.5; - PIDvalues[Trk::eProbabilityToT] = 0.5; - PIDvalues[Trk::eProbabilityBrem] = 0.5; - PIDvalues[Trk::eProbabilityNN] = 0.5; - PIDvalues[Trk::TRTTrackOccupancy] = 0.0; - PIDvalues[Trk::TRTdEdx] = 0.0; - PIDvalues[Trk::eProbabilityNumberOfTRTHitsUsedFordEdx] = 0.0; + std::vector<float> PIDvalues = defaultElectronProbability(); // Check for perigee: const Trk::TrackParameters* perigee = track.perigeeParameters(); diff --git a/Tracking/TrkTools/TrkToolInterfaces/TrkToolInterfaces/ITRT_ElectronPidTool.h b/Tracking/TrkTools/TrkToolInterfaces/TrkToolInterfaces/ITRT_ElectronPidTool.h index 12091989f1e6b45ea2763c516bbc70105d773a9c..75fcb362e09ad81a06898e0ff206f34f25417a34 100644 --- a/Tracking/TrkTools/TrkToolInterfaces/TrkToolInterfaces/ITRT_ElectronPidTool.h +++ b/Tracking/TrkTools/TrkToolInterfaces/TrkToolInterfaces/ITRT_ElectronPidTool.h @@ -10,6 +10,7 @@ #include "GaudiKernel/IAlgTool.h" #include "TrkEventPrimitives/ParticleHypothesis.h" +#include "TrkTrackSummary/TrackSummary.h" #include <vector> namespace Trk { @@ -44,7 +45,18 @@ namespace Trk { virtual double probHT( const double p, const Trk::ParticleHypothesis hypothesis, const int HitPart, const int Layer, const int Strawlayer) const = 0; virtual double probHTRun2( float pTrk, Trk::ParticleHypothesis hypothesis, int TrtPart, int GasType, int StrawLayer, float ZR, float rTrkWire, float Occupancy ) const = 0; - + static std::vector<float> defaultElectronProbability() { + std::vector<float> PIDvalues(Trk::numberOfeProbabilityTypes); + PIDvalues[Trk::eProbabilityComb] = 0.5; + PIDvalues[Trk::eProbabilityHT] = 0.5; + PIDvalues[Trk::eProbabilityToT] = 0.5; + PIDvalues[Trk::eProbabilityBrem] = 0.5; + PIDvalues[Trk::eProbabilityNN] = 0.5; + PIDvalues[Trk::TRTTrackOccupancy] = 0.0; + PIDvalues[Trk::TRTdEdx] = 0.0; + PIDvalues[Trk::eProbabilityNumberOfTRTHitsUsedFordEdx] = 0.0; + return PIDvalues; + } }; diff --git a/Tracking/TrkTools/TrkTrackSummaryTool/src/TrackSummaryTool.cxx b/Tracking/TrkTools/TrkTrackSummaryTool/src/TrackSummaryTool.cxx index ead091f996a2e913f01ac5f91a7efd2f63a7d9a8..b2cdf960cdebfa7417403cca32de58bd45c61976 100755 --- a/Tracking/TrkTools/TrkTrackSummaryTool/src/TrackSummaryTool.cxx +++ b/Tracking/TrkTools/TrkTrackSummaryTool/src/TrackSummaryTool.cxx @@ -4,6 +4,7 @@ #include "TrkTrackSummaryTool/TrackSummaryTool.h" #include "TrkToolInterfaces/ITrackHoleSearchTool.h" +#include "TrkToolInterfaces/ITRT_ElectronPidTool.h" #include "TrkEventPrimitives/FitQualityOnSurface.h" #include "TrkEventPrimitives/ParticleHypothesis.h" @@ -191,7 +192,7 @@ information.resize(std::min(information.size(), static_cast<size_t>(numberOfTrackSummaryTypes))); // Troels.Petersen@cern.ch: -std::vector<float> eProbability(Trk::numberOfeProbabilityTypes, 0.5); +std::vector<float> eProbability = ITRT_ElectronPidTool::defaultElectronProbability(); float dedx = -1; int nhitsuseddedx = -1; @@ -339,7 +340,7 @@ void Trk::TrackSummaryTool::updateSharedHitCount(const Track& track, const Trk:: void Trk::TrackSummaryTool::updateAdditionalInfo(const Track& track, TrackSummary &summary, bool initialise_to_zero) const { - std::vector<float> eProbability(Trk::numberOfeProbabilityTypes, 0.5); + std::vector<float> eProbability = ITRT_ElectronPidTool::defaultElectronProbability(); if (!m_eProbabilityTool.empty()) { eProbability = m_eProbabilityTool->electronProbability(track); int nHits = eProbability[Trk::eProbabilityNumberOfTRTHitsUsedFordEdx];