| 348 | 
  | 
    keys.push_back(at4);     | 
| 349 | 
  | 
 | 
| 350 | 
  | 
    //try exact match first | 
| 351 | 
< | 
    InversionType* inversionType = inversionTypeCont_.find(keys); | 
| 351 | 
> | 
    InversionType* inversionType = inversionTypeCont_.permutedFindSkippingFirstElement(keys); | 
| 352 | 
  | 
    if (inversionType) { | 
| 353 | 
  | 
      return inversionType; | 
| 354 | 
  | 
    } else { | 
| 410 | 
  | 
              myKeys.push_back((*k)->getName()); | 
| 411 | 
  | 
              myKeys.push_back((*l)->getName()); | 
| 412 | 
  | 
               | 
| 413 | 
< | 
              InversionType* inversionType = inversionTypeCont_.find(myKeys); | 
| 413 | 
> | 
              InversionType* inversionType = inversionTypeCont_.permutedFindSkippingFirstElement(myKeys); | 
| 414 | 
  | 
              if (inversionType) {  | 
| 415 | 
  | 
                foundInversions.push_back( make_tuple3(Iscore, JKLscore, myKeys) ); | 
| 416 | 
  | 
              } | 
| 429 | 
  | 
        int jklscore = foundInversions[0].second; | 
| 430 | 
  | 
        std::vector<std::string> theKeys = foundInversions[0].third; | 
| 431 | 
  | 
         | 
| 432 | 
< | 
        InversionType* bestType = inversionTypeCont_.find(theKeys); | 
| 432 | 
> | 
        InversionType* bestType = inversionTypeCont_.permutedFindSkippingFirstElement(theKeys); | 
| 433 | 
  | 
        return bestType; | 
| 434 | 
  | 
      } else { | 
| 435 | 
  | 
        //if no exact match found, try wild card match |