@@ -35,6 +35,12 @@ void CorrectionMapsLoader::extractCCDBInputs(ProcessingContext& pc, float tpcSca
3535 if (lumiMode != LumiScaleMode::NoCorrection) {
3636 pc.inputs ().get <o2::gpu::TPCFastTransform*>(" tpcCorrMapRef" );
3737 }
38+
39+ if (mApplySecEdgeFlucCorr ) {
40+ pc.inputs ().get <o2::gpu::TPCFastTransform*>(" tpcCorrMapSecFluc" );
41+ pc.inputs ().get <TTree*>(" tpSecFlucInfo" );
42+ }
43+
3844 const int maxDumRep = 5 ;
3945 int dumRep = 0 ;
4046 o2::ctp::LumiInfo lumiObj;
@@ -93,11 +99,11 @@ void CorrectionMapsLoader::requestCCDBInputs(std::vector<InputSpec>& inputs, con
9399{
94100 LOGP (info, " Requesting CCDB inputs for TPC correction maps with lumiType={} and lumiMode={}" , static_cast <int >(gloOpts.lumiType ), static_cast <int >(gloOpts.lumiMode ));
95101 if (gloOpts.lumiMode == LumiScaleMode::Linear) {
96- addInput (inputs, {" tpcCorrMap" , " TPC " , " CorrMap" , 0 , Lifetime::Condition, ccdbParamSpec (CDBTypeMap.at (CDBType::CalCorrMap), {}, 1 )}); // time-dependent
97- addInput (inputs, {" tpcCorrMapRef" , " TPC " , " CorrMapRef" , 0 , Lifetime::Condition, ccdbParamSpec (CDBTypeMap.at (CDBType::CalCorrMapRef), {}, 0 )}); // load once
102+ addInput (inputs, {" tpcCorrMap" , o2::header:: gDataOriginTPC , " CorrMap" , 0 , Lifetime::Condition, ccdbParamSpec (CDBTypeMap.at (CDBType::CalCorrMap), {}, 1 )}); // time-dependent
103+ addInput (inputs, {" tpcCorrMapRef" , o2::header:: gDataOriginTPC , " CorrMapRef" , 0 , Lifetime::Condition, ccdbParamSpec (CDBTypeMap.at (CDBType::CalCorrMapRef), {}, 0 )}); // load once
98104 } else if (gloOpts.lumiMode == LumiScaleMode::DerivativeMap) {
99- addInput (inputs, {" tpcCorrMap" , " TPC " , " CorrMap" , 0 , Lifetime::Condition, ccdbParamSpec (CDBTypeMap.at (CDBType::CalCorrMap), {}, 1 )}); // time-dependent
100- addInput (inputs, {" tpcCorrMapRef" , " TPC " , " CorrMapRef" , 0 , Lifetime::Condition, ccdbParamSpec (CDBTypeMap.at (CDBType::CalCorrDerivMap), {}, 1 )}); // time-dependent
105+ addInput (inputs, {" tpcCorrMap" , o2::header:: gDataOriginTPC , " CorrMap" , 0 , Lifetime::Condition, ccdbParamSpec (CDBTypeMap.at (CDBType::CalCorrMap), {}, 1 )}); // time-dependent
106+ addInput (inputs, {" tpcCorrMapRef" , o2::header:: gDataOriginTPC , " CorrMapRef" , 0 , Lifetime::Condition, ccdbParamSpec (CDBTypeMap.at (CDBType::CalCorrDerivMap), {}, 1 )}); // time-dependent
101107 } else if (gloOpts.lumiMode == LumiScaleMode::DerivativeMapMC) {
102108 // for MC corrections
103109 addInput (inputs, {" tpcCorrMap" , " TPC" , " CorrMap" , 0 , Lifetime::Condition, ccdbParamSpec (CDBTypeMap.at (CDBType::CalCorrMapMC), {}, 1 )}); // time-dependent
@@ -110,11 +116,17 @@ void CorrectionMapsLoader::requestCCDBInputs(std::vector<InputSpec>& inputs, con
110116 LOG (fatal) << " Correction mode unknown! Choose either 0 (default) or 1 (derivative map) for flag corrmap-lumi-mode." ;
111117 }
112118
119+ // load sector edge fluctuation correction only for data
120+ if (gloOpts.enableSecEdgeFlucCorrection ) {
121+ addInput (inputs, {" tpcCorrMapSecFluc" , o2::header::gDataOriginTPC , " CorrMapSecFluc" , 0 , Lifetime::Condition, ccdbParamSpec (CDBTypeMap.at (CDBType::CalSecEdgeCorrection), {}, 1 )}); // time-dependent
122+ addInput (inputs, {" tpSecFlucInfo" , o2::header::gDataOriginTPC , " InfoMapSecFluc" , 0 , Lifetime::Condition, ccdbParamSpec (CDBTypeMap.at (CDBType::CalSecEdgeInfo), {}, 1 )}); // time-dependent
123+ }
124+
113125 if (gloOpts.requestCTPLumi ) {
114126 addInput (inputs, {" CTPLumi" , " CTP" , " LUMI" , 0 , Lifetime::Timeframe});
115127 }
116128
117- addInput (inputs, {" tpcCorrPar" , " TPC " , " CorrMapParam" , 0 , Lifetime::Condition, ccdbParamSpec (CDBTypeMap.at (CDBType::CorrMapParam), {}, 0 )}); // load once
129+ addInput (inputs, {" tpcCorrPar" , o2::header:: gDataOriginTPC , " CorrMapParam" , 0 , Lifetime::Condition, ccdbParamSpec (CDBTypeMap.at (CDBType::CorrMapParam), {}, 0 )}); // load once
118130}
119131
120132// ________________________________________________________
@@ -136,7 +148,7 @@ void CorrectionMapsLoader::addOption(std::vector<ConfigParamSpec>& options, Conf
136148// ________________________________________________________
137149bool CorrectionMapsLoader::accountCCDBInputs (const ConcreteDataMatcher& matcher, void * obj)
138150{
139- if (matcher == ConcreteDataMatcher (" TPC " , " CorrMap" , 0 )) {
151+ if (matcher == ConcreteDataMatcher (o2::header:: gDataOriginTPC , " CorrMap" , 0 )) {
140152 setCorrMap ((o2::gpu::TPCFastTransform*)obj);
141153 mCorrMap ->rectifyAfterReadingFromFile ();
142154 mCorrMap ->setCTP2IDCFallBackThreshold (o2::tpc::CorrMapParam::Instance ().CTP2IDCFallBackThreshold );
@@ -165,7 +177,7 @@ bool CorrectionMapsLoader::accountCCDBInputs(const ConcreteDataMatcher& matcher,
165177 setUpdatedMap ();
166178 return true ;
167179 }
168- if (matcher == ConcreteDataMatcher (" TPC " , " CorrMapRef" , 0 )) {
180+ if (matcher == ConcreteDataMatcher (o2::header:: gDataOriginTPC , " CorrMapRef" , 0 )) {
169181 setCorrMapRef ((o2::gpu::TPCFastTransform*)obj);
170182 mCorrMapRef ->rectifyAfterReadingFromFile ();
171183 mCorrMapRef ->setCTP2IDCFallBackThreshold (o2::tpc::CorrMapParam::Instance ().CTP2IDCFallBackThreshold );
@@ -194,7 +206,7 @@ bool CorrectionMapsLoader::accountCCDBInputs(const ConcreteDataMatcher& matcher,
194206 setUpdatedMapRef ();
195207 return true ;
196208 }
197- if (matcher == ConcreteDataMatcher (" TPC " , " CorrMapParam" , 0 )) {
209+ if (matcher == ConcreteDataMatcher (o2::header:: gDataOriginTPC , " CorrMapParam" , 0 )) {
198210 const auto & par = o2::tpc::CorrMapParam::Instance ();
199211 mMeanLumiOverride = par.lumiMean ; // negative value switches off corrections !!!
200212 mMeanLumiRefOverride = par.lumiMeanRef ;
@@ -225,6 +237,18 @@ bool CorrectionMapsLoader::accountCCDBInputs(const ConcreteDataMatcher& matcher,
225237 canUseCorrections () ? " ON" : " OFF" ,
226238 lumiS[scaleType], mMeanLumiOverride , mMeanLumiRefOverride , static_cast <int >(getLumiScaleMode ()), mLumiCTPSource , mInstCTPLumiOverride , mInstLumiCTPFactor );
227239 }
240+ if (matcher == ConcreteDataMatcher (o2::header::gDataOriginTPC , " CorrMapSecFluc" , 0 )) {
241+ setCorrMapSecEdgeFluc ((o2::gpu::TPCFastTransform*)obj);
242+ mCorrMapSecEdgeFluc ->rectifyAfterReadingFromFile ();
243+ setUpdatedMapSecEdgeFluc ();
244+ return true ;
245+ }
246+ if (matcher == ConcreteDataMatcher (o2::header::gDataOriginTPC , " InfoMapSecFluc" , 0 )) {
247+ LOGP (info, " Updating TPC sector edge fluctuation info" );
248+ mSecEdgeFlucInfo .setFromTree (*((TTree*)obj));
249+ LOGP (info, " Loaded sector edge fluctuation information with {} intervals for {} runs" , mSecEdgeFlucInfo .size (), mSecEdgeFlucInfo .getNRuns ());
250+ return true ;
251+ }
228252 return false ;
229253}
230254
0 commit comments