I am drawing an optical experiment that involves making a path take a detour.

This is possible with PSTricks, but I haven't found a way to achieve this with TikZ.
What I currently have:
- The beam splitter and mirror are positioned with relative node positioning.
- The lasers are connected simply by defining paths from nodes.
So far I've tried the loop library (can only loop back to the node itself, like a state diagram), setting bends (will not turn one whole turn, just bend slightly), using a coil decoration, (best so far, but ugly and won't look good in the paper).
Does anybody have a pointer to a library that could do this for me?
Edit: I have taken the accepted answer and done a few tweaks. Note that the end angles are set to vertical.
\documentclass[tikz]{standalone}
\usetikzlibrary{
positioning,
arrows,
decorations.markings,
hobby
}
\colorlet{maroon}{red!80!black}
\tikzstyle{beamsplitter} = [
fill=gray,
fill opacity=0.3,
]
\tikzstyle{left-hand-mirror} = [
draw,
postaction=decorate,
decoration={
markings,
mark=between positions 0.015 and 0.98 step 0.1072 with {\draw (0,0)--(60:3pt);}
}
]
\tikzstyle{laser} = [
draw=maroon,
line cap=round,
]
\tikzstyle{laserarrow} = [
line cap=round,
draw=maroon,
decoration={markings,mark=at position 0.55 with{\arrow[rotate=-20,maroon]{latex'}}},
postaction={decorate},
mark options={color=maroon}
]
\begin{document}
\begin{tikzpicture}[use Hobby shortcut]
\node (source) {};
\node[right=1cm of source] (splitter) {};
\node[above=1 cm of splitter] (mirror) {};
\node[right=5mm of splitter] (combiner) {};
\node[right=5mm of mirror] (end) {};
\path[laser] (source.east) -- (splitter.center);
\path[laser] (mirror.center) -- (end.center) {};
\path[laser] (splitter.center) -- (combiner.center);
% Create a node to the left of the midway between the splitter and mirror
\path (splitter) -- (mirror.center) node[midway,left]
(midway) {};
% Create a node to the left of the above node
\node [left = 5mm of midway] (midway-left) {};
% Create the loop
\draw [laserarrow]
([out angle=90, in angle=-90]splitter.center) .. (midway) .. (midway-left)
.. (midway) .. (mirror.center);
\path[left-hand-mirror] (mirror.south west) --
(mirror.north east) ;
\draw[beamsplitter] (splitter.north west) rectangle (splitter.south east);
\draw (splitter.north east) -- (splitter.south west);
\end{tikzpicture}
\end{document}
and this creates the following output:

I still need to fix that arrow positioning, but I'm getting there.

hobbyin this site. – Feb 19 '14 at 13:16hobbypackage. It might be a good answer for my question, however it refuses to work on MiKTeX 2.9 even though I am using the latest package version. Not even an MWE compiles. Should I ask a separate question about this? The error message in question is "Undefined Control Sequence" withouth telling me which control sequence is undefined. – Jonathan Jogenfors Feb 19 '14 at 13:51