32 declareInterface<ITrackSlimmingTool>(
this);
38 "If this is set to true, any CaloDeposit with its adjacent MEOT's will be "
39 "kept on the slimmed track (combined muon property)");
42 "If this is set to true, Outlier measurements will be kept "
43 "on the slimmed track");
46 "If this is set to true, the first and last parameters will "
47 "be kept on the slimmed track");
55 StatusCode
sc = AlgTool::initialize();
66 return StatusCode::SUCCESS;
72 return StatusCode::SUCCESS;
92 track.trackStateOnSurfaces();
93 if (oldTrackStates ==
nullptr) {
111 bool keepParameter =
false;
114 oldTrackStates->
begin();
115 for (; itTSoS != oldTrackStates->
end(); ++itTSoS) {
118 std::bitset<Trk::TrackStateOnSurface::NumberOfPersistencyHints> hints{};
121 parameters =
nullptr;
128 if (itTSoS != oldTrackStates->
begin()) {
138 (**itTSoS).materialEffectsOnTrack());
145 if (itTSoS != oldTrackStates->
end() &&
153 if ((*itTSoS)->measurementOnTrack() ==
nullptr &&
156 (*itTSoS)->setHints(hints.to_ulong());
167 parameters = (*itTSoS)->trackParameters();
169 if ((*itTSoS)->measurementOnTrack() !=
nullptr &&
172 rot = (*itTSoS)->measurementOnTrack();
174 if (rot !=
nullptr || parameters !=
nullptr) {
183 (*itTSoS)->setHints(hints.to_ulong());
190 bool& isMSmeas)
const
210 isIDmeas = !isPseudo &&
m_detID->is_indet(
id);
225 rItTSoS != oldTrackStates->
rend();
228 (*rItTSoS)->trackParameters() !=
nullptr &&
229 (*rItTSoS)->measurementOnTrack() !=
nullptr &&
230 !(*rItTSoS)->measurementOnTrack()->type(
233 if (
m_detID->is_indet((*rItTSoS)
235 ->associatedSurface()
236 .associatedDetectorElementIdentifier())) {
237 lastValidIDTSOS = (*rItTSoS);
240 if (
m_detID->is_muon((*rItTSoS)
242 ->associatedSurface()
243 .associatedDetectorElementIdentifier())) {
244 lastValidMSTSOS = (*rItTSoS);
266 bool isIDmeas =
false;
267 bool isMSmeas =
false;
270 if (isIDmeas && !firstValidIDTSOS &&
272 firstValidIDTSOS = TSoS;
277 if (isMSmeas && !firstValidMSTSOS) {
278 firstValidMSTSOS = TSoS;
283 if (lastValidIDTSOS == TSoS || lastValidMSTSOS == TSoS) {
#define ATH_MSG_WARNING(x)
This class provides an interface to generate or decode an identifier for the upper levels of the dete...
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
const ServiceHandle< StoreGateSvc > & detStore() const
DataModel_detail::const_iterator< DataVector > const_iterator
const_reverse_iterator rend() const noexcept
Return a const_reverse_iterator pointing at the beginning of the collection.
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
const_reverse_iterator rbegin() const noexcept
Return a const_reverse_iterator pointing past the end of the collection.
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
std::reverse_iterator< const_iterator > const_reverse_iterator
Base class for all CompetingRIOsOnTack implementations, extends the common MeasurementBase.
unsigned int indexOfMaxAssignProb() const
Index of the ROT with the highest assignment probability.
virtual const RIO_OnTrack & rioOnTrack(unsigned int) const =0
returns the RIO_OnTrack (also known as ROT) objects depending on the integer.
represents the full description of deflection and e-loss of a track in material.
const EnergyLoss * energyLoss() const
returns the energy loss object.
This class is the pure abstract base class for all fittable tracking measurements.
virtual const Surface & associatedSurface() const =0
Interface method to get the associated Surface.
virtual bool type(MeasurementBaseType::Type type) const =0
Interface method checking the type.
Identifier identify() const
return the identifier -extends MeasurementBase
Identifier associatedDetectorElementIdentifier() const
return Identifier of the associated Detector Element
@ SlimmedTrack
A slimmed track.
represents the track state (measurement, material, fit parameters and quality) at a surface.
const MeasurementBase * measurementOnTrack() const
returns MeasurementBase const overload
const TrackParameters * trackParameters() const
return ptr to trackparameters const overload
bool type(const TrackStateOnSurfaceType type) const
Use this method to find out if the TSoS is of a certain type: i.e.
@ PartialPersistification
@ PersistifySlimCaloDeposit
Mark track parameters for persisitification.
@ PersistifyMeasurement
Mark the measuremenet for persistification.
@ PersistifyTrackParameters
Mark track parameters for persisitification.
@ Measurement
This is a measurement, and will at least contain a Trk::MeasurementBase.
@ Perigee
This represents a perigee, and so will contain a Perigee object only.
@ Outlier
This TSoS contains an outlier, that is, it contains a MeasurementBase/RIO_OnTrack which was not used ...
@ Scatterer
This represents a scattering point on the track, and so will contain TrackParameters and MaterialEffe...
@ CaloDeposit
This TSOS contains a CaloEnergy object.
@ PseudoMeasurementOnTrack
DataVector< const Trk::TrackStateOnSurface > TrackStates
ParametersBase< TrackParametersDim, Charged > TrackParameters