You can use this code. I use 3dtools to draw it.
\documentclass[tikz,border=3mm]{standalone}
\usetikzlibrary{calc,3dtools}% https://github.com/marmotghost/tikz-3dtools
\begin{document}
\begin{tikzpicture}[3d/install view=%
{phi=110,psi=0,theta=70},line join = round, line cap = round,c/.style={circle,fill,inner sep=1pt},
declare function={R=4;r=3.5;h= sqrt(R*R- r*r);a=asin(r/R);H=r*tan(a); d = h + H;}]
\path (0,0,0) coordinate (O)
(0,0,-h) coordinate (H)
(0,0,-d) coordinate (T);
\path (H) pic[3d/cone/inner/.style={save named path=cone,draw=none}]{3d/cone={r=r,h=-H}};
\path[save named path=sph,3d/screen coords] (O) circle[radius=R];
\tikzset{3d/draw ordered paths={cone,sph}}
\path foreach \p/\g in {O/90,H/0,T/-90}
{(\p)node[c]{}+(\g:2.5mm) node{$\p$}};
\draw[3d/hidden] (T) --(O);
\end{tikzpicture}
\end{document}

If you use R=5;r=2.5, you get the picture like this.
\documentclass[tikz,border=3mm]{standalone}
\usetikzlibrary{calc,3dtools}% https://github.com/marmotghost/tikz-3dtools
\begin{document}
\begin{tikzpicture}[3d/install view=%
{phi=110,psi=0,theta=70},line join = round, line cap = round,c/.style={circle,fill,inner sep=1pt},
declare function={R=4;r=3.5;h= sqrt(R*R- r*r);a=asin(r/R);H=r*tan(a); d = h + H;}]
\path (0,0,0) coordinate (O)
(0,0,-h) coordinate (H)
(0,0,-d) coordinate (T);
\path (H)
pic[3d/cone/inner/.style={save named path=icone,draw=none},
3d/cone/outer/.append style={save named path=ocone},
]{3d/cone={r=r,h=-H}};
\path[save named path=sph,3d/screen coords] (O) circle[radius=R];
\tikzset{3d/draw ordered paths={icone,sph,ocone}}
\path foreach \p/\g in {O/90,H/0,T/-90}
{(\p)node[c]{}+(\g:2.5mm) node{$\p$}};
\draw[3d/hidden] (T) --(O);
\end{tikzpicture}
\end{document}

With r =2, we get
