diff --git a/PhysicsTools/TagAndProbe/src/TagProbeFitter.cc b/PhysicsTools/TagAndProbe/src/TagProbeFitter.cc index 74ed40f67e30e..155f1d1197834 100644 --- a/PhysicsTools/TagAndProbe/src/TagProbeFitter.cc +++ b/PhysicsTools/TagAndProbe/src/TagProbeFitter.cc @@ -329,9 +329,7 @@ string TagProbeFitter::calculateEfficiency(string dirName, } else { // disactive not needed branches inputTree->SetBranchStatus("*", false); - TIterator* iter = dataVars.createIterator(); - TObject* obj(nullptr); - while ((obj = iter->Next())) + for (TObject* obj : dataVars) inputTree->SetBranchStatus(obj->GetName(), true); } @@ -480,8 +478,8 @@ string TagProbeFitter::calculateEfficiency(string dirName, if (data_bin->numEntries() > 0) { //set the values of binnedVariables to the mean value in this data bin RooArgSet meanOfVariables; - RooLinkedListIter vit = binnedVariables.iterator(); - for (RooRealVar* v = (RooRealVar*)vit.Next(); v != nullptr; v = (RooRealVar*)vit.Next()) { + for (const RooAbsArg* vv : binnedVariables) { + const RooRealVar* v = dynamic_cast(vv); meanOfVariables.addClone(*v); double mean = w->data("data")->mean(*v); RooBinning binning((RooBinning&)v->getBinning()); @@ -788,8 +786,7 @@ void TagProbeFitter::saveFitPlot(RooWorkspace* w) { RooAbsPdf& pdf = *w->pdf("simPdf"); std::unique_ptr obs(pdf.getObservables(*dataAll)); RooRealVar* mass = nullptr; - RooLinkedListIter it = obs->iterator(); - for (RooAbsArg* v = (RooAbsArg*)it.Next(); v != nullptr; v = (RooAbsArg*)it.Next()) { + for (RooAbsArg* v : *obs) { if (!v->InheritsFrom("RooRealVar")) continue; mass = (RooRealVar*)v; @@ -867,8 +864,7 @@ void TagProbeFitter::saveDistributionsPlot(RooWorkspace* w) { const RooArgSet* vars = dataAll->get(); vector reals; - RooLinkedListIter it = vars->iterator(); - for (RooAbsArg* v = (RooAbsArg*)it.Next(); v != nullptr; v = (RooAbsArg*)it.Next()) { + for (RooAbsArg* v : *vars) { if (!v->InheritsFrom("RooRealVar")) continue; reals.push_back((RooRealVar*)v); @@ -909,15 +905,15 @@ void TagProbeFitter::saveEfficiencyPlots(RooDataSet& eff, const TString& effName, RooArgSet& binnedVariables, RooArgSet& mappedCategories) { - RooLinkedListIter v1it = binnedVariables.iterator(); bool isOnePoint = (eff.numEntries() == 1); // for datasets with > 1 entry, we don't make plots for variables with just one bin - for (RooRealVar* v1 = (RooRealVar*)v1it.Next(); v1 != nullptr; v1 = (RooRealVar*)v1it.Next()) { + for (auto it1 = binnedVariables.begin(); it1 != binnedVariables.end(); it1++) { + RooRealVar* v1 = dynamic_cast(*it1); RooArgSet binCategories1D; if (v1->numBins() == 1 && !isOnePoint) continue; - RooLinkedListIter v2it = binnedVariables.iterator(); - for (RooRealVar* v2 = (RooRealVar*)v2it.Next(); v2 != nullptr; v2 = (RooRealVar*)v2it.Next()) { + for (auto it2 = binnedVariables.begin(); it2 != binnedVariables.end(); it2++) { + RooRealVar* v2 = dynamic_cast(*it2); if (v2 == v1) continue; if (v2->numBins() == 1 && !isOnePoint) @@ -926,8 +922,8 @@ void TagProbeFitter::saveEfficiencyPlots(RooDataSet& eff, RooBinningCategory(TString(v2->GetName()) + "_bins", TString(v2->GetName()) + "_bins", *v2)); RooArgSet binCategories2D; - RooLinkedListIter v3it = binnedVariables.iterator(); - for (RooRealVar* v3 = (RooRealVar*)v3it.Next(); v3 != nullptr; v3 = (RooRealVar*)v3it.Next()) { + for (auto it3 = binnedVariables.begin(); it3 != binnedVariables.end(); it3++) { + RooRealVar* v3 = dynamic_cast(*it3); if (v3 == v1 || v3 == v2) continue; binCategories2D.addClone( diff --git a/PhysicsTools/Utilities/src/SideBandSubtraction.cc b/PhysicsTools/Utilities/src/SideBandSubtraction.cc index 2395d02f5bbb7..390c65ab81af3 100644 --- a/PhysicsTools/Utilities/src/SideBandSubtraction.cc +++ b/PhysicsTools/Utilities/src/SideBandSubtraction.cc @@ -98,15 +98,14 @@ int SideBandSubtract::doSubtraction(RooRealVar* variable, //out how to do this in one shot to avoid a loop //O(N_vars*N_events)... - TIterator* iter = (TIterator*)Data->get()->createIterator(); - RooAbsArg* var = nullptr; RooRealVar* sep_var = nullptr; - while ((var = (RooAbsArg*)iter->Next())) { + for (const auto& var : *Data->get()) { if ((string)var->GetName() == (string)SeparationVariable->GetName()) { sep_var = (RooRealVar*)var; break; } } + for (int i = 0; i < Data->numEntries(); i++) { Data->get(i); Double_t value = variable->getVal(); @@ -431,9 +430,7 @@ int SideBandSubtract::doGlobalFit() { //need to grab sbs objects after each global fit, because they get reset resetSBSProducts(); - TIterator* iter = (TIterator*)Data->get()->createIterator(); - RooAbsArg* variable; - while ((variable = (RooAbsArg*)iter->Next())) { + for (const auto& variable : *Data->get()) { for (unsigned int i = 0; i < BaseHistos.size(); i++) { if ((string)variable->GetName() != (string)SeparationVariable->GetName() && (string)variable->GetName() == (string)BaseHistos[i]->GetName()) @@ -441,11 +438,6 @@ int SideBandSubtract::doGlobalFit() { } } - // clean up our memory... - if (variable) - delete variable; - if (iter) - delete iter; return 0; } void SideBandSubtract::doFastSubtraction(TH1F& Total, TH1F& Result, SbsRegion& leftRegion, SbsRegion& rightRegion) {