@@ -118,8 +118,8 @@ struct HfTaskCorrelationDstarHadrons {
118118 HistogramRegistry registry{" registry" , {}, OutputObjHandlingPolicy::AnalysisObject, true , true };
119119
120120 o2::ccdb::CcdbApi ccdbApi;
121- std::vector<TH1F *> vecHistEfficiencyDstar;
122- std::vector<TH1D *> vecHistEfficiencyTracks;
121+ std::vector<TH1 *> vecHistEfficiencyDstar;
122+ std::vector<TH1 *> vecHistEfficiencyTracks;
123123
124124 void init (InitContext&)
125125 {
@@ -166,12 +166,12 @@ struct HfTaskCorrelationDstarHadrons {
166166 vecHistEfficiencyTracks.resize (nEfficiencyHist);
167167
168168 for (int iHist = 0 ; iHist < nEfficiencyHist; iHist++) {
169- vecHistEfficiencyDstar[iHist] = dynamic_cast <TH1F *>(efficiencyDstarRootFile->Get (Form (" hEfficiencyDstar_%d" , iHist)));
169+ vecHistEfficiencyDstar[iHist] = dynamic_cast <TH1 *>(efficiencyDstarRootFile->Get (Form (" hEfficiencyDstar_%d" , iHist)));
170170 if (!vecHistEfficiencyDstar[iHist]) {
171171 LOGF (fatal, " Failed to retrieve Dstar efficiency histogram hEfficiencyDstar_%d from file" , iHist);
172172 }
173173
174- vecHistEfficiencyTracks[iHist] = dynamic_cast <TH1D *>(efficiencyTracksRootFile->Get (Form (" hEfficiencyTracks_%d" , iHist)));
174+ vecHistEfficiencyTracks[iHist] = dynamic_cast <TH1 *>(efficiencyTracksRootFile->Get (Form (" hEfficiencyTracks_%d" , iHist)));
175175 if (!vecHistEfficiencyTracks[iHist]) {
176176 LOGF (fatal, " Failed to retrieve track efficiency histogram hEfficiencyTracks_%d from file" , iHist);
177177 }
@@ -212,19 +212,31 @@ struct HfTaskCorrelationDstarHadrons {
212212 // if (ptTrack > 10.0) {
213213 // ptTrack = 10.5;
214214 // }
215- float netEfficiencyWeight = 1.0 ;
215+ float netEfficiencyWeight = 1.0 , efficiencyWeightDstar = 1.0 , efficiencyWeightTracks = 1.0 ;
216216
217217 if (applyEfficiency && !useCcdbEfficiency) {
218- float const efficiencyWeightDstar = efficiencyDstar->at (effBinPtDstar);
219- // LOG(info)<<"efficiencyWeightDstar "<<efficiencyWeightDstar;
220- float const efficiencyWeightTracks = efficiencyTracks->at (effBinPtTrack);
221- // LOG(info)<<"efficiencyWeightTracks "<<efficiencyWeightTracks;
218+ efficiencyWeightDstar = efficiencyDstar->at (effBinPtDstar);
219+ efficiencyWeightTracks = efficiencyTracks->at (effBinPtTrack);
222220 netEfficiencyWeight = 1.0 / (efficiencyWeightDstar * efficiencyWeightTracks);
223221 } else if (applyEfficiency && useCcdbEfficiency && nEfficiencyHist == 1 ) {
224- float const efficiencyWeightDstar = vecHistEfficiencyDstar[0 ]->GetBinContent (vecHistEfficiencyDstar[0 ]->GetXaxis ()->FindBin (ptDstar));
225- // LOG(info)<<"efficiencyWeightDstar "<<efficiencyWeightDstar;
226- float const efficiencyWeightTracks = vecHistEfficiencyTracks[0 ]->GetBinContent (vecHistEfficiencyTracks[0 ]->GetXaxis ()->FindBin (ptTrack));
227- // LOG(info)<<"efficiencyWeightTracks "<<efficiencyWeightTracks;
222+ float const ptEffLowEdgeDstar = vecHistEfficiencyDstar[0 ]->GetXaxis ()->GetBinLowEdge (1 );
223+ if (ptDstar <= ptEffLowEdgeDstar) { // pT of current dstar candidate is lower than the lower edge of the pT axis
224+ efficiencyWeightDstar = vecHistEfficiencyDstar[0 ]->GetBinContent (1 );
225+ } else {
226+ efficiencyWeightDstar = vecHistEfficiencyDstar[0 ]->GetBinContent (vecHistEfficiencyDstar[0 ]->GetXaxis ()->FindBin (ptDstar));
227+ if (!efficiencyWeightDstar) {
228+ LOGF (fatal, " Dstar efficiency weight can't be zero." );
229+ }
230+ }
231+ float const ptEffLowEdgeTrack = vecHistEfficiencyTracks[0 ]->GetBinLowEdge (1 );
232+ if (ptTrack <= ptEffLowEdgeTrack) { // pT of current track is lower than the lower edge of the pT axis
233+ efficiencyWeightTracks = vecHistEfficiencyTracks[0 ]->GetBinContent (1 );
234+ } else {
235+ efficiencyWeightTracks = vecHistEfficiencyTracks[0 ]->GetBinContent (vecHistEfficiencyTracks[0 ]->GetXaxis ()->FindBin (ptTrack));
236+ if (!efficiencyWeightTracks) {
237+ LOGF (fatal, " track efficiency weight can't be zero" );
238+ }
239+ }
228240 netEfficiencyWeight = 1.0 / (efficiencyWeightDstar * efficiencyWeightTracks);
229241 } else if (applyEfficiency && useCcdbEfficiency && nEfficiencyHist > 1 ) {
230242 // to do
0 commit comments