@@ -183,40 +183,45 @@ class TPCScalerSpec : public Task
183183
184184 void buildMap (ProcessingContext& pc)
185185 {
186- // reference map
187- auto * corrMap = mTPCCorrMapsLoader .getCorrMap ();
188-
189- // // new correction map
186+ const auto lumiMode = mTPCCorrMapsLoader .getLumiScaleMode ();
190187 o2::gpu::TPCFastTransform finalMap;
191- finalMap.cloneFromObject (*corrMap, nullptr );
192- finalMap.setApplyCorrectionOn ();
193-
194- const auto * corrMapRef = mTPCCorrMapsLoader .getCorrMapRef ();
195- const float lumiScale = mTPCCorrMapsLoader .getLumiScale ();
196188 std::vector<std::pair<const o2::gpu::TPCFastSpaceChargeCorrection*, float >> additionalCorrections;
197189
198- // if standard scaling is used: map(lumi) = (mean_map - ref_map) * lumiScale + ref_map
199- if (mTPCCorrMapsLoader .getLumiScaleMode () == LumiScaleMode::Linear) {
200- const std::vector<std::pair<const o2::gpu::TPCFastSpaceChargeCorrection*, float >> step0{{&(corrMapRef->getCorrection ()), -1 .f }};
201- // finalMap = (mean_map - finalMap)
202- TPCFastSpaceChargeCorrectionHelper::instance ()->mergeCorrections (finalMap.getCorrection (), 1 , step0, true );
203-
204- // finalMap = finalMap * lumiScale + ref_map
205- const std::vector<std::pair<const o2::gpu::TPCFastSpaceChargeCorrection*, float >> step1{{&(corrMapRef->getCorrection ()), 1 .f }};
206- TPCFastSpaceChargeCorrectionHelper::instance ()->mergeCorrections (finalMap.getCorrection (), lumiScale, step1, true );
207-
208- } else if (mTPCCorrMapsLoader .getLumiScaleMode () == LumiScaleMode::DerivativeMap || mTPCCorrMapsLoader .getLumiScaleMode () == LumiScaleMode::DerivativeMapMC) {
209- additionalCorrections.emplace_back (&(corrMapRef->getCorrection ()), lumiScale);
210- }
190+ if (lumiMode == LumiScaleMode::NoCorrection) {
191+ std::unique_ptr<o2::gpu::TPCFastTransform> dummy (TPCFastTransformHelperO2::instance ()->create (0 ));
192+ finalMap.cloneFromObject (*dummy, nullptr );
193+ finalMap.setApplyCorrectionOff ();
194+ } else {
195+ auto * corrMap = mTPCCorrMapsLoader .getCorrMap ();
196+ const auto * corrMapRef = mTPCCorrMapsLoader .getCorrMapRef ();
197+ finalMap.cloneFromObject (lumiMode == LumiScaleMode::StaticMapOnly && corrMapRef ? *corrMapRef : *corrMap, nullptr );
198+ finalMap.setApplyCorrectionOn ();
199+
200+ const float lumiScale = mTPCCorrMapsLoader .getLumiScale ();
201+
202+ // if standard scaling is used: map(lumi) = (mean_map - ref_map) * lumiScale + ref_map
203+ if (lumiMode == LumiScaleMode::Linear) {
204+ const std::vector<std::pair<const o2::gpu::TPCFastSpaceChargeCorrection*, float >> step0{{&(corrMapRef->getCorrection ()), -1 .f }};
205+ // finalMap = (mean_map - finalMap)
206+ TPCFastSpaceChargeCorrectionHelper::instance ()->mergeCorrections (finalMap.getCorrection (), 1 , step0, true );
207+
208+ // finalMap = finalMap * lumiScale + ref_map
209+ const std::vector<std::pair<const o2::gpu::TPCFastSpaceChargeCorrection*, float >> step1{{&(corrMapRef->getCorrection ()), 1 .f }};
210+ TPCFastSpaceChargeCorrectionHelper::instance ()->mergeCorrections (finalMap.getCorrection (), lumiScale, step1, true );
211+
212+ } else if (lumiMode == LumiScaleMode::DerivativeMap || lumiMode == LumiScaleMode::DerivativeMapMC) {
213+ additionalCorrections.emplace_back (&(corrMapRef->getCorrection ()), lumiScale);
214+ }
211215
212- // if mshape map valid
213- if (!mTPCCorrMapsLoader .isCorrMapMShapeDummy ()) {
214- LOGP (info, " Adding M-shape correction to the final map with scaling factor {}" , mMShapeScalingFac );
215- additionalCorrections.emplace_back (&(mTPCCorrMapsLoader .getCorrMapMShape ()->getCorrection ()), 1 .f );
216- }
216+ // if mshape map valid
217+ if (!mTPCCorrMapsLoader .isCorrMapMShapeDummy ()) {
218+ LOGP (info, " Adding M-shape correction to the final map with scaling factor {}" , mMShapeScalingFac );
219+ additionalCorrections.emplace_back (&(mTPCCorrMapsLoader .getCorrMapMShape ()->getCorrection ()), 1 .f );
220+ }
217221
218- if (!additionalCorrections.empty ()) {
219- TPCFastSpaceChargeCorrectionHelper::instance ()->mergeCorrections (finalMap.getCorrection (), 1 , additionalCorrections, true );
222+ if (!additionalCorrections.empty ()) {
223+ TPCFastSpaceChargeCorrectionHelper::instance ()->mergeCorrections (finalMap.getCorrection (), 1 , additionalCorrections, true );
224+ }
220225 }
221226
222227 Output corrMapOutput{header::gDataOriginTPC , " TPCCORRMAP" , 0 };
0 commit comments