@@ -34,7 +34,7 @@ class TStopwatch;
3434namespace fair ::mq
3535{
3636struct RegionInfo ;
37- enum class State : int ;
37+ enum class State : int32_t ;
3838} // namespace fair::mq
3939namespace o2
4040{
@@ -58,9 +58,8 @@ class GeometryFlat;
5858
5959namespace its
6060{
61- class Tracker ;
62- class Vertexer ;
6361class TimeFrame ;
62+ class ITSTrackingInterface ;
6463} // namespace its
6564
6665namespace itsmft
@@ -102,12 +101,13 @@ class GPURecoWorkflowSpec : public o2::framework::Task
102101 using CompletionPolicyData = std::vector<framework::InputSpec>;
103102
104103 struct Config {
105- int itsTriggerType = 0 ;
106- int lumiScaleMode = 0 ;
104+ int32_t itsTriggerType = 0 ;
105+ int32_t lumiScaleMode = 0 ;
107106 bool enableMShape = false ;
108107 bool enableCTPLumi = false ;
109- int enableDoublePipeline = 0 ;
110- int tpcDeadMapSources = -1 ;
108+ int32_t enableDoublePipeline = 0 ;
109+ int32_t tpcDeadMapSources = -1 ;
110+ bool tpcUseMCTimeGain = false ; // use time gain calibration for MC (true) or from data (false)
111111 bool decompressTPC = false ;
112112 bool decompressTPCFromROOT = false ;
113113 bool caClusterer = false ;
@@ -125,21 +125,20 @@ class GPURecoWorkflowSpec : public o2::framework::Task
125125 bool runTPCTracking = false ;
126126 bool runTRDTracking = false ;
127127 bool readTRDtracklets = false ;
128- int lumiScaleType = 0 ; // 0=off, 1=CTP, 2=TPC scalers
128+ int32_t lumiScaleType = 0 ; // 0=off, 1=CTP, 2=TPC scalers
129129 bool outputErrorQA = false ;
130130 bool runITSTracking = false ;
131- int itsTrackingMode = 0 ; // 0=sync, 1=async, 2=cosmics
132131 bool itsOverrBeamEst = false ;
133132 bool tpcTriggerHandling = false ;
134133 };
135134
136- GPURecoWorkflowSpec (CompletionPolicyData* policyData, Config const & specconfig, std::vector<int > const & tpcsectors, unsigned long tpcSectorMask, std::shared_ptr<o2::base::GRPGeomRequest>& ggr, std::function<bool (o2::framework::DataProcessingHeader::StartTime)>** gPolicyOrder = nullptr );
135+ GPURecoWorkflowSpec (CompletionPolicyData* policyData, Config const & specconfig, std::vector<int32_t > const & tpcsectors, uint64_t tpcSectorMask, std::shared_ptr<o2::base::GRPGeomRequest>& ggr, std::function<bool (o2::framework::DataProcessingHeader::StartTime)>** gPolicyOrder = nullptr );
137136 ~GPURecoWorkflowSpec () override ;
138137 void init (o2::framework::InitContext& ic) final ;
139138 void run (o2::framework::ProcessingContext& pc) final ;
140139 void endOfStream (o2::framework::EndOfStreamContext& ec) final ;
141- void finaliseCCDB (o2::framework::ConcreteDataMatcher& matcher, void * obj) final ;
142140 void stop () final ;
141+ void finaliseCCDB (o2::framework::ConcreteDataMatcher& matcher, void * obj) final ;
143142 o2::framework::Inputs inputs ();
144143 o2::framework::Outputs outputs ();
145144 o2::framework::Options options ();
@@ -176,14 +175,15 @@ class GPURecoWorkflowSpec : public o2::framework::Task
176175 template <class D , class E , class F , class G , class H , class I , class J , class K >
177176 void processInputs (o2::framework::ProcessingContext&, D&, E&, F&, G&, bool &, H&, I&, J&, K&);
178177
179- int runMain (o2::framework::ProcessingContext* pc, GPUTrackingInOutPointers* ptrs, GPUInterfaceOutputs* outputRegions, int threadIndex = 0 , GPUInterfaceInputUpdate* inputUpdateCallback = nullptr );
180- int runITSTracking (o2::framework::ProcessingContext& pc);
178+ int32_t runMain (o2::framework::ProcessingContext* pc, GPUTrackingInOutPointers* ptrs, GPUInterfaceOutputs* outputRegions, int32_t threadIndex = 0 , GPUInterfaceInputUpdate* inputUpdateCallback = nullptr );
179+ int32_t runITSTracking (o2::framework::ProcessingContext& pc);
181180
182- int handlePipeline (o2::framework::ProcessingContext& pc, GPUTrackingInOutPointers& ptrs, gpurecoworkflow_internals::GPURecoWorkflowSpec_TPCZSBuffers& tpcZSmeta, o2::gpu::GPUTrackingInOutZS& tpcZS, std::unique_ptr<gpurecoworkflow_internals::GPURecoWorkflow_QueueObject>& context);
181+ int32_t handlePipeline (o2::framework::ProcessingContext& pc, GPUTrackingInOutPointers& ptrs, gpurecoworkflow_internals::GPURecoWorkflowSpec_TPCZSBuffers& tpcZSmeta, o2::gpu::GPUTrackingInOutZS& tpcZS, std::unique_ptr<gpurecoworkflow_internals::GPURecoWorkflow_QueueObject>& context);
183182 void RunReceiveThread ();
184- void RunWorkerThread (int id);
183+ void RunWorkerThread (int32_t id);
185184 void ExitPipeline ();
186185 void handlePipelineEndOfStream (o2::framework::EndOfStreamContext& ec);
186+ void handlePipelineStop ();
187187 void initPipeline (o2::framework::InitContext& ic);
188188 void enqueuePipelinedJob (GPUTrackingInOutPointers* ptrs, GPUInterfaceOutputs* outputRegions, gpurecoworkflow_internals::GPURecoWorkflow_QueueObject* context, bool inputFinal);
189189 void finalizeInputPipelinedJob (GPUTrackingInOutPointers* ptrs, GPUInterfaceOutputs* outputRegions, gpurecoworkflow_internals::GPURecoWorkflow_QueueObject* context);
@@ -205,24 +205,23 @@ class GPURecoWorkflowSpec : public o2::framework::Task
205205 std::unique_ptr<GPUO2InterfaceConfiguration> mConfig ;
206206 std::unique_ptr<GPUSettingsO2> mConfParam ;
207207 std::unique_ptr<TStopwatch> mTimer ;
208- std::vector<std::array<unsigned int , 4 >> mErrorQA ;
209- int mQATaskMask = 0 ;
208+ std::vector<std::array<uint32_t , 4 >> mErrorQA ;
209+ int32_t mQATaskMask = 0 ;
210210 std::unique_ptr<GPUO2InterfaceQA> mQA ;
211- std::vector<int > mClusterOutputIds ;
212- std::vector<int > mTPCSectors ;
213- std::unique_ptr<o2::its::Tracker> mITSTracker ;
214- std::unique_ptr<o2::its::Vertexer> mITSVertexer ;
211+ std::vector<int32_t > mClusterOutputIds ;
212+ std::vector<int32_t > mTPCSectors ;
213+ std::unique_ptr<o2::its::ITSTrackingInterface> mITSTrackingInterface ;
215214 std::unique_ptr<gpurecoworkflow_internals::GPURecoWorkflowSpec_PipelineInternals> mPipeline ;
216215 o2::its::TimeFrame* mITSTimeFrame = nullptr ;
217216 std::vector<fair::mq::RegionInfo> mRegionInfos ;
218217 const o2::itsmft::TopologyDictionary* mITSDict = nullptr ;
219218 const o2::dataformats::MeanVertexObject* mMeanVertex ;
220- unsigned long mTPCSectorMask = 0 ;
221- long mCreationForCalib = -1 ; // /< creation time for calib manipulation
222- int mVerbosity = 0 ;
223- unsigned int mNTFs = 0 ;
224- unsigned int mNDebugDumps = 0 ;
225- unsigned int mNextThreadIndex = 0 ;
219+ uint64_t mTPCSectorMask = 0 ;
220+ int64_t mCreationForCalib = -1 ; // /< creation time for calib manipulation
221+ int32_t mVerbosity = 0 ;
222+ uint32_t mNTFs = 0 ;
223+ uint32_t mNDebugDumps = 0 ;
224+ uint32_t mNextThreadIndex = 0 ;
226225 bool mUpdateGainMapCCDB = true ;
227226 std::unique_ptr<o2::gpu::GPUSettingsTF> mTFSettings ;
228227 Config mSpecConfig ;
@@ -234,8 +233,6 @@ class GPURecoWorkflowSpec : public o2::framework::Task
234233 bool mITSGeometryCreated = false ;
235234 bool mTRDGeometryCreated = false ;
236235 bool mPropagatorInstanceCreated = false ;
237- bool mITSRunVertexer = false ;
238- bool mITSCosmicsProcessing = false ;
239236};
240237
241238} // end namespace gpu
0 commit comments