@@ -56,7 +56,7 @@ namespace o2d = o2::dataformats;
5656class SecondaryVertexingSpec : public Task
5757{
5858 public:
59- SecondaryVertexingSpec (std::shared_ptr<DataRequest> dr, std::shared_ptr<o2::base::GRPGeomRequest> gr, bool enabCasc, bool enable3body, bool enableStrangenessTracking, bool useMC) : mDataRequest (dr), mGGCCDBRequest (gr), mEnableCascades (enabCasc), mEnable3BodyVertices (enable3body), mEnableStrangenessTracking (enableStrangenessTracking), mUseMC (useMC) {}
59+ SecondaryVertexingSpec (std::shared_ptr<DataRequest> dr, std::shared_ptr<o2::base::GRPGeomRequest> gr, GTrackID:: mask_t src, bool enabCasc, bool enable3body, bool enableStrangenessTracking, bool useMC) : mDataRequest (dr), mGGCCDBRequest (gr), mSrc (src ), mEnableCascades (enabCasc), mEnable3BodyVertices (enable3body), mEnableStrangenessTracking (enableStrangenessTracking), mUseMC (useMC) {}
6060 ~SecondaryVertexingSpec () override = default ;
6161 void init (InitContext& ic) final ;
6262 void run (ProcessingContext& pc) final ;
@@ -69,6 +69,7 @@ class SecondaryVertexingSpec : public Task
6969 std::shared_ptr<o2::base::GRPGeomRequest> mGGCCDBRequest ;
7070 o2::tpc::VDriftHelper mTPCVDriftHelper {};
7171 o2::tpc::CorrectionMapsLoader mTPCCorrMapsLoader {};
72+ GTrackID::mask_t mSrc {};
7273 bool mEnableCascades = false ;
7374 bool mEnable3BodyVertices = false ;
7475 bool mEnableStrangenessTracking = false ;
@@ -96,7 +97,9 @@ void SecondaryVertexingSpec::init(InitContext& ic)
9697 mStrTracker .setMCTruthOn (mUseMC );
9798 mVertexer .setStrangenessTracker (&mStrTracker );
9899 }
99- mTPCCorrMapsLoader .init (ic);
100+ if (mSrc [GTrackID::TPC]) {
101+ mTPCCorrMapsLoader .init (ic);
102+ }
100103}
101104
102105void SecondaryVertexingSpec::run (ProcessingContext& pc)
@@ -151,8 +154,10 @@ void SecondaryVertexingSpec::finaliseCCDB(ConcreteDataMatcher& matcher, void* ob
151154void SecondaryVertexingSpec::updateTimeDependentParams (ProcessingContext& pc)
152155{
153156 o2::base::GRPGeomHelper::instance ().checkUpdates (pc);
154- mTPCVDriftHelper .extractCCDBInputs (pc);
155- mTPCCorrMapsLoader .extractCCDBInputs (pc);
157+ if (mSrc [GTrackID::TPC]) {
158+ mTPCVDriftHelper .extractCCDBInputs (pc);
159+ mTPCCorrMapsLoader .extractCCDBInputs (pc);
160+ }
156161 static bool initOnceDone = false ;
157162 if (!initOnceDone) { // this params need to be queried only once
158163 initOnceDone = true ;
@@ -166,23 +171,25 @@ void SecondaryVertexingSpec::updateTimeDependentParams(ProcessingContext& pc)
166171 }
167172 }
168173 // we may have other params which need to be queried regularly
169- bool updateMaps = false ;
170- if (mTPCCorrMapsLoader .isUpdated ()) {
171- mVertexer .setTPCCorrMaps (&mTPCCorrMapsLoader );
172- mTPCCorrMapsLoader .acknowledgeUpdate ();
173- updateMaps = true ;
174- }
175- if (mTPCVDriftHelper .isUpdated ()) {
176- LOGP (info, " Updating TPC fast transform map with new VDrift factor of {} wrt reference {} and DriftTimeOffset correction {} wrt {} from source {}" ,
177- mTPCVDriftHelper .getVDriftObject ().corrFact , mTPCVDriftHelper .getVDriftObject ().refVDrift ,
178- mTPCVDriftHelper .getVDriftObject ().timeOffsetCorr , mTPCVDriftHelper .getVDriftObject ().refTimeOffset ,
179- mTPCVDriftHelper .getSourceName ());
180- mVertexer .setTPCVDrift (mTPCVDriftHelper .getVDriftObject ());
181- mTPCVDriftHelper .acknowledgeUpdate ();
182- updateMaps = true ;
183- }
184- if (updateMaps) {
185- mTPCCorrMapsLoader .updateVDrift (mTPCVDriftHelper .getVDriftObject ().corrFact , mTPCVDriftHelper .getVDriftObject ().refVDrift , mTPCVDriftHelper .getVDriftObject ().getTimeOffset ());
174+ if (mSrc [GTrackID::TPC]) {
175+ bool updateMaps = false ;
176+ if (mTPCCorrMapsLoader .isUpdated ()) {
177+ mVertexer .setTPCCorrMaps (&mTPCCorrMapsLoader );
178+ mTPCCorrMapsLoader .acknowledgeUpdate ();
179+ updateMaps = true ;
180+ }
181+ if (mTPCVDriftHelper .isUpdated ()) {
182+ LOGP (info, " Updating TPC fast transform map with new VDrift factor of {} wrt reference {} and DriftTimeOffset correction {} wrt {} from source {}" ,
183+ mTPCVDriftHelper .getVDriftObject ().corrFact , mTPCVDriftHelper .getVDriftObject ().refVDrift ,
184+ mTPCVDriftHelper .getVDriftObject ().timeOffsetCorr , mTPCVDriftHelper .getVDriftObject ().refTimeOffset ,
185+ mTPCVDriftHelper .getSourceName ());
186+ mVertexer .setTPCVDrift (mTPCVDriftHelper .getVDriftObject ());
187+ mTPCVDriftHelper .acknowledgeUpdate ();
188+ updateMaps = true ;
189+ }
190+ if (updateMaps) {
191+ mTPCCorrMapsLoader .updateVDrift (mTPCVDriftHelper .getVDriftObject ().corrFact , mTPCVDriftHelper .getVDriftObject ().refVDrift , mTPCVDriftHelper .getVDriftObject ().getTimeOffset ());
192+ }
186193 }
187194 if (mEnableStrangenessTracking ) {
188195 if (o2::base::Propagator::Instance ()->getNominalBz () != mStrTracker .getBz ()) {
@@ -203,7 +210,12 @@ DataProcessorSpec getSecondaryVertexingSpec(GTrackID::mask_t src, bool enableCas
203210 auto dataRequest = std::make_shared<DataRequest>();
204211 GTrackID::mask_t srcClus{};
205212 if (enableStrangenesTracking) {
206- src |= (srcClus = GTrackID::getSourceMask (GTrackID::Source::ITS));
213+ src |= (srcClus = GTrackID::getSourceMask (GTrackID::ITS));
214+ }
215+ if (src[GTrackID::TPC]) {
216+ srcClus |= GTrackID::getSourceMask (GTrackID::TPC);
217+ }
218+ if (srcClus.any ()) {
207219 dataRequest->requestClusters (srcClus, useMC);
208220 }
209221 dataRequest->requestTracks (src, useMC);
@@ -217,9 +229,10 @@ DataProcessorSpec getSecondaryVertexingSpec(GTrackID::mask_t src, bool enableCas
217229 enableStrangenesTracking ? o2::base::GRPGeomRequest::Aligned : o2::base::GRPGeomRequest::None, // geometry
218230 dataRequest->inputs ,
219231 true );
220- o2::tpc::VDriftHelper::requestCCDBInputs (dataRequest->inputs );
221- o2::tpc::CorrectionMapsLoader::requestCCDBInputs (dataRequest->inputs , opts, lumiType);
222-
232+ if (src[GTrackID::TPC]) {
233+ o2::tpc::VDriftHelper::requestCCDBInputs (dataRequest->inputs );
234+ o2::tpc::CorrectionMapsLoader::requestCCDBInputs (dataRequest->inputs , opts, lumiType);
235+ }
223236 outputs.emplace_back (" GLO" , " V0S_IDX" , 0 , Lifetime::Timeframe); // found V0s indices
224237 outputs.emplace_back (" GLO" , " V0S" , 0 , Lifetime::Timeframe); // found V0s
225238 outputs.emplace_back (" GLO" , " PVTX_V0REFS" , 0 , Lifetime::Timeframe); // prim.vertex -> V0s refs
@@ -245,7 +258,7 @@ DataProcessorSpec getSecondaryVertexingSpec(GTrackID::mask_t src, bool enableCas
245258 " secondary-vertexing" ,
246259 dataRequest->inputs ,
247260 outputs,
248- AlgorithmSpec{adaptFromTask<SecondaryVertexingSpec>(dataRequest, ggRequest, enableCasc, enable3body, enableStrangenesTracking, useMC)},
261+ AlgorithmSpec{adaptFromTask<SecondaryVertexingSpec>(dataRequest, ggRequest, src, enableCasc, enable3body, enableStrangenesTracking, useMC)},
249262 opts};
250263}
251264
0 commit comments