From 5ea28f76a02687622f17248939f899f7bd40a089 Mon Sep 17 00:00:00 2001 From: Nicholas Styles <nicholas.styles@desy.de> Date: Fri, 30 Jan 2015 17:42:16 +0100 Subject: [PATCH] add TRT shared hits (xAODTracking-00-13-05) * Add TRT shared hits to summary * Tagged as xAODTracking-00-13-05 2015-01-21 Nick Styles * Add protection for getting number of track parameters to avoid crashes running on ESD * Tagged as xAODTracking-00-13-04 --- Event/xAOD/xAODTracking/Root/TrackParticleAuxContainer_v2.cxx | 2 +- Event/xAOD/xAODTracking/Root/TrackParticle_v1.cxx | 1 + Event/xAOD/xAODTracking/Root/TrackSummaryAccessors_v1.cxx | 1 + Event/xAOD/xAODTracking/xAODTracking/TrackingPrimitives.h | 3 ++- .../xAODTracking/versions/TrackParticleAuxContainer_v2.h | 1 + 5 files changed, 6 insertions(+), 2 deletions(-) diff --git a/Event/xAOD/xAODTracking/Root/TrackParticleAuxContainer_v2.cxx b/Event/xAOD/xAODTracking/Root/TrackParticleAuxContainer_v2.cxx index f7ffc6f9db1..e8600e48fc6 100644 --- a/Event/xAOD/xAODTracking/Root/TrackParticleAuxContainer_v2.cxx +++ b/Event/xAOD/xAODTracking/Root/TrackParticleAuxContainer_v2.cxx @@ -82,7 +82,7 @@ namespace xAOD { AUX_VARIABLE( numberOfTRTDeadStraws ); AUX_VARIABLE( numberOfTRTTubeHits ); AUX_VARIABLE( numberOfTRTXenonHits ); - + AUX_VARIABLE( numberOfTRTSharedHits ); AUX_VARIABLE( numberOfPrecisionLayers ); AUX_VARIABLE( numberOfPrecisionHoleLayers ); AUX_VARIABLE( numberOfPhiLayers ); diff --git a/Event/xAOD/xAODTracking/Root/TrackParticle_v1.cxx b/Event/xAOD/xAODTracking/Root/TrackParticle_v1.cxx index 9261d3e013d..bfa20fbe1d3 100644 --- a/Event/xAOD/xAODTracking/Root/TrackParticle_v1.cxx +++ b/Event/xAOD/xAODTracking/Root/TrackParticle_v1.cxx @@ -246,6 +246,7 @@ namespace xAOD { size_t TrackParticle_v1::numberOfParameters() const{ ///@todo - Can we do this in a better way? Not great to force retrieval of one specific parameter - any would do. static Accessor< std::vector<float> > acc( "parameterX" ); + if(! acc.isAvailable( *this )) return 0; return acc(*this).size(); } diff --git a/Event/xAOD/xAODTracking/Root/TrackSummaryAccessors_v1.cxx b/Event/xAOD/xAODTracking/Root/TrackSummaryAccessors_v1.cxx index 2bfb84d53bd..edffa020f37 100644 --- a/Event/xAOD/xAODTracking/Root/TrackSummaryAccessors_v1.cxx +++ b/Event/xAOD/xAODTracking/Root/TrackSummaryAccessors_v1.cxx @@ -95,6 +95,7 @@ namespace xAOD { DEFINE_ACCESSOR( uint8_t, numberOfTRTDeadStraws ); DEFINE_ACCESSOR( uint8_t, numberOfTRTTubeHits ); DEFINE_ACCESSOR( uint8_t, numberOfTRTXenonHits ); + DEFINE_ACCESSOR( uint8_t, numberOfTRTSharedHits ); DEFINE_ACCESSOR( uint8_t, numberOfPrecisionLayers ); DEFINE_ACCESSOR( uint8_t, numberOfPrecisionHoleLayers ); DEFINE_ACCESSOR( uint8_t, numberOfPhiLayers ); diff --git a/Event/xAOD/xAODTracking/xAODTracking/TrackingPrimitives.h b/Event/xAOD/xAODTracking/xAODTracking/TrackingPrimitives.h index 118e1d37491..ed2aba54f38 100644 --- a/Event/xAOD/xAODTracking/xAODTracking/TrackingPrimitives.h +++ b/Event/xAOD/xAODTracking/xAODTracking/TrackingPrimitives.h @@ -258,6 +258,7 @@ namespace xAOD { numberOfTRTDeadStraws =37, //!< number of dead TRT straws crossed [unit8_t]. numberOfTRTTubeHits =38, //!< number of TRT tube hits [unit8_t]. numberOfTRTXenonHits =46, //!< number of TRT hits on track in straws with xenon [unit8_t]. + numberOfTRTSharedHits =62, //!< number of TRT hits used by more than one track // --- Muon Spectrometer numberOfPrecisionLayers = 7, //!< layers with at least 3 hits [unit8_t]. @@ -277,7 +278,7 @@ namespace xAOD { eProbabilityBrem = 50, //!< Electron probability from Brem fitting (DNA) [float]. pixeldEdx = 51, //!< the dE/dx estimate, calculated using the pixel clusters [?] // -- numbers... - numberOfTrackSummaryTypes = 62 + numberOfTrackSummaryTypes = 63 }; /// Enumerates the different types of information stored in Summary. diff --git a/Event/xAOD/xAODTracking/xAODTracking/versions/TrackParticleAuxContainer_v2.h b/Event/xAOD/xAODTracking/xAODTracking/versions/TrackParticleAuxContainer_v2.h index e976cd4df6e..64e81a6ac3b 100644 --- a/Event/xAOD/xAODTracking/xAODTracking/versions/TrackParticleAuxContainer_v2.h +++ b/Event/xAOD/xAODTracking/xAODTracking/versions/TrackParticleAuxContainer_v2.h @@ -134,6 +134,7 @@ namespace xAOD { std::vector< uint8_t > numberOfTRTDeadStraws ; std::vector< uint8_t > numberOfTRTTubeHits ; std::vector< uint8_t > numberOfTRTXenonHits ; + std::vector< uint8_t > numberOfTRTSharedHits ; std::vector< uint8_t > numberOfPrecisionLayers; std::vector< uint8_t > numberOfPrecisionHoleLayers; -- GitLab