Finding all "basic" cycles in an undirected graph? Say you have a graph like

a — b — c
|   |   |
e — f — g


and you would like to find the cycles c1, {a,b,f,e}, and c2, {b, c, g, f}, but not c3, {a, b, c, g, f, e}, because c3 is not "basic" in the sense that c3 = c1 + c2 where the plus operator means to join two cycles along some edge e and then drop e from the graph.

I invented my own terminology in the above but basically I want to find all cycles in a graph that cannot be decomposed into smaller cycles. Does this problem have a name? Is there a known best algorithm for solving it?

I understand that enumerating all cycles runs in exponential time because there may be an exponential number of cycles but my intuition is that the number of basic cycles as defined above is related only  polynomially to the number of edges in the graph.
You might be interested in a cycle basis, especially a fundamental cycle basis (which actually consists of cycles).