|
ATLAS Offline Software
|
Go to the documentation of this file.
27 , m_keepCaloDeposit(true)
28 , m_keepOutliers(false)
29 , m_keepParameters(false)
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)");
40 declareProperty(
"KeepOutliers",
42 "If this is set to true, Outlier measurements will be kept "
43 "on the slimmed track");
44 declareProperty(
"KeepParameters",
46 "If this is set to true, the first and last parameters will "
47 "be kept on the slimmed track");
66 return StatusCode::SUCCESS;
72 return StatusCode::SUCCESS;
92 track.trackStateOnSurfaces();
93 if (oldTrackStates ==
nullptr) {
102 if (m_keepParameters) {
104 findLastValidTSoS(oldTrackStates, lastValidIDTSOS, lastValidMSTSOS);
111 bool keepParameter =
false;
114 oldTrackStates->
begin();
115 for (; itTSoS != oldTrackStates->
end(); ++itTSoS) {
118 std::bitset<Trk::TrackStateOnSurface::NumberOfPersistencyHints> hints{};
125 if (m_keepCaloDeposit &&
128 if (itTSoS != oldTrackStates->
begin()) {
138 (**itTSoS).materialEffectsOnTrack());
145 if (itTSoS != oldTrackStates->
end() &&
153 if ((*itTSoS)->measurementOnTrack() ==
nullptr &&
156 (*itTSoS)->setHints(hints.to_ulong());
160 keepParameter = keepParameters((*itTSoS),
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);
212 m_detID->is_muon(
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);
265 if (m_keepParameters) {
266 bool isIDmeas =
false;
267 bool isMSmeas =
false;
268 checkForValidMeas(TSoS, isIDmeas, isMSmeas);
270 if (isIDmeas && !firstValidIDTSOS &&
272 firstValidIDTSOS = TSoS;
277 if (isMSmeas && !firstValidMSTSOS) {
278 firstValidMSTSOS = TSoS;
283 if (lastValidIDTSOS == TSoS || lastValidMSTSOS == TSoS) {
const TrackParameters * trackParameters() const
return ptr to trackparameters const overload
@ CaloDeposit
This TSOS contains a CaloEnergy object.
const Identifier & identify(const UncalibratedMeasurement *meas)
Returns the associated identifier from the muon measurement.
@ Perigee
This represents a perigee, and so will contain a Perigee object only.
Const iterator class for DataVector/DataList.
const_reverse_iterator rend() const noexcept
Return a const_reverse_iterator pointing at the beginning of the collection.
@ PersistifyTrackParameters
Mark track parameters for persisitification.
Identifier associatedDetectorElementIdentifier() const
return Identifier of the associated Detector Element
const MeasurementBase * measurementOnTrack() const
returns MeasurementBase const overload
@ PersistifyMeasurement
Mark the measuremenet for persistification.
@ Outlier
This TSoS contains an outlier, that is, it contains a MeasurementBase/RIO_OnTrack which was not used ...
@ SlimmedTrack
A slimmed track.
represents the full description of deflection and e-loss of a track in material.
bool type(const TrackStateOnSurfaceType type) const
Use this method to find out if the TSoS is of a certain type: i.e.
This class provides an interface to generate or decode an identifier for the upper levels of the dete...
virtual const RIO_OnTrack & rioOnTrack(unsigned int) const =0
returns the RIO_OnTrack (also known as ROT) objects depending on the integer.
::StatusCode StatusCode
StatusCode definition for legacy code.
Base class for all CompetingRIOsOnTack implementations, extends the common MeasurementBase.
virtual bool type(MeasurementBaseType::Type type) const =0
Interface method checking the type.
@ PersistifySlimCaloDeposit
Mark track parameters for persisitification.
const_reverse_iterator rbegin() const noexcept
Return a const_reverse_iterator pointing past the end of the collection.
represents the track state (measurement, material, fit parameters and quality) at a surface.
virtual const Surface & associatedSurface() const =0
Interface method to get the associated Surface.
std::reverse_iterator< const_iterator > const_reverse_iterator
Standard const_reverse_iterator.
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
const EnergyLoss * energyLoss() const
returns the energy loss object.
#define ATH_MSG_WARNING(x)
@ Scatterer
This represents a scattering point on the track, and so will contain TrackParameters and MaterialEffe...
@ PseudoMeasurementOnTrack
unsigned int indexOfMaxAssignProb() const
Index of the ROT with the highest assignment probability.
@ PartialPersistification
@ Measurement
This is a measurement, and will at least contain a Trk::MeasurementBase.
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.