The structure of a finite group of order 40320 I would like to know the structure of the group $G$ where $G$ is a non-split extension of a cyclic group of order 2 by  the simple group $PSL(3,4)$. (the cyclic group is normal).
Can anyone help me to introduce this group to GAP?
 A: Let $H$ be a finite group of order 443520 with a composition factor $T/C \cong \operatorname{PSL}(3,4)$, $1 \lhd C \lhd T \lhd H$ and $|C|=2$.
Then $|T| = 40320$ is relatively prime to $11$, so $T$ is a normal Hall $11'$-subgroup of $H$. Let $P$ be a Sylow 11-subgroup of $H$. Then $T \cap P = 1$ by Lagrange, so $H = P \ltimes T$.
The automorphism group of $T/C$ has order relatively prime to 11, and since $C=Z(T)$ is characteristic, any automorphism of $T$ induces an automorphism of $T/C$. Thus $[P,T] \leq C$. Since $[P,C]=1$ as well, we get $[P,T,T]=1$. If $T$ is perfect, then the three subgroups lemma gives $[T,P]=1$. If $T$ is not perfect, then $T=\operatorname{PSL}(3,4) \times C$ has no automorphism of order 11, so $[P,T]=1$ in that case as well.
Hence $H=T\times P$.
$T$ itself has two possibilities: $T_1=\operatorname{PSL}(3,4) \times C$ and $T_2 = 2.\operatorname{PSL}(3,4)$.
In GAP, the first is created by DirectProduct(PSL(3,4),SymmetricGroup(2)) and the latter is created by PerfectGroup(IsPermGroup,40320,4).
If you did not know how many possibilities for $T$ there were, then you could ask GAP to calculate the non-split extensions using the second cohomology over a field (since $C$ is elementary abelian, and we know the action of an element of $T/C$ on $C$):
`
gap> tmodc := PSL(3,4);;
gap> p := 2;;
gap> chr := CHR( tmodc, p,
> Image(IsomorphismFpGroupByGenerators(g,GeneratorsOfGroup(g))),
> List(GeneratorsOfGroup(g),x->One(GL(1,p))));;
gap> dim := SecondCohomologyDimension( chr );
2
gap> ts_fp := List( NormedRowVectors( GF(p)^dim ), v -> NonsplitExtension( chr, IntVecFFE( v ) ) );;
gap> ts := List( ts_fp, t -> Image( IsomorphismPermGroup( t ) ) );;
gap> ts := ts{Filtered([1..Size(ts)], i -> ForAll([1..i-1],
> j -> fail = IsomorphismGroups( ts[i], ts[j] ) ) )};;
gap> List( ts, StructureDescription );
[ "C2 . PSL(3,4)" ]
`
