1. Circuit definition
This filter contains 3 resistors and 3 capacitors, in the ratios shown in the figure. The diagram also has an rc load resistor.

We use the Mathematica module:
Get["../simulin/simulineaire.m"];
The following function defines the circuit, with arguments R, C and the charge conductance.
doubleT[r_,c_,gc_]:=Module[{n,A,B}, n=5; A=Table[0,{n},{n}]; B=Table[0,{n}]; A=ajouterResistance[A,1,2,r]; A=ajouterResistance[A,2,4,r]; A=ajouterResistance[A,3,5,r/2]; A=ajouterCapacite[A,1,3,c]; A=ajouterCapacite[A,3,4,c]; A=ajouterCapacite[A,2,5,2*c]; A=ajouterDipole[A,4,5,gc]; {A,B}=ajouterMasse[A,B,5]; {A,B}=definirEntree[A,B,1]; Return[{A,B}]; ]
2. Transfer function
The transfer function is obtained with zero charge conductance (open circuit at output):
{A,B}=doubleT[R,C,0]; H=transfert[A,B,4]/.{s->I*omega}
1-C2 ω2 R2-C2 ω2 R2+4 i C ω R+1
We recognize a rejector filter, presenting an infinite attenuation for the pulsation: ωc = 1RC
Let’s define values to obtain a 50 Hz rejection:
fc=50; r=10^2; c=1/(2*N[Pi]*r*fc)
0.00003183098861837907
Plot of Bode’s diagram:
{A,B}=doubleT[r,c,0]; h=transfert[A,B,4];
bodeGain[h,0,4,-60,0]

bodePhase[h,0,4]

The output impedance can be obtained by calculating the current in a very low load resistance (very large conductance):
{A,B}=doubleT[r,c,10^9]; v=LinearSolve[A,-B]; icc=1/r*(v[[2]]-v[[4]])+c*s*(v[[3]]-v[[4]]); icc=Abs[icc/.s->I*2*N[Pi]*100]
0.006708203932412162