Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ inline auto getRecoInputContainer(o2::framework::ProcessingContext& pc, o2::gpu:
retVal->fillGPUIOPtr(ptrs);
}

return std::move(retVal);
return retVal;
}

inline void RecoInputContainer::fillGPUIOPtr(o2::gpu::GPUTrackingInOutPointers* ptrs)
Expand Down
4 changes: 2 additions & 2 deletions DataFormats/Detectors/TRD/include/DataFormatsTRD/TrackTRD.h
Original file line number Diff line number Diff line change
Expand Up @@ -35,12 +35,12 @@ namespace gpu
{
static_assert(sizeof(o2::dataformats::GlobalTrackID) == sizeof(unsigned int));
template <>
GPUdi() o2::dataformats::GlobalTrackID GPUTRDTrack_t<trackInterface<GPUTRDO2BaseTrack>>::getRefGlobalTrackId() const
GPUdi() o2::dataformats::GlobalTrackID GPUTRDTrack_t<trackInterface<o2::track::TrackParCov>>::getRefGlobalTrackId() const
{
return o2::dataformats::GlobalTrackID{mRefGlobalTrackId};
}
template <>
GPUdi() void GPUTRDTrack_t<trackInterface<GPUTRDO2BaseTrack>>::setRefGlobalTrackId(o2::dataformats::GlobalTrackID id)
GPUdi() void GPUTRDTrack_t<trackInterface<o2::track::TrackParCov>>::setRefGlobalTrackId(o2::dataformats::GlobalTrackID id)
{
setRefGlobalTrackIdRaw(id.getRaw());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ class KrClusterFinder
LandauChi2Functor mLandauChi2Functor; ///< stores the binned ADC data and provides a chi2 estimate
std::shared_ptr<ROOT::Fit::FitResult> mFitResult{new ROOT::Fit::FitResult()}; ///< pointer to the results of the Landau fit
ROOT::Fit::Fitter mFitter{mFitResult}; ///< an instance of the ROOT fitter
std::array<double, 3> mInitialFitParams{}; ///< initial fit parameters for the Landau fit
std::array<double, 3> mInitialFitParams{1., 1., 1.}; ///< initial fit parameters for the Landau fit
std::unique_ptr<TF1> mFuncLandauFit; ///< helper function to approximate the binned ADC data with a Landau distribution
// settings
const int mBaselineAdc{10}; ///< ADC baseline for each pad (can maybe be moved into Constants.h)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,13 @@
#include "SimulationDataFormat/ConstMCTruthContainer.h"
#include <memory>

#include "GPUO2InterfaceRefit.h"
#include "TPCFastTransform.h"
#include "TRDBase/RecoParam.h"
#include "DataFormatsTPC/TrackTPC.h"
#include "DataFormatsITS/TrackITS.h"
#include "DataFormatsITSMFT/TopologyDictionary.h"

namespace o2
{
namespace trd
Expand All @@ -43,6 +50,9 @@ class TRDGlobalTracking : public o2::framework::Task
void fillMCTruthInfo(const TrackTRD& trk, o2::MCCompLabel lblSeed, std::vector<o2::MCCompLabel>& lblContainerTrd, std::vector<o2::MCCompLabel>& lblContainerMatch, const o2::dataformats::MCTruthContainer<o2::MCCompLabel>* trkltLabels) const;
void fillTrackTriggerRecord(const std::vector<TrackTRD>& tracks, std::vector<TrackTriggerRecord>& trigRec, const gsl::span<const o2::trd::TriggerRecord>& trackletTrigRec) const;
void run(o2::framework::ProcessingContext& pc) final;
bool refitITSTPCTRDTrack(TrackTRD& trk, float timeTRD, o2::globaltracking::RecoContainer* recoCont);
bool refitTPCTRDTrack(TrackTRD& trk, float timeTRD, o2::globaltracking::RecoContainer* recoCont);
bool refitTRDTrack(TrackTRD& trk, float& chi2, bool inwards);
void endOfStream(o2::framework::EndOfStreamContext& ec) final;

private:
Expand All @@ -54,10 +64,23 @@ class TRDGlobalTracking : public o2::framework::Task
bool mTrigRecFilter{false}; ///< if true, TRD trigger records without matching ITS IR are filtered out
bool mStrict{false}; ///< preliminary matching in strict mode
float mTPCTBinMUS{.2f}; ///< width of a TPC time bin in us
float mTPCTBinMUSInv{1.f / mTPCTBinMUS}; ///< inverse width of a TPC time bin in 1/us
float mTPCVdrift{2.58f}; ///< TPC drift velocity (for shifting TPC tracks along Z)
std::shared_ptr<o2::globaltracking::DataRequest> mDataRequest; ///< seeding input (TPC-only, ITS-TPC or both)
o2::dataformats::GlobalTrackID::mask_t mTrkMask; ///< seeding track sources (TPC, ITS-TPC)
TStopwatch mTimer;
// temporary members -> should go into processor (GPUTRDTracker or additional refit processor?)
std::unique_ptr<o2::gpu::GPUO2InterfaceRefit> mTPCRefitter; ///< TPC refitter used for TPC tracks refit during the reconstruction
const o2::tpc::ClusterNativeAccess* mTPCClusterIdxStruct = nullptr; ///< struct holding the TPC cluster indices
std::unique_ptr<o2::gpu::TPCFastTransform> mTPCTransform; ///< TPC cluster transformation
RecoParam mRecoParam; ///< parameters required for TRD reconstruction
gsl::span<const Tracklet64> mTrackletsRaw; ///< array of raw tracklets needed for TRD refit
gsl::span<const CalibratedTracklet> mTrackletsCalib; ///< array of calibrated tracklets needed for TRD refit
gsl::span<const o2::tpc::TrackTPC> mTPCTracksArray; ///< input TPC tracks used for refit
gsl::span<const o2::its::TrackITS> mITSTracksArray; ///< input ITS tracks used for refit
gsl::span<const int> mITSTrackClusIdx; ///< input ITS track cluster indices span
std::vector<o2::BaseCluster<float>> mITSClustersArray; ///< ITS clusters created in run() method from compact clusters
o2::itsmft::TopologyDictionary mITSDict; ///< cluster patterns dictionary
};

/// create a processor spec
Expand Down
Loading