@@ -79,24 +79,26 @@ void MixingHandler::AddMixingVariable(int var, int nBins, std::vector<float> bin
7979// _________________________________________________________________________
8080int MixingHandler::GetMixingVariable (VarManager::Variables var)
8181{
82- int varNum = - 1 ;
83- for (int iVar = 0 ; iVar < fVariables .size (); ++iVar ) {
84- if (fVariables [iVar] == var) {
85- varNum = iVar ;
82+ int i = 0 ;
83+ for (auto v = fVariables . begin (); v != fVariables .end (); v++, i++ ) {
84+ if (*v == var) {
85+ return i ;
8686 }
8787 }
88- return varNum ;
88+ return - 1 ;
8989}
9090
9191// _________________________________________________________________________
9292std::vector<float > MixingHandler::GetMixingVariableLimits (VarManager::Variables var)
9393{
9494 std::vector<float > binLimits;
95- for (int iVar = 0 ; iVar < fVariables .size (); ++iVar) {
96- if (fVariables [iVar] == var) {
97- for (int iBin = 0 ; iBin < fVariableLimits [iVar].GetSize (); ++iBin) {
98- binLimits.push_back (fVariableLimits [iVar].At (iBin));
95+ int i = 0 ;
96+ for (auto v = fVariables .begin (); v != fVariables .end (); v++, i++) {
97+ if (*v == var) {
98+ for (int iBin = 0 ; iBin < fVariableLimits [i].GetSize (); ++iBin) {
99+ binLimits.push_back (fVariableLimits [i].At (iBin));
99100 }
101+ break ;
100102 }
101103 }
102104 return binLimits;
@@ -110,8 +112,8 @@ void MixingHandler::Init()
110112 // The correct event category will be retrieved using the function FindEventCategory()
111113 //
112114 int size = 1 ;
113- for (int iVar = 0 ; iVar < fVariables . size (); ++iVar ) {
114- size *= (fVariableLimits [iVar] .GetSize () - 1 );
115+ for (auto v : fVariableLimits ) {
116+ size *= (v .GetSize () - 1 );
115117 }
116118
117119 fIsInitialized = kTRUE ;
@@ -131,22 +133,27 @@ int MixingHandler::FindEventCategory(float* values)
131133 }
132134
133135 std::vector<int > bin;
134- for (int i = 0 ; i < fVariables .size (); ++i) {
135- int binValue = TMath::BinarySearch (fVariableLimits [i].GetSize (), fVariableLimits [i].GetArray (), values[fVariables [i]]);
136+ int iVar = 0 ;
137+ for (auto v = fVariableLimits .begin (); v != fVariableLimits .end (); v++, iVar++) {
138+ int binValue = TMath::BinarySearch ((*v).GetSize (), (*v).GetArray (), values[fVariables [iVar]]);
136139 bin.push_back (binValue);
137- if (bin[i ] == -1 || bin[i ] == fVariableLimits [i] .GetSize () - 1 ) {
140+ if (bin[iVar ] == -1 || bin[iVar ] == (*v) .GetSize () - 1 ) {
138141 return -1 ; // all variables must be inside limits
139142 }
140143 }
141144
142145 int category = 0 ;
143- for (int iVar = 0 ; iVar < fVariables .size (); ++iVar) {
144- int tempCategory = 1 ;
145- for (int iVar2 = iVar; iVar2 < fVariables .size (); ++iVar2) {
146- if (iVar2 == iVar) {
147- tempCategory *= bin[iVar2];
146+ int tempCategory = 1 ;
147+ int iv1 = 0 ;
148+ int iv2 = 0 ;
149+ for (auto v1 = fVariables .begin (); v1 != fVariables .end (); v1++, iv1++) {
150+ tempCategory = 1 ;
151+ iv2 = iv1;
152+ for (auto v2 = v1; v2 != fVariables .end (); v2++, iv2++) {
153+ if (iv2 == iv1) {
154+ tempCategory *= bin[iv2];
148155 } else {
149- tempCategory *= (fVariableLimits [iVar2 ].GetSize () - 1 );
156+ tempCategory *= (fVariableLimits [iv2 ].GetSize () - 1 );
150157 }
151158 }
152159 category += tempCategory;
@@ -165,10 +172,10 @@ int MixingHandler::GetBinFromCategory(VarManager::Variables var, int category) c
165172 }
166173
167174 // Search for the position of the variable "var" in the internal variable list of the handler
168- int tempVar;
169- for (int i = 0 ; i < fVariables .size (); ++i ) {
170- if (fVariables [i] == var) {
171- tempVar = i ;
175+ int tempVar = 0 ;
176+ for (auto v = fVariables . begin (); v != fVariables .end (); v++, tempVar++ ) {
177+ if (*v == var) {
178+ break ;
172179 }
173180 }
174181
0 commit comments