\begin{tikzpicture}[scale=1.4] 
    \def\intersectionY{-2.0} 
    \def\rectCenterOffset{1.5} 
    \def\angleRectOne{60}
    \def\angleRectTwo{110}
    \def\rectHalfLength{3.0} 
    \def\unscaledCircleRadius{0.3} 
    \def\paddingFromEndOfTube{0.5} 
    \def\smallCircleRadius{0.03}

    \coordinate (intersectionPoint) at (0, \intersectionY);
    
    \coordinate (rect1Center) at 
        ($ (intersectionPoint) + ({\rectCenterOffset*cos(\angleRectOne)}, {\rectCenterOffset*sin(\angleRectOne)}) $);
    \coordinate (rect2Center) at
        ($ (intersectionPoint) + ({\rectCenterOffset*cos(\angleRectTwo)}, {\rectCenterOffset*sin(\angleRectTwo)}) $);

    \draw[myblue, very thick, rotate around={\angleRectOne:(rect1Center)}]
        ($(rect1Center)+(-\rectHalfLength,-0.4)$) rectangle ($(rect1Center)+(\rectHalfLength,0.4)$);
    \draw[myblue, very thick, rotate around={\angleRectTwo:(rect2Center)}]
        ($(rect2Center)+(-\rectHalfLength,-0.4)$) rectangle ($(rect2Center)+(\rectHalfLength,0.4)$);
    
    \def\globalTikzScale{1.5}      
    \newdimen\actualCircleRadiusDim
    \pgfmathparse{\unscaledCircleRadius * \globalTikzScale}
    \actualCircleRadiusDim=\pgfmathresult cm 

    \pgfmathsetmacro{\distCircleFromRectCenter}{\rectHalfLength - \unscaledCircleRadius - \paddingFromEndOfTube} 

    \coordinate (circle1) at 
        ($ (rect1Center) + ({\distCircleFromRectCenter*cos(\angleRectOne)}, {\distCircleFromRectCenter*sin(\angleRectOne)}) $);
    \coordinate (circle2) at 
        ($ (rect2Center) + ({\distCircleFromRectCenter*cos(\angleRectTwo)}, {\distCircleFromRectCenter*sin(\angleRectTwo)}) $);
    \coordinate (circle3) at (intersectionPoint); 
    
    \draw[black, thick, fill=mygray] (circle1) circle (\unscaledCircleRadius);
    \draw[black, thick, fill=mygray] (circle2) circle (\unscaledCircleRadius);
    \draw[black, thick, fill=mygray] (circle3) circle (\unscaledCircleRadius);
    
    \coordinate (sc1a) at ([shift={(0.15,0.1)}]circle1);
    \coordinate (sc1b) at ([shift={(-0.1,0.18)}]circle1);
    \coordinate (sc1c) at ([shift={(-0.18,-0.05)}]circle1);
    \coordinate (sc1d) at ([shift={(0.08,-0.2)}]circle1);
    \coordinate (sc2a) at ([shift={(0.12,0.15)}]circle2);
    \coordinate (sc2b) at ([shift={(-0.15,0.08)}]circle2);
    \coordinate (sc2c) at ([shift={(-0.08,-0.18)}]circle2);
    \coordinate (sc2d) at ([shift={(0.2,-0.1)}]circle2);
    \coordinate (sc3a) at ([shift={(0.18,0.05)}]circle3);
    \coordinate (sc3b) at ([shift={(-0.05,0.2)}]circle3);
    \coordinate (sc3c) at ([shift={(-0.2,-0.08)}]circle3);
    \coordinate (sc3d) at ([shift={(0.1,-0.15)}]circle3);

    \foreach \sc in {sc1a,sc1b,sc1c,sc1d, sc2a,sc2b,sc2c,sc2d, sc3a,sc3b,sc3c,sc3d} {
        \fill[black] (\sc) circle (\smallCircleRadius);
    }
    
    \pgfmathsetmacro{\orangeRectHalfWidthValue}{0.06} 

    \coordinate (target_sc_c1_o1) at (sc1a);
    \coordinate (target_sc_c3_o1) at (sc3a);
    \coordinate (orange1_epA) at ($(target_sc_c1_o1)!-\actualCircleRadiusDim!(target_sc_c3_o1)$);
    \coordinate (orange1_epB) at ($(target_sc_c3_o1)!-\actualCircleRadiusDim!(target_sc_c1_o1)$);
    
    \draw[myorange, very thick] 
        let \p1=(orange1_epA), \p2=(orange1_epB),
            \n1={atan2(\y2-\y1,\x2-\x1)} in
        ([shift={(\n1+90:\orangeRectHalfWidthValue)}]\p1) -- 
        ([shift={(\n1+90:\orangeRectHalfWidthValue)}]\p2) -- 
        ([shift={(\n1-90:\orangeRectHalfWidthValue)}]\p2) -- 
        ([shift={(\n1-90:\orangeRectHalfWidthValue)}]\p1) -- cycle;
    
    \coordinate (target_sc_c2_o2) at (sc2a);
    \coordinate (target_sc_c3_o2) at (sc3c); 
    \coordinate (orange2_epA) at ($(target_sc_c2_o2)!-\actualCircleRadiusDim!(target_sc_c3_o2)$);
    \coordinate (orange2_epB) at ($(target_sc_c3_o2)!-\actualCircleRadiusDim!(target_sc_c2_o2)$);

    \draw[myorange, very thick] 
        let \p1=(orange2_epA), \p2=(orange2_epB),
            \n1={atan2(\y2-\y1,\x2-\x1)} in
        ([shift={(\n1+90:\orangeRectHalfWidthValue)}]\p1) -- 
        ([shift={(\n1+90:\orangeRectHalfWidthValue)}]\p2) -- 
        ([shift={(\n1-90:\orangeRectHalfWidthValue)}]\p2) -- 
        ([shift={(\n1-90:\orangeRectHalfWidthValue)}]\p1) -- cycle;
    
    \node[myblue, font=\large, anchor=east] at (-2.2, -1.5) {$T_\rho$}; 
    \node[myorange, font=\large, anchor=east] at (-2.2, -2.0) {$T_\delta$}; 
    
    \node[black, font=\large, anchor=west] (B_label) at ($(circle3)+(1.2,0)$) {$B$}; 
    \draw[black, thick] ($(circle3) + (\unscaledCircleRadius,0)$) -- (B_label.west);
\end{tikzpicture}
