3232#include " TPCWorkflow/ProcessingHelpers.h"
3333#include " DetectorsBase/GRPGeomHelper.h"
3434#include " TPCBase/CDBInterface.h"
35- #include " DetectorsBase/Propagator.h"
3635
3736using namespace o2 ::framework;
3837
@@ -42,7 +41,7 @@ namespace o2::tpc
4241class CalibratordEdxDevice : public Task
4342{
4443 public:
45- CalibratordEdxDevice (std::shared_ptr<o2::base::GRPGeomRequest> req) : mCCDBRequest (req) {}
44+ CalibratordEdxDevice (std::shared_ptr<o2::base::GRPGeomRequest> req, const o2::base::Propagator::MatCorrType matType ) : mCCDBRequest (req), mMatType (matType ) {}
4645 void init (framework::InitContext& ic) final
4746 {
4847 o2::base::GRPGeomHelper::instance ().setRequest (mCCDBRequest );
@@ -64,7 +63,6 @@ class CalibratordEdxDevice : public Task
6463 const auto fitSnp = ic.options ().get <bool >(" fit-snp" );
6564
6665 const auto dumpData = ic.options ().get <bool >(" file-dump" );
67- auto materialType = static_cast <o2::base::Propagator::MatCorrType>(ic.options ().get <int >(" material-type" ));
6866
6967 mCalibrator = std::make_unique<tpc::CalibratordEdx>();
7068 mCalibrator ->setHistParams (dEdxBins, mindEdx, maxdEdx, angularBins, fitSnp);
@@ -74,7 +72,7 @@ class CalibratordEdxDevice : public Task
7472 mCalibrator ->setSlotLength (slotLength);
7573 mCalibrator ->setMaxSlotsDelay (maxDelay);
7674 mCalibrator ->setElectronCut ({fitThreshold, fitPasses, fitThresholdLowFactor});
77- mCalibrator ->setMaterialType (materialType );
75+ mCalibrator ->setMaterialType (mMatType );
7876
7977 if (dumpData) {
8078 mCalibrator ->enableDebugOutput (" calibratordEdx.root" );
@@ -130,12 +128,14 @@ class CalibratordEdxDevice : public Task
130128 }
131129
132130 std::unique_ptr<CalibratordEdx> mCalibrator ;
131+ const o2::base::Propagator::MatCorrType mMatType {};
133132 std::shared_ptr<o2::base::GRPGeomRequest> mCCDBRequest ;
134133 uint64_t mRunNumber {0 }; // /< processed run number
135134};
136135
137- DataProcessorSpec getCalibratordEdxSpec ()
136+ DataProcessorSpec getCalibratordEdxSpec (const o2::base::Propagator::MatCorrType matType )
138137{
138+ const bool enableAskMatLUT = matType == o2::base::Propagator::MatCorrType::USEMatCorrLUT;
139139 std::vector<OutputSpec> outputs;
140140 outputs.emplace_back (ConcreteDataTypeMatcher{o2::calibration::Utils::gDataOriginCDBPayload , " TPC_CalibdEdx" }, Lifetime::Sporadic);
141141 outputs.emplace_back (ConcreteDataTypeMatcher{o2::calibration::Utils::gDataOriginCDBWrapper , " TPC_CalibdEdx" }, Lifetime::Sporadic);
@@ -144,7 +144,7 @@ DataProcessorSpec getCalibratordEdxSpec()
144144 true , // GRPECS=true
145145 false , // GRPLHCIF
146146 true , // GRPMagField
147- true , // askMatLUT
147+ enableAskMatLUT, // askMatLUT
148148 o2::base::GRPGeomRequest::None, // geometry
149149 inputs,
150150 true ,
@@ -153,7 +153,7 @@ DataProcessorSpec getCalibratordEdxSpec()
153153 " tpc-calibrator-dEdx" ,
154154 inputs,
155155 outputs,
156- adaptFromTask<CalibratordEdxDevice>(ccdbRequest),
156+ adaptFromTask<CalibratordEdxDevice>(ccdbRequest, matType ),
157157 Options{
158158 {" tf-per-slot" , VariantType::UInt32, 6000u , {" number of TFs per calibration time slot" }},
159159 {" max-delay" , VariantType::UInt32, 10u , {" number of slots in past to consider" }},
@@ -172,8 +172,7 @@ DataProcessorSpec getCalibratordEdxSpec()
172172 {" angularbins" , VariantType::Int, 36 , {" number of angular bins: Tgl and Snp" }},
173173 {" fit-snp" , VariantType::Bool, false , {" enable Snp correction" }},
174174
175- {" file-dump" , VariantType::Bool, false , {" directly dump calibration to file" }},
176- {" material-type" , VariantType::Int, 2 , {" Type for the material buget during track propagation: 0=None, 1=Geo, 2=LUT" }}}};
175+ {" file-dump" , VariantType::Bool, false , {" directly dump calibration to file" }}}};
177176}
178177
179178} // namespace o2::tpc
0 commit comments