|
ATLAS Offline Software
|
Go to the documentation of this file.
31 const std::string &
name,
34 , m_trackFitterTool(
"Trk::GlobalChi2Fitter/InDetTrackFitter")
35 , m_SLTrackFitterTool(
"")
36 , m_trackSelectorTool(
"")
37 , m_runOutlierRemoval(false)
39 , m_useSingleFitter(false)
41 , m_fixMomentum(false)
43 declareInterface<IAlignTrackPreProcessor>(
this);
78 return StatusCode::FAILURE;
87 return StatusCode::FAILURE;
94 return StatusCode::FAILURE;
99 return StatusCode::FAILURE;
107 return StatusCode::FAILURE;
112 return StatusCode::FAILURE;
117 return StatusCode::SUCCESS;
123 return StatusCode::SUCCESS;
129 ATH_MSG_DEBUG(
"AlignTrackPreProcessor::processTrackCollection()");
131 if (!tracks || tracks->
empty())
143 for ( ;
it != it_end ; ++
it, ++itrk) {
145 ATH_MSG_DEBUG(
" ** processTrackCollection ** Processing track "<<itrk);
153 ATH_MSG_VERBOSE(
" ** processTrackCollection ** Original track did not pass the selection."<<itrk);
163 ATH_MSG_DEBUG(
" ** processTrackCollection ** entering the silicon hit selection ");
167 ATH_MSG_DEBUG(
" ** processTrackCollection ** Track refit yielded no track. Skipping the track.");
173 ATH_MSG_DEBUG(
" ** processTrackCollection ** Track did not pass the selection.");
185 ATH_MSG_DEBUG(
"Track refit yielded no track. Skipping the track.");
213 at->AlignTrack::setRefitQovP(
false);
223 at->AlignTrack::setRefitQovP(
false);
230 if (newTracks->
empty()) {
245 std::vector<const Trk::MeasurementBase*> selectedMeasurementSet;
253 selectedMeasurementSet.push_back( tsos->measurementOnTrack() );
256 ATH_MSG_DEBUG(
" -- performSiliconHitSelection -- hit # "<< nhits <<
" status = BAD HIT ");
259 ATH_MSG_DEBUG(
" -- performSiliconHitSelection -- after removing bad Silicon hits, the selected measurement collection has "<< selectedMeasurementSet.size()<<
" elements");
261 newTrack = (
fitter->
fit(Gaudi::Hive::currentContext(),
262 selectedMeasurementSet,
const ShapeFitter * fitter
bool m_selectTracks
do the track selection
virtual ~AlignTrackPreProcessor()
Const iterator class for DataVector/DataList.
Amg::MatrixX * m_derivMatrix
access to the matrix of derivatives used during the latest global-chi2 track fit.
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
const Trk::TrackStates * trackStateOnSurfaces() const
return a pointer to a const DataVector of const TrackStateOnSurfaces.
bool m_useSingleFitter
particle hypothesis in track refit
bool msgLvl(const MSG::Level lvl) const
std::ostream * m_logStream
logfile output stream
#define ATH_MSG_VERBOSE(x)
bool isSLTrack() const
method to determine whether a straight line track or not
bool fit(const LArSamples::AbsShape &data, const AbsShape &reference, double &k, double &deltaT, double &chi2, const ScaledErrorData *sed=0) const
void setFullCovarianceMatrix(const Amg::SymMatrixX *matrix)
Amg::MatrixX * m_fullCovarianceMatrix
access to the global fitter's full covariance matrix.
bool m_runOutlierRemoval
flag to store derivative and covariance matrices after refit
int m_particleHypothesis
run outlier removal in track refit
Track * performSiliconHitSelection(const Track *, const ToolHandle< Trk::IGlobalTrackFitter > &)
select silicon hits by quality.
AlignTrackPreProcessor(const std::string &type, const std::string &name, const IInterface *parent)
::StatusCode StatusCode
StatusCode definition for legacy code.
bool m_storeFitMatricesAfterRefit
flag to refit tracks
ToolHandle< InDet::IInDetTrackSelectionTool > m_trackSelectorTool
DataVector< Track > * processTrackCollection(const DataVector< Track > *trks)
creates AlignTrack containing all TSOS on track
ToolHandle< IGlobalTrackFitter > m_trackFitterTool
const Perigee * perigeeParameters() const
return Perigee.
Ensure that the ATLAS eigen extensions are properly loaded.
represents the track state (measurement, material, fit parameters and quality) at a surface.
value_type push_back(value_type pElem)
Add an element to the end of the collection.
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
bool m_selectHits
perform the hit InnerDetector selection
ToolHandle< IInDetAlignHitQualSelTool > m_hitQualityTool
ToolHandle< IGlobalTrackFitter > m_SLTrackFitterTool
static void dumpLessTrackInfo(const Track &track, MsgStream &msg)
dump less track information
void setDerivativeMatrix(const Amg::MatrixX *matrix)
size_type size() const noexcept
Returns the number of elements in the collection.
bool empty() const noexcept
Returns true if the collection is empty.
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
bool m_fixMomentum
Fix the momentum of the track so it is not refitted.